Presentation is loading. Please wait.

Presentation is loading. Please wait.

On the Structure of the Joint Course on Software Engineering1 Klaus Bothe Version: August 26, 2003 Institute of Informatics, Humboldt University – Berlin,

Similar presentations


Presentation on theme: "On the Structure of the Joint Course on Software Engineering1 Klaus Bothe Version: August 26, 2003 Institute of Informatics, Humboldt University – Berlin,"— Presentation transcript:

1 On the Structure of the Joint Course on Software Engineering1 Klaus Bothe Version: August 26, 2003 Institute of Informatics, Humboldt University – Berlin, Germany, bothe@informatik.hu-berlin.de

2 On the Structure of the Joint Course on Software Engineering 2 The purpose of this presentation To provide an overview of the course for lecturers to approach the course more easily Basis of discussion on contents aspects To be entered as part of the course materials at the project website

3 On the Structure of the Joint Course on Software Engineering 3 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

4 On the Structure of the Joint Course on Software Engineering 4 The joint course website

5 On the Structure of the Joint Course on Software Engineering 5 Overview of the project materials ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q.Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents

6 On the Structure of the Joint Course on Software Engineering 6 ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q.Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents Overview of the project materials: project organisation and course Course materials Project organisation materials Subject of this presentation

7 On the Structure of the Joint Course on Software Engineering 7 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

8 On the Structure of the Joint Course on Software Engineering 8 ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q.Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents The structure of the course contents 5 Parts 27 Topics 1400 Slides Course material Short contents overview Detailed contents overview

9 On the Structure of the Joint Course on Software Engineering 9 Course contents (1) Topics Syllabus 5 Parts, 27 Topics, 1400 Slides Part I: Introduction to software engineering 1. What is software engineering 2. Quality criteria for software products 3. Software process models 4. Basic concepts for software development documents Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification

10 On the Structure of the Joint Course on Software Engineering 10 Topics Syllabus Course contents (2) 5 Parts, 27 Topics, 1400 Slides Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management

11 On the Structure of the Joint Course on Software Engineering 11 The structure of the course: four fundamental influencing factors The waterfall model: Fundamental phases of software projects Basic concepts: description techniques of software documents Case studies: Seminar organisation XCTL Fundamental paradigms of SW development: imperative (structured) object-oriented Part I Part II Part III Part IV Part V Topic 3Topic 4Topic 5 Topic 10 A B D C

12 On the Structure of the Joint Course on Software Engineering 12 The waterfall model and the course structure Part I: Introduction to software engineering Part II: Requirements engineering Part III: Software Design Part IV: Implementation and testing Part V: Advanced problems 22. Maintenance 23. Reverse engineering Analysis and Definition Design Implement- ation Test Usage and Maintenance Phase-independend subjects are included in Part I and Part V A

13 On the Structure of the Joint Course on Software Engineering 13 In some cases the order of the topics depends on didactical principles Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification Problems: otherwise Part II is too long and, thus, too late for assignments concerning Parts III, IV, V

14 On the Structure of the Joint Course on Software Engineering 14 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 automato n 1954 Entity Relation- ship Model 1976 Data flow diagram 1966 Use Case Diagram 1987 Activity diagram 1997 Collabo- ration diagram Functional ViewData-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 structures If-Then structures Entity types and relations Finite State Automaton Concurrent structures Interaction structures Scenario- Based View Concepts and Views Alternative Notations Often used Rarely used Basic concepts of … software development Balzert vol. 1, 2nd edition 2001 Topic 3 presents an overview of the basic concepts. These basic concepts will be handled in more detail in other topics. B Basic concepts and the course structure

15 On the Structure of the Joint Course on Software Engineering 15 Basic concepts and the course structure 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 automato n 1954 Entity Relation- ship Model 1976 Data flow diagram 1966 Use Case Diagram 1987 Activity diagram 1997 Collabo- ration diagram Functional ViewData-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 structures If-Then structures Entity types and relations Finite State Automaton Concurrent structures Interaction structures Scenario- Based View Concepts and Views Alternative Notations Often used Rarely used Part I: Introduction to software engineering Part II: Requirements engineering 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation Part V: Advanced problems

16 On the Structure of the Joint Course on Software Engineering 16 Object-oriented methods Software development paradigms and the course structure Structured methods (imperative) Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification C Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing at HU: in 1st semester subject of research

17 On the Structure of the Joint Course on Software Engineering 17 ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q.Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents Case studies and the course structure Pool of case studies: commercial application scientific application Course material D

18 On the Structure of the Joint Course on Software Engineering 18 Our two case studies Seminar organisation Origin: textbook (Balzert) Commercial case study Real-world example adapted to a textbook Illustrates all required documents throughout the course XCTL Origin: real customer Technical case study (in experimental physics) Real-world example Demonstrates treatment of unknown software

