Download presentation
Presentation is loading. Please wait.
Published byFelix Richards Modified over 6 years ago
1
Topic 4 Basic concepts for the description of software development
Topic 4: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Klaus Bothe (Berlin) Author of the lecture notes: Klaus Bothe (Berlin), 18th Nov 2002 About the subject of this topic This is one of the key topics of the whole course. The question is how to describe all the SW documents which have to be produced during the whole SW development process: - requirements documents - design documents - implementation documents. There are a lot of accepted techniques applied in practice to deal with this problem: class diagrams, data flow diagrams, grammars, Petri nets ... The key idea (included in the textbook from Balzert, Software-Technik, 1996, 2001) is to classify all the description techniques used in practice. In this way, there is a better systematics and a better overview of all these techniques for the practitioner as well as for the presentation of SE courses like this. The contents of the whole course follows this classification presented in this topic. To do: To apply style guidelines, once when they are finished. Slide 15: put Z to object oriented view? Slide 15. Instead: ‘Source code subsystems’ -> ‘Logical-level subsystems’? Slides that could be improved or replaced: - Duration of the lecture: Klaus Bothe, summer 2002: 40 minutes Zoran Budimac, November 2002: 60 minutes (for the people from the industry) History of changes (with respect to previous version(s), slide numbers are from this version): Parts of this topic use material from the textbook H. Balzert, “Software-Technik”, Vol. 1, 2nd ed., Spektrum Akademischer Verlag, 2001
2
Basic concepts for the description of software development
Description of results of software development phases - software development documents Definition of basic concepts for the description of software development and their classification Basic concepts and software development phases Classification of basic concepts according to their notation Basic concepts and their application areas Basic concepts and their use in analysis methods Remark: As opposed to other topics, this contents overview will not be repeated inside the topic slides. The reason is that to each point often belong only a few (ore only one) slides. This would burden the presentation material by too much contents slides.
3
Description techniques of software documents
Problem: How to describe ? customer‘s requests specification design code Remark: The picture is a repetition of a slide of topic 3 extended by the key question to be dealt with in this topic. customer requirements engineer designer programmer Schneider, SEUH 43, p. 123
4
Description of software documents by …
classification? state automaton use case diagr. sequence diagr. entity relation- ship diagr. pseudo code data flow-diagr. Methodology: Ask the students the implicite question from the headline. Some predifined answers are prepared. After that, the second question („classification“) is more a declaration of the goal of the next steps rather than a question to the students. UML class diagr.
5
Basic concepts of … software development Balzert vol
Basic concepts of … software development Balzert vol. 1, 2nd edition 2001 Function tree Data-Dictio-nary 1979 Class diagram 1980/ 1990 Box diagram 1973 Program flowchart 1966 Pseudo code Decision tables 1957 Rules Petri Net 1962 Sequ-ence diagram 1987 State automaton 1954 Entity Relation- ship Model 1976 Data flow diagram Use Case Diagram Activity diagram 1997 Collabo-ration diagram Functional View Data-Oriented View Object- Oriented View Algorith- mic View Functional hierarchy Business Process Infor- mation Flow Class structures Data Structures Rule- Based View State-Oriented View Control If-Then Entity types and relations Finite State Automaton Concurrent Interaction Scenario- Based View Concepts and Views Alternative Notations Often used Rarely used Remark: This is the original picture presented in Balzert‘s book from 2nd edition (2001). It contains the proposed classification scheme: Description techniques are sorted according a three-level classification scheme. The explanation will follow at the next slide. Methodology: This picture should be given to the students in paper form – because it includes the fundamental idea of succeeding topics.
6
Basic concepts: fundamental approach
Function tree Data-Dictio-nary 1979 Class diagram 1980/ 1990 Box diagram 1973 Program flowchart 1966 Pseudo code Decision tables 1957 Rules Petri-Net 1962 Sequ-ence diagram 1987 State automaton 1954 Entity Relation- ship Model 1976 Data flow diagram Use Case Diagram Activity diagram 1997 Collabo-ration diagram Functional View Data-Oriented View Object- Oriented View Algorith- mic View Functional hierarchy Business Process Infor- mation Flow Class structures Data Structures Rule- Based View State-Oriented View Control If-Then Entity types and relations Finite State Automaton Concurrent Interaction Scenario- Based View Concepts and Views Alternative Notations Often used Rarely used X elementary description mechanisms UML classification in three levels: Which view on the software? basic concept Which aspect of this view? Which actual notational forms? Contents: The classification of the basic concepts is based on the following principles: 1. The classification concerns elementary description techniques (like class diagrams and collaboration diagrams) rather than comprehensive description languages including a couple of elementary techniques (like UML covering class diagrams, collaboration diagrams, and others) 2. The classification of elementary description techniques covers 3 levels: a) Which view on the SW is being supported by the description technique? In other words: The s a m e software can be viewed from different sides. b) Which aspect of this view is concerned? c) Which actual or alternative notational forms exist? Methodology: At this moment, all the parts of this table should not be discussed or mentioned. It should only be used as an overview of the methods and to illustrate the proposed systematics. Nevertheless, some examples should be given, e.g. functional view means: a software function has to be specified data-oriented view means: data as part of the software have to specified from the structural point of view object-oriented view means: data and functions are unified to a class unit which forms the center of this view a view can be detailed into several aspects of the view: e. g. functional view to ... Remarks: 1. This scheme is rather adaptable: new or missing notations can be integrated new views and aspects can be included 2. The notation (concept) of a programming language has not been considered. The idea of a basic concept is how to describe the software rather than how to do implementation. Thus, there are several basic concepts (esp. for the algorithmic view: pseudo code ...) for describing the code structure rather than directly for coding.
7
Basic concepts of … software development Balzert vol
Basic concepts of … software development Balzert vol. 1, 1st edition 1996 Function tree Data-Dictio-nary 1979 Class diagram 1980/ 1990 Box diagram 1973 Program flowchart 1966 Pseudo code Decision tables 1957 Rules Petri Net 1962 Inter-action Diagr. 1987 State automaton 1954 Entity Relation- ship Model 1976 Data flow diagram Functional View Data-Oriented View Object- Oriented View Algorith- mic View Functional hierarchy Business Process Infor- mation Flow Class structures Data Structures Rule- Based View State-Oriented View Control If-Then Entity types and relations Finite State Automaton Concurrent Interaction Scenario- Based View Concepts and Views Alternative Notations Often used Rarely used Jackson Diagr. 1975 Warnier-Orr-Diagr. 1972 Syntax Diagr. 1964 development: 1996 2001 Contents: Compared with the table from the first edition from Balzert‘s book in 1996 (this slide), we can illustrate that there is a development of basic concepts over the years – and there is no problem to adapt the scheme. Three problem areas can be identified: 1. missing basic concepts in the table of 1996: use case diagrams have not been so popular in 1996; activity diagrams did not exist in 1996. 2. replaced notations: interaction diagrams have been replaced by two different notational forms. 3. dropped notations in the table of 2001 which already have been included in 1996: e. g. Jackson diagrams are no more widely used in practice
8
Software Development Remains a Mixture of Methods
Software development as science and as a practical activity have something in common: heterogeneity. Contents: Now, this well-known article from a former topic becomes obvious: This mixture of methods depends on the variety of views, aspects and notations used in software development. Diversity of approaches in basic concepts: different views on software products must be possible (different aspects of a software product) Computer-Zeitung 25/96 (20. June 96)
9
Basic concepts: principles
application-independent kind of application determines the choice of a convenient basic concept method-independent basic concepts can be combined to general methods (e.g. structured analysis, OOA with UML ...) phase-independent usable in different phases Remark: In the next slides, these three principles will be considered in depth.
10
Basic concepts and software development phases
ER (entity relationship Petri net data flow diagram use case diag. definition phase state automaton function tree sequence diagram collaboration diagram design phase DD (data dictionary) class diagram pseudo code rules decision table Contents: This figure illustrates that basic concepts are phase-independent: There are several basic concepts used in different phases. Methodology: Several (but not all) examples should be discussed. Remark: The proper contents of this pictures are not basic concepts but their concrete notational forms / notational representatives. But this does not matter. box diagram program flow chart implementation phase Legend: A B: A is used in B
11
Classification of basic concepts according to their notation
Petri nets state diagram graphical ER decision table data flow diagram use case diagr. class diagram box diagram function tree program flow chart verbal sequence diagram collaboration diagram state automaton Contents: Basic concepts can be classified according to two aspects: formality and textual/graphical notation. “Formal” means: there is a strong mathematical semantics (e. g. Petri net, state automaton). Methodology: Take some examples. In particular, it is interesting that some basic concepts appear in different forms: Petri nets can be defined in textual (pure) mathematical form – they also can be drawn as a graphics. The same applies to state automata and its graphical form (state diagram). Remark: Verbal notations have not been mentioned so far. The reason is that they cannot be connected with special views or concepts since a verbal description can be everything. Of course, software can also be described verbally. decision table state automaton (textual) numbered requirements textual pseudo code clasification scheme Petri nets (textual) text rules DD informal semiformal/formalized formal
12
Basic concepts and their application areas
complexity... basic concepts ...of data ...of functions ...of algorithms ...of system environment ...of time-dependent behavior ...of user interface data dictionary ER (Entity Relationship) (state automaton) class diagram use case diagram data flow diagram function tree pseudo code program flow chart box diagram decision table rules Petri nets state automaton activity diagram sequence diagram collaboration diagram graphical specification (Petri nets) control structures technical- scientific real-time administrative human- computer- interaction Contents: The application area determines useful basic concepts. Methodology: Choose some examples, e. g. technical and scientific applications often have to do with complex algorithms (complex functionality). In this case, basic concepts for the algorithmic view and of functional view are useful, and concepts for data are not so important. legend: ( ) = limited
13
Basic concepts of … software development: enhancements Balzert vol
Basic concepts of … software development: enhancements Balzert vol. 1, 2nd edition 2001 Z Algebraic Specifica-tion 1972 Hoare logic 1969 Structure Chart EBNF Gram-mars Package Diagr Component Diagr. State Chart 1987 SDL Basic concepts: complete? additional forms of notations? 3 level classification scheme flexible Function tree Data-Dictio-nary 1979 Class diagram 1980/ 1990 Box diagram 1973 Program flowchart 1966 Pseudo code Decision tables 1957 Rules Petri Net 1962 Sequ-ence diagram 1987 State automaton 1954 Entity Relation- ship Model 1976 Data flow diagram Use Case Diagram Activity diagram 1997 Collabo-ration diagram Functional View Data-Oriented View Object- Oriented View Algorith- mic View Functional hierarchy Business Process Infor- mation Flow Class structures Data Structures Rule- Based View State-Oriented View Control If-Then Entity types and relations Finite State Automaton Concurrent Interaction Scenario- Based View Contents: This slide illustrates the flexibility of this 3-level classification: If there are new (or forgotten) basic concepts or notational forms, there is no problem to include them. Methodology: The students can be asked if they know description techniques that have not been included yet. Some of these are prepared at the top line of this picture. The next slide shows how to deal with the new candidates.
14
Basic concepts: classification of enhancements
? Z Algebraic Specifica-tion 1972 Hoare logic 1969 Structure Chart EBNF Gram-mars Package Diagr Component Diagr. state chart 1987 SDL Function tree Data-Dictio-nary 1979 Class diagram 1980/ 1990 Box diagram 1973 Program flowchart 1966 Pseudo code Decision tables 1957 Rules Petri Net 1962 Sequ-ence diagram 1987 State automaton 1954 Entity Relation- ship Model 1976 Data flow diagram Use Case Diagram Activity diagram 1997 Collabo-ration diagram Functional View Data-Oriented View Object- Oriented View Algorith- mic View Functional hierarchy Business Process Infor- mation Flow Class structures Data Structures Rule- Based View State-Oriented View Control If-Then Entity types and relations Finite State Automaton Concurrent Interaction Scenario- Based View Contents: 1. The leftmost four notational forms fall into the function view (details next slides). 2. Grammers and EBNF are the more fundamental notations for the description of data structures. 3. State charts are a form of a finite state automaton. 4. SDL is a specification language for telecommunication systems which are described by a set of communicating automata. SDL will not be included in this course (at HU there is a separate course on SDL). Remark: Z, Hoare logic and algebraic specifications are main representatives of formal software specification languages. They are part of this course. Structure charts are included in the topic on structured design.
15
Basic concepts: detailed classification of enhancements
Extension of views ... Z Extension of aspects ... Gram-mars Box diagram 1973 Structure Chart EBNF Program flowchart 1966 PackageDiagr Component diagr. Functiontree Use Case Diagram 1987 Data flow diagram 1966 Hoare logic Algebraic Specifi-cation 1972 Data-Dictio-nary 1979 ER Entity Relation- ship) 1976 Class diagram 1980/ 1990 Pseudo code Contents: This slide details the former slide. It turns out that the general 3-level classification scheme can be maintained. It only has to be extended by new aspects (i. e. new basic concepts). For example, Hoare logic specifies single functions in their behaviour (effect), algebraic specifications describe the interaction between several functions. Structure charts describe functional hierarchies together with the flow of information. For package diagrams and component diagrams, we also need a new view of the software. source code subsystems binary code subsystems Functional hierarchy Business Process Infor- mation Flow effect of a function interaction between functions effect of functions to data Data structures Entity types and relations Class structures n Control structures Data-Oriented View Object- Oriented View Algorith- mic View component- oriented view Functional View
16
Combination of basic concepts in object-oriented analysis
OOA 1990 sequence diagram ER (Entity Relationship) class diagram pseudo code state automaton collabo-ration diagram use case diagram entities & relations class structures control structures finite automaton interaction structures work flow Contents: Basic concepts will be combined to comprehensive methods: OO Analysis, Structured Analysis, Real-time Analysis For the first phase of software development – the analysis and definition phase – there are several methods to support activities in that phase. The first method which is mentioned at this slide is OO Analysis. The message of this picture: There are several basic concepts to be included in OOA (7 notational forms are employed). legend: A B: A is contained in B A B: A is implicitly contained in B
17
Combination of basic concepts in structured analysis
SA 1979 decision table decision tree pseudo code data dictionary data flow diagram function tree functional hierarchy information flow data structures control structures Contents: Structured analysis is the elder method. However, it is still in use. This slide covers 6 notational forms to be included in structured analysis. legend: A B: A is contained in B A B: A is implicitly contained in B
18
Combination of basic concepts in structured analysis and real-time analysis
decision table decision tree pseudo- code data dictionary data flow diagram state automaton ER (entity relationship) RT 1987 information flow data structure control structures finite automaton entities & relations Contents: This is the similar information concerning real-time analysis. Remark: OOA and structured analysis are part of this course, RT is not.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.