You are here: Home Teaching Summer Term 2017 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) modeling 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 - Liridon (English):    SR 078-00-014
Group 2 - Moritz (English):     Kinohörsaal
Group 3 - Michael (Deutsch): SR 101-01-009/013
Group 4 - Kristin (Deutsch):    SR 106-00-007
First session Lecture 24.04.2016
Tutorial 04.05.2016
Language of instruction German
Credits 6
Exams Written, 8.9.2017, 14:00 c.t., 90 min.
Rooms: 101-00-26 and -36
Course Catalog Softwaretechnik / Software Engineering - Vorlesung
Softwaretechnik / Software Engineering - Übung

 

Quicklinks: News - Formalia - Plan - Links & Literature

 

News

  • 2017-09-13: exam results "vorläufig freigegeben" - exam review ("Klausureinsicht"): Thu, 21.9., 16:00 - 18:00, 052-0-020
    (please choose your visiting time randomly since we don't want to admit more than 3-5 people at a time to the room)
  • 2017-08-09: section "Permitted in the exam" updated - thanks for the reminders.
  • 2017-07-24: Annotated slides of Lecture 17 re-uploaded - things got mixed up.
  • 2017-07-24: Another update of the errata file - thanks for pointing out the issue!
  • 2017-07-06: Wajakla... :-/ In the confusion caused by the malfunctioning microphone, we have lost the audio track of  the second half of today's recording - as a substitute, you may consider to consult the English recordings from last year (Download (2016,EN), Stream (2016,EN)). The Multimedia Support promised to have the microphone replaced by Monday.
    For support with the Uppaal tool as needed for the exercises, please don't hesitate to contact your tutors.
  • 2017-06-22: The slides of Lecture 9 have been extended by correct versions of the LSC semantics tables (slides 16 and 18-20); the incorrect slides as presented in the lecture are still present to match the recording, but they are crossed out in red.  The links below now point to the fixed versions (same filename!).
  • 2017-06-22: Mistakes seldom come alone - the errata file has been updated.
  • 2017-06-20: Exercise Sheet 4 is (finally) available.
  • 2017-06-20: The first mistake has been spotted in the slides; the correction is provided in the errata file.
  • 2017-06-01: next tutorial is on Monday, 12.6., as an exception; room assignment is as follows:
    • Liridon: SR 00-014, Geb. 078 (as usual)
    • Kristin: SR 00-007, Geb. 106 (as usual)
    • Michael: HS 00-026, Geb. 101 (exception!)
    • Moritz:  Kinohörsaal              (as usual) 
  • 2017-05-15: Too bad - seems we've lost the recording of today's second half lecture. :-/  As a workaround, please consider the English recordings from last season; V-Model was in slightly different order, but overall content is the same.  Links will be in place.
  • 2017-05-03: Rooms for tutorials updated - there was an inconsistency between ILIAS and this page (ILIAS was right), thanks for the hint.
  • 2017-04-28: Complementary literature "Buschman et al.: Pattern-Oriented Software Architecture", now available as e-Book via UB.
  • 2017-03-21: 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 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: Friday, 8.9.2017
  • 90 min. starting at 14:00 c.t.
  • Room: 101-00-26 and -36 (and maybe Kinohörsaal)
  • Permitted in the exam:
    max. 1 sheet of paper, max. size A4, max. 200g/qm qualiy, all sides may be used (written/printed/painted/...).

Note: The module result (grade, "Note") is completely determined by the exam.

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.

  • Mo, 24.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 (2017,DE), ILIAS-Stream (2017,DE)
     (English recordings from the season 2016: ILIAS-Download (2016,EN), ILIAS-Stream (2016,EN)))
  • Do, 27.4.: VL 02 "Software Metrics" - Exercise Sheet 1 online, additional file (submit via ILIAS (will be available soon))
    Software metrics; properties of useful metrics; kinds of scales; examples: LOC and McCabe. 
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE)
     (English recordings from the season 2016: ILIAS-Download (2016,EN), ILIAS-Stream (2016,EN)))
  • Mo,  1.5.: public holiday (international workers' day)
  • Do,  4.5.: Tutorial 1
  • Mo,  8.5.: VL 03 "More Metrics & Cost Estimation" - Exercise Sheet 2 online (submit via ILIAS)
    Subjective metrics, Goal-Question-Metric approach; Cost and Deadlines, Expert and Algorithmic Cost Estimation.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE)
     (English recordings from the season 2016: see homepage/ILIAS of 2016 season))
  • Do,  11.5.: VL 04 "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 (2017,DE), ILIAS-Stream (2017,DE))
  • Mo, 15.5.: VL 05 "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), 2-up, 6-up, Recording: ILIAS-Download (2017, DE, 1st half), ILIAS-Stream (2017, DE, 1st half)
     (English recordings from the season 2016: ILIAS-Download (2016,EN), ILIAS-Stream (2016,EN)))
  • Do, 18.5.: Tutorial 2
  • Mo, 22.5.: VL 06 "Requirements Engineering" - Exercise Sheet 3 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 (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 25.5.: public holiday (ascension day)
  • Mo, 29.5.: VL 07 "Formal Methods for Requirements Engineering"
    One example of a formal notation for requirements: decision tables (DT); formal definitions for completeness, consistency, determinism, etc.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do,  1.6.: VL 08 "Use Cases and Scenarios"
    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).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Mo,  5.6.: whitsun break
  • Do,  8.6.: whitsun break
  • Mo, 12.6.: Tutorial 3
  • Do, 15.6.: public holiday (corpus christi)
  • Mo, 19.6.: VL 09 "Live Sequence Charts" - Exercise Sheet 4 online (submit via ILIAS)
    Second half of the 'Sequence Diagram' story (TBA construction).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 22.6.: VL 10 "Req. Eng. Wrapup / Architecture & Design"
    LSCs and software; Requirements Engineering wrap-up; Software Architecture.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Mo, 26.6.: VL 11 "Structural Software Modelling"
    Views and viewpoints; Class Diagrams; Object Diagrams.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 29.6.: Tutorial 4
  • Mo,  3.7.: VL 12 "Proto-OCL, Modularisation & Design Patterns" - Exercise Sheet 5 online (download additional materials and submit via ILIAS)
    Proto-OCL; Principles of Software Design: Modularisation, information hiding, data encapsulation etc.; Architectural patterns (layers, pipeline, MVC); Design Patterns.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do,  6.7.: VL 13 "Behavioural Software Modelling"
    Communicating Finite Automata; Uppaal Demo; Uppaal Query Language; CFA "at work".
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE),
    Vending Machine model (vm.xml, vm.q) from the demo)
  • Mo, 10.7.: VL 14 "Behavioural Software Modelling II"
    Implementing CFA; an outlook on UML Statemachines; Testing basics.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 13.7.: Tutorial 5
  • Mo, 17.7.: VL 15 "Software Quality Assurance: Testing" - Exercise Sheet 6 online (additional material) (submit via ILIAS)
    Testing (concepts, coverage measures, etc.).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 20.7.: VL 16 "Software Verification"
    Model-based Testing; Notions of correctness; Formal verification of software: the Hoare calculus.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Mo, 24.7.: VL 17 "Wrapup & Questions"
    Software Model-Checking, VCC Demo; Review; Lecture recap and time for questions.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download (2017,DE), ILIAS-Stream (2017,DE))
  • Do, 27. 7.: Tutorial 6
  • Errata for the course slides.

Links & Literature