mtat.03.047 introduction to informatics...sw eng. vs. 'other' engineering sw engineering:...

47
MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014 MTAT.03.047 Introduction to Informatics Lecture: Software Engineering Dietmar Pfahl email: [email protected] Fall 2014

Upload: others

Post on 26-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

MTAT.03.047

Introduction to Informatics

Lecture:

Software Engineering

Dietmar Pfahl

email: [email protected] Fall 2014

Page 2: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Today: Software is everywhere (=ubiquitous)

Page 3: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

How did we get there?

Page 4: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Before expulsion from paradise …

• No calculation needed

• No computer needed

• No software needed

Adam & Eve

Page 5: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

After expulsion from paradise …

1912-1954

?

Page 6: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

1968 – NATO Conference in Garmisch-

Partenkirchen, Germany

• Recognition of

’Software Crisis’

• Coining of term

‘Software

Engineering’

Page 7: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software Engineering:

Why and What?

Page 8: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Engineering versus Craftsmanship

Page 9: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Engineering versus Craftsmanship

Organic growth?

Page 10: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Engineering vs. Science

Science

Detect (and prove) new 'laws' governing reality

Proof that a solution to a known problem exists

Invent new devices (prototypes) that demonstrate the existence of a solution to a problem

Find new problems

Engineering

Find solutions to known problems under given constraints (time and effort budgets, needs = functional and non-functional requirements/qualities)

Page 11: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Magic Triangle of SE

Page 12: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

SW Eng. vs. 'Other' Engineering

SW Engineering:

Many engineers (up to 500) collaborate/cooperate to solve a problem

Cannot rely on laws of nature (only math/logic and sociology/psychology)

Material cost is negligible compared to personnel cost of engineers / Production is not a cost factor

Non-SW Engineering:

Small teams of engineers solve a problem / design a solution

Can rely on laws of nature (i.e., physics and chemistry)

Many workers (and much material) involved in the construction/production process of (physical) artifacts

Page 13: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

What is Software Engineering?

• Software Engineering =

• An engineering discipline that is concerned with all aspects of software production.

• Software Engineers should

• adopt a systematic and organised approach to their work

• use appropriate tools and techniques depending on

- the problem to be solved,

- the development constraints and

- the resources available.

Page 14: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Elements

of

Software Engineering

Page 15: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

The Three Ps in Software Projects

• Software development happens in projects

Project

P ?

P ?

P ?

Page 16: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 17: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Products Products

Code: - Production code:

- Source code - Object code

- Non-production code: - Test code

Non-Code: - Requirements - Specifications - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ...

Models

Types of Software: - Embedded/real-time - Information System - Web application - System software - ...

Properties of Software: - Functionality - Reliability - Usability - Efficiency - Maintainability - Portability

Page 18: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software in a Car Products

ECU = Electronic Control Unit

Page 19: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software in a Car Products

ECU = Electronic Control Unit

Page 20: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Properties of Software

The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.

Maintainability

Software must evolve to meet changing needs;

Dependability (Reliability)

Software must be trustworthy;

Efficiency

Software should not make wasteful use of system resources;

Usability

Software must be accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.

Products

(new standard: ISO 25000)

Page 21: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Product Modeling UML = Unified Modeling Language

Online information: http://www.uml.org

Products

Page 22: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Products – Summary

Software Engineering helps with:

• Requirements gathering/analysis (requirements engineering)

• Defining/analysing/implementing architecture/design

• Defining/selecting/applying modeling languages to create product models (UML, ADL, SDL, ...)

• Analysing/improving code (code smells, refactoring)

• Defining/analysing code properties

• (Semi-)automatically generating code and test cases (from models)

• Detecting and maintaining traceablity between artifacts

• ...

Products

Page 23: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 24: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

People

People

Roles: - Project Manager - Product Manager - Architect - Programmer - Tester - ...

Skills: - Must match roles Training: - Must fill skill-gaps Education: - Curricula (ACM/IEEE)

Teams: - Team building - Geographically distributed (international/global) - Mechanisms for collaboration/cooperation - Motivation, Personality, Values, Culture

User models

Page 25: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

ACM/IEEE Curriculum for Undergraduate Studies in SE (2004)

People

Page 26: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

ACM/IEEE Curriculum for Undergraduate Studies in SE (2004)

People

Page 27: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

People – Summary

Software Engineering helps with:

• Defining roles

• Defining and assessing skills

• Defining a body of knowledge (SWEBOK) and professional code of ethics

• Training and education (curricula)

• Methods, techniques, tools

• Team building (i.e., global/international teams)

• Developing tools for developer/team support (IDEs, CSCW)

• ...

People

SWEBOK = Software Engineering Book of Knowledge IDE = Integrated Development Environment (e.g., Eclipse) CSCW = Computer-Supported Cooperative Work

Page 28: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 29: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Processes

Processes

Process (Model) Elements: - Activity - Input/Output Product(s) - Roles - Methods/Techniques/Tools

Process Taxonomy: - Non-engineering processes

- Business processes - Social processes

- Engineering processes - Product-engineering proc.

- Technical prod.-eng. proc. - Managerial prod.-eng. proc.

- Process-engineering proc.

Process Models: - Descriptive PMs - Prescriptive PMs

- Standards - Families

Process Types: - Heavy-weight (rich) - Light-weight

- Lean - Agile - Kanban

Page 30: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Process Taxonomy

H. Dieter Rombach, Martin Verlage,

Directions in Software Process Research,

Advances in Computers, Volume 41,

Marvin V. Zelkowitz (Ed.), Pages 1-63,

Academic Press, Boston, MA, 1995.

A Process … … defines Who does What, When

and How to reach a specific goal. In software engineering the goal is

to build a software product or to enhance an existing one

Processes

Page 31: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

SW Development Process Examples

Processes

Page 32: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Waterfall Method (naïve)

Unidirectional, no way back finish this step before moving to the next

Processes

requirements

deliver

test

implement

design

Page 33: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Requirements and Customers

Processes

Page 34: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Development Process Types

RUP = Rational Unified Process XP = Extreme Programming

Processes

Page 35: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Page 36: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Scrum Elements – Process, Artifacts, Roles

http://consultingblogs.emc.com/Admin/ImageGallery/blogs.conchango.com/Colin.Bird/Scrum Overview Diagram.png

Processes

Page 37: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

What is a software process model?

• A simplified representation (abstraction) of a software process,

• holistic or presented from a specific perspective

• in the form of an Electronic Process Guide (EPG)

• Examples of process perspectives are

• Workflow perspective – sequence of activities

• Data/Product-flow perspective – information flow

• Role/action perspective – who does what?

Processes

Page 38: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Descriptive vs. Prescriptive Process Models

Processes

Page 39: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Plan-Do-Check-Act (PDCA): A systematic approach to Software Process Improvement (SPI)

• PLAN what you want to accomplish over a period of time and what you might do, or need to do, to get there

• DO what you planned to do • CHECK the results of what

you did to see if the objective was achieved

• ACT on the information – standardize or plan for further improvement

Processes

Page 40: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Plan-Do-Check-Act – “Plan”

Processes

Page 41: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Processes – Summary

Processes

Software Engineering helps with:

• Defining processes, including:

• Guidelines, methods, techniques, tools, ...

• Eliciting/discovering processes

• Describing processes

• Improving processes

• Plan-Do-Check-Act

• Measurement

• CMMI, TMMI, ...

• ...

Process change managementTechnology change managementDefect prevention

Software quality managementQuantitative process management

Peer reviewsIntergroup coordinationSoftware product engineeringIntegrated software managementTraining programmeOrganization process definitionOrganization process focus

Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversightSoftware project planningRequirements management

Initial

Repeatable

Defined

Managed

Optimizing

Page 42: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Wrap-Up

Page 43: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software Engineering

Consistent application of engineering principles and methods to the development of software (intensive) systems

Engineering Principles: Application of systematic (i.e., predictable, repeatable, scalable) procedures - with well-defined goals (e.g., quality, functionality/scope, cost, time) - with well-defined/structured products, processes, and organization Adherence to existing body of knowledge Observation of constraints (standards, time/cost/quality requirements, etc.) Development and use of models

Page 44: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software Engineering Management

Consistent application of engineering principles and methods to the development of software (intensive) systems

Engineering Principles: Application of systematic (i.e., predictable, repeatable, scalable) procedures - with well-defined goals (e.g., quality, functionality/scope, cost, time) - with well-defined/structured products, processes, and organization Adherence to existing body of knowledge Observation of constraints (standards, time/cost/quality requirements, etc.) Development and use of models

Planning – deciding what is to be done Organizing – making arrangements Staffing – selecting the right people for the job Directing – giving instructions Monitoring – checking on progress Controlling – taking action to remedy hold-ups Innovating – finding solutions when problems emerge Representing – liaising with clients, users, developers and other stakeholders

Page 45: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software Engineering

Software Product

A bridge from customer/user needs to software product

Customer, User

Needs

Page 46: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Software Engineering Group http://sep.cs.ut.ee/

Staff Members Marlon Dumas (Professor, Group Leader) Raimundas Matulevicius (Associate Professor) Dietmar Pfahl (Associate Professor) Luciano García-Bañuelos (Associate Professor) Peep Küngas (Senior Research Fellow) Fabrizio Maggi (Senior Research Fellow) Siim Karus (Research Fellow) PhD Students Naved Ahmed Abel Armas-Cervantes Riivo Kikas Fredrik Payman Milani Toomas Saarsen Oleg Shelajev Svetlana Omelkova Ilya Verenich Associated Members Marcello La Rosa (Queensland UniTech & NICTA) Yain-Whar Si (University of Macau)

Prof. Marlon Dumas

Master of Science in Software Engineering Joint Master's Degree – University of Tartu

and Tallinn University of Technology

http://software.cs.ut.ee/

Page 47: MTAT.03.047 Introduction to Informatics...SW Eng. vs. 'Other' Engineering SW Engineering: Many engineers (up to 500) collaborate/cooperate to solve a problem Cannot rely on laws of

MTAT.03.047 / Lecture on SE / © Dietmar Pfahl 2014

Thank You