1
Version: Feb. 20, 2004 (D Nov. 06, 2003)
Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac
DAAD Project“Joint Course on Software Engineering”
Topic 4Basic concepts for the description of
software development
Parts of this topic use material from the textbook H. Balzert, “Software-Technik”, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001
DAAD project „Joint Course on Software Engineering“ © 2
4. Basic concepts for the description ofsoftware development
a) Description of results of software development phases -software development documents
b) Definition of basic concepts for the description ofsoftware development and their classification
c) Basic concepts and software development phases
d) Classification of basic concepts according to their notation
e) Basic concepts and their application areas
f) Basic concepts and their use in analysis methods
2
DAAD project „Joint Course on Software Engineering“ © 3
Description techniques of software documents
Source: Schneider, SEUH 43, p. 123
Problem: How to describe ?
Customer's requests
Specification Design Code
Customer Analyst Designer Programmer
DAAD project „Joint Course on Software Engineering“ © 4
Description of software documents by …
class diagr.
sequence diagr.
pseudo code
state automaton
entity relation-ship diagr.
dataflow-diagr.
use case diagr.
UML
classification?
3
DAAD project „Joint Course on Software Engineering“ © 5
Basic concepts of … software developmentBalzert vol. 1, 2nd edition 2001
Function tree
Data-Dictio-nary1979
Class diagram 1980/1990
Box diagram
1973
Program flowchart
1966
Pseudocode
Decision tables
1957
Rules Petri Net1962
Sequ-encediagram
1987
Stateautomaton1954
Entity Relation-shipModel1976
Data flow diagram1966
Use Case Diagram1987
Activity diagram
1997
Collabo-ration diagram
Functional View Data-Oriented View Object-Oriented View
Algorith-mic View
Functionalhierarchy
BusinessProcess
Infor-mation Flow
Class structures
Data Structures
Rule-Based View
State-Oriented View
Controlstructures
If-Thenstructures
Entity types and relations
Finite State Automaton
Concurrentstructures
Interactionstructures
Scenario-Based View
Concepts and ViewsA
ltern
ativ
e N
otat
ions
Ofte
n us
ed
Rar
ely
used
DAAD project „Joint Course on Software Engineering“ © 6
Function tree
Data-Dictio-nary1979
Class diagram 1980/1990
Box diagram
1973
Program flowchart
1966
Pseudocode
Decision tables
1957
Rules Petri-Net1962
Sequ-encediagram
1987
Stateautomaton1954
Entity Relation-ship Model1976
Data flow diagram1966
Use Case Diagram1987
Activity diagram
1997
Collabo-ration diagram
Functional View Data-Oriented View Object-Oriented View
Algorith-mic View
Functionalhierarchy
BusinessProcess
Infor-mation Flow
Class structures
Data Structures
Rule-Based View
State-Oriented View
Controlstructures
If-Thenstructures
Entity types and relations
Finite State Automaton
Concurrentstructures
Interactionstructures
Scenario-Based View
Concepts and Views
Alte
rnat
ive
Not
atio
nsO
ften
used
Rar
ely
used
Basic concepts: fundamental approach
elementary formalizeddescription mechanisms UMLX
classification in three levels:
Which view on the software?
Which aspect of this view?
Which actual notational forms?
basic concept
4
DAAD project „Joint Course on Software Engineering“ © 7
Function tree
Data-Dictio-nary1979
Class diagram 1980/1990
Box diagram
1973
Program flowchart
1966
Pseudocode
Decision tables
1957
Rules Petri Net1962
Inter-actionDiagr.
1987
Stateautomaton1954
Entity Relation-shipModel1976
Data flow diagram1966
Functional View Data-Oriented View Object-Oriented View
Algorith-mic View
Functionalhierarchy
BusinessProcess
Infor-mation Flow
Class structures
Data Structures
Rule-Based View
State-Oriented View
Controlstructures
If-Thenstructures
Entity types and relations
Finite State Automaton
Concurrentstructures
Interactionstructures
Scenario-Based View
Concepts and ViewsA
ltern
ativ
e N
otat
ions
Ofte
n us
ed
Rar
ely
used
JacksonDiagr.1975
Warnier-Orr-Diagr.1972
SyntaxDiagr.1964
JacksonDiagr.1975
Basic concepts of … software development Balzert vol. 1, 1st edition 1996
development: 1996 2001
DAAD project „Joint Course on Software Engineering“ © 8
Computer-Zeitung 25/96 (20. June 96)
Software DevelopmentRemains a Mixture of MethodsSoftware development as science and as a practical activity have something in common: heterogeneity.
Software DevelopmentRemains a Mixture of MethodsSoftware development as science and as a practical activity have something in common: heterogeneity.
Diversity of approaches in basic concepts:different views on software products must be possible(different aspects of a software product)
5
DAAD project „Joint Course on Software Engineering“ © 9
Basic concepts: principles
application-independentkind of application determines the choice of a convenient basic concept
method-independentbasic concepts can be combined to general methods (e.g. structured analysis,OOA with UML ...)
phase-independentusable in different phases
DAAD project „Joint Course on Software Engineering“ © 10
Basic concepts and software development phases
definition phase
pseudo code
rules
decision table
DD (data dictionary)
classdiagram
stateautomaton
functiontree
sequence diagram
collaboration diagram
ER (entity relationship
Petri net
data flow diagram
use case diag.
boxdiagram
program flow chart
implementation phase
design phase
Legend: A B: A is used in B
6
DAAD project „Joint Course on Software Engineering“ © 11
Classification of basic concepts according to their notation
text
ual
grap
hica
l
verbal
box diagramclass diagram
data flowdiagram
decision table
ER
Petri netsstatediagram
program flow chart
DDPetri nets(textual)rules
pseudo code
decision table
stateautomaton
sequencediagram
informal semiformal/formalized formal
collaboration diagram
numberedrequirements
classification schemetext
use case diagr.
function tree
state automaton(textual)
DAAD project „Joint Course on Software Engineering“ © 12
Basic concepts and their application areasapplication areas complexity... basic concepts
...of data
...of functions
...of algorithms
...of system environment
...of time-dependent behavior
...of user interface
data dictionaryER (Entity Relationship)(state automaton)class diagramuse case diagramdata flow diagramfunction treepseudo codeprogram flow chartbox diagramdecision tablerules
data flow diagramPetri netsstate automatonactivity diagramsequence diagramcollaboration diagramgraphical specification(Petri nets)(state automaton)control structuresrules
tech
nica
l-sc
ient
ific
real
-tim
ead
min
istra
tive
human-computer-interaction
legend: ( ) = limited
7
DAAD project „Joint Course on Software Engineering“ © 13
Function tree
Data-Dictio-nary1979
Class diagram 1980/1990
Box diagram
1973
Program flowchart
1966
Pseudocode
Decision tables
1957
Rules Petri Net1962
Sequ-encediagram
1987
Stateautomaton1954
Entity Relation-ship Model1976
Data flow diagram1966
Use Case Diagram1987
Activity diagram
1997
Collabo-ration diagram
Functional View Data-Oriented View Object-Oriented View
Algorith-mic View
Functionalhierarchy
BusinessProcess
Infor-mation Flow
Class structures
Data Structures
Rule-Based View
State-Oriented View
Controlstructures
If-Thenstructures
Entity types and relations
Finite State Automaton
Concurrentstructures
Interactionstructures
Scenario-Based View
Basic concepts of … software development: enhancements
Balzert vol. 1, 2nd edition 2001Structure Chart
SDLEBNFGram-mars
Packa-geDiagr
ComponentDiagr.
Basic concepts:• complete?• additional forms
of notations?
StateChart1987
ZAlgebraicSpecifica-tion 1972
Hoarelogic1969
3 level classificationscheme flexible
DAAD project „Joint Course on Software Engineering“ © 14
Function tree
Data-Dictio-nary1979
Class diagram 1980/1990
Box diagram
1973
Program flowchart
1966
Pseudocode
Decision tables
1957
Rules Petri Net1962
Sequ-encediagram
1987
Stateautomaton1954
Entity Relation-ship Model1976
Data flow diagram1966
Use Case Diagram1987
Activity diagram
1997
Collabo-ration diagram
Functional View Data-Oriented View Object-Oriented View
Algorith-mic View
Functionalhierarchy
BusinessProcess
Infor-mationFlow
Class structures
Data Structures
Rule-Based View
State-Oriented View
Controlstructures
If-Thenstructures
Entity types and relations
Finite State Automaton
Concurrentstructures
Interactionstructures
Scenario-Based View
Structure Chart
EBNFGram-mars
Packa-geDiagr
ComponentDiagr.
ZAlgebraicSpecifica-tion 1972
Hoarelogic1969
Basic concepts: classification of enhancements
?statechart1987
SDL
8
DAAD project „Joint Course on Software Engineering“ © 15
Basic concepts: detailed classification of enhancements
Functiontree
Data-Dictio-nary1979
Class diagram 1980/1990
Bodi
Prflo
Psco
ER Entity Relation-ship)1976
Data flow diagram1966
Use Case Diagram1987
Functional View Data-Oriented View Object-Oriented View
Algmi
Functionalhierarchy
BusinessProcess
Infor-mation Flow
Class structures n
Datastructures
Costru
Entity types and
relations
Structure Chart
EBNF
Gram-mars
Z
AlgebraicSpecifi-cation 1972
Hoarelogic
PackageDiagr
Component diagr.
component-oriented view
effect of afunction
interactionbetweenfunctions
effect of functionsto data
source codesubsystems
binarycodesubsystems
Extension of views ...
Extension of aspects ...
DAAD project „Joint Course on Software Engineering“ © 16
Combination of basic concepts in object-oriented analysis
legend: A B: A is contained in BA B: A is implicitly contained in B
pseudocode
stateautomaton
classdiagram
OOA1990
ER (Entity Relationship)
collabo-ration diagram
sequencediagram
use casediagram
entities &relations
classstructures
controlstructures
finiteautomaton
interactionstructures
workflow
9
DAAD project „Joint Course on Software Engineering“ © 17
Combination of basic concepts in structured analysis
SA1979
decisiontable
decisiontree
pseudocode
datadictionary
data flowdiagram
functiontree
functionalhierarchy
informationflow
datastructures
controlstructures
legend: A B: A is contained in BA B: A is implicitly contained in B
DAAD project „Joint Course on Software Engineering“ © 18
Combination of basic conceptsin structured analysis and real-time analysis
SA1979
decisiontable
decisiontree
pseudo-code
datadictionary
data flowdiagram
stateautomaton
ER (entity relationship)
RT1987
informationflow
datastructure
controlstructures
finiteautomaton
entities &relations