mtat.03.047 introduction to informatics · - architecture/design docs - issue reports - user...

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

Upload: others

Post on 25-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

MTAT.03.047

Introduction to Informatics

Lecture:

Software Engineering

Dietmar Pfahl

email: [email protected] Fall 2013

Page 2: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Today: Software is everywhere (=ubiquitous)

Page 3: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

How did we get there?

Page 4: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Before expulsion from paradise …

• No calculation needed

• No computer needed

• No software needed

Adam & Eve

Page 5: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

After expulsion from paradise …

• Pre-civilisation:

• Counting

• Writing

• Ancient civilisations (China, India, Persia, Egypt,

Greece, …):

• Number systems

• Algebra

• Geometry

• Logic

• Astronomy

• …

Page 6: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

After expulsion from paradise …

• Middle ages:

• Invention of ‘0’

• Development and

popularisation of

rules for addition

and multiplication

• Production of

calculation tables

• Blaise Pascal:

• Binary system

0 00000000

1 00000001

2 00000010

3 00000011

4 00000100

5 00000101

6 …

1623-1662

Page 7: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The computer age starts …

• 19th inspired by the

programmable loom

(kudumismasin),

Charles Babbage

and Ada Lovelace

discuss the idea of

a programmable

calculator

• 20th century

• Conrad Zuse: builds first

programmable

computers (1930s)

• Z1 (using relays)

• Z3 (using tubes)

… unfinished

1910-1995

Page 8: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The computer age evolves …

• 1940s: first

functioning

computers in USA

and UK (Turing)

used for ‘number

crunching’

• 1950s & 1960s:

• IBM:

• Mainframes for commercial use

• Advanced OS

• 3rd gen. programming languages

(FORTRAN, COBOL, Algol ...)

• Application programs for

commercial use in many fields

• Software grows, legacy systems

Page 9: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

1968 – NATO Conference in Garmisch-

Partenkirchen, Germany

• Recognition of

’Software Crisis’

• Coining of term

‘Software

Engineering’

Page 10: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Software Engineering:

Why and What?

Page 11: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Engineering versus Craftsmanship

Page 12: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Engineering versus Craftsmanship

Organic growth?

Page 13: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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, quality needs = functional and non-functional requirements)

Page 14: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Magic Triangle of SE

Page 15: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 16: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 17: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Elements

of

Software Engineering

Page 18: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The Three Ps in Software Projects

• Software development happens in projects

Project

P ?

P ?

P ?

Page 19: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 20: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 21: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Software in a Car Products

ECU = Electronic Control Unit

Page 22: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Software in a Car Products

ECU = Electronic Control Unit

Page 23: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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

Page 24: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Product Modeling UML = Unified Modeling Language

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

Products

Page 25: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Products

Software Engineering helps with:

• Requirements gathering/analysis (requirements engineering)

• Defining/analysing 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 26: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 27: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 28: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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

People

Page 29: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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

People

Page 30: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

People

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 31: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

The Three Ps in Software Projects

• Software development happens in projects

Project

Products

People Processes

Page 32: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 33: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 34: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

SW Development Process Examples

Processes

Page 35: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Waterfall Method (naïve)

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

Processes

requirements

deliver

test

implement

design

Page 36: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Requirements and Customers

Processes

Page 37: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Development Process Types

RUP = Rational Unified Process XP = Extreme Programming

Processes

Page 38: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Scrum Elements – Process, Artifacts, Roles

http://www.scrumforteamsystem.com/processguidance/v1/Scrum/Scrum.html

Processes

Page 39: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 40: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Descriptive vs. Prescriptive Process Models

Processes

Page 41: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 42: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Plan-Do-Check-Act – “Plan”

Processes

Page 43: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Processes

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 44: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Wrap-Up

Page 45: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 46: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

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 47: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Software Engineering

Software Product

A bridge from customer/user needs to software product

Customer, User

Needs

Page 48: MTAT.03.047 Introduction to Informatics · - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ... -Models Types of Software: ... - Business processes

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

Thank You