You are here: Home Teaching Summer Term 2021 Softwaretechnik / Software …

Softwaretechnik / Software Engineering (Lecture)

Software engineering is "the application of engineering to software" (IEEE 610.12). Goal of this course is to provide a broad overview over the challenges of software engineering and techniques and tools to address these challenges. We will discuss the main activities during software development (in particular project management, requirements engineering, design, testing, formal verification) with an emphasis on formal methods. We will study process models, software metrics, approaches to requirements specification and analysis, (formal) modelling and analysis techniques, design and architecture patterns, testing, and program verification.
Course type Lecture
Instructors Prof. Dr. Andreas Podelski
Dr. Bernd Westphal
Lecture Recording ("as if" Tuesday, 14:00–16:00)
Recording ("as if" Thursday, 12:00–14:00)
Exercise Tuesday, 14:00–16:00 or 16:00 - 18:00 (bi-weekly),
Live Online Tutorial Session
First session Tutorial:  tba.
Language of instruction German (and English)
Credits 6
Exams 2021-09-22, 9:00am, building 101
Course Catalog Softwaretechnik / Software Engineering - Vorlesung
Softwaretechnik / Software Engineering - Übung

 

Quicklinks: News - Online-ing - Formalia - Plan - Links & Literature

 

News

 

  • 2021-10-11The exam review takes place on Friday, 15th October (see below)
  • 2021-09-17: Updated Errata/DE and Errata/EN (also see here) - short notice note: exam tasks will not be affected by this fix..
  • 2021-08-03: Updated Errata/DE and Errata/EN (also see here).
  • 2021-06-23: The exam date has come to our attention - see Formalia below.
  • 2021-06-22: Change of plans: Maybe it is the least confusing approach to simply follow the numbers of 2019 and 2018, yet this comes at the price that the DE and EN track take different routes in a partial order on content.  The DE track will do (A,B,C) in the upcoming lectures block and then (D,E,F) while the EN track will do (A,D,B) and then (C,E,F).  All not harmful for the exercises, and in the end, we'll all be in sync again (cf. forum post on upcoming lectures block).
  • 2021-04-22: Tutorial groups will be announced soon.
  • 2021-04-22: If you missed the submission deadline for Exercise Sheet 0 and still want to be assigned to a tutorial group, consider to submit to the "dummy exercise" in the ILIAS until tomorrow noon to express this wish to be assigned.
  • 2021-04-19: Lecture 1 and Exercise Sheet 0 online (see plan below).
  • 2021-04-13: oh, that got resolved quickly, so: ILIAS is here. The regular way to join the module is via the coupled HISinOne course (or with this Direct Access Link if all else fails).
  • 2021-04-13: homepage online, ILIAS not yet (technical issues with HIS/ILIAS coupling, it seems).

 

Online-ing

This season's "online-ing" of the Softwaretechnik / Software Engineering course is constructed around what we could call the "as if"-principle: "As if" we were having in-class sessions following the usual rhythm of lectures, exercises, and tutorials yet unfortunately they do not take place in-class.

