/DAT255

Software Engineering Project

Software Engineering Project - HT13

Course Description

Software remains malleable, often illogical, and incomplete forever. Sequential approaches to software development, such as the waterfall model, assumes that it is possible to take every single variable that could affect a project into account beforehand. Considerable effort is spent to identify risks, plan mitigation, and what consequences these may have. From a traditional product perspective, this can be compared to creating an assembly line to produce software.

Given the nature of software, is it really feasible to identify all variables beforehand? Iterative and incremental approaches accepts that changes are inevitable and integrates change management into the development process. Agile approaches promotes iterative and incremental development by using a very tight design-code-test cycle. If we again use a traditional product perspective, this can be compared to new product development.

In this course you will teach you how to design and develop software, and to manage projects, using these agile principles:

  • The customer is a part of the development team Incremental development
  • The developer should not be hindered by the process
  • Embrace changes
  • Continuous refactoring (restructuring) of the design

After passing the course, you will be able to lead agile projects, work without a detail schedule, use test driven development, refactor programs, be part of a programming pair, and much more.

Teachers

TAs

Student Representatives

Fast questions?

  • Join #SEProject @ irc.chalmers.it

Course Litteratur / Recommended reading

Lectures and Tutorials (In progress…)

Below you can see the date, time, room and themes for the lectures. There is also a detailed schedule in TimeEdit.

Date & Time Room(s)   Theme Who Slides
2/9 10:00-11:45  HC4 Introduction ME 1
4/9 10:00-11:45  HC4 Software Engineering and XP ME 2
9/9 10:00-11:45  HC4 SCRUM TL 3
11/9 10:00-11:45  HC4 Git and Android ME 4 Video
16/9 10:00-11:45 HC4 Quality and Testing ME 5 Video: 1,2
18/9 10:00-11:45 HC4 Technical Assistance Session
23/9 10:00-11:45 HC4 Project Management TL 6
25/9 10:00-11:45 HC4 Technical Assistance Session
30/9 10:00-11:45 HC4 Design and Architecture ME 7
2/10 10:00-11:45 HC4 Technical Assistance Session
7/10 10:00-11:45 HC4 Scaling Agile TL
9/10 10:00-11:45 HC4 Technical Assistance Session
14/10 10:00-11:45 HC4 Lean and Flow TL
16/10 10:00-11:45 HC4 Technical Assistance Session
21/10 9:00-11:45  EC Project handoff (Schedule) ME
22/10 9:00-11:45  EC Project handoff (Schedule) ME
23/10 9:00-11:45  EC Project handoff (Schedule) ME

There will be a tech lab in HC4 every Wednesday at 10:00-11:45 from Sept 19 to Oct 17. Tutorials/supervision sessions with be either Tuesdays or Wednesday at 10:00-11:45. Your supervisor will assign you a time slot and a room (please discuss any changes to this with your supervisor).

Pitch Sessions (Tue Sept 10) for Ideas

Please check the groups list to find your group number. Contact Morgan ASAP if you cannot find your group in the list! Note that we use three parallel sessions and that your slot is 15 mins.

Hand-ins

You will release a version of your project every Friday. For each release we will introduce additional critera that are used to "judge" the release.

Course Week What to include / what will be checked
1 Form a group and submit three app ideas
2 Submit a vision (with features) for your selected app
3 Release 1: Your should have a Git repo with an initial version of your app
4 Release 2: focus on testing
5 Release 3: focus on code quality*
6 Release 4: Final release, focus on product quality
7 Release 5: Bug fixes and polish
8 Post-mortem report

*Among others: readability, consistency, stability, correctness, conciseness, documentation in the form of comments and good naming conventions.

Examination

Every group should submit the following at the end of the course:

  • Working Android app (APK)
  • Documentation (produced during the project):
    • Vision
    • A few user stories
    • Developer documentation (information relevant to people who work on the project)
      • How does the build process work
      • What major parts / components are there in the application
      • Design decisions (such as API level, etc.)
      • ...
    • User manual
  • Post-mortem Report

Each group will be given 10 + 5 mins to present their application. The presentation should introduce the app (including the major features), interesting design decisions, the process, and a brief reflection.

Every person should submit a brief evaluation of the group. Imagine that you have a budget of $10 per group member, not including yourself (so, $60 for a group of 7). How would you distribute this "pay" among your group members, based on their value and contribution? Note that you are not allowed to pay everyone the same amount! Email your evaluation (name and amount for each group member not including yourself) to morgan@cse.gu.se no later than Oct 27 24:00. (The evaluation will not affect the group grade, it will only be used to determine individual variation within a group. However, if you do not submit this evaluation, you will not pass the course).

You can find more information about the grading policy in the wiki.

Sample project

To give you an idea of what a project might look like in the end, we've been authorized to publish this project which was made during the fall semester (2012).

WatchMe for Android