CEN4020: Software Engineering I up↑

Individual Homework Assignment 1 (HW1)

Due Date

See course Calendar.

Objectives

Learn to construct a use case diagram from a textual description.

Optionally, learn to use a UML tool.

Instructions

Using the University Testing Center project description, construct a use case diagram. Include all of the actors and all of the use cases that are to be implemented by the computer system. (Do not include use cases that do not involve the computer system.)

Please try to install and use one of the several open-source UML tools, and use it for this assignment and all others that involve UML. It will save you errors, especially as we get into the team phase of the course and we have multiple individuals working on the same UML diagrams. Please see the separate notes on Eclipse and UML tools for more information abou this.

Otherwise, at least for this first assignment, you may produce the diagram in any way you are able, so long as you turn in either a .pdf or a .doc file. If you choose to use MS Word or Open Office oowriter, there is a use case diagram template provided.

Make sure you review your solution carefully. This review will help you to identify things that you might have misunderstood or omitted. Omissions on Homework 1 will result in omissions in Homework 2, so be careful.

Example - Video Rental System

Note that the example UCD is is only one of several variations of how this system might be represented. For example, we might break out the scanning sub-case, and share it as an included case for both adding and deleting a video, as well as returning and changing type. The example also is missing a use-case for the automatic return of checked-out videos that are not picked up within 24 hours. This should probably also be triggered by a timer in the system.

(We might consider instead starting with scanning as the main use case, and then make adding, deleting, returning, and changing type into extensions of scanning. However, that would be inconsistent with the statment taht the owner first "chooses the remove option and (then) scans". It seems that this model of choosing the operation first and then scanning is also less prone to error.)

In the recitation meetings, we will go through how the use case diagram was derived from the problem description. The following will be covered along the way:

More Instructions

Before you start this, please be sure you have read the section on use case diagrams in the textbook, including the figure that shows the syntax elements of a diagram, and the three figures showing examples. Read those carefully. They show you what you need to know. In particular, pay attention to the different kinds of lines, most references on UCD's specify that there are no arrow heads on the lines between actors and use cases. However, some suggest using a line with an arrowhead to distiguish the case when the actor is responsible for taking action to initiate the use case.

  • Various other kinds of lines with arrowheads, including those with "sterotype" labels (in "<<>>") may also be added, but not so fundamental as the associations between actors and use cases.

    I recommend that you start by doing the basic diagram, with just ovals, stick figures, and just lines between actors and use cases. Then, if you can find appropriate places to use the arrows for generalization, includes, and extends relationships, add them (for both use cases and actors). These relationships can be easily confused.

    Stick with the requirements stated in the problem description. If the description is ambiguous on some point, resolve it in a way that makes sense and is consistent with the description. Do not add features that are not called for in the problem description.

    Keep in mind that when use cases are applied in the requirements definition process, the relationships do not have quite so narrow an interpretation as when one is moving on to coding. For the purposes of this exercise, you may use the following interpretations:

    Base — <<include>>→ Inclusion :
    Inclusion is something one does as part of Base, as one of the steps. In code, Inclusion would be a subprogram/method called by Base. This is useful for identifying common elements of different use cases.
    Extension — <<extend>>→ Base :
    Extension may optionally be included in doing Base. In code, Extension would be an optional subprogram/method, which is called by Base in certain special cases. This is useful for identifying sub-cases that may not always be executed.
    Special ⇒ Base :
    If applied to actors, this means Special is a special case of actor class Base. If applied to use cases, this means Special is a special case of Base, which requires different from the normal behavior. This is distinguished from the two relations above by there being no sub-case relationship: Special entirely replaces Base. In code, this is used for subclass relationships, where Special would inherit some attributes of Base, but would override others. (The arrow in this case actually has a hollow head, but that cannot be represented here in HTML, we we have used ⇒)

    When you are done, re-read the system description document carefully. Look out for omissions (e.g., a sentence that implies a use case that you do not have in your diagram) and errors of over-inclusion (e.g., making a use case out of a non-functional requirement). All the information you need is in the project description, but not all the information in the project description belongs in the use case diagram. (The other information will come into play later, in your full SRS document.)

    Finally, when you think you are done, make another pass through the document, and another pass through your diagram. Verify that every actor in the text has an actor in the use case, and vice versa. Verify that every active service provided by the system is represented by a use case, and that every use case is justified by a statement in the document. Make certain that your use cases are describing actions, not things.

    References

    You have the textbook, the VRS example, and the course notes on use cases which accessible via links from the notes page, including the following:

    If you are interested in more depth you may also want to look at these IBM pages.

    Delivery

    Follow the general instructions for delivering individual homework assignments.

    Grading

    The maximum potential score is 100 points. Points may be lost for errors. Bonus points may compensate for errors.

    ErrorDeduction
    Tentative grading scheme, still being revised
    Basic Diagram
    Use cases missing or incorrect-5 points each, up to a maximum of 40 points
    Actors missing or incorrect-5 points each, up to a maximum of 20 points
    Actor-use-case relationships (associations) missing or incorrect-5 points each, up to a maximum of 20 points
    Missing system boundary box-5 points
    Word Choice
    Poor choice of actor name-1 point each
    Poor choice of use case name-1 point each
    Misspelled words-1 point each
    Advanced Relationships
    Correct use of "extend" relationship+5 points first; +1 each additional
    Correct use of "include" relationship+5 points first; +1 each additional
    Correct use of inheritance relationship+5 points first; +1 each additional
    Incorrect use of "extend", "include" or inheritance-5 points first; -1 each additional
    ($Id: hw1.html,v 1.3 2010/08/31 19:43:32 baker Exp baker $)