Lecture course Software Engineering (Vorlesung Softwaretechnik) SS 2020

Description

Software Engineering is the discipline of software construction on a large scale and an important part of systems engineering.

Software Engineering aims at providing answers to the following questions:

…and many similar ones.

This course gives an overview of the problems and methods and provides essential basic knowledge for any computer scientist working as a software engineer.


Organizational Matters

Lecturers

Requirements & Target Group, Classification, Credits, etc.

See entry in the KVV course catalog.

This lecture is a required course for Computer Science Bachelor students.

Dates & News

  • The subdivision into tutorial groups is done via the KVV
  • As from 2020-04-17 14:00 you may register for the tutorials.

  • Tutorials start in the second week of the course (calender week 18)
  • The first practice sheet will be made available in the first week of the course on Thursday, 2020-04-20 and is due on Sunday, 2020-04-26.

When Who KVV Where Exception
Monday 16:00–18:00 Pascal Müller 1 Takustraße 9 SR 053  
Wednesday 16:00–18:00 Tamara Fischer 2 Takustraße 9 SR 055  
Tuesday 12:00–14:00 Jannis Hamann 3 Takustraße 9 SR 046  
Friday 12:00–14:00 Pascal Müller 4 Takustraße 9 SR 055  
Thursday 16:00–18:00 Tamara Fischer 5 Takustraße 9 SR 049  
Wednesday 12:00–14:00 Jannis Hamann 6 Arnimallee 7 SR 031  
Friday 16:00–18:00 (aktuell unbesetzt) 7 Takustraße 9 SR 046  

Credits & Exams

The criteria for gaining credits are

Content

Literature

Lecture Videos, Slide PDFs

Recorded lectures will appear over time in the next few weeks. The links will be inserted in the "Subject matter" list below.

There are two versions of each video:

The slides will be reworked a bit and will also appear only over time. If you want to peek ahead, see the previous year.

Subject Matter