19 On the Structure of the Joint Course on Software Engineering 19 Case study ‘Seminar organisation’ Requirements specification Seminar organisation version 3.0 VersionAuthorDateState Comment ————————————————————————————————————————— 2.1Balzert03/91accepted 2.2Balzert10/91accepted /F115/ added 2.3Balzert10/95accepted /F15/, /F125/, /F185/, /D65/ removed, /F130/, /D10/, /D20/ added, /D30/, /D70/ changed 3.0Balzert31.08.00accepted Extension on the Web Complete specification files: Preliminary Requirements Specification v 3.0 Preliminary Requirements Specification v 2.3 Requirements Specification v 3.0 Requirements Specification v 2.3 Rule 1: Before starting with the lecture, try to understand the requirement specification of the fundamental case study ‘Seminar organisation‘ Topic 5: Introduction to the case study

20 On the Structure of the Joint Course on Software Engineering 20 Case study ‘XCTL’

21 On the Structure of the Joint Course on Software Engineering 21 Requirements specification Seminar organisation version 3.0 VersionAuthorDateState Comment ————————————————————————————————————————— 2.1Balzert03/91accepted 2.2Balzert10/91accepted /F115/ added 2.3Balzert10/95accepted /F15/, /F125/, /F185/, /D65/ removed, /F130/, /D10/, /D20/ added, /D30/, /D70/ changed 3.0Balzert31.08.00accepted Extension on the Web Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification Part I: Introduction to software engineering 1. What is software engineering 2. Quality criteria for software products 3. Software process models 4. Basic concepts for software development documents Case studies Seminar organisation and XCTL: usage in course topics

22 On the Structure of the Joint Course on Software Engineering 22 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

23 On the Structure of the Joint Course on Software Engineering 23 ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q.Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents Assignments Pool of assigments Course material Teamwork: groups of 3 - 4 students

24 On the Structure of the Joint Course on Software Engineering 24 Assignments and course topics Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification Part I: Introduction to software engineering 1. What is software engineering 2. Quality criteria for software products 3. Software process models 4. Basic concepts for software development documents Kay Schützler, Zoran Budimac: Assignments in the SE course Kay Schützler, Zoran Budimac: Assignments in the SE course

25 On the Structure of the Joint Course on Software Engineering 25 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

26 On the Structure of the Joint Course on Software Engineering 26 Assignments and examinations Examination: single oral inclusion of assigments free questions use of slide material of the lecture Oral Examination: assignment i: explain the solution other topic free questions based on lecture slides 30 minutes Published examination questions: 117 single questions Practice at Humboldt University Berlin

27 On the Structure of the Joint Course on Software Engineering 27 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

28 On the Structure of the Joint Course on Software Engineering 28 Tools in the course and in assignments Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification Part I: Introduction to software engineering 1. What is software engineering 2. Quality criteria for software products 3. Software process models 4. Basic concepts for software development documents CTE ATOS ObjectiF MS Project CCCC Sniff+ CVS Paradigm Plus Together McCabe Toolset currently used formerly used or used in projects

29 On the Structure of the Joint Course on Software Engineering 29 Contents 1. Overview of the joined course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

30 On the Structure of the Joint Course on Software Engineering 30 Slides have to support the presentation Rule 2: Students expect slides also as a textbook. However, slides are designed to support the presentation during the lecture. Thus, they can not be read as a textbook... Rule 3: Slides are not a handbook of some notation, language, standard... Thus, the course will not explain each detail. It rather will explain the idea, the (most) important connections... Example: UML reference manual: 700 pages ?

31 On the Structure of the Joint Course on Software Engineering 31 Not each slide should be shown or discussed in detail during the lecture Some of the slides have the purpose of additional information to the students, e.g. checklists explanations of other slides

32 On the Structure of the Joint Course on Software Engineering 32 Main purpose of this SE course: knowledge dissemination on SE principles NOT: Practical SE project If possible, offer such a project as an extra module (HU: Reverse engineering with XCTL) Main goals: Overview of SE: notions, methods, tools Relations between subareas Illustrating case studies Current research areas

33 On the Structure of the Joint Course on Software Engineering 33 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

34 On the Structure of the Joint Course on Software Engineering 34 Handouts Rule 4: Give handouts during the lectures in case of complex important contents that will be often reused Part III: Software Design 15. Overview of design activities 16. Structured design 17. Object-oriented design Part IV: Implementation and testing 18. Implementation 19. Systematic testing 20. Functional testing Part V: Advanced problems 21. Software metrics 22. Maintenance 23. Reverse engineering 24. Quality of software development process and its standardisation 25. Introduction to software ergonomics 26. User manuals 27. Project management 28. Configuration and version management Part II: Requirements engineering 5. Results of the “analysis and definition” phase 6. Cost estimation 7. Function-oriented view 8. Data-oriented view 9. Rule-oriented view 10. Structured analysis 11. State-oriented view 12. Scenario-oriented view 13. Object-oriented analysis 14. Formal software specification and program verification Part I: Introduction to software engineering 1. What is software engineering 2. Quality criteria for software products 3. Software process models 4. Basic concepts for software development documents

