Project-work information, PUM-I, TDDB062 Goal

advertisement
Project-work information, PUM-I, TDDB062
Date: 2001-09-18
Goal
The projects are there to give you experience. For some of you this is the first time you participate in a practical development team. The world is not perfect and the goal is not to create
a perfect solution to the task you will get. The goal is to learn as much as possible from trying
to create a feasible solution.
Organisation
The projects are performed in four system groups, all with the goal of creating a scheduling
system for a university.
Each system group is divided in five component groups of 6-8 persons each. If we can not
fill all component groups we might split an 8-person group to two smaller groups.These groups
are responsible for one component each of the system, namely:
1. A database holding all information about the schedule, teachers, courses and studygroups.
2. A set of optimization algorithms that will calculate the best schedule given the wishes and
constraints.
3. An applet for navigating for students and teachers. It should be possible to check your
schedule from a URL.
4. An application for teachers giving input to the system, such as slots needed for the course,
preferences of distribution of activities and constraints.
5. An application for administrators optimizing the entire scheduling of the university.
Each component group should have a project organisation with at least an identified project
leader. Other roles are up to you. You are supposed to negotiate interfaces with other component groups in your own system group. The components should be specified, designed, coded,
tested, demonstrated and hopefully also integrated with the other components in the same system group.
This is problem-oriented education, so you need to find the information from many sources.
We will give you hints, but not solutions.
There are 8 project weeks distributed as follows:
project
week
real week
number
1
40
2
41
3
43
4
44
5
45
6
46
7
47
8
48
Each component group will meet an hour every project week with the appointed instructor.
Each system group will have two seminars, preliminary these will take place October 25 th
13-15 and December 4th 10-12. All component groups shall present their plans and results at
these seminars with the instructor and the rest of the system group as audience.
Each component group is required to hand in the following documents to its instructor:
1. a requirement specification, (Dead-line 2001-10-12)
2. a design description, (Dead-line 2001-11-05)
3. a test report and (Dead-line 2001-11-30)
4. an experience report (Dead-line 2001-12-07).
The experience report is very important and the instructor will give you written feed-back on
that. The other documents will be discussed during weekly meetings. I will provide you with
some suitable headlines for the documents. Mainly they are a selection from IEEE standards.
You might need to adapt the headlines to suit your particular project.
The project part is 2.5 academic credits which corresponds to at minimum 100 hours work
per person. For a six-person group this means that we expect you to spend 600 hours in total.
Examination
To pass the project you should have:
1. Participated in a project group, which has fulfilled the specification, design, coding, testing,
demonstration and integration of a component. The software should perform calculations
and data processing in a 3rd generation language, such as Java, C++, LISP or Ada. It is
not sufficient to only link a set of HTML-pages to display an intended behaviour even
though this might be a part of the system.
2. Participated in a project group which have handed in a requirement specification, a design
description, a test report and an experience report before the dead-lines above.
3. Participated in the two system group seminars.
The project work will be graded with UK, 3, 4, 5 per component group by the instructor, who in
turn conferences with the examiner. (You probably have to behave really odd to get a UK.)
Higher grades are given to groups who either produces a lot and/or learn a lot. Your individual
grade is derived from the table below,
Grade from written exam
Grade from project work
Final individual grade
UK
UK, 3, 4, 5
UK
3, 4 or 5
UK
UK
3
3
3
3
4
4
3
5
4
4
3
4
4
4
4
4
5
5
5
3
5
5
4
5
5
5
5
Please note that this table is valid only for the three exams that belong to this study-year (October, January, August). I can not promise that the course will be organised by me next year.
Project start
You will sign up for a component group on a list of my door. There will be four system groups.
Group number 4 is especially dedicated to groups who want to try the eXtreme Programming
paradigm. You are not forced to use XP in system group 4, but the instructor is prepared of
supporting those who want to try.
The components within a system group will be assigned by random. You are free to change
components within the system group.
If I were you...
As you see from the Examination requirements you are almost free (and responsible for) how
you organise your work and realise the software. You are supposed to run into real-life difficulties and solve these the best you can. However, I’m not a purist in PBL so I will give you some
hints that I would have followed if I had your assignments.
Apart from the project manager, I would specify and assign the following roles:
• Architect with the technical responsibility. The architect negotiates interfaces with other
component groups and is responsible for writing the Design description.
• Test leader. Testing comes late in the projects and needs to be thoroughly planned. If noone is responsible it is so easy that this is forgotten. The test leader is responsible for the
Test report.
• Knowledge manager who is responsible for recording the experience gained during the
project. Such a person keeps track of questions, decisions and remarkable events. This
record is the basis for reflection which goes into the Experience report.
Note that one person can have more than one role.
I would also strongly recommend you to make a planning document with some kind of regular follow-up. One good thing is to create a time diagram of mile-stones. As the project goes
on, new estimates for mile-stones are added on top of the original one. Example:
project weeks
= milestone
= current time
3
2
1
0
calendar time
For a short project like this I would run a water-fall model with 2-3 ambition levels. The requirements will be grouped in these levels and the plan should aim for fulfilling the highest ambition level. If I run out of time later in the project I will cut high-ambition requirements.
Configuration management is important. Either I would use cvs or a binder where the latest
version is always available. It might be a good idea to appoint the role of a project librarian.
Keeping up a good spirit is important. At least twice I would do something fun or relaxing
with my team, such as a longer coffee-break with apple-pie, good lunch, bowling etc.
Document deadlines are important. You should plan to deliver the documents a day or two
in advance. Printers are never reliable and you might need to reinspect some parts. Inspecting
a document is a powerful way to increase quality. I would at least inspect the Requirements
specification and the Experience report with all team members before delivery.
Use the tools that are available, we have Rose and JBuilder, maybe you can find other good
solutions. In Rose I would use use cases and identify classes that can realise these. I would
probably not invest too much into other diagrams for this short project.
In the course we will offer you to try the Blackboard system, you will get an URL and a password to access the system if you are on the course mailing list. This system can be used for
communicating technical issues by, for instance, creating link libraries, broadcasting messages, creating focused discussion groups. There is even a virtual classroom. You should at least
read the announcements.
Good luck!
Kristian
Download