Software Engineering Prof. Dr. Sven Apel Core Lecture — Winter Semester 2019

News

07.02.2020

Results of the final exam available

The exam correction is finished and the results of the final exam are available on your personal status page.

Note: The grade of the final exam covers only the written exam, which accounts only for 33% of the overall course grade. The grading of the projects is... Read more

The exam correction is finished and the results of the final exam are available on your personal status page.

Note: The grade of the final exam covers only the written exam, which accounts only for 33% of the overall course grade. The grading of the projects is not finished yet. You will be notified when the project grades are available.

Inspection of the final exam is possible on Wednesday, February 12, from 13:00 to 15:00 in room HS 003 in E1.3. For inspection, you need to bring your student ID card and your ID card.

Preannouncement for the re-exam: Registration for the re-exam is only possible after the overall course grade is determined (i.e., after the project grading is finished.) We will notify you regarding the registration procedure and corresponding deadlines as soon as the overall course grade is determined.


 

03.02.2020

Final Exam

Tomorrow, Tuesday February 04, the final exam of the Software Engineering course takes place.

 

We have assigned a seat to every individual student. The assignment is now visible in the CMS. Please check on your personal status page of the Software Engineering... Read more

Tomorrow, Tuesday February 04, the final exam of the Software Engineering course takes place.

 

We have assigned a seat to every individual student. The assignment is now visible in the CMS. Please check on your personal status page of the Software Engineering course in the CMS which room and which seat you are assigned to. (The exam takes place in three different rooms at the same time. Therefore, make sure to directly come to the right room your seat is assigned to!)

Please wait in front of the room assigned to you until we allow you to enter the room. Be there at 12:00 noon!

Don't forget to bring your student ID card and your ID card (we need both for identity control).

 

No additional aids (e.g., notes, calculator, ...) are allowed.

It is also not allowed to use your own sheets. You will be provided with additional sheets from us during the exam if requested.

Only use indelible pens (e.g., ballpoint pens, ink pens). Do not use red or green pens or pencils.

28.01.2020

Sample Solution for Mock Exam

A sample solution for the mock exam is now available on the CMS.

22.01.2020

Final Deliverables (Week 12): Deadline Extension until Monday

As we have heard that some of the project teams are still very busy with the final deliverables of their project, we extend the deadline for the final submission. That is, every project team gets three more days to work on its final deliverables. However, you don't... Read more

As we have heard that some of the project teams are still very busy with the final deliverables of their project, we extend the deadline for the final submission. That is, every project team gets three more days to work on its final deliverables. However, you don't have to use this deadline extension and can also submit the final deliverables regularly.

All the deliverables of Week 12 have to be submitted, at the latest, by the end of Monday (2020-01-27, 23:59).


 