35 On the Structure of the Joint Course on Software Engineering 35 Handouts: topic 4

36 On the Structure of the Joint Course on Software Engineering 36 Handout: topic 6

37 On the Structure of the Joint Course on Software Engineering 37 Handouts: topic 10

38 On the Structure of the Joint Course on Software Engineering 38 Handouts: topic 11 and 13

39 On the Structure of the Joint Course on Software Engineering 39 Handouts: topic 14

40 On the Structure of the Joint Course on Software Engineering 40 Handouts: topic 19 Example of control-flow graph

41 On the Structure of the Joint Course on Software Engineering 41 Contents 1. Overview of the joint course website 2. The structure of the course contents 3. Assignments and the course contents 4. Examinations 5. Tools 6. The purpose of the slide material 7. Handouts 8. Adaptation of the material to the needs of a particular university

42 On the Structure of the Joint Course on Software Engineering 42 University-dependence: example of Humboldt University Berlin 1st Semester Java OO Programming UML: class diagramms Programming style guide Java API 1st – 4th Semester Strong mathematical background: Mathematics for informaticians Theoretical computer science: set theory, predicate logic 5th – 9th Semester Fundamental lectures (optional): database, UML, Petri nets 13. Object-oriented analysis  can be based on 1st semester 18. Implementation  very short lecture 14. Formal software specification  connections between Software engineering and theoretical foundations Using API:  not part of the course

43 On the Structure of the Joint Course on Software Engineering 43 Different website structures: Joint course website – Local HU students website Summer 2003 Software Engineering Course Humboldt University Berlin I. Overview II. Topics / Syllabus III. Assignments (**) IV. Guest lecturers V. Tools VI. Literature VII. Examination questions (**) VIII. Project ‘XCTL' IX. Slides in pdf format (**) X. Students feedback (**)Password protected. Please refer to U.Sacklowski ParticipantsTopicsSyllabus Schedule Basic Principles F.A.Q. Discussion Case studies Assignments Literature Slides (ppt, pdf) Documents Course material new News new Four versions: 1sided, 4sided / coloured, b/w DaimlerChrysler: Test, Formal specification

44 On the Structure of the Joint Course on Software Engineering 44 Duration: How long will a lecture take? Part III: Software Design 15. Overview of design activities -- 90 16. Structured design -- 15 17. Object-oriented design -- 45 Part IV: Implementation and testing 18. Implementation -- 90 19. Systematic testing --180 20. Functional testing --150 Part V: Advanced problems 21. Software metrics -- 180 22. Maintenance -- - 23. Reverse engineering -- 90 24. Quality of software development … -- 90 25. Software ergonomics -- 180 26. User manuals - - 27. Project management ? 90 28. Configuration … management - 45 Part II: Requirements engineering 5. Results of the … phase (70) 100 6. Cost estimation 60 100 7. Function-oriented view 60 50 8. Data-oriented view 50 35 9. Rule-oriented view 50 40 10. Structured analysis 80 65 11. State-oriented view (45) 80 12. Scenario-oriented view 30 25 13. Object-oriented analysis (60) 210 14. Formal software specification … -- 190 Part I: Introduction 1. What is software engineering 80 120 2. Quality criteria... 40 45 3. Software process models 120 90 4. Basic concepts... 60 40 in minutes Z.B. K.B. (W 02)(S 03) Sum: 2425() short version2425 : 45 = 53 lecture hourspractical 58 lh

45 On the Structure of the Joint Course on Software Engineering 45 Software engineering in special courses at other sites Part I: Introduction to SE Part II: Requirements engineering 11. Basic concepts of state-oriented view 12. Basic concepts of scenario-based view 13. Object-oriented analysis 14. Formal specification and program verification Part III: Design 17. Object-oriented design Part IV: Implementation and testing 19. Systematic testing Part VI: Advanced problems 21. Software metrics 23. Reverse engineering 24. Quality of software development process and its standardization 24. Software ergonomics 25. Project management Requirements Engineering (SEI, Pittsburgh, USA) Petri nets (Reisig, HU) Formal methods of SW development (SEI, Pittsburgh, USA) Objectoriented SW development (with UML) (Fischer, HU) Software architecture (SEI) Software test methods (Spillner, Bremen) CAME-Tools (Dumke, Magdeburg) Software reengineering (Koschke, Stuttgart) PSP (SEI) CMM (SEI) Software ergonomics (Wandtke, Inst. of psychology, HU) Project Management (SEI, Pittsburgh, USA)

46 On the Structure of the Joint Course on Software Engineering 46 Parts of this presentation on the structure of the course could also be presented to the students to provide them with an overview.


Download ppt "On the Structure of the Joint Course on Software Engineering1 Klaus Bothe Version: August 26, 2003 Institute of Informatics, Humboldt University – Berlin,"

Similar presentations


Ads by Google