SEOC2: Assignment 2

This project is a team-based extension of the task from Assignment 1, based on the Parent Magic email. The goals of this assignment are to compare your earlier individual experiences of design and planning with similar tasks done in a team, to gain experience applying architectural patterns to large-scale design, and to appreciate the effect of external tools and systems. Just as for the first assignment, your mark will be based on how well you have considered and anticipated the important issues, how feasible your plan seems to be, and how well you present your work and express yourselves. You will not be judged on how closely you match some pre-determined correct answers.

I have assigned each person to a team of about six people; see the list online. Each team will need to select one leader, who should email me his or her name and the names of the other team members by Tuesday, 7 February, noting if there has been difficulty establishing contact with any of them. The leader will be responsible for submitting the final assignment, and for notifying me (as a last resort) if a team member has been entirely unavailable or has done no work or preparation.

How you divide the work is entirely up to each team, although you should discuss all of the issues together at least once. Classtime will be provided for your initial group meeting.

The assignment

  1. Meeting with your team, discuss and compare your answers to question 4 of assignment 1 (your emails describing what user stories you will implement in the first iteration, and why you think that version of the system will be useful to the customer). Decide which of these emails is most convincing and plausible as a plan for what your team should implement. Revise the email with your specific team in mind, taking into account your team members' skills and backgrounds, tools you actually have available, the difference in team sizes, lessons learned since assignment 1, and so on. Plan as if your team would be able to work full-time on the project for the month, without other coursework, jobs, etc. Submit the revised email as a .txt file; it should follow the guidelines from assignment 1 except as noted here.

  2. In this course we have discussed several large-scale architectural patterns:

    1. Layers
    2. Pipes and filters
    3. Blackboard
    4. Broker
    5. Model-view-controller
    6. Presentation-abstraction-control
    7. Microkernel
    8. Scripted Components

    Each group will be assigned one of these patterns at random. Discuss with your team whether your assigned pattern would be an appropriate way to begin implementing the system you describe in question 1. Submit a .txt file describing what the advantages and disadvantages of using this particular pattern would be for implementing your chosen user stories, in about 300 words. It is acceptable to think that the pattern would simply not be appropriate for this project, but if so you would need to explain why not and under which conditions it would be appropriate.

  3. Of the architectural patterns in the list above, other than the one your group was assigned for question 2, your team should choose the remaining one that would be most appropriate for implementing the system you describe in question 1. For this second pattern, explain why this pattern is (or is not) more appropriate than the one you were assigned. Are the two patterns useful to apply together? Submit a 300-word .txt file as in question 2.

  4. Decide with your team what language(s), computing platform, external components and libraries, etc. will be appropriate for implementing your project. Only include packages and languages that actually exist already and could be used for this project if started today. If any will require payment, list the costs required and whether the costs will apply to the end-user as well, or are simply part of the development cost. In a .txt file, list the packages, libraries, languages, etc., and describe in about 300 words why you chose these approaches and why they will help you implement your system.

  5. Briefly research potential existing competitors to your software package. In a .txt file, list these competitors and discuss in about 300 words how your proposed system will improve on what is already available, and whether you expect the competition to be a significant factor in the success of your product.

  6. If your team has six or more members, discuss your exeriences in working with a team on this project. Was the work easy to divide between team members? Do you think that the number of people times the amount of time each spent would be a good approximation to the time it would take one person? I.e., was there team synergy, with a better result achieved more efficiently than one person could do alone? Or would it have been more effective to have one person do it all, even if it took longer? Would it have actually taken less time with fewer people involved? Discuss these issues in a .txt file of about 300 words.

  7. Once the assignment is nearly complete, the team will need to come to a consensus estimate of how much effort each person put in, expressed as a fraction of the total, which should be submitted as an additional .txt file. By default this would simply be 1/6 for each member of a 6-person team, but if there is agreement that some have done substantially more or less, you may report different fractions. The team grade will be multiplied by each fraction to get the individual grades. Since this is an exercise in working as a team, it is expected that you will be able to handle the credit allocation yourselves. However, in extreme and unusual cases where the team is unable to decide on an allocation, the team leader can email me the particulars of the dispute, and ask that I make the final allocation.

Submission

Your work must be submitted by 10am Monday, 21 February, using the submit command on Informatics DICE machines (type man submit for more details). Your work should be in the form of plain ASCII text files named 1.txt, 2.txt, 3.txt, 4.txt, 5.txt, and 6.txt. Late submissions will not be accepted without good reason, and will be penalized according to the standard university policy of 5% penalty per working day or part of a day.

Examples of submit commands, one for a UG4 student and one for an MSc student:

submit cs4 seoc2-4 cw2 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt
submit msc seoc2-5 cw2 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt

Note that as for assignment 1, because the underlying requirements are poorly specified, you will need to structure the time you spend on this assignment so that it makes sense in the context of the course (where this particular assignment is worth 10% of your final course mark).


Home : Teaching : Courses : Seoc2 : 2004_2005 : Coursework 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh