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
-
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.
-
In this course we have discussed several large-scale architectural patterns:
- Layers
- Pipes and filters
- Blackboard
- Broker
- Model-view-controller
- Presentation-abstraction-control
- Microkernel
- 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.
-
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.
-
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.
- 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.
- 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.
- 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).