Meaning:

  • We have a schedule with lecture days and their planned topics, and since we cannot have in-class lectures, we will be using lecture recordings from earlier seasons.
    So if you visit this homepage (or the ILIAS module) at a lecture day and time (as given by the schedule below), you will find a new recordings and PDFs with the annotated slides.  (Actually, we will upload groups of two to four lectures and PDFs for one exercise sheet (see dependency illustration below) at once together with the first lecture of the group.  It is then left at your discretion to choose the studying schedule that works best for you, be it "one lecture per lecture day, 'as if' we had in-class sessions and you just could not make it to the classroom", or more, or less.)
    Questions go to an ILIAS forum.
  • The lectures are accompanied by exercises as usual, each block of two to four lectures has one exercise sheet.  In most cases, the first exercise can be done with input from the first lecture (see dependency illustration below). So again: you will find your schedule (same as in in-class seasons).
  • The exercises are accompanied by tutorial sessions.  About every second week (only disturbed by public holidays and breaks) we will have live online tutorial sessions in a video meeting per tutorial group (accessible via ILIAS).
    The tutorial sessions address the aspect that Software-Engineering is for a very good part about people interacting with people (like clients with developers, like programmers with designers, like teams of requirements engineers, etc.; cf. [Ludewig, Lichter, 2008] for example) and that is what we practice and experience in the tutorial sessions: Usage of professional terminology to efficiently and effectively communicate with (other) software engineering professionals about software engineering problems and solutions.
    There will be a fixed, uniform exercise submission deadline for all tutorial groups - the exact day/time of the tutorial session can be subject to some negotiation (here's at least one positive point of online-ing: we are not limited by availability of physical rooms).
  • Every other week, there will be written feedback on exercise solutions as usual, i.e., your friendly tutor will provide feedback on individual errors, mistakes, or misconceptions that are not covered by the discussions in the tutorial sessions.  In other words: the feedback may not always be comprehensive without the input from the tutorial sessions (this was different in the emergency online-ing of the 2020 season where effort was shifted from live/online to comprehensive written feedback at the painful price of sacrificing much of the "for life" aspect).
  • Note: Tutorial groups will be formed after submission of Exercise Sheet 0 (available Monday, 19th of April, the latest) and afterwards we will have fixed tutorial groups.  Your tutor will be available for questions and concerns throughout the teaching period until the exam day.
  • Overall, the course covers four, mostly self-contained topic areas (as explained in more detail in (the recording of) Lecture 1). Hence if you may need to skip some lectures or exercises (for whatever pandemic-induced or other reasons), it is well possible to re-join the course at the beginning of the next topic area and catch up with the missed content later.


The following illustration (click to enlarge) shows dependencies between exercise sheets and lectures and may be useful for your schedule planning.  Principally, one would like to see each topic area closed with a corresponding tutorial session, yet the obstacles in form of public holidays does not always allow such clear splits:

Lecture/Exercise Dependencies (Preview)

Your question about online-ing this course unanswered?  Please contact us by mail or via the ILIAS forum.

 

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

There will be a written exam:

  • Date & time: 22.09.2021, 09.00 Uhr
  • 90 min.
  • Building 101
  • Permitted in the exam:
    max. 1 sheet of paper, max. size A4, max. 200g/qm quality, all sides may be used (written/printed/painted/...).
  • Cf. Klausurplan - it's one exam for all participants (BSc, MSc, ..., all).

Note: The module result (grade/mark, "Note") is completely determined by the exam.
 
Exam review (Klausureinsicht):
The exam review takes place on Friday, 15th October in room 03-026 in building 51.
Time slots:
  • Last name starting with A to G: 14:00 to 14:30
  • Last name starting with H to N: 14:30 to 15:00
  • Last name starting with O to Z: 15:00 to 15:30
You need to provide a "3G"-certificate that you are either vaccinated, recovered or testedt negative.

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/DE (Stand 2021-08-03), Errata/EN (Stand 2021-08-03).
  • Tue, 20.4.: VL 01 "Introduction" - Exercise Sheet 0 online (submit via ILIAS)
    Definitions of Software Engineering etc.; course content overview; formalia
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu, 22.4.: VL 02 "Software Metrics" - Exercise Sheet 1 online, additional file (submit via ILIAS)
    Software metrics; properties of useful metrics; kinds of scales; examples: LOC and McCabe

    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 27.4.: Live Online Tutorial 1
  • Thu, 29.4.: VL 03a "More Metrics & Cost Estimation" - Exercise Sheet 2 online
    Subjective metrics, Goal-Question-Metric approach; Cost and Deadlines, Expert and Algorithmic Cost Estimation
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue,  4.5.: VL 03b "Software Project Management"
    Development Project; Activities, Roles, Artefacts; From Processes to Procedure and Process Modes
    (see forum message with ILIAS Download + Stream).
  • Thu,  6.5.: VL 04 "Procedure and Process Models"
    Waterfall and Spiral; Prototype-based; Evolutionary, Incremental, Iterative; V-Model XT; Agile Processes; process metrics CMM(I) and SPICE
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 11.5.: Live Online Tutorial 2
  • Thu, 13.5.: public holiday (ascension day)
  • Tue, 18.5.: VL 05 "Requirements Engineering" - Exercise Sheet 3 online
    Requirements Engineering basics: the RE problem, the software peoples' view on requirements; quality criteria for requirements and their (natural language) documentation
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu,  20.5.: VL 06 "Formal Methods for Requirements Engineering"
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 25.5.: whitsun break
  • Thu, 27.5.: whitsun break
  • Tue,  1.6.: VL 07 "Decision Tables"
    One example of a formal notation for requirements and its use: decision tables (DT); formal definitions for completeness, consistency, determinism, etc.
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu,  3.6.: public holiday (corpus christi)
  • Tue,  8.6.: Live Online Tutorial 3
  • Thu, 10.6.: VL 08 "Use Cases and Scenarios, Live Sequence Charts" - Exercise Sheet 4 online
    Scenarios and Anti-Scenarios for requirements analysis; notations User Story, Use Case, Use Case Diagram, first half of Sequence Diagrams (abstract syntax, cuts and firedsets); Second half of the 'Sequence Diagram' story (TBA construction)
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 15.6.: VL 09 "Live Sequence Charts Cont'd & RE Wrapup" - Exercise Sheet 4 online (submit via ILIAS)
    LSCs and software; Requirements Engineering wrap-up
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu, 17.6.: VL 10 "Structural Software Modelling I"
    Software Architecture; Views and viewpoints; Class Diagrams
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 22.6.: Live Online Tutorial 4
  • Thu, 24.6.: VL 11 "Structural Software Modelling II" - Exercise Sheet 5 online (download additional materials and submit via ILIAS)
    Partial vs. Complete Object Diagrams, Proto-OCL
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 29.6.: VL 12 "Behavioural Software Modelling"
    Communicating Finite Automata; Uppaal Demo; Uppaal Query Language
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu,  1.7.: VL 13 "UML State Machines, MBSE/MDSE, Design Principles"
    CFA "at work"; MBSE/MDSE; Implementing CFA; an outlook on UML Statemachines; Principles of Software Design: Modularisation, information hiding, data encapsulation etc.
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue,  6.7.:  Live Online Tutorial 5
  • Thu,  8.7.: VL 14 "Architecture & Design Patterns, Software Quality Assurance" - Exercise Sheet 6 online (download additional materials and submit via ILIAS)
    Architectural patterns (layers, pipeline, MVC); Design Patterns; Test Case,  Test suite, Pass/Fail, true/false Positives and Negatives
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 13.7.: VL 15 "Testing"
    Coverage measures, Model-based Testing
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Thu, 15.7.: VL 16 "Software Verification"
    Notions of correctness; Formal verification of software: the Hoare calculus; Software Model-Checking, VCC Demo
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).
  • Tue, 20.7.: Live Online Tutorial 6
  • Thu, 22.7.: VL 17 "Wrapup & Questions"
    Runtime Verification; Review; Lecture recap and time for questions
    (Slides (with annotations of 2019), 2-up, 6-up, Recording: ILIAS Download + Stream).

Links & Literature