02162: Course on Software Engineering 2 (e14)
The course starts on Tuesday, Sept. 2, at 815 in lecture hall
303A/45.
On Sept. 2, we will also form the groups for working on the project. Depending
on the number of participants, there should be 7 to 10 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 easier and faster forming the groups during the lecture on Sept. 2.
The course consists of lectures, tutorials, and the work on a project (in groups of 7-10 students).
For 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 815-1200, lecture hall 303A/45:
Lectures, tutorials, and project discussions.
- Friday 1300-ca. 1445, lecture hall 303A/45:
Lectures and tutorials.
- Friday ca. 1500-1700, Group meetings in rooms
A: 210.142, B: 210.148, C: 210.162, D: 210.168:
In addition to theses slots, the group leaders or their deputies will have a
weekly meeting with the teachers (the exact time will be discussed once the
groups and the group leaders are fixed).
Note that, during this course, there will be three presentations by students (see
schedule): The early project
presentation, the presentation of the tutorial results, and the final project presentation, which
will be held by every group. Every participant of the course is expected to be an active part of
at least one of these presentations.
The (preliminary) schedule for the different parts of course can be found at
http://www2.imm.dtu.dk/courses/02162/e14/material.shtml along
with the deadlines for the deliverables and the slots for the presentations. All the material
for the lectures and tutorials will be made available via these pages.
On this web page, you will also find a rough work plan for the project. The exact details will be
fixed in the first week of the semester (when we know the exact number of participants).
Please be aware that, in addition to the above slots, each participant is expected to invest
about 12 hours per week on the project and the tutorials (10 ECTS points correspond to an
overall workload of 270 hours). This work, however, is more flexible
and a matter of your individual and your group's work plan.
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 a software project. Other skills
are not less important:
- social interaction and communication (orally as well as in writing),
- soliciting and defining the exact requirements,
- modelling the domain,
- making architecture and design decisions,
- analysing the models,
- implementing the designed system,
- testing it,
- 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.
|
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 tutorial 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), 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-10 students develop some software. This year, we
start with a completely new project, which integrates smart phones and a web server to
into a system for "smartly" monitoring your home. The details of the project will be
discussed in the first week(s) of the course — and the students will work out
a fully fledged systems specification for that system over the course of the project.
During the process, we will use different technologies for developing android apps and
web applications using Eclipse as an IDE. The underlying technologies will be
discussed in the tutorials in the first part of the course, and you will become acquaited
with the necessary technologies.
Note that we do not expect the participants to know these technologies beforehand.
The tutorial part of the course will prepare you for Model-Based Software Engineering with Eclipse.
But, it is expected that participants have some experience in programming (perferably in Java),
and know UML as a modelling language. If you need to bruch 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. It can be found on the "schedule and materials" page
of this course (see here), which will be updated on a regular basis.
The general structure, however, is
that there will be one lectures and one tutorial per week in the first half of the semester.
The time slots for the lectures and tutorials will be
- Tuesday 8.15-10.00
- Friday 13.00-15.45
The remaining time slots will be used for discussing the project and 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-17 is scheduled for the weekly group meeting.
The attendence of these meetings (in particular the weekly group meeting) is mandatory.
In the second half of the semester, there will be no tutorials anymore. Then, the Friday
slot from 13-15 will be used for lectures, and the Tuesday slot will be used for discussions
of the project and for working on the project.
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. See the evaluation guidelines for some more details.
|
Project |
|
This year, we start with a new project. The idea is to build a flexible and configurable
system for monitoring and surveillance of homes, by using the smartphone and their sensors and cameras.
To this end, the smartphones will be equipped with some apps, that connect to some server that
controls these apps, and allows home owners to remotely monitor their homes, collect and monitor
intersting data and to configure the setup.
This project is done in cooperation and the kind support of the CITIES project. If you are interested, you will have the chance to
pursue some of the ideas of this project in more depth, in continuation of this course.
The project will be discussed in much more detail in the first week(s) of the course.
You can find a more detailed description of the project at
http://www2.imm.dtu.dk/courses/02162/e14/project.shtml.
|
Material and further reading |
|
The course will be pretty much self-contained, and the material for the lectures and tutorials will be provided
via these web pages, and some suplementary material from the internet will
be made available there.
It is not required to buy any books for this course. Howver, the following material might, however, provide useful supplementary information. Note that some of books are available online for DTU users:
- 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).
- Ian Sommerville: Software Engineering.
8th edition, Pearson Education, 2006
(see also http://www.cs.st-andrews.ac.uk/~ifs/Books/SE8/index.html).
- Zigurd Mednieks, G. Blake Meike, Laird Dornin, and Zane Pan: Enterprise Android: Programming Android Database Applications for the Enterprise.
Wiley 2013. (available online http://proquestcombo.safaribooksonline.com.globalproxy.cvt.dk/book/programming/android/9781118240465?uicode=dtv).
- Eclipse online help: Web Tools Project Overview.
- Lars Vogel: Android Development - Tutorial.
May 2014, online: http://www.vogella.com/tutorials/Android/article.html.
- Lars Vogel: Eclipse IDE - Tutorial.
online: http://www.vogella.com/tutorials/Eclipse/article.html.
For those of you who need to read up on UML, here are two
Safari Books on UML,
which are freely accessible for DTU students:
|
|