Lecture Plan
The following is the preliminary lecture plan of the course and may change at any time. The list of study material and slides will be provided and extended in due time.
- Week 1: Practical information, Introduction to Software Engineering (SE9 Sect. 1.1, JUnit 4)
- Week 2, non-programming exercise 1 (two weeks exercise): Requirements Engineering I: Requirements engineering, domain model, business processes/activity diagrams, use cases (SE9 Ch. 4, UMLD Ch 9 + 11)
- Week 3: Requirements Engineering II: user stories (Scott Ambler's introduction to user stories), changing requirements, Testing I (SE9 Sect. 8 introduction, 8.3 + 8.4, JUnit 4)
- Week 4, non-programming exercise 2: Testing II: Test-Driven Development (SE9 Section 8.2, TDD development of Fibonacci number generator, Refactoring.com, Mockito tutorial)
- Week 5, non-programming exercise 3: Testing III Systematic tests (white-box and black-box tests), code coverage (paper on systematic tests by Peter Sestoft, SE9 Sect 8.1)
- Week 6: Design I: From Requirements to Design, (CRC cards, CRC card paper by Kent Beck and Ward Cunningham), Class Diagrams I, Sequence Diagrams I, (UML Distilled Chapters 3 + 4; UML User Guide Chapters 8 + 19), Exam project introduction, group forming (participation mandatory))
- Week 7: Design II: Sequence diagrams (UML Distilled Chapter 4), Centralized vs. Distributed Design (UML Distilled Chapter 4), Implementing Associations, Layered Architecture (Domain-Driven Design Chapter 4 Layered Architecture, VendingMachine.zip)
- Week 8: Version Control (Git), State machines, Layered Architecture: Presentation Layer
- Week 9: Layered Architecture: Persistency Layer, Software Development Process and project planning
- Week 10: Software Development Process cont., Project Planning and Design by contract
- Week 11: Principles of good design and Design Patterns
- Slides
- The slides contains links to relevant literature
- Week 12: Guest Lecture Motorola Solutions
- Week 13: Project demonstrations (13:00 - 17:00)
On to Programming Assignments Part of 02161 Software Engineering 1
Hubert Baumeister
October 3, 2017