DD1363, Mjukvarukonstruktion

Aktuell kursomgång: period 2-4 07/08

Kursledare: Rand Waltzman
Datorpostadress(er): rand@nada.kth.se

 

Homework 3 Solutions:

See Homework page for general information.

The first two exercises below refer to your text, Software Engineering by Sommerville, 8th Ed. 

1.      Exercise 7.3

2.      Exercise 7.4

3.      Design scope is the extent of the entity that you are tasked to design.  It defines the boundary between what you are designing and its environment.  For example, you are to design an ATM (Automated Teller Machine = Bankomat).  The box and everything in it is yours to design – both the hardware and software.  The computer network that the box will talk to is not yours to design – it is out of the design scope.
Consider the following fragment of a usage narrative:  “… Jenny is standing in front of her bank’s ATM.  It is dark.  She has entered her PIN and is looking for the Enter button …”
Name at least five system design scopes that this fragment could be referring to.

4.      You have been hired to create the requirements document for a new ATM.  Decide whether each item in the following list is a stakeholder, a primary actor, a supporting actor, the system under design, or not an actor at all (or a multiple of the above):
The ATM; The customer; The ATM card; The bank; The front panel; The bank owner; The serviceman; The printer; The main bank computer system; The bank teller; The bank robber.

5.      List three different types of primary actor for your ATM.  For each primary actor in your list, state at least one user goal.

 

Solution 1:

You can tackle this problem using a brainstorming approach. Obviously, there are many alternatives to the solutions suggested here. Note the printing conflict is deliberate.

Viewpoint: Library manager

Requirement: Access to the LIBSYS system shall be restricted to accredited users of the library.

Requirement: The LIBSYS system shall provide a reporting facility that allows usage reports (who used the system, how often, what libraries were accessed) to be created and printed.

Requirement: The LIBSYS system shall be configured so that only document printing on specific library servers is permitted.

Viewpoint: Users

Requirement: The LIBSYS system shall be accessible from any location, including locations away from the university campus.

Requirement: It shall be possible to save LIBSYS queries, recall them and modify them for subsequent use.

Requirement: The LIBSYS system shall allow documents to be printed on user printers.

Viewpoint: System managers

Requirement: The restart time of the LIBSYS system after failure shall not exceed 5 minutes.

Requirement: The LIBSYS system shall provide a backup facility for user’s personal workspaces.

Requirement: The LIBSYS system shall be available for a range of platforms including Windows 2000, Windows XP and Mac OS X.

Solution 2:

Important non-functional attributes for the cataloging services might be:

• Availability (because the system may be required at any time)

• Security (because the books data base must not be corrupted)

• Efficiency (because the system must respond quickly to each transaction)

For the browsing services, usability is also very important as these services should be easy to use without extensive training.

Solution 3:

We could be describing our neighborhood, or the set of electronically connected industries.  On a smaller scale, we could be designing the bank building and lighting system.  We could be designing a new bank computer system and ATM, or just the ATM.  Or we could be discussing a new key panel design or the design for a new Enter key.  There is no way to tell from the fragment of the story which system is being discussed.

Solution 4:

Recall that an actor must be able to execute an if statement’s worth of behavior.  A primary actor has a goal, calling upon a system’s promised services.

·        The ATM.  The SuD.

·        The customer.  A primary actor and stakeholder

·        The ATM card.  Not an actor.  It does not have sufficient behavior (this refers to “dead iron filing” cards; “smart cards” with embedded chips may qualify).  The ATM card is really just a data envelope, serving as no more than fast, fixed typing on the customer’s part.

·        The bank.  Not an actor for our purposes.  It is a system containing the ATM.

·        The front panel.  Not an actor for our purposes.  It is a component of the SuD.

·        The bank owner.  A stakeholder, probably not a primary actor.

·        The serviceman.  A primary actor.

·        The printer.  Not an actor for our purposes.  It is a component of the SuD.

·        The main bank computer system.  A secondary actor.  It might be a primary actor if you can think of a situation in which it initiates a conversation with the ATM.

·        The bank teller.  Depends on the job assignments.  Who empties and refills the cash?  If you said, “Refiller” or “Service staff,” perhaps you will never create a use case with the bank teller as primary actor.  If you answered, “The bank teller does,” the bank teller is a primary actor.

·        The bank robber.  Depends on the design scope and your creativity.  I could never think of a decent use case for the bank robber that wasn’t just an extension condition of a customer’s use case, until someone suggested, “Steal the ATM!”  That brings up the idea of a movement detector.  Depending on how we phrase the goal, we could end up with either the robber having a use case (whose goal never succeeds!) or just more extension conditions in the customer’s use case.

Solution 5:

·        Serviceman:  Run ATM self-test.

·        Bank clerk:  Refill supplies.

·        Customer:  Withdraw cash.

 

^Upp till Nadas kurser.


Sidansvarig: <rand@nada.kth.se>
Tekniskt stöd:
<webmaster@nada.kth.se>