32
Software Engineering 2 A practical course in software engineering Ekkart Kindler

Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Software Engineering 2A practical course in software engineering

Ekkart Kindler

Page 2: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

IV. Working togetherIV.1. Management

Page 3: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerDefinition

(Software) ManagementPlanning, organizing, leading, monitoring and controlling the software development process.

3SE2 (02162 e19), L09

Page 4: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

4SE2 (02162 e19), L09

Management Goals

Define goals and make sure that they willbe achieved

General goals: Increase productivity

Increase quality

decrease development costs

Increaseproduct value

In short:Make a profit and increase it!

Page 5: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

5SE2 (02162 e19), L09

Short- vs. Long-term Goals

Software Management requires

short-term(within a project or even within a phase) and long-term

(spanning more projects)

measures

Page 6: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

6SE2 (02162 e19), L09

Management

Planning set goal set dates define course of action assign resources …

Organization define organisation structures assign responsibilities define tasks assign tasks …

Page 7: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

7SE2 (02162 e19), L09

Management

Leading lead and motivate team members improve communication solve conflicts …

Monitoring and controlling check progress identify problems (early) produce relief …

Page 8: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

8SE2 (02162 e19), L09

Management cycle

Planning Organization Leading Monitoring & controlling

Page 9: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerUnits of work: Tasks

In order to work effectively and efficiently, the work needs to be split up in reasonably sized junks of work (tasks)

Driving principles value for owner manageable (timewise and cognitively) minimizing length of critical path increase parallel work /

avoid idle times

9SE2 (02162 e19), L09

Page 10: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerManagement issues

On the following slides somemangament ”issues” are raised,for triggering a discussion!

10SE2 (02162 e19), L09

Page 11: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerManagement:

Measure / picture / control progress of project Predict cost / time

Minimise risk(or minimise negative impact of risk)

Manage size and complexity Minimize complicatedness (see next slide)

Balance workload

11SE2 (02162 e19), L09

Page 12: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerComplex vs Complicated

Complexity is inherent to the problem solved

”Complicatedness is difficulty that serves no purpose ...”http://picture-poems.com/week4/complexity.html

12SE2 (02162 e19), L09

Page 13: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerMake sure to

Understand the problem

Define the solution

Design the solution

Implement the solution

13SE2 (02162 e19), L09

”WHAT”

”HOW”

”WHY”

D

I

O

C

Page 14: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerCDIO

Conceiving Designing Implementing Operating

14SE2 (02162 e19), L09

Page 15: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerProcess models

Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details this is their strength (and maybe also their weakness)

adaptive (e.g. agile, Scrum, evolutionary, …)vs.

prescriptive (e.g. waterfall, V-model, RUP, …)

15SE2 (02162 e19), L09

Page 16: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerAgile manifesto

„We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and

tools Working software over comprehensive

documentation Customer collaboration over contract negotiation Responding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more.“Kent Beck et al. 2001

16SE2 (02162 e19), L09

Page 17: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

17SE2 (02162 e19), L09

Waterfall Model

Planningphase

Definitionphase

Designphase

Implem.phase

Acceptancephase

Mainten.phase

D I OC

Page 18: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerMistakes

I without C/D

C/D goes on forever (I never starts) requirements are illusive

Observation: Often C/D needs or is inspired by I

(only a first implementation reveals what we really wanted) ”co-evolution” of understanding of problem and solution

18SE2 (02162 e19), L09

Page 19: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerIn all process models

Understand the problem

Define solution

Design & implement solution

19SE2 (02162 e19), L09

why

what

how

Page 20: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerWhy / what

Why?

Understand what there is already!

Understand why this is not sufficient!

What?

What can be done about it! define (better) solution

20SE2 (02162 e19), L09

Page 21: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

On the dimensions of software documentsAn idea for framing thesoftware engineering processEkkart Kindler, Joseph Kiniry,Anne Haxthausen, Hubert Baumeister

Page 22: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerSE ”theories”

22SE2 (02162 e19), L09

”General” Theory

• Terminology / Ontology(”important parameters”)

• Laws

Methodology (Practices)

• Chosen principles• How to do things• Notations

Facts / observations

• Experiences• Empirical studies• Facts (”laws”) us

ed to

phr

ase

just

ifies

Page 23: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler

23SE2 (02162 e19), L09

Teaching SE process

what

how

rough

detailed

Page 24: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerThree main dimensions

Why, what, how Level of detail (rough detailed) Level of formality (informal formal)

24SE2 (02162 e19), L09

Page 25: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerDescribing Software

25SE2 (02162 e19), L09

what how

rough

detailed

formal

informal

Page 26: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerEntanglement: ex. ”Rough/detailed”

Level of detail, Abstraction, Composition, ...

26SE2 (02162 e19), L09

Abstraction

Coverage

Page 27: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerEntaglement

why is typically informal

level of detail ”imprecise” (loose) / precise declarative / executable

informal / formal textual / graphical

27SE2 (02162 e19), L09

Page 28: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerThe goal

28SE2 (02162 e19), L09

what how

rough

detailed

formal

informal

Page 29: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler”Waterfall model”

29SE2 (02162 e19), L09

what how

rough

detailed

formal

informal

Page 30: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart Kindler”Agile”

30SE2 (02162 e19), L09

what how

rough

detailed

formal

informal

Page 31: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerExample documents

Product objective Product use Use cases User story Domain model Code (implementation) Test Prototype GUI definition GUI mockup ...

Design Architecture Data base schema XML Schema OOA OOD Systems specification Requirements

specification Formal model Handbook

31SE2 (02162 e19), L09

Page 32: Software Engineering 2 (02162) · Process models are the distilled experience of project plans of successful software projects they are idealized and abstract from (many) details

Ekkart KindlerDimensions

32SE2 (02162 e19), L09

what how

rough

detailed

formal

informal