Programming in the large - Lecture 21
1
Chair of Software Engineering
Programming in the large
Bertrand Meyer
Last update: 21 June 2004
Programming in the large Bertrand Meyer Chair of Software - - PowerPoint PPT Presentation
1 Last update: 21 June 2004 Programming in the large Bertrand Meyer Chair of Software Engineering Programming in the large - Lecture 21 2 Lecture 21: Software lifecycle models Chair of Software Engineering Programming in the large -
Programming in the large - Lecture 21
1
Chair of Software Engineering
Last update: 21 June 2004
Programming in the large - Lecture 21
2
Chair of Software Engineering
Programming in the large - Lecture 21
3
Chair of Software Engineering
Programming in the large - Lecture 21
4
Chair of Software Engineering
FEASIBILITY STUDY
PROJECT PROGRESS
REQUIREMENTS ANALYSIS SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION VALIDATION & VERIFICATION DISTRIBUTION
Programming in the large - Lecture 21
5
Chair of Software Engineering
Programming in the large - Lecture 21
6
Chair of Software Engineering
Programming in the large - Lecture 21
7
Chair of Software Engineering
As Management requested it. As the Project Leader defined it. As Systems designed it. As Programming developed it. As Operations installed it. What the user wanted.
(Pre-1970 cartoon; origin unknown)
Programming in the large - Lecture 21
8
Chair of Software Engineering
Figure from: Ghezzi, Jazayeri, Mandrioli, Software Engineering, 2nd edition, Prentice Hall
Programming in the large - Lecture 21
9
Chair of Software Engineering
M.C Escher: Waterval
Programming in the large - Lecture 21
10
Chair of Software Engineering
Programming in the large - Lecture 21
11
Chair of Software Engineering
TRANSACTION, PLANE, CUSTOMER, ENGINE...
Programming in the large - Lecture 21
12
Chair of Software Engineering
TRANSACTION, PLANE, CUSTOMER, ENGINE...
STATE, USER_COMMAND...
Programming in the large - Lecture 21
13
Chair of Software Engineering
TRANSACTION, PLANE, CUSTOMER, ENGINE...
STATE, USER_COMMAND... HASH_TABLE, LINKED_LIST...
Programming in the large - Lecture 21
14
Chair of Software Engineering
TRANSACTION, PLANE, CUSTOMER, ENGINE... TEST_DRIVER, ...
STATE, USER_COMMAND... HASH_TABLE, LINKED_LIST...
Programming in the large - Lecture 21
15
Chair of Software Engineering
TRANSACTION, PLANE, CUSTOMER, ENGINE... TEST_DRIVER, ...
STATE, USER_COMMAND... HASH_TABLE, LINKED_LIST...
AIRCRAFT, ...
Programming in the large - Lecture 21
16
Chair of Software Engineering
deferred class VAT inherit TANK feature in_valve, out_valve: VALVE fill is
require in_valve.open
deferred ensure in_valve.closed
is_full end empty, is_full, is_empty, gauge, maximum, ... [Other features] ... invariant is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum) end
Programming in the large - Lecture 21
17
Chair of Software Engineering
Programming in the large - Lecture 21
18
Chair of Software Engineering
Programming in the large - Lecture 21
19
Chair of Software Engineering
Programming in the large - Lecture 21
20
Chair of Software Engineering
Feasibility study Division into clusters
Programming in the large - Lecture 21
21
Chair of Software Engineering
Cluster 1
Feasibility study Division into clusters Cluster n
Programming in the large - Lecture 21
22
Chair of Software Engineering
I V D S G
Cluster 1 Feasibility study Division into clusters Cluster n
I V D S G I V D S G
Programming in the large - Lecture 21
23
Chair of Software Engineering
Programming in the large - Lecture 21
24
Chair of Software Engineering
Programming in the large - Lecture 21
25
Chair of Software Engineering
1 2 3 4
Programming in the large - Lecture 21
26
Chair of Software Engineering
Programming in the large - Lecture 21
27
Chair of Software Engineering
Programming in the large - Lecture 21
28
Chair of Software Engineering