Most slide sets are in German. A few are English and a few are mixed German/English.

  1. Introduction: 2020-04-20
    Introduction (Einführung)
    • Video 00-1 (4'): Hello!; Lutz Prechelt; how to use the videos
    • Video 01-1 (1-9, 14', 480p): software; software engineering (SE); tasks of SE.
    • Video 01-2 (10-15, 12', 480p): personal relevance; stakeholders
    • Video 01-3 (16-20, 8', 480p): quality criteria
    • Video 01-4 (21-24, 12', 480p): rough partitionings of software engineering: product/process; principle/method/procedure/tool; technical vs. human aspects
    • Video 01-5 (25-33, 20', 480p): kinds of software engineering settings
    • Video 01-6 (34-40, 13', 480p): learning goals; learning approach
  2. Case study: 2020-04-23
    Electronic Health Card (Elektronische Gesundheitskarte)
    • Video 02-1 (1-10, 14', 480p): eGK: a complex software project
    • Video 02-2 (11-19, 17', 480p): functional requirements for the e-prescription ('eRezept')
    • Video 02-3 (20-25, 14', 480p): nonfunctional requirements (performance, availability, security)
    • Video 02-4 (26-35, 13', 480p): still more notations, size of the project
    • Video 02-5 (36-42, 19', 480p): what became of it and why, and what to learn from that: participants; beneficiaries and lines of conflict; resulting introduction schedule
    • addendum: digital signatures.
    • "bear-in-mind"-hints regarding: domains, non-functional requirements, need of cooperation, project risk.
  3. Introduction: 2020-04-27
    The Software Engineering Landscape ("Die Welt der Softwaretechnik")
    • Video 03-1 (1-13, 14', 480p): Tacoma Narrows bridge
    • Video 03-2 (14-27, 20', 480p): normal vs. radical design
    • Video 03-3 (27-33, 9', 480p): properties of normal design
    • Video 03-4 (34-46, 13', 480p): SE problems ("Die Welt der Problemstellungen")
    • Video 03-5 (47-52, 7', 480p): SE technical solution approaches ("Die Welt der technischen Lösungsansätze")
    • Video 03-6 (53-62, 20', 480p): SE methods space ("Die Welt der methodischen Lösungsansätze")
  4. Modeling: 2020-04-30
    Modeling with UML
    • Video 04-1 (1-9, 12', 480p): Modelling and UML (reality vs. model; phenomena vs. concepts)
    • Video 04-2 (10-23, 17', 480p): class diagrams
    • Video 04-3 (24-33, 13', 480p): sequence diagrams, state machine diagrams (statecharts)
    • Video 04-4 (34-46, 12', 480p): activity diagrams, other diagrams (component diagrams, collaboration diagrams, interaction overview diagrams etc.)
    • Video 04-5 (47-54, 12', 480p): UML meta model; profiles; what to learn about UML
    • some notation details (classes, associations, interfaces, states)
  5. Identify WHAT: 2020-05-04
    Requirements Elicitation
    • Video 05-1 (1-8, 14', 480p): requirements and requirements engineering; types and kinds of requirements (RE)
    • Video 05-2 (9-14, 10', 480p): conventional vs. agile approach and view
    • Video 05-3 (15-22, 13', 480p): requirements vs. specifications; domain properties and their role for validity; requirements elicitation tasks
    • Video 05-4 (23-28, 7', 480p): difficulties in requirements elicitation
    • Video 05-5 (29-42, 16', 480p): requirements elicitation methods
  6. Identify WHAT: 2020-05-07
    Use Cases
  7. Understand WHAT: 2020-05-11
    Requirements Analysis (Static Object Model)
    • Video 07-1 (1-10, 12', 480p): Object modelling intro
    • Video 07-2 (11-19, 13', 480p): noun/verb requirements text analysis (nouns are candidates for classes, verbs for operations, adjectives for attributes, proper nouns for instances, "is a" for inheritance, etc.)
    • Video 07-3 (20-28, 16', 480p): checklists for the identification of classes, associations, attributes, operations, inheritance; method hints
    • Video 07-4 (29-40, 19', 480p): participant roles and their different views on class diagrams; analysis model vs. design model
  8. Understand WHAT: 2020-05-14
    Requirements Analysis (Dynamic Object Model)
    • Video 08-1 (1-11, 12', 480p): sequence diagrams
    • Video 08-2 (12-25, 13', 480p): Statecharts
    • Video 08-3 (26-34, 14', 480p): Requirements document structure; nonfunctional requirements
    • Video 08-4 (35-43, 14', 480p): conventional vs. agile; verification vs. validation; project agreement
  9. Decide HOW: 2020-05-18
    Software Architecture
    • Video 09-1 (1-11, 14', 480p): Architecture (overall structure, in particular a plan how to fulfill the nonfunctional requirements)
    • Video 09-2 (12-21, 18', 480p): Architectural styles (for self-developed parts of an architecture)
    • Video 09-3 (22-34, 29', 480p): Web architecture (many elements of reusable architecture: GUI+API, i18n, anti-injection measures, scalability, decoupled development by microservices)
    • Video 09-4 (35-50, 27', 480p): Modularization (coupling, interface, information hiding, responsibility, modifiability, criteria for good modules)
  10. Decide HOW: 2020-05-25
    Modularization
    • Video 10-1 (1-10, 10', 480p): what is a module?; how to split into modules?, KWIC case study, KWIC 1: data flow architecture
    • Video 10-2 (11-21, 10', 480p): KWIC 1 discussion
    • Video 10-3 (22-29, 8', 480p): KWIC2 with central control
    • Video 10-4 (30-40, 11', 480p): KWIC3 with data abstraction, change scenarios, change scenario review
    • Video 10-5 (41-49, 20', 480p): analysis vs design, conclusions, desigin in conventional vs. agile
  11. Reuse HOW: 2020-05-28 (combined with the next lecture below!)
    Design Patterns, part 1
    • Video 11-1 (1-12, 8', 480p): Why patterns?: Examples Get-15 and Tic-Tac-Toe
    • Video 11-2 (13-24, 21', 480p): Composite pattern
    • Video 11-3 (25-34, 18', 480p): Complexity reduction through patterns, Adapter pattern, Bridge pattern
    • Video 11-4 (35-40, 12', 480p): Facade pattern, design heuristics, literature
  12. Reuse HOW: 2020-05-28 (combined with the previous lecture)
    Design Patterns, part 2
    • If you don't want to view all of both parts, skip Bridge in unit 11 and skip Abstract Factory and Builder in unit 12.
    • Video 12-1 (1-11, 12', 480p): types of design patterns, Proxy pattern
    • Video 12-2 (12-23, 18', 480p): Command pattern, Observer pattern
    • Video 12-3 (24-33, 12', 480p): Strategy pattern, Abstract Factory pattern
    • Video 12-4 (34-42, 12', 480p): Builder pattern, summary, conventional vs. agile
  13. Specify HOW: 2020-06-04
    Interface Specification
  14. Test IF: 2020-06-08
    Analytical Quality Assurance, part 1
    • Video 14-1 (1-12, 18', 480p): terminology: test, testing, testcase, failure, defect, error etc.
    • Video 14-2 (13-21, 14', 480p): test case selection: function testing (black box testing)
    • Video 14-3 (22-30, 15', 480p): structure testing (white box testing), heuristics
    • Video 14-4 (31-41, 16', 480p): choosing what part of the software to test: pure module test, bottom-up, top-down
    • Video 14-5 (42-49, 10', 480p): how to determine the expected behavior; when to repeat tests
    • Video 14-6 (50-60, 16', 480p): test automation
    • Video 14-7 (61-64, 7', 480p): when to stop testing, specifically agile approaches
  15. Test IF: 2020-06-11
    Analytical Quality Assurance, part 2
    • Video 15-1 (1-12, 17', 480p): Test frameworks: JUnit
    • Video 15-2 (13-23, 22', 480p): GUI test autmation; usability testing; load testing; profiling; acceptance testing
    • Video 15-3 (24-37, 22', 480p): manual static methods: reviews and inspections, perspective-based reading
    • Video 15-4 (38-43, 7', 480p): automatic static methods: model checking etc.
    1. Additional event as part of the FU Berlin International Week 2020-06-11
      Marian Petre: Understanding what it takes to become an effective software developer
    • The slides alone are not too useful as a summary, as they have hardly any text, but this short article is (plus possibly the longer one about the introductory part)
  16. Prevent THAT: 2020-06-15
    Constructive Quality Assurance (Quality Mgmt, Process Mgmt)
    • Video 16-1 (1-10, 11', 480p): principles of constructive QA; conventional vs. agile approaches
    • Video 16-2 (11-19, 19', 480p): CMMI
    • Video 16-3 (20-29, 16', 480p): CMMI results; ISO 9000 series; Total Quality Management (TQM)
    • Video 16-4 (30-38, 13', 480p): Agile retrospectives; QA lectures overall structure
  17. Decide HOW (Process): 2020-06-18
    Process Models
    • Video 17-1 (1-9, 12', 480p): software development processes and process models; roles/artifacts/activities; waterfall model
    • Video 17-2 (10-21, 22', 480p): repairs to the waterfall model: iteration (prototype model, evolutionary models, spiral model); reduced planning (agile processes).
    • Video 17-3 (22-28, 11', 480p): differences between models; how to pick one.
    • Video 17-4 (29-36, 10', 480p): adaptable and allegedly universal models: RUP, V-Modell XT.
    • Video 17-5 (37-42, 10', 480p): an Agile process model: eXtreme Programming (XP); summary.
  18. Constraints: 2020-06-22
    Personality Types
    • Video 18-1 (1-8, 6', 480p): personality types as a tool
    • Video 18-2 (9-19, 14', 480p): your reactions to that idea; MBTI dimension E/I, warnings.
    • Video 18-3 (20-26, 8', 480p): MBTI dimensions S/N, T/F, J/P.
    • Video 18-4 (27-35, 10', 480p): Keirsey temperaments: SJ, SP, NT, NF
    • Video 18-5 (36-41, 7', 480p): Enneagramm, Five Factor Model (Big 5)
    • Video 18-6 (42-48, 17', 480p): personality type in software development (strengths and pitfalls of various types); identify your own type.
  19. Implement (Process): 2020-06-25
    Project Management, part 1
    • Video 19-1 (1-10, 17', 480p): 2 project management (PM)styles: planning-steering and agile-selforganizing ; definition of PM; magic triangle
    • Video 19-2 (11-21, 14', 480p): the 9 sub-areas of PM
    • Video 19-3 (22-32, 18', 480p): basic cost estimation methods
    • Video 19-4 (33-42, 16', 480p): more basic cost estimation methods; Function Point; cost estimation difficulties
  20. Implement (Process): 2020-06-29
    Project Management, part 2
  21. Implement (Process): 2020-07-02
    Project Management, part 3
    • Video 21-1 (1-11, 15', 480p): teams; roles (classical vs. agile); classical vs. agile decision-making
    • Video 21-2 (12-21, 15', 480p): Psychological phenomena: probability estimation, motivation
    • Video 21-3 (22-28, 14', 480p): attribution, attitudes, cognitive dissonance
    • Video 21-4 (29-36, 9', 480p): social influences
  22. Implement (Process): 2020-07-02 (likely combined with the previous lecture)
    Project Management, part 4
    • Video 22-1 (1-10, 11', 480p): project plan
    • Video 22-2 (11-18, 19', 480p): project management approaches in agile processes; in general
    • Video 22-3 (19-28, 22', 480p): examples of non-linear project dynamcics and how to cope with them: Brook's law; reinforcement of quality deficits; vicious circle of quality and time pressure
    • Video 22-4 (29-37, 17', 480p): communication (planned/unplanned, synchronous/asynchronous); meetings
  23. Maximize Normal Design: 2020-07-06
    Reuse, part 1
    • Video 23-1 (1-12, 19', 480p): aspects and dimensions of reuse (product/process; object; aim); risks assessment; obstacles; productivity;
    • Video 23-2 (13-19, 10', 480p): normal design via reuse; the idea of patterns
    • Video 23-3 (20-30, 14', 480p): principles as patterns: abstraction, structuring, hierarchy, modularization, locality, consistency, reuse, notations
    • Video 23-4 (31-42, 15', 480p): analysis patterns
  24. Maximize Normal Design: 2020-07-09
    Reuse, part 2
  25. Pass on Knowledge: 2020-07-13
    Documentation
    • Video 25-1 (0-10, 17', 480p): Definition; types of documentation; quality attributes (clear, precise, correct, helpful); typical problems; solution approaches
    • Video 25-2 (11-20, 25', 480p): self-documentation; minimal documentation; positve and negative examples
    • Video 25-3 (21-29, 12', 480p): what is important for documentation of: APIs, modules, architecture, requirements; idea of rationale management
    • Video 25-4 (30-40, 14', 480p): rationale management details (questions + suggestions + criteria + arguments make decisions) and example; the English serial comma
  26. Famous Last Words: 2020-07-16
    Closing
    • Video 26-1 (1-11, 17', 480p): reminder: some ideas from the introduction; what to expect in practice; factors and challenges for job satisfaction
    • Video 26-2 (12-12, 16', 480p): a walkthrough of the topic list: key ideas
    • Video 26-3 (13-21, 25', 480p): four topics not addressed; final words

Further resources

Software


Tutorials

Practice Sheets

Each new practice sheet will appear in the KVV. Solutions must be uploaded to the KVV before the respective deadline.

Active Participation

As an alternative to the tutorials you may define a software engineering project on your own and disengage to a large extent from the tutorials.
But beware: consequently the necessary exam preparation is more your personal responsibility! For details refer to the next section.

Projects

A project is organized like this:
  1. 3 to 5 students form a team.
  2. The team formulates a written project proposal:
    • What do we want to do? Why?
    • What is the goal of the project? When is it achieved (criteria)?
    • What are the subtasks? Who is responsible for which subtask? How much effort will each subtask demand?
  3. The tutor agrees to the proposal (or requests changes/amendments). Project topics may concern any aspect of software engineering (preferably many aspects), but should not focus on implementation. Especially non-trivial planning and quality assurance elements need to be included. Projects starting from scratch are hardly ever suitable.
  4. The team presents a proposal in the tutorial and asks for comments: hints as to additions and improvements, warnings concerning risks and pitfalls, technical tips.
  5. The team carries out the project autonomously. The tutor is available as a coach, in particular when faced with tricky decisions.
  6. The team presents the project result to the tutor, with all team members taking on an active role and being able to answer most questions well.
  7. The tutor (hopefully) accepts the result.
  8. The team presents the result in the tutorial. The tutor decides whether all project members have contributed (well) enough to the project to pass.

Exam Preparation

Basically the content of the lecture plus the content of the tutorials will be tested.

The practice sheets suggest possible exam questions, but not all material suits itself to a written exam well, so expect "hard" stuff such as terminology, modeling, patterns, specific methods, etc. to be represented well and "soft" topics such as project management less so. Some of the practice sheet tasks derive from old exam questions. An extra practice sheet for exam preparation may be found amongst the practice sheets, also giving advice as to the answers.

The 16-page mini script not only summarizes the course nicely, it also gives concrete learning advice.


History of the Curriculum

(small changes are made every year)

Comments

Should you have comments or suggestions as to this page, please leave them here (preferably with date and name):

 

SWTIDSR