2. ceterum censeo What I am going to tell you today has been told often before. But nobody is really listening. Therefore, it has to be told over and over again.
3. Realizing the problem Solving a problem begins with realizing, that there is a problem.
4. Siemens Forum 1976 Siemens Forum: The main problem of the software crisis is the inability of the people involved to communicate adequately. Since they do not realize what the subjects of their communication should be, they cannot establish standards for easy-to-understand representations of software systems.
5. Growth of Lines of Code 500 Lines of Code 0.1 man-year 25,000 Lines of Code 6 man-years 25 Millions Lines of Code 7,000 man-years Components (Mathematics) Systems (Engineering)
6. No engineering diagrams Nobody has ever seen real engineering diagrams which represent the operating system „Linux“ or the application system “Microsoft Excel”. Why don’t they consider this to be a serious problem ? Professors of Software Engineering do not know (and do not care about), how such diagrams can be made ! Therefore it is no wonder that their students don’t know it either.
7. Mathematicians versus Engineers Because they think as mathematicians and not as engineers! They don‘t see, that division of labour requires human comprehension which cannot be formalized. They believe that the problems can be solved by appropriate formalisms .
9. Primary and secondary structures Primary structures Secondary structures The first step towards the solution of the problem consists in separating primary structures from secondary structures.
10. virtual versus real considering software-controlled systems primarily as virtual cooperation systems , which can be described using the same concepts and symbols as in the case of real cooperation systems . The second step towards the solution of the problem consists in
11.
12. Vocabulary of concepts The actions cause changes or transportation of material , which is located in storages or is flowing through channels . The material can be matter, energy or information, and it can be elementary or structured. In every cooperation system there are cooperating agents whose actions are concurrent or ordered sequentially. Structured material consists of components , which have relationships to each other.
13. Three questions Therefore, we can always ask the following three questions : Question concerning the composition of the system: Which are the storages and channels the agents have access to? Question concerning the sequential order of the actions: What is the sequence of the actions if they are not concurrent? Question concerning the structure of the material: What are the components of the material and what are their relationships?
14. Predominance of the composition Composition : Where is material lying or flowing and who can affect it? Material: What is lying in the storages or flowing through the channels ? Process: When is the material affected ? The model of a cooperation system must always provide information about three different aspects :
15. Types of diagrams Each of the three aspects has its own type of structure diagram: Conclusion: The structure diagrams are bipartite graphs . „ Composition“ : Who makes things happen ? the agents . Where can the events be observed? in storages and channels . „ Process“ : How and when do the agents act? in form of partially ordered steps which change states . „ Material“ : What is affected? Structures which are defined by relationships between sets of components.
17. SAP development database Example of structured material: SAP development database (Labeling in German)
18. Hierarchic levels of documents The structure diagrams of all three aspects are suited for hierarchic drill down , until elementary nodes are reached, each of which corresponds exactly to a specific section of the program code.
19. Compiler System and Software Composition of a compiler UML Class diagram of the implementation
20. Systems within a system In the case of extremely large systems , the first two steps are not sufficient for solving the communication problem completely. The third step towards the solution of the problem consists of structuring the overall system into layers of subsystems with applications sitting on top of platforms . ( distinguishing between an actor and the role he or she is playing ) distinguishing between regular actions and meta actions . In meta actions, partial systems become material or vice versa. (By actions of a surgeon, the patient goes into or comes out from anesthesia.)
22. FMC The vocabulary of concepts and the methods of representation which were obtained as the result of three steps, have been named F undamental M odeling C oncepts. www.fmc-modeling.org