2D1363 Software Engineering
NOTE: All teams will be working on the same project.
The course project will be the design and implementation of a program called SPREADSMART – A Deductive Spreadsheet. In class, you will be given the following two items:
1. An actual recent Request for Proposals (RFP) from the Defense Advanced Research Projects Agency (DARPA – the folks that brought you the ARPANET which later came to be known as the Internet).
2. A complete proposal for constructing the system described in the RFP.
Your job will be to:
1. Perform a requirements analysis.
2. Do a design based on your requirements analysis.
3. Produce and carry out an implementation plan.
4. Produce and carry out a test plan.
Note that this work will extend over periods 2, 3 and 4.
Your work will be based on the proposal that I have supplied, but you do not need to follow it exactly – feel free to make your own variations. In fact, if you have better ideas on how to build a Deductive Spreadsheet than those presented in the proposal, by all means follow them. This is a difficult problem and I expect that most of you will not be familiar with the subject area. That is why I have provided a completed proposal as a guide.
You will be required to complete and hand in the following documents:
1. Project Analysis and Development Plan (PADP)
2. Design Document (DD)
3. Implementation Schedule – Format Specification
4. Test Plan (TP)
5. Project Postmortem
These documents must be produced according to the templates/guidance provided (follow the links).
In order to give you an idea of how to fill in the templates for items 1 and 2, I have included samples for a Monopoly type game project. This should give you a good idea of what I expect from you. These sample documents are pdf files and can be found at:
If these documents seem intimidating to you, that is because they are!! Software Engineering is hard work. But don’t worry – you can do it! I have complete confidence in you all.
You will work on this project as part of a team (approximately 4 persons) to which you will be assigned. I expect each team to meet at least once a week. At your first meeting, you will need to decide on who is going to be team leader. I also suggest that you select an alternate team leader in case the actual team leader can’t fulfill his or her responsibilities due, for example, to illness. I expect you to decide on how you are going to function as a team. I will provide some advice on how to do this at the lectures. The team leader will be responsible for filing the weekly progress reports that are required as well as the required documentation described above. This position will rotate during the course of the project. The first team leader will be responsible for the 4 reports that are due during period 2.
Here is the schedule of project events for period 2:
10/29: Register with the RES system for the course.
11/1: Receive team assignments.
11/8: File Progress Report 1
11/15: File Progress Report 2
11/22: File Progress Report 3
11/29: File Progress Report 4
12/20: File Project Analysis and Development Plan
Here is the schedule of major project events for periods 3 and 4 (subject to change with 1 weeks notice)
Week 3 (17/1 - 21/1): PADP review meetings.
31/1: PADP rewrites due.
21/2: DD due.
Week 9 (28/2 - 4/3): DD review meetings.
14/3: DD rewrite due.
14/3: IS due.
Week 14 (4/4 - 8/4): IS review meetings.
18/4: TP due.
Week 17 (25/4 - 29/4): TP review meetings.
9/5: TP rewrite due.
Week 20 (16/5 - 20/5): Final Project Due
27/5: Project Postmortem
Progress reports will be due on the following days:
17/1, 24/1, 31/1, 7/2, 14/2, 21/2, 28/2, 7/3, 4/4, 11/4, 18/4, 25/4, 2/5, 9/5.
Each of the reviews will be held on an individual group basis and will last roughly 20 minutes. Attendance at the review meeting is mandatory for all team members unless an individual team member has obtained a prior exception from me at least 3 days before the meeting. You will be able to sign up for a time on signup sheets outside of Rand’s/Inge’s office (you will sign up with the person to whom you normally send your progress reports). I will announce when the signup sheets are available for each review. The purpose of each review is to go over with you the documents that you will hand in and notify you of any suggested/required changes. The document rewrites will be due on the days shown (2400 as usual).
Meetings will be scheduled during the week specified on an individual group basis (also by means of signup sheet) for the final project presentation. We will expect you to be prepared to answer questions and demonstrate your code on any of the test cases that you have specified in the TP. No additional written documentation will be required at the presentation.
The Project Postmortem is a 2 or 3 page document that sums up your experiences on the project. It is a chance for you to look back on your work and experience on the project and do a little self evaluation. It should include a description of the things you did wrong, the things you did right, and the lessons you have learned.