Here is a short reminder of what has to be submitted (final deliverables):

  • The following deliverables have to be submitted to the CMS by the end of Monday (2020-01-27, 23:59):
    • The progress report (incl. time log). The final progress report has to contain a link to your public GitHub repository (see below).
    • The final test report (as PDF). The final test report should build on your test plan and contain the current results of your tests (passed or not; if they still do not pass, provide a reasonable explanation for that). Also state whether the tests discovered any errors or bugs. The final test report has to report the test quality in terms of code coverage. Also provide a short statement on the code coverage (e.g., explaining why the coverage might be noticeably low or high for certain modules).
    • Instructions on how to build, deploy, and use your software.
    • Video of the software (90–180 seconds), showing core use cases and features.
    • Optional: Final requirements documents, use-case diagrams, UML class and sequence diagrams can be uploaded to the CMS, but this is not necessary (i.e., the diagrams and documents can be updated if something has changed, but we don't request it).
  • The final implementation has to be pushed to the master branch of your GitLab repository by the end of Monday (2020-01-27, 23:59). The final software product has to contain the implementation of all must-have requirements. (Implementation of may-have requirements as time permits.)
  • In addition, to finally publish your work, you need to create a public GitHub repository (https://www.github.com/). At the end of the final submission deadline (2020-01-27, 23:59), your public GitHub repository should contain your developed software (including source code, test suite, documentation on how to build, deploy, and use your software).
    • As agreed in your contract agreements, you have to publish it under an open-source license. So, don't forget to add a suitable license to your GitHub repository. In general, you have to publish your work under MIT license (https://opensource.org/licenses/MIT), except you already have agreed to another open-source license with the customer. However, please check if you re-used already published or existing code in your software. If so, you have to check whether the license of these code snippets is compatible with the MIT license. If not, you have to adjust your open-source license in compliance with the license of the already existing code.
    • In addition, also make sure that you don't violate copyright and related rights (this might especially hold for icons or pictures used in your software).
    • Don't migrate the complete GitLab repository to GitHub -- only copy the final version of the source code and related documentation to the new GitHub repository and commit this as a whole. Make sure to remove all the diagrams and documents before pushing to GitHub, especially those which contain privacy data, such as names and matriculation numbers (that is also the reason why you are not allowed to migrate the complete project, as your commit history contains all the documents containing privacy-related data, even if you would remove it in the end.)

In the end, both GitLab and GitHub repositories should contain the same version of your software and corresponding documentation by the end of Monday (2020-01-27, 23:59). Don't forget to add the link to your public GitHub repository to your final progress report.

14.01.2020

Mock Exam

We have created a mock exam for you, to provide an example how your final exam in Software Engineering could potentially look like. The mock exam can be downloaded from the CMS as of now.

In addition, we will discuss the mock exam and possible solutions for its... Read more

We have created a mock exam for you, to provide an example how your final exam in Software Engineering could potentially look like. The mock exam can be downloaded from the CMS as of now.

In addition, we will discuss the mock exam and possible solutions for its tasks in the lecture on Tuesday, January 28, at 12:00 in Günter-Hotz-Hörsaal. We highly recommend to deal with all the tasks of the mock exam (that is, solving them independently for yourself) before we are going to discuss them in the lecture.

14.01.2020

Deliverables in Week 11 & Week 12

Deliverables in Week 11:

  • The progress report (incl. time log) has to be submitted to the CMS by the end of Friday (2020-01-17, 23:59). The progress report has to contain an additional section in which the work on your issues has to be documented. In this... Read more

Deliverables in Week 11:

  • The progress report (incl. time log) has to be submitted to the CMS by the end of Friday (2020-01-17, 23:59). The progress report has to contain an additional section in which the work on your issues has to be documented. In this additional section, you should place the answer to the following questions:
    • Who worked how long on which issues this week?
    • Which new issues were created this week? / Which bugs were found this week?
    • Which issues were resolved, which bugs fixed this week?
    • Which tests are already written / generated? (regardless of whether they already pass or not)

 

Deliverables in Week 12 (final deliverable):

  • The following deliverables have to be submitted to the CMS by the end of Friday (2020-01-24, 23:59) Monday (2020-01-27, 23:59):
    • The progress report (incl. time log). The final progress report has to contain a link to your public GitHub repository (see below).
    • The final test report (as PDF). The final test report should build on your test plan and contain the current results of your tests (passed or not; if they still do not pass, provide a reasonable explanation for that). Also state whether the tests discovered any errors or bugs. The final test report has to report the test quality in terms of code coverage. Also provide a short statement on the code coverage (e.g., explaining why the coverage might be noticably low or high for certain modules).
    • Instructions on how to build, deploy, and use your software.
    • Video of the software (90–180 seconds), showing core use cases and features.
    • Optional: Final requirements documents, use-case diagrams, UML class and sequence diagrams can be uploaded to the CMS, but this is not necessary (i.e., the diagrams and documents can be updated if something has changed, but we don't request it).
  • The final implementation has to be pushed to the master branch of your GitLab repository by the end of Friday (2020-01-24, 23:59) Monday (2020-01-27, 23:59). The final software product has to contain the implementation of all must-have requirements. (Implementation of may-have requirements as time permits.)
  • In addition, to finally publish your work, you need to create a public GitHub repository (https://www.github.com/). At the end of Week 12 (2020-01-24, 23:59) (2020-01-27, 23:59), your public GitHub repository should contain your developed software (including source code, test suite, documentation on how to build, deploy, and use your software).
    • As agreed in your contract agreements, you have to publish it under an open-source license. So, don't forget to add a suitable license to your GitHub repository. In general, you have to publish your work under MIT license (https://opensource.org/licenses/MIT), except you already have agreed to another license in your contract agreement with the customer. However, please check if you re-used already published or existing code in your software. If so, you have to check whether the license of these code snippets is compatible with the MIT license. If not, you have to adjust your open-source license in complience with the license of the already exisiting code.
    • In addition, also make sure that you don't violate copyright and related rights (this might especially hold for icons or pictures used in your software).
    • Don't migrate the complete GitLab repository to GitHub -- only copy the final version of the source code and related documentation to the new GitHub repository and commit this as a whole. Make sure to remove all the diagrams and documents before pushing to GitHub, especially those which contain privacy data, such as names and matriculation numbers (that is also the reason why you are not allowed to migrate the complete project, as your commit history contains all the documents containing privacy-related data, even if you would remove it in the end.)

In the end, both GitLab and GitHub repositories should contain the same version of your software and corresponding documentation by the end of Friday (2020-01-24, 23:59) Monday (2020-01-27, 23:59). Don't forget to add the link to your public GitHub repository to your final progress report.

16.12.2019

Deliverables in Week 9 & Week 10

Deliverables in Week 9:

  • The progress report (incl. time log) has to be submitted to the CMS by the end of Friday (2019-12-20, 23:59). The progress report has to contain an additional section in which the work on your issues has to be documented. In this... Read more

Deliverables in Week 9:

  • The progress report (incl. time log) has to be submitted to the CMS by the end of Friday (2019-12-20, 23:59). The progress report has to contain an additional section in which the work on your issues has to be documented. In this additional section, you should place the answer to the following questions:
    •  Who worked how long on which issues?
    •  Which new issues were created? / Which bugs were found?
    •  Which issues were resolved, which bugs fixed?
    •  Which tests are already written / generated? (regardless of whether they already pass or not)

 

Deliverables in Week 10 (after the Christmas break):

  • The following deliverables have to be submitted to the CMS by the end of Friday (2020-01-10, 23:59):
    • The progress report (incl. time log). The progress report has to contain an additional section in which the work on your issues has to be documented (see also the detailed description above in the description of the deliverables of Week 9).
    • The initial test report (as PDF). The initial test report should build on your test plan and contain the current results of your tests (passed or not). Also state whether the tests discovered any errors or bugs. (It is ok to have failing tests at this point. Though, they must be documented. Don't conceal failing tests, as failing tests at this point of the project are not negative w.r.t. grading.) A coverage report is not yet necessary, it will be required in the final submission of the project in Week 12.

 

We wish you a Merry Christmas and a Happy New Year!

12.12.2019

Additional information regarding the submission of your implementation

The implementation of most of the must-have requirements (current implementation, source code, etc.) has to be pushed to the master branch of your GitLab repository. We only look at the master branch, all other branches will be ignored. Therefore, for this week's... Read more

The implementation of most of the must-have requirements (current implementation, source code, etc.) has to be pushed to the master branch of your GitLab repository. We only look at the master branch, all other branches will be ignored. Therefore, for this week's submission, make sure to push your commits to the master branch until the end of Friday (2019-12-13, 23:59).


Here is a short reminder of what has to be submitted this week (Week 8):

  • The following deliverables have to be submitted to the CMS by the end of Friday (2019-12-13, 23:59):
    • the progress report (incl. time log)
    • an updated requirements document (as PDF). If there were any inconsistencies in the requirements document of the first milestone, they can be resolved in the updated document.
    • an updated use-case diagram (as PDF). If there were any inconsistencies between between requirements and use-case diagram, they can be resolved in the updated diagram.
    • an updated UML class diagram (as PDF)
    • and sequence diagrams (as PDF) for, at least, six different use cases (i.e., an updated version of the three sequence diagrams from Week 6 and three additional sequence diagrams for other scenarios). All the sequence diagrams should be as fine-grained as possible, that is, they should contain concrete function/method calls with respect to the implemented functions/methods in your source code (consistent with the class diagram).
  • The implementation of most of the must-have requirements has to be finished. The current implementation (source code, etc.) has to be pushed to the master branch of your GitLab repository by the end of Friday (2019-12-13, 23:59)

 

02.12.2019

Deliverables in Week 7 & Week 8

Deliverables in Week 7:

  • The progress report (incl. time log) and the test plan (as PDF) have to be submitted to the CMS by the end of Friday (2019-12-06, 23:59). The test plan should contain a detailed overview of all the test cases you plan (that is, which... Read more

Deliverables in Week 7:

  • The progress report (incl. time log) and the test plan (as PDF) have to be submitted to the CMS by the end of Friday (2019-12-06, 23:59). The test plan should contain a detailed overview of all the test cases you plan (that is, which components of your application are tested and how they are tested, which testing techniques will be used for which component, how much time is dedicated to testing for which compontent, etc.).

 

Deliverables in Week 8:

  • The following deliverables have to be submitted to the CMS by the end of Friday (2019-12-13, 23:59):
    • the progress report (incl. time log)
    • an updated requirements document (as PDF). If there were any inconsistencies in the requirements document of the first milestone, they can be resolved in the updated document.
    • an updated use-case diagram (as PDF). If there were any inconsistencies between between requirements and use-case diagram, they can be resolved in the updated diagram.
    • an updated UML class diagram (as PDF)
    • and sequence diagrams (as PDF) for, at least, six different use cases (i.e., an updated version of the three sequence diagrams from Week 6 and three additional sequence diagrams for other scenarios). All the sequence diagrams should be as fine-grained as possible, that is, they should contain concrete function/method calls with respect to the implemented functions/methods in your source code (consistent with the class diagram).
  • The implementation of most of the must-have requirements has to be finished. The current implementation (source code, etc.) has to be pushed to the GitLab repository by the end of Friday (2019-12-13, 23:59)
18.11.2019

No Lecture on Tuesday, November 19

On Tuesday, November 19, there is no Software Engineering lecture.

18.11.2019

Deliverables in Week 5 & Week 6

Deliverables in Week 5:

  • The progress report (incl. time log) and the completed GUI paper prototypes (as PDF) have to be submitted to the CMS by the end of Friday (2019-11-22, 23:59). Keep in mind that the paper prototype has to include exceptional scenarios... Read more

Deliverables in Week 5:

  • The progress report (incl. time log) and the completed GUI paper prototypes (as PDF) have to be submitted to the CMS by the end of Friday (2019-11-22, 23:59). Keep in mind that the paper prototype has to include exceptional scenarios (edge-cases).

 

Deliverables in Week 6:

  • The progress report (incl. time log), the completed UML class diagram(s), and sequence diagrams for three different core use cases (i.e., three different  scenarios) have to be submitted (as PDF) to the CMS by the end of Friday (2019-11-29, 23:59).

 

04.11.2019

Deliverables in Week 3 & Week 4

Here is a short remark regarding the submission of the project deliverables this week (Week 3):

  • The progress report (including time log) and the first complete draft of the contract-style requirements document (PDF) have to be uploaded to the CMS. Submission... Read more

Here is a short remark regarding the submission of the project deliverables this week (Week 3):

  • The progress report (including time log) and the first complete draft of the contract-style requirements document (PDF) have to be uploaded to the CMS. Submission is possible until the end of Friday (2019-11-08, 23:59).

For the deliverables of next week (Week 4), please notice:

  • The progress report (including time log) and the final version of the contract-style requirements document (PDF) have to be uploaded to the CMS by the end of Friday (2019-11-15, 23:59).
  • The use-case diagram and the prototype have to be uploaded into the provided repository (also by Friday 2019-11-15, 23:59).

In general, please keep in mind that the "Project Deliverables" column of the project schedule states what has to be submitted at the end of a week (mandatory!). However, the "Expected Project Progress" column contains what we expect you to do within a certain week (as kind of an advice on how to achieve the goals). That is, everything mentioned in the "Expected Project Progress" column does not necessarily need to be submitted (but you should have worked on that and it should be mentioned in the progress report if you have dealt with it).

03.11.2019

Lecture on Monday, November 04, is cancelled

The Software Engineering lecture on Monday, November 04, is cancelled (due to illness).

30.10.2019

No Lecture on Tuesday, November 05

On Tuesday, November 05, there is no Software Engineering lecture.

(The lecture on Monday, November 04, takes place as usual.)

29.10.2019

Progress Report in Week 2

Notice that Friday, November 01, is an official holiday. For that reason, the progress report of this week exceptionally has to be submitted already by the end of Thursday (October 31, 23:59).

As some questions regarding the time log came up, we have updated the... Read more

Notice that Friday, November 01, is an official holiday. For that reason, the progress report of this week exceptionally has to be submitted already by the end of Thursday (October 31, 23:59).

As some questions regarding the time log came up, we have updated the example progress report regarding the time log. The time log should be part of the progress report, that is, for each of the contributions of an individual team member during a week, you should state the amount of time the specific person has spent on a certain task within this week (on an hourly basis). Please see the updated example document in the CMS. It is mandatory that there is a separate paragraph for each team member, even if two or more team members may have worked on the same tasks.

22.10.2019

Project assignment & GitLab repository

The project assignment is finished, you can see your assigned project in the CMS.
The tutor assigned to your project will contact you via e-mail soon to arrange a meeting with the customer and you.

For each project, we provide a GitLab repository in the GitLab... Read more

The project assignment is finished, you can see your assigned project in the CMS.
The tutor assigned to your project will contact you via e-mail soon to arrange a meeting with the customer and you.

For each project, we provide a GitLab repository in the GitLab of the Computer Science faculty. Using this GitLab repository is mandatory. Assistants and tutors will have access to this repository, too. In order to give you access to your repository, you have to login into the faculty GitLab (using the Student-Employee-LDAP):

https://gitlab.cs.uni-saarland.de/

If you don't remember your password for the faculty services of the Computer Science faculty, you can use the following link to reset your password (notice that it can take an hour until you receive an e-mail to reset your password).

https://udo.cs.uni-saarland.de/pw/requestpwd.php

You have to login into the GitLab today by 11:59 PM. In the case of technical problems with your GitLab account, please contact Alex Fauß (fauss@cs.uni-saarland.de). After your successful login, you have an account there, which we can add to your project's repository afterwards (in the next days).

Keep in mind that the first submission of your project's progress report and time log is due on Friday, 2019-10-25. The weekly progress report needs to be uploaded in the CMS on time. In the progress report, every group member has to state what she/he has done in this week. Submitting such a weekly report on time is mandatory for passing the project.

Show all
 

About the Course

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. In this core lecture (9 CP), we expand on earlier exposure to software engineering (for instance, the software lab / SoPra from Saarland University's Bachelor's program) and do a detailed exploration of software engineering topics like:

  • Requirements Engineering
  • Responsibility-Driven Design
  • Object-Oriented Software Design
  • Software Architecture
  • Coding Techniques and Guidelines
  • Software Maintenance and Evolution
  • Software Testing

The course consists of two parts: A project part, in which you work in a team of 5–7 students with a customer to engineer a prototypical software solution to a problem, and a course part, which provides the necessary skills for completing the projects. Assuming that you already know about programming, the course will specifically focus on the early stages of software development (in particular requirements and design) as well as on the late stages (in particular quality assurance).

This is a highly practical course. Most of your grade will be based on the project, the remaining is based on the written exam. You need to pass the project as well as the written exam.

 

Registration


NOTICE: Registration for the course has already ended on October 8, 2019. If you are not registered yet (i.e., registered by October 8, 2019), you cannot participate in this course. Hence, registration for this course is not possible any more. We apologize for any inconvenience.


As practically working on a software engineering project during the semester is a mandatory part of this course, we have to limit the number of participants to 210. Therefore, there is a specific registration procedure for this course, which is explained in the following:

If you are interested in taking part in Software Engineering in winter 2019/20, you need to register for the course in the registration form for this course given above by October 8, 2019. The participants will be determined from the students registered on this Web site by random selection. Admitted students will be notified before the course starts.

Prerequisite for attending the course is basic knowledge on programming concepts (as taught in courses such as Programming 2 and Software-Praktikum).

The course starts with the first lecture on October 14, 2019. On October 15, the software engineering projects will be presented. If you are admitted to the course (i.e., if you have received a notification from us), you have to register for the exam in the LSF/HISPOS system by October 18, 2019. Withdrawal of your registration in the LSF/HISPOS system is possible until October 18, 2019, that is, after that date, you cannot withdraw your registration for the exam any more.

Then, if admitted and registered, you will be assigned to one of the practical software development projects, which will start on October 22, 2019.

Please notice: In the case you are not admitted to the course and you still register in the LSF/HISPOS system for the exam, this will count officially as a failed attempt for the exam.

 

Literature

  • Software Engineering. I. Sommerville. Addison-Wesley, 2004.
  • Software Engineering: A Practioner's Approach. R. Pressman. McGraw Hill Text, 2001.
  • Using UML: Software Engineering with Objects and Components. P. Stevens, R. Pooley. Addison-Wesley, 1999.
  • UML Distilled. M. Fowler, K. Scott. Addison-Wesley, 2000.
  • Objects, Components and Frameworks with UML, D. D'Souza, A. Wills. Addison-Wesley, 1999.
  • Designing Object-Oriented Software. R. Wirfs-Brock, B. Wilkerson, L. Wiener. Prentice Hall, 1990.
  • Design Patterns. Elements of Reusable Object-Oriented Software. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Addison Wesley, 1995.
  • Pattern-Oriented Software Architecture: A System of Patterns. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Wiley, 1996.
  • Software Architecture: Perspectives on an Emerging Discipline. M. Shaw, D. Garlan. Prentice-Hall, 1996.
  • Refactoring: Improving the Design of Existing Code. M. Fowler, K. Beck, W. Opdyke. Addison-Wesley, 1999.
  • Software Testing and Analysis: Process, Principles and Techniques. M. Pezze. Wiley. 2007.


Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators