The course webpage will be frequently updated; please check it frequently.
Software engineering is an engineering discipline whose focus is the cost-effective development of high-quality software. The emphasis in software engineering is on both words, i.e., "software" and "engineering". An engineer is able to build a high-quality product using off-the-shelf components and integrating them under time and budget constraints.
This course will cover key techniques for building reliable software. These include modeling, design patterns, code refactoring, testing, symbolic execution, and static and dynamic program analysis. To gain a deeper understanding of how to apply these techniques in practice, the course will also involve two hands-on projects based on the principles introduced in the lectures.
Date |
Announcement |
---|---|
20.05.2019 | Project 1 grades are available. Please contact the teaching assistants for the first part if you have any questions. |
06.04.2019 | Second part of the course starts on Monday, 8 April 2019. |
06.04.2019 | Assignment 6 solution has been posted (see details below under "Exercises"). |
31.03.2019 | Assignment 5 solution has been posted (see details below under "Exercises"). |
29.03.2019 | Assignment 6 has been posted (see details below under "Exercises"). |
26.03.2019 | Slides by the TAs for the exercise sessions have been posted (see details below under "Exercises"). |
22.03.2019 | Part 2 of project 1 on Alloy modeling has been slightly updated in response to Piazza questions (see details below under "Projects"). |
22.03.2019 | Assignment 5 has been posted (see details below under "Exercises"). |
22.03.2019 | Assignment 4 solution has been posted (see details below under "Exercises"). |
18.03.2019 | Part 2 of project 1 on Alloy modeling has been posted (see details below under "Projects"). |
18.03.2019 | Assignment 3 solution has been posted (see details below under "Exercises"). |
15.03.2019 | Assignment 4 has been posted (see details below under "Exercises"). |
13.03.2019 | Please find under "Lectures" below the Alloy examples discussed during the lectures. You may also find it useful to go through the Alloy tutorial. |
11.03.2019 | Assignment 2 solution has been posted (see details below under "Exercises"). |
08.03.2019 | Assignment 3 has been posted (see details below under "Exercises"). |
01.03.2019 | Part 1 of project 1 on UML modeling has been posted (see details below under "Projects"). |
01.03.2019 | (1) Assignment 1 solution and (2) Assignment 2 have both been posted (see details below under "Exercises"). |
26.02.2019 | Exercise and project group assignments have been posted on the course Piazza site. Please note the updated rooms for Monday (HG D 3.2) and Thursday (ML H 41.1) exercise sessions. A special thanks to Ms. Denise Spicher for helping us find larger rooms for the Monday and Thursday exercise sessions! |
25.02.2019 | This week's Monday exercise session won't meet because we don't have a large enough room to accommodate all students who said they could only attend the Monday session. Please post questions on Piazza for the time being. |
25.02.2019 | Added two classical references on requirements engineering (see under "Literature" below). |
22.02.2019 | Assignment 1 has been posted (see details below under "Exercises"). |
22.02.2019 | Due to current room capacity limits in accommodating your selections, we will delay posting the exercise group (and project group) assignments until Monday, February 25th. We have contacted the department for possible larger/additional rooms. Please stay tuned. |
18.02.2019 | Please take a brief moment to select your preferred exercise groups and enter your project team information using this Google form by 23:59 on 20.02.2019. Based on your entered preferences, we will publish the group assignments on 22.02.2019. Exercise sessions will start next week. |
06.02.2019 | Website became live |
Contact: Prof. Zhendong Su, Prof. Martin Vechev
Lecture |
Topic |
Slides |
---|---|---|
1 | Introduction | Slides (PDF) |
2 | Requirements | Slides (PDF) |
3 | Modeling and Specifications | Slides (PDF), Alloy examples |
4 | Modularity | Slides (PDF) |
5 | Testing; Recent Advances | Slides (PDF), Extra (PDF) |
Teaching assistants for the first part of the course:
Week |
Topic |
Downloads |
---|---|---|
2 | Requirements Elicitation and Documentation | [Assignment | Solution | TA slides] |
3 | Specification and Modeling | [Assignment | Solution] |
4 | Modeling | [(Assignment, Exercise Files) | (Solution, Solution Files) | TA slides] |
5 | Alloy | [(Assignment, Exercise Files) | (Solution, Solution Files) | TA slides] |
6 | Design Patterns | [(Assignment, Eclipse Files, IntelliJ Files) | (Solution, Solution Files)] |
7 | Testing | [(Assignment, Exercise Files) | (Solution, Solution Files)] |
The description of the project for the second part of the course can be found here later.
Project |
Topic |
Due |
Downloads |
---|---|---|---|
1.1 | UML Modeling | 15.03.2019 | Description |
1.2 | Alloy Modeling | 05.04.2019 | Description, Template |