SEOC2: Assignment 1
Clarifications posted after the original announcement are shown in
red.
In most paid employment as a software programmer, you will be
coding in a domain with which you are not personally familiar. The
biggest issue is often how to translate from what a user says that he
or she wants into a specific plan for developing a software system,
and how to be sure the end result will really represent something that
will serve the users' needs. End users are rarely technologically
adept (that's what you get paid for!), and thus rarely express their
needs specifically and precisely.
In this assignment you will analyze an informal description of a
user's software requirements in anticipation of constructing a
well-defined proposal for a specific software package. The task is
deliberately and realistically open-ended, and you should make
note of anything that seems wrong, incomplete, dubious, confusing or
otherwise needing further investigation. Identifying such areas is an
important part of real system development.
The problem
The company you work for, a medium sized software package
developer, is considering developing a commercial software package
whose primary purpose is to help new parents to organize their lives
during pregnancy and early childhood. The chief executive of the
company decided that such software should be built after receiving
the attached email from his or her
spouse.
Obviously, many of the features mentioned in the email are at best
difficult, and some likely impossible, to implement. Yet in all likelihood,
there is a subset of them that would be useful to some customers, and
part of the task will be to decide which can feasibly be implemented.
The assignment
You have been volunteered by your manager 3 levels above you to do the
following tasks. Your immediate manager has agreed to you doing the
work, but hasn't yet seen even the information you have about the
proposed system.
- (25 marks) Some of the numbered requirements in the ParentMagic
email can be considered User Stories, in XP's terminology, while
others are generic or non-functional requirements
that apply to all or many of the remaining requirements. For
instance, a requirement that the software should fit on a floppy
disk, or one that it should respond quickly to all keypresses, would
not represent a specific user story of a feature that could be
implemented and tested on its own. Decide which of
the requirements fall into each of those two categories, and list
their numbers. You may need a third category for items that are not
clear enough to be categorized yet, and would require further
discussion with the customer. In one paragraph, justify your
categorization decisions, mentioning specific difficult-to-classify
requirements if necessary.
- (25 marks) Develop a Use Case model (as in UP) from the set of
User Stories from question 1, ignoring your other requirement
categories for the time being. Include even the use cases that you
do not expect to be practical to implement. You can use any
software package or drawing program you wish for this purpose, but
you will need to convert the result to PDF format for submission.
For each use case diagram, include a brief textual description, and the
number of the corresponding requirement(s). Note clearly any
assumptions you had to make about the user requirements.
Please note that the use case model includes only
the "initial use-case diagram" shown in the
Methodologies notes,
i.e. the part focused solely on the user. The other UP models
in the Methodologies
notes are part of the analysis and design, i.e. things needed by the
programmers and not the user, and are not part of the use case
model.
- (25 marks) Assume that the software would be developed by a
team of about four full-time members, including yourself. Roughly
estimate the time in days or weeks you expect to be required to
implement each of your User Stories in isolation, using whatever
estimation method you wish.
Please briefly describe your estimation method and
its assumptions.
- (25 marks) Assuming you are using the XP methodology, select a
small subset of the time-estimated User Stories that you think your
team could implement and ship to the customer in one month, focusing
on the most important ones whose implementation is clear. Write, in
the form of an email message to the customer who wrote the original
requirements email, a short description of what the software will do
by this stage, and why you believe that will be helpful to the
user. Your email should be in the range of about
500-750 words.
Submission
Your work must be submitted by 10am Monday, 7 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 or PDF text files named 1.txt, 2.pdf, 3.txt, and
4.txt. Late submissions 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 cw1 1.txt 2.pdf 3.txt 4.txt
submit msc seoc2-5 cw1 1.txt 2.pdf 3.txt 4.txt
Note that 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).