Coursework 1

Motivation

This coursework has three aims:

• to allow you to demonstrate your understanding of the development process and of the importance of architectural decisions in the context of a realistic system development;

• to make sure that you have had some exposure to using a CASE tool to produce UML models;

• to check your ability to produce correct UML models. (Marks for UML syntax are easy both to gain and to lose!)

I would like to encourage you to comment in your answers (especially part 6 below) on anything that seems wrong, incomplete, dubious, confusing or otherwise needing further investigation: identifying these areas is an important part of real system development.

Instructions

The deadline for submission of this work is 17:00 on Friday November 13th. Submission is by email to Perdita.Stevens@dcs.ed.ac.uk. (MSc students: if you still have temporary addresses at that point please include your name, and let me know when you do get a real address!) Please submit the textual parts of the question as plain ASCII text, and the diagrams as either a single Rose .mdl file, or Encapsulated PostScript (.eps) files or, in the unlikely event that you can’t produce EPS from the tool you use, as paper. You may send the files as MIME attachments: if you choose not to, please make sure your mailtool is set up not to split lines or otherwise interfere with the files you send (e.g., by mailing them to yourself first and checking that you can still view them).

Late submissions will get 0 unless I have agreed with you before the deadline that you may have an extension. Even then, there will be an automatic penalty of 10% per day or part of day late, unless I have agreed that you have an exceptionally good reason for needing to submit late.

CASE tools

The standard CASE tool, installed on the Suns here, is Rose98 (a more up to date version of Rose than the one some of you used for SEOC1, but very similar, and I am afraid similarly slow). Start this using the command “rose”. If you prefer to use some other UML-supporting CASE tool instead of Rose, you may do so; there are now many such tools, especially for NT, with free demo versions available (usually limited either by time or by number of classes, but sufficient for this coursework) and there is a link to a lot of information from the course’s home page. If you use anything other than Rose, please include in your submission a statement of what it was that you used and what you thought of it – a few words will do. Note that because exposure to a CASE tool is one of the aims of this coursework, you must use some CASE tool, not a general purpose drawing package. It would be a kindness to let your colleagues know if you’ve downloaded something they could use too. Note also that not all CASE tools implement UML completely or correctly: if you find that your tool forces you into a UML error, add a note explaining how it should be to avoid losing marks. Some tools don’t support deployment diagrams and/or component diagrams: in that case you may use xfig or similar for those parts.

The problem

The company you work for, a small software package developer, is considering developing a software system to help users of PDAs or notebook computers to keep their file systems up to date with their home file systems. It has been suggested that the system should be targetted at users of Unix, since competing products are already strong in the PC and Mac sectors. However, versions of the product for other operating system might well be required in future, so the initial development should consider future reuse.

You are to be the project manager on this project: it will be the first time you have managed a project. The person assigned to be the architect has been taken ill, so for now you have to fulfill both functions. The company normally uses the Objectory process: anything else has to be justified.

The assignment

You may do the parts of the question in any order: the order given here is what I would probably do.

1. (25 marks) Write, in the form of an email message to the Managing Director, a brief description of the proposed project. Summarise the benefits and risks to your company of undertaking the project. Where possible, mention actions you will take, as project manager, to mitigate the risks and maximise the benefits. Comment on the implications for the project of the need to plan for future versions. (You may wish to mention other potentially profitable future enhancements too.) You should assume the MD never reads emails which are more than 750 words long, and is more likely to read to the end if you stay below 500 words: you will have to write clearly and concisely. (In a “low ceremony” project, this email might mark the end of Objectory’s Inception phase.)

2. (15 marks) Develop a component diagram for the system, including the dependencies. Each component will be developed by a separate person or small team. You should ensure that the architecture you choose will support the foreseeable needs of future versions. Describe the responsibilities of each component – one sentence for each should suffice.

3. (10 marks) Develop a deployment diagram for the system, showing how the instances of the components you showed in 2 are deployed.

4. (10 marks) [Included for convenience in this exercise: realistically, this is a question which would arise later in the project] If the system needs to include a model of the file system, with one object per file or directory, this could be done using the Composite pattern. Develop a class model to demonstrate this. Briefly say whether you think this technique is likely to prove useful or not in this system, and why.

5. (15 marks) Develop a (very high-level) sequence diagram demonstrating the communication that takes place between instances of the components you modelled in part 2 to support the scenario in which the user requests a synchronisation but in fact no changes are required. Use one life-line for each component instance which takes part in the interaction, and ignore communication internal to a component. Use the more elaborate form of sequence diagram: show activations and return arrows and number the messages with the standard nested numbering scheme. Record on the diagram the constraint that the whole interaction should take no more than 45 seconds.

6. (30 marks) Write, in the form of an email message to your team, briefing notes for a team meeting to discuss how to proceed with the development of this system. You should include a list of your main points of concern about the system, with brief notes on each one. You may assume that this email is to accompany copies of your answers to the other parts of this coursework (and that your teammates are familiar with UML!) so you should not repeat yourself; but you should comment on any aspects of your work where you were unsure and feel that further thought is needed. Again, 500 to 750 words should be enough.