Software Project

Swe03
After the introductory assignments you will work together in a team of upto 5 developers to realize a project specified by an internal or external client. As in real life, requirements may change during the course of the project.

Projects

Project Topics

  1. ATerm Visualization (canceled) (Log)
    • Philip Bijker, Potluri Gopi Krishna, Potluri Rajeev Krishna
  2. Benchmarking Framework (Log)
    • Robert van Herk, Peter Nagel, Robert Verrips, Joost Verhoog
  3. Unit Testing (Log)
    • Hanga Boros, Valentina Buffone, Pedro Asseiceiro, Adrian Kentsch, Peter van Keeken, Koen Muilwijk
  4. Software Logistics Environment (Log) (Website)
    • Richard Nieuwenhuis, Guno Heitman, Maarten Kolthoff, Roy van den Broek, Ingmar Brouns, Niels van der Velden, Edwin van Rijkom, Niels Reijngoud, Kang Ning
  5. NixGUI (canceled)
  6. Visualization of Code Duplication (Log)
    • Coert Metz, Joris de Wit, Marcel Blokpoel, Jayant Tewarie, Gertjan van Montfoort

Getting Hired

In order to get onto one of the projects you should submit a list of the four projects in the order of your preference. For each project you may include a statement saying why you think you would be a good developer for this project. Applications should be sent in using the submit system (name of 'opgave' is ProcessRegistration) and should also contain your name and student number. For consideration you should be officially registered in the Osiris system. The deadline for applying is Thursday, September 4, 15:00. The results will be announced on Friday, September 5.

Organization

Project Meetings

In the weekly project meetings on Monday afternoon (after lecture), teams make plans for the coming week. Clients may be present during some of the meetings.

Project Reviews

During the weekly project reviews the teams present their achievements of the week to the class and clients. Each week a different theme will be announced, which the presentation should focus on.

Project Infrastructure

  • Linux or Windows with standard build tools
  • Subversion repository
  • Mailinglist
  • Maybe: XPlanner
  • Maybe: Buildfarm

Deliverables

Project Milestones

  • Process: choose an appropriate process model?
  • Planning: make a planning for development and releases
  • Architecture: make overall design
  • Infrastructure: set up working environment
  • First release (0.1): present a first working release at an early stage
  • Second release (0.2): a more mature version to test deployment
  • Final release (1.0): release and deploy the final result

Requirements

The following requirements are made on all projects. Teams should show that these requirements are complied with.

  • Use a defined process model
  • The process model should include planning
    • Plans should be executed
    • In the case a plan proves infeasible it should be adapted, this should be announced and be traceable
  • Specify requirements
  • Use software configuration management
    • all artefacts should be under version management
    • builds should be automated, if not possible a build cookbook should be maintained
  • Provide tests, preferably automated unit and integration tests
  • Keep software maintainable
  • Deploy the product to the client
  • Use good design and coding practices

Project Budget

The project is paid by the customer in grade point units. The maximum budget is the number of developers times 100. Negotations between development team and customer determines how much units are earned by which milestones. It is in the interest of the customer to keep prices low to keep budget to spend on more advanced features. It is in the interest of developers to make a realistic plan.

The team is free to distribute earned grade points over team members in any way it seems fit. It is in the interest of the team to reward work that has actually been done, rather than necessarliy distribute grade points evenly. Distribution is decided by a majority vote. It is in the interest of team members to pull their weight in order to claim points. A team may make up to team members who are not contributing, but this will be at their own expense. A team may also decide to reward their star programmer with extra points.

Grade points are paid upon delivery of the milestone product. The customer may protest against the functionality or quality of the delivered product and pay less. In order to prevent such conflicts a good documentation of promissed features is important.

The project grade for each member is his/her salary divided by 10.