You are here: Home Teaching Summer Term 2019 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 Monday, 14:00–16:00, HS 101-00-026
Thursday, 12:00–14:00, HS 101-00-026
Exercise Thursday, 12:00–14:00 (bi-weekly)
Group 1 - Michael (German):        051-00-034
Group 2 - Manuel (German):         051-00-006
Group 3 - Jessica (English):         051-03-026
Group 4 - Konstantina (English):  051-00-031
First session Lecture: Thu, 25.4.2019
Tutorial:  Thu,   9.5.2019
Language of instruction German
Credits 6
Exams September 17th, 10:00am, 101-0-26/-36/-10/-14.
Course Catalog Softwaretechnik / Software Engineering - Vorlesung
Softwaretechnik / Software Engineering - Übung

 

Quicklinks: News - Formalia - Plan - Links & Literature

 

News

  • 2020-03-09: exam re-sit review: Wed, 18.3.2020, 14:00 - 16:00, 52-0-020.
    If this date/time is not possible for you, please drop us a mail proposing two or three date/time pairs for us to choose from.  And please spread the word - notification via HISinOne seems unavailable these days.
  • 2019-09-26: exam review: 2nd and 16th of October - see ILIAS forum post.
  • 2019-04-18: ILIAS module online, join here: ILIAS-Admission.
  • 2019-04-04: homepage online

Formalia

Prerequisites for admission to the final exam, form of the final exam, and everything will be announced in the first lecture.

Admission criteria

50% of the total (= 120) admission (or: good will) points in the exercises 0-3 and 4-6 (that is, 50% in the first half and 50% in the second half) are sufficient for exam admission.

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: Tuesday, September, 17th 2019, 10:00.
  • 90 min.
  • Room: 101-0-26 / -36 / -10 / -14 - please gather in the foyer in time
  • Permitted in the exam:
    max. 1 sheet of paper, max. size A4, max. 200g/qm quality, all sides may be used (written/printed/painted/...).

Note: The module result (grade, "Note") is completely determined by the exam.
 
Exam review (Klausureinsicht): Wed, 2nd October, 2019 and Wed, 16th October, 2019 - see ILIAS forum post
(We will admit max. 3 people in the room at the same time, so please choose your review time randomly and just come by.  Hence if everybody arrives at 14:00, people may queue up - trusting in the power of stochastics, a random choice should yield acceptable average waiting times for all. ;-)  If said dates are not possible for you, let us know as early as possible (including your options/wishes) - then we'll see whether we can find one or the other alternative appointment which is convenient for all of us.)

Resources

Slides, Exercises, and Recordings

Note: the following plan is tentative, that is, the assignment of topics to dates may be subject to mild changes.  The assignment of form (lecture or tutorial) to dates is fixed.  We will try to provide slides before the lecture.

  • Mon, 22.4.: public holiday (easter monday)
  • Thu, 25.4.: VL 01 "Introduction" - Exercise Sheet 0 online (submit via ILIAS)
    Definitions of Software Engineering etc.; course content overview; formalia.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings from the season 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Mon, 29.4.: VL 02 "Software Metrics & Cost Estimation" - Exercise Sheet 1 online, additional file MyQuicksort.java (submit via ILIAS in your tutorial group - tutorial groups will be available by 2019-05-02, 12:00)
    Software metrics; properties of useful metrics; kinds of scales; examples: LOC and McCabe; Subjective metrics, Goal-Question-Metric approach; Cost and Deadlines, Expert and Algorithmic Cost Estimation
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download 1/2, 2/2 (2018, EN), ILIAS-Stream 1/2, 2/2 (2018, EN))
  • Thu,  2.5.: VL 03 "Software Project Management"
    Development Project; Activities, Roles, Artefacts; From Processes to Procedure and Process Modes.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Mon,  6.5.: VL 04 "Procedure and Process Models"
    Evolutionary, Incremental, Iterative; Prototype-based; Waterfall and Spiral; V-Model XT; Agile Processes; process metrics CMM(I) and SPICE.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu,  9.5.: Tutorial 1
  • Mon, 13.5.: VL 05 "Requirements Engineering" - Exercise Sheet 2 online (submit via ILIAS)
    Requirements Engineering basics: the RE problem, the software peoples' view on requirements; quality criteria for requirements and their (natural language) documentation.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 16.5.: VL 06 "Formal Methods for Requirements Engineering"
    Requirements specification documents, dictionary, natural language patterns; DT syntax and semantics.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Mon, 20.5.: 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), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 23.5.: Tutorial 2
  • Mon, 27.5.: VL 08 "Use Cases and Scenarios, Live Sequence Charts" - Exercise Sheet 3 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).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 30.5.: public holiday (ascension day)
  • Mon,  3.6.: VL 09 "Live Sequence Charts & RE Wrapup"
    Second half of the 'Sequence Diagram' story (TBA construction); LSCs and software; Requirements Engineering wrap-up.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu,  6.6.: Tutorial 3
  • Mon, 10.6.: whitsun break
  • Thu, 13.6.: whitsun break
  • Mon, 17.6.: VL 10 "Structural Software Modelling" - Exercise Sheet 4 online (submit via ILIAS)
    Software Architecture; Views and viewpoints; Class Diagrams; Object Diagrams.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 20.6.: public holiday (corpus christi)
  • Mon, 24.6.: VL 11 "Structural Software Modelling II"
    Object Diagrams cont'd; Proto-OCL.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 27.6.: Tutorial 4
  • Mon,  1.7.: VL 12 "Behavioural Software Modelling" - Exercise Sheet 5 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 (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu,  4.7.: VL 13 "UML State Machines, UML, MBSE/MDSE, Design Principles"
    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 (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Mon,  8.7.: VL 14 "Architecture and Design Patterns & Software Quality Assurance"
    Architectural patterns (layers, pipeline, MVC); Design Patterns; Test Case,  Test suite, Pass/Fail, true/false Positives/Negatives.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 11.7.: Tutorial 5
  • Mon, 15.7.: VL 15 "Testing" - Exercise Sheet 6 online (download additional materials and submit via ILIAS)
    Coverage measures, Model-based Testing.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 18.7.: VL 16 "Program Verification"
    Notions of correctness; Formal verification of programs: the Hoare calculus; Software Model-Checking, VCC Demo.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Mon, 22.7.: VL 17 "Wrapup & Questions"
    Runtime Verification; Review; Lecture recap and time for questions.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2019, DE), ILIAS-Stream (2019, DE),
     English recordings of 2018: ILIAS-Download (2018, EN), ILIAS-Stream (2018, EN))
  • Thu, 25.7.: Tutorial 6

Links & Literature