DTU 
 

 

02162: Course on Software Engineering 2 (e20)

The course starts on Tuesday, September 1, at 800 in lecture hall 303A/45. Due to Corona, there will also be the possibility to participate online via DTU's streaming platform and zoom (the details and access information will be made available via CampusNet/Inside).

 

During the lecture on September 1, we will also form the groups for working on the project. Depending on the number of actual participants, there will probably be five groups with 7 to 8 students per group. If you want to be in a group together with some particular students, please, prepare a list of those students (up to 7 students who are registered for the course and are committed to fully follow through this course and the project). This will make it more efficient to form the groups during the lecture on September 1.

 

The course consists of lectures, tutorials, and the work on the project (in groups). For some parts of this course, there is a fixed schedule (e.g. lectures, tutorial, and project meetings), which will, generally, be held in the following slots:

 

Tuesday 805-1200, lecture hall 303A/45: Lectures, tutorials, and project discussions.
Friday 1300-ca.1500, lecture hall 303A/45: Lectures and tutorials and project work.
Friday ca. 1515-1700, group meeting, building 210, rooms 008 (group A), 018 (group B), 110 (group C), 112 (group D) and 118 (group E).

 

Note that, during this course, there will be three presentations by students (see schedule), which will be held by each group. Every participant of the course is expected to be an active part of at least one of these presentations. In addition, there will several brief status report from each group in some of the project slots on Friday 13-15.

 

The (preliminary) schedule for the different parts of the course is available at the course's "schedule and material page": http://www2.compute.dtu.dk/courses/02162/e20/material.shtml, which includes the deadlines for the deliverables (releases) and the slots for the presentations. All the material for the lectures, tutorials and project will be made available via these pages or in the CampusNet/Inside group for this course (confidential or private material). On this web page, you will also find a rough work plan for the project. More information, details and material will be added over time.

 

Please be aware of that, in addition to the above slots, each participant is expected to invest about 12 hours per week on the project (10 ECTS points correspond to an overall workload of 270 hours). This work, however, is more flexible and subject to the individual students' and the groups' work plans. But, due to the agile development approach, programming should always be done in pairs.

 

Objective
Sometimes, we are tempted to believe that making software is programming—just bigger. But, this is not at all true.

For developing software, we need good skills in programming, of course. But, this is not enough for successfully completing larger software projects. Other skills are not less important:

  • social interaction and communication (orally as well as in writing),
  • soliciting and defining the exact requirements,
  • making modells and using them for communicating ideas,
  • analysing the models,
  • making architecture and design decisions,
  • refactoring the software,
  • implementing the designed system,
  • testing,
  • using state-of-the-art technologies (or to acquire new ones), and
  • project management.

The course on Software Engineering 2 (02162) will help acquiring these skills.

 

The special nature of this year's project (see below) made it necessary to chose a more agile approach to software development. So, this year, the course will also cover agile development and agile practices.

 

Structure
In order to acquire these skills, the course consists of three main parts: lectures, tutorials, and the project, where the focus is on the project. The lectures and tutorials provide the necessary theoretical and technical underpinning for the project.
  • The lectures will provide an overview on the software development process (and some of today's process models), its practices, the documents and notations used, and the underlying concepts of modern software development technologies.

     

  • The tutorials will give some more insights into the details of some concepts and technologies used in the project. In particular, the tutorials will help developing the skills to acquire new technologies and tools.

     

  • In the project, groups of about 7-8 students will develop some software. This year, the project is about software for the LiRA project, which is about collecting data from modern cars via sensors. These data are then used to derive the condition of the roads, which in turn can be used for planning and executing road maintenance. More details will be presented in the first week of the course.

     

    In the project, we will use different technologies. Note that it is not expected from the participants to know these technologies beforehand; but, students must have programming skills in some object oriented programming language. The tutorial part of the course will prepare you for using the additional technologies. In addition, you should have some knowledge of UML as a modelling language. If you need to brush up on your UML, please have a look at the material provided below.

     

The exact schedule for the different parts of the course is not yet fixed and might be subject to change. A preliminary schedule is available be on the "schedule and materials" page of this course, which will be updated on a regular basis. The general structure, however, is that there will be one lecture and one tutorial per week in the first half of the semester. The time slots for the lectures and tutorials sessions will be
  • Tuesday 8.00-10.00
  • Friday 13.00-15.00

 

The Friday session will also include some mandatory status reports from each group. The remaining time slots will be used for working on the projects — some slots are used for group work, some slots are used for plenary discussions of the project. In particular, Friday 15.15-17.00 is scheduled for the weekly group meetings. The attendence of these group meetings is mandatory. But, due to the agile development in the project, it is strongly recommended that all students are present for the other sessions, too.

 

There will be no final written examination. Instead, the evaluation will be based on the deliverables and presentations during and at the end of this course, and how the students individually contributed to their group's result (more details will be announced later).

 

Project
This year, the project is about software for the LiRA project, which is about collecting data from modern cars via sensors. These data are then used to derive the condition of the roads, which in turn can be used for planning and enacting road maintenance processes. More details will be presented in the first week of the course.

 

The project leaves some freedom for the groups to define their own special features; groups can even propose some own features. But, there are some minimal requirements that all groups need to meet, which will be discussed in the lectures and project presentations in the first week of the course.

 

Material and further reading
The course will be pretty much self-contained, and the material for the lectures and tutorials is provided on the course's "schedule and material" web pages; also some supplementary material from the internet will be made available there.

 

It is not required to buy any books for this course. The following material, however, might provide useful supplementary information. Note that some of books are available online for DTU users:

  • Kent Beck: Extreme programming explained: Embrace Change. Addison Wesley, 1999. (available online for DTU students via online via findit.

  • Eric J. Braude and Michael E. Bernstein: Software Engineering: Modern Approaches. 2nd edition. Wiley 2010 (2011).

  • Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software. 1st edition, Addison-Wesley Professional Computing Series, 1995. (see also Amazon Online Reader).

  • Ron Jeffries, Ann Anderson; Chet Hendrickson: Extreme programming installed. Addison Wesley 2000. Available online via findit.

  • Ian Sommerville: Software Engineering. 8th edition, Pearson Education, 2006 (see also http://www.cs.st-andrews.ac.uk/~ifs/Books/SE8/index.html).

 

For those of you who need to read up on UML, here are two books on UML:

  • Grady Booch, James Rumbaugh, Ivar Jacobson: Unified Modeling Language User Guide. Second Edition, Addison-Wesley Professional, 2005.
  • Martin Fowler: UML Distilled: A Brief Guide to the Standard Object Modeling Language. Third Edition, Addison-Wesley Professional, 2003. Also available online via findit.

 

Online information

  • Added on a running basis

 

Ekkart Kindler (), September 3, 2020