Softwaretechnik / Software Engineering (Lecture)
Course type | Lecture |
---|---|
Instructors | Prof. Dr. Andreas Podelski Dr. Bernd Westphal |
Lecture | Tuesday, 14:00–16:00, HS 101-00-036 Thursday, 12:00–14:00, HS 101-00-036 |
Exercise | Tuesday, 14:00–16:00 / 16:00 - 18:00 (bi-weekly) Group 1 - Miriam, E, ILIAS Group Group 2 - Jessica, E/D, ILIAS-Group Group 3 - Max, D/E, ILIAS-Group Group 4 - Julian, D, ILIAS-Group |
First session | Lecture: not before 12.5.2020 Tutorial: not before 19.5.2020 |
Language of instruction | English |
Credits | 6 |
Exams | 17.09.2020, 8:00 |
Course Catalog | Softwaretechnik / Software Engineering - Vorlesung Softwaretechnik / Software Engineering - Übung |
Quicklinks: News - Formalia - Plan - Links & Literature
News
- 2021-00-00: Exam re-sit date, time, place fixed (see below).
- 2020-06-29: Exam date, time, place fixed (see below).
- 2020-06-09: Scheduled online tutor consultation times aka. Jitsi hangouts.
- 2020-05-28: Errata file available, below an in the ILIAS module.
- 2020-05-15: Slight change (or concretisation) of plans: Lecture 3 completes Decision Tables, Lecture 4 will be a "double feature" on Scenarios and finish the topic area Requirements Engineering.
- 2020-05-04: Ready, steady, ... there's all new information in the ILIAS module.
- 2020-04-20: if interested in the course, please join the ILIAS module (join here: ILIAS Admission) - I would like to establish the ILIAS module and forum as our primary means of communication (this homepage will not necessarily carry all information that the ILIAS module has/will have).
- 2020-04-16: homepage online, ILIAS module online (join here: ILIAS Admission)
Formalia
Prerequisites for exam admission, form of the final exam, and everything will be announced here and in the ILIAS forum.
Admission criteria
50% of the total (120) admission (or: good will) points are sufficient.Exercise Submission Scheme
The exercise sheets are online early in order to allow you to be aware of the tasks while following the lecture. There will be an early/regular submission scheme following a pattern to be announced.
Please submit your solutions via ILIAS (log in with RZ account, not TF Pool account).
Note: The exercises will be rated on two scales: admission points (given your knowledge before the tutorial, how sensible is your proposal; "good will rating", "upper bound") and exam points (given the additional knowledge from the comments on your proposal and the tutorial, how many points would your proposal at least be worth in a written exam; "evil rating", "lower bound").
Exam Re-Sit
There will be a written re-sit exam:
- Date & time: Wednesday, 2021-03-03, 14:00.
- 90 min.
- Room: HS 101-0-026. Please gather in (or, better, outside) the 101 foyer in time, more detailed instructions regarding the pandemia regulations on exams will follow.
- Permitted in the exam:
max. 1 sheet of paper, max. size A4, max. 200g/qm quality, all sides may be used (written/printed/painted/...).
Slides, Exercises, and Recordings
Note: the following plan is tentative, that is, the assignment of events and topics to dates may be subject to (if possible: mild) changes.
- Errata (Stand 2020-05-28)
- Mon, 4.5.: VL 00 "Introduction" - Exercise Sheet 0 online (submit via ILIAS)
(Slides (with annotations of 2018), 2-up, 6-up,
Recording: ILIAS Download + Stream). - Tue, 12.5.: VL 01 "Requirements Engineering"
Requirements Engineering basics: the RE problem, the software peoples' view on requirements; quality criteria for requirements and their (natural language) documentation; Requirements specification documents, dictionary, natural language patterns.
(Slides (with annotations of 2018), 2-up, 6-up,
Recording: ILIAS Download + Stream) - Thu, 14.5.: VL 02 "Formal Methods for Requirements Engineering: Decision Tables"
- Exercise Sheet 1 online (submit via ILIAS)
One example of a formal notation for requirements and its use: decision tables (DT); DT syntax and semantics, formal definitions for completeness, consistency, determinism, etc.
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download + Stream) - Tue, 19.5.:VL 03 "Decision Tables Cont'd"
DT syntax and semantics, formal definitions for completeness, consistency, determinism, etc continued.
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download + Stream) - Thu, 21.5.: public holiday (ascension day)
- Tue, 26.5.: Tutorial 1
- Thu, 28.5.: VL 04 "Use Cases and Scenarios, Live Sequence Charts & RE Wrapup" - Exercise Sheet 2 online (submit via ILIAS)
Scenarios and Anti-Scenarios for requirements analysis; notations User Story, Use Case, Use Case Diagram, first half of Sequence Diagrams (abstract syntax, cuts and fired-sets); LSCs and software; Requirements Engineering wrap-up.
(Slides/1 and /2(with annotations), 2-up/1 and /2, 6-up/1 and /2,
Recording: ILIAS-Download+Stream) - Tue, 2.6.: whitsun break
- Thu, 4.6.: whitsun break
- Tue, 9.6.: VL 05 "Structural Software Modelling" - Exercise Sheet 3 online (submit via ILIAS)
Software Architecture; Views and viewpoints; Class Diagrams.
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download+Stream) - Thu, 11.6.: public holiday (corpus christi)
- Tue, 16.6.: Online Tutor Consultation/Jitsi Hangout on Ex. 2
- Thu, 18.6.: VL 06 "Structural Software Modelling II"
Object Diagrams cont'd; Proto-OCL.
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download+Stream) - Tue, 23.6.: VL 07 "Behavioural Software Modelling"
- Exercise Sheet 4 online (download additional materials and submit via ILIAS)
Communicating Finite Automata; Uppaal Demo (miniexample.xml); Uppaal Query Language (vendingmachine.xml).
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download+Stream) - Thu, 25.6.: VL 08 "Behavioural Software Modelling II"
CFA "at work"; an outlook on UML Statemachines; a brief history of UML; MBSE/MDSE; Principles of Software Design: Modularisation, information hiding, data encapsulation etc.
(Slides [VL 08: up to Slide 39] (with annotations), 2-up, 6-up,
Recording: ILIAS-Download+Stream) - Tue, 30.6.: Online Tutor Consultation/Jitsi Hangout on Ex. 3
- Thu, 2.7.: VL 09 "Testing"
- Exercise Sheet 5 online (download additional materials and submit via ILIAS)
Test Case, Test suite, Pass/Fail, true/false Positives/Negatives; Coverage measures, Model-based Testing.
(Slides/1 [VL 09a: from Slide 40] and /2 (with annotations), 2-up/1 and /2, 6-up/1 and /2,
Recording: ILIAS-Download+Stream) - Tue, 7.7.: VL 10 "Program Verification"
Notions of correctness; Formal verification of programs: the Hoare calculus; Software Model-Checking, VCC Demo.
(Slides/1 and /2 (with annotations), 2-up/1 and /2, 6-up/1 and /2,
Recording: ILIAS-Download+Stream) - Thu, 9.7.: VL 11 "Software Project Management"
- Exercise Sheet 6 online (submit via ILIAS)
Development Project; Activities, Roles, Artefacts; From Processes to Procedure and Process Modes.
(Slides (with annotations), 2-up, 6-up,
Recording: ILIAS-Download+Stream) - Tue, 14.7.: Online Tutor Consultation/Jitsi Hangout on Ex. 4
- Thu, 16.7.: VL 12 "Wrapup & Questions"
Runtime Verification; Review; Lecture recap and (possibly) time for questions.
(Everything: ILIAS) - Tue, 21.7.: Online Tutor Consultation/Jitsi Hangout on Ex. 5
- Thu, 23.7.: ./.
- Tue, 28.7.: Online Tutor Consultation/Jitsi Hangout on Ex. 6
Links & Literature
- Software Engineering Textbooks
- Ludewig, J. and Lichter, H. (2013). Software Engineering. dpunkt.verlag, 3. edition.
Main inspiration for the lecture; unfortunately only available in German. Available as e-Book via UB. - Sommerville, I. (2010). Software Engineering. Pearson, 10. edition.
The international "classic". Available as e-Book via UB. (Book also available in German.) - Balzert, H. (2009). Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering. Springer Spektrum, 3. edition.
The german "classic", part 1. Available as e-Book via UB. - Balzert, H. (2010). Lehrbuch der Softwaretechnik: Entwurf, Implementierung, Installation und Betrieb. Springer Spektrum, 3. edition.
The german "classic", part 2. Avaliable as e-Book via UB. - Bjørner, D. (2006). Software Engineering 1 - Abstraction and Modelling. Springer.
One of the few formal methods textbooks, part 1. - Bjørner, D. (2006). Software Engineering 2 - Specification of Systems and Languages. Springer.
One of the few formal methods textbooks, part 2. - Bjørner, D. (2006). Software Engineering 3 - Domains, Requirements, and Software Design. Springer.
One of the few formal methods textbooks, part 3.
- Ludewig, J. and Lichter, H. (2013). Software Engineering. dpunkt.verlag, 3. edition.
- Introduction
- Bauer, F. L. (1971). Software Engineering. In: IFIP Congress (1), pages 530-538.
Historic (type-writer typed) lecture notes by F. L. Bauer, one of the software engineering pioneers who is said to have brought up to the term 'software engineering' on the NATO Science Committee meeting in Garmisch, 1968, in response to the 'software crisis'. - Bjørner, D. and Havelund, K. (2014). 40 years of formal methods. . Presentation slides, UNSW, Sydney, 19. May 2014.
A brief introduction of the term "formal methods", its historical and present obstacles and hindrances, and an outlook. - Buschermöhle, R. et al. (2006). success - Erfolgs- und Misserfolgsfaktoren bei der Durchführung von Hard- und Softwareentwicklungsprojekten in Deutschland. Version 1.1 (source site).
A wealth of empirical data with a thorough evaluation wrt. a set of hypothesis on correlations of factors in software engineering. - Jones, C. B. et al., editors (2011). Dependable and Historic Computing - Essays Dedicated to Brian Randell on the Occasion of His 75th Birthday, volume 6875 of LNCS, Springer.
Timeless insights on software engineering from the early days, including an article by software engineering pioneer D. L. Parnas and the dinner talk by H. Kopetz. Available as e-Book via UB. - Most ISO/IEEE/etc. standards are unfortunately not freely available.
- Lamport, L. (2015). Who Builds a House without Drawing Blueprints?. CACM; 58(4): 38-41.
A somewhat polemic essay arguing for better planning in software engineering by 2013 ACM Turing Award winner (and LaTeX author) Leslie Lamport; not so far off from our approach to the software engineering lecture...
- Bauer, F. L. (1971). Software Engineering. In: IFIP Congress (1), pages 530-538.
- Project Management, Process Models, Metrics
- Brooks, F. P. (1996). The Mythical Man-Month - Essays on Software Engineering, Anniversary Edition. Addison-Wesley.
Some say "if you want to read only one book on the management of software development projects, let it be this" (without being the author or otherwise sponsored by the publisher). An e-Book of the 1st edition from 1974 is freely available here. - Douglass, B. P. (1999). Doing Hard Time, Addison-Wesley.
Spiral-shaped development process using formal modelling and analysis especially for (safety) critical, reactive, timed systems. - Wheeler, D. A. (2006). The Linux Kernel: It’s Worth More!
A COCOMO estimation of effort for the Linux kernel 2.6. Article includes a link to the used tool SLOCCount. - Karn, J. S., & Cowling, A. J. (2005). A Study into the Effect of Disruptions on the Performance of Software Engineering Teams. In the Proceedings of the 4th International Symposium on Empirical Software Engineering, (ISESE 2005).
- Behfar, K. J., Peterson, R. S., Mannix, E. A., Trochim, W.M. (2008). The critical role of conflict resolution in teams: a close look at the links between conflict type, conflict management strategies, and team outcomes. J Appl Psychol.; 93(1):170-88. doi: 10.1037/0021-9010.93.1.170.
- V-Modell XT Authors (2006). V-Modell XT, Version 1.4.
The V-Modell XT reference document (in German); an English document for V-Modell XT, version 1.3, is available on the same homepage. A tool to support tailoring is available here.
(Version 2.0 (in German); may not be subject of the lecture since it seems not to have an English translation so far.) - CMMI Product Team (2010). CMMI for Development, Version 1.3.
Definition of the CMMI-DEV process metrics. German translation is available here. An introdution to the appraisal procedure is available here.
- Brooks, F. P. (1996). The Mythical Man-Month - Essays on Software Engineering, Anniversary Edition. Addison-Wesley.
- Requirements Engineering, Live Sequence Charts
- Rupp, Ch., die SOPHISTen (2014). Requirements-Engineering und -Management. Hanser.
An extensive and comprehensive discussion of all aspects of Requirements Enginering, from formal notations, over quality criteria, recommendations for natural language requirements, to psychological aspects like human perception and conflicts among clients, which may show up during requirements engineering. The book's content builds on the main author's experience as general manager of SOPHIST GmbH, a company offering Requirements Engineering. Unfortunately only available in German. But: Available as e-Book via UB. - Damm, W., Harel, D. (2001). LSCs: Breathing Life into Message Sequence Charts. FMSD; 19(1): 45-80, Kluwer Academic Press.
The original work on Life Sequence Charts. - Klose, J. (2003): Live Sequence Charts - A Graphical Formalism for the Specification of Communication Behavior. PhD thesis, Carl von Ossietzky Universität Oldenburg.
The original work on the TBA-semantics of LSCs as used in the lecture. - Typesetting Live Sequence Charts: lsc.sty on CTAN (and included in TeX Live).
- Architecture & Design, Modelling
- Jacobson, I. (1992). Object-Oriented Software Engineering: A Use CASE Approach. Addison-Wesley.
By the inventor and early advocate of use cases and use case diagrams, which were later included in UML. 20 years old, odd-looking notation, yet the basic messages remain valid. - Kastens, U., Kleine Büning, H. (2014). Modellierung - Grundlagen und formale Methoden, Zweite Auflage, Carl Hanser Verlag.
General Discussion of Modelling, not focusing on UML, but also considering plain set-theory, graphs, Petri nets, and their use for modelling tasks. - Buschman, F., Beunier, R., Rohnert, H., Sommerlad, P., Stal, M. (1996). Pattern-Oriented Software Architecture, Volume 1, A System of Patterns. Wiley.
Actually closer to the content of Lecture 14 than the (more famous) standard textbook on design patterns (Gamma et al.) The concrete examples may provoke nostalgic feelings ("this sounds soo early 90s of the last century") but the basic messages still hold. Available as e-Book via UB. - UML
- B. Dobing, J. Parsons: How UML is used, Communications of the ACM, 49(5):109-114, 2006.
This survey supports the relevance of our choice of diagrams to be considered in the lecture. - OMG (2011). Unified Modeling Language: Infrastructure. Version 2.4.1.
The UML standard, basic concepts. May take some getting-used-to. - OMG (2011). Unified Modeling Language: Superstructure. Version 2.4.1.
Defines all the diagrams using concepts from the infrastructure document. - B. Oesterreich: Analyse und Design mit UML 2.1, 8. Auflage, Oldenbourg, 2006.
Standard introduction into UML notation (only informal semantics). - H. Stoerrle: UML 2 fuer Studenten, Pearson Studium Verlag, 2005.
And another one of the like.
(avaible as e-book via UB) - OMG (2014). Object Constraint Language. Version 2.4.
Our Proto-OCL semantics is inspired by Appendix A (finally something more formal...). - Kleppe, A., Warmer, J. (2004). The Object Constraint Language. 2nd Edition, Addison-Wesley..
A more palatable presentation of OCL.
- B. Dobing, J. Parsons: How UML is used, Communications of the ACM, 49(5):109-114, 2006.
- Formal Verification
- Apt, K.R., Olderog, E.-R. (1994). Programmverifikation. Springer-Verlag.
The formal verification part of Lecture 15 is following the thorough presentation in this (highly recommendable) book. Also available in English. - (2015) The VCC Manual.
A draft document to become a manual for VCC. For the exercises, it should not be necessary to revert to this document too much, the content of the lecture should be sufficient. - Cohen, E., Hillebrand, A., Tobies, S., Moskal, M., Schulte, W. (2015). Verifying C Programs: A VCC Tutorial. Technical Report.
A tutorial on VCC, distributed with the VCC sources. Again: for the exercises, you should not need much more than discussed in the lecture. We're only touching the surface of VCC. - Miscellaneous
- O.
Laitenberger, C. Atkinson: Generalizing Perspective-based Inspection to
handle Object-Oriented Development Artifacts, In: Proc. ICSE '99,
494-503, IEEE CS-Press.
Reading techniques philosophy. - G.
H. Travassos, F. Shull, J. Carver, V. R. Basili: Reading Techniques for
OO Design Inspections, Technical Report CS-TR-4353, University of
Maryland, 2002.
Concrete reading techniques.
- O.
Laitenberger, C. Atkinson: Generalizing Perspective-based Inspection to
handle Object-Oriented Development Artifacts, In: Proc. ICSE '99,
494-503, IEEE CS-Press.