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.
  1. (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.

  2. (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.

  3. (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.

  4. (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).


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