Unit 3 Flashcards
(39 cards)
What are the important properties that a representation of business rules should have?
The important properties are as follows:
Business rules should be represented separately from other models;
They should be easy to verify (possibly automatically) and validate;
They should be represented in a readable but structured language.
Consider whether business rules can be modelled in UML; discuss the consequences in the light of the properties in your answer to (a).
UML does not provide an explicit notation for business rules. As a consequence, it
does not:
Facilitate separate recording of the rules;
Facilitate their analysis, validation and change;
Facilitate their traceability from the business needs to the software solution.
What causes a transition in an activity diagram?
A transition in an activity diagram is caused by the completion of an activity.
What is a synchronisation bar, and when is one used in an activity diagram?
A synchronisation bar is used to mark the point when two or more activities can take place independently (a ‘fork’), or when a number of tasks must finish before continuing (a ‘join’).
Figure 1 represents a particular way of making a cup of coffee. Suggest a reason
why the activity add coffee has been placed before the joining synchronisation bar
rather than immediately after the bar.
When the kettle is full and you are waiting for the water to boil, there is some ‘free’ time that you can use to add coffee to the cup. Placing the activity add coffee after the joining synchronisation bar rather than before it would mean that you would
have to wait to carry out the activity until the water had boiled, and the overall time taken for the task would be longer than that shown in Figure 1.
How does the partitioning of activities into swimlanes help us understand a set of activities?
Swimlanes group activities associated with different roles. Each swimlane shows who is responsible for which set of related activities.
Indicate one reason for modelling a workflow in an activity diagram.
Activity diagrams help to identify which role is responsible for which activities in a business process. An activity diagram can help identify the stages at which each role requires some interaction with the process. When you are modelling a workflow that involves more than one role, it is possible to identify which role is responsible for a particular activity.
Name three aspects of software development where use case modelling can help.
Any three of the following: capturing and eliciting requirements; representing requirements; planning iterations of development; validating software systems.
Suggest a reason why use case diagrams are an aid to communication between user and developer.
Use cases offer users an opportunity to understand the system without the need to
understand all of UML since the use case notation is relatively simple. This provides a mechanism that enables both developer and client to share a common understanding of the system, as long as the developer provides some text to demonstrate his or her understanding of the problem.
What is the purpose of a system boundary? Is it always necessary to draw one in a use
case diagram?
The purpose of a system boundary is to identify a single system, distinguishing between the internal and external components. Typically, the external components are the actors, and the internal components are the use cases. UML says that the system boundary is optional.
Explain why the actors in a use case diagram do not represent actual individuals.
An actor in a use case diagram represents a particular role that an individual might play when interacting with a software system. For example, a receptionist checks guests into and out of a hotel (see Figure 9). But it could be that the person who
works as a receptionist at one hotel becomes a guest at another hotel in the chain and hence takes on another role.
Suggest a guideline that will help you decide whether or not to include an interaction with an external system on your use case diagram.
Show interaction with an external system if the use case needs to communicate with the actors that represents the external system.
What is the relationship between a use case and a scenario? Give examples to illustrate your answer.
For each use case there is a set of possible scenarios. A scenario is an instance of a use case. A scenario describes a sequence of interactions between the system and some actors.
Here are two examples of scenarios. A member of a lending library wishes to borrow a book, and is allowed to do that as long as she has no outstanding loans. Another member wishes to borrow a book, but has exceeded his quota of the
number of books he is allowed to borrow. In each scenario, the member wishes to borrow a book, but both the circumstances and outcomes of events are different in each instance. So a use case includes a complex set of requirements that the system must meet in order to cope with every eventuality.
What is meant by a main success scenario?
The main success scenario shows the steps normally followed to achieve the stated goal of the use case. But there can be other scenarios for the same use case, each one having different outcomes depending upon circumstances.
How do use cases help with requirements capture?
Use cases help with requirements capture by assisting with the identification of actors and tasks in the system. For each actor, the set of use cases establishes what that actor requires from the software system. The association between an
actor and a use case is about communication. Therefore you should also establish what the software system derives from the actors.
How do use cases help with the elicitation of detailed software requirements?
Detailed software requirements can be associated with each step in a use case
scenario.
How do use cases help with development?
One of the difficulties that developers face is planning delivery times. Often a customer can place pressure on the developer to meet a particular deadline. However, it is the developer’s job to indicate which criteria in the software system can be met under such constraints, and to elicit from the users those use cases that have
the highest priority. The use case diagram helps by: providing an understanding of the complexity of each use case; determining which actors interact with each use case and to what degree; discovering which use cases carry the most risk; and estimating how long each use case is likely to take to implement. Understanding these aspects of the system can help developers plan the order in which the use casesshould be developed, and provide an appropriate time frame. Several criteria such as risk, coverage and criticality can be used to help establish priorities of use cases.
How is system validation performed using a use case?
One way to validate a system is to use the walk-through technique. This is where each
use case is examined in turn to assess whether the system actually supports the functionality required by the users a process known as validation. The walk-through technique can also be used to elicit system tests where each use case is required to deal with a number of scenarios a process known as verification. For each software
requirement generated from a step of a scenario, the fit criterion helps to devise the test.
A typical lending library keeps a stock of books for the use of its members. Each
member can take out a number of books, up to a certain limit. After a given period, the
library expects members to return the books that they have on loan. When borrowing books, members are expected to hand their chosen books to the librarian, who records each new loan before issuing the books to the member. When a book is on loan to a member, it is associated with that member: possession of the book passes from the library to the member for a defined period. The normal loan period for each book is two weeks. If the member fails to bring the book back on or before the due date, the library imposes a fine.
In the proposed new software system, anyone should be able to browse the stock of books held in the library, but only a member will be able to reserve a book. The ability to browse and make reservations will be provided through a web-browser interface. The system should also deal with the enrolment of new members for the library.Draw a simple use case diagram for the proposed software system, and identify the
constraints or assumptions that you make. (Ignore the issue of fines, because there is
not enough information.)
A good first step is to establish the context for the proposed system by identifying the
actors that surround it. When you have identified the actors, you can investigate the behaviour that each one will expect from the proposed system, which will eventually give rise to the use cases for your model. Your task is to determine the roles that people will adopt in order to use the proposed
software system. In general, the customer (the person who is buying the software) will have some say in who is a legitimate user. In this problem domain, the library owns the books. One of its employees, a librarian, is responsible for issuing books to a member. Typically, a librarian will also act on the member’s behalf when recording a new loan. Hence we expect the librarian to be a key user of the new system. Browsing through the library’s catalogue is a common activity performed by both members and librarians. As a catalogue is only a kind of list that shows what the library
offers for loan, it can be read by anyone: non-members are also to be allowed to
browse the catalogue. There appear to be two scenarios related to the activity of reservation. In the first, a member might want to borrow a specific book, but finds that all the available copies
are out on loan. In the second, a member might want to make sure that at least one copy is available in order to avoid a wasted trip to the library.We conclude that there are three basic actors:
Member
Librarian
Browser
What is missing from the given description of the system is any indication of how people join the library and become members. We have been told that there is a possible fine for overdue books, but is there a fee to join the library? Do prospective
members have to prove their identity? How do members prove their membership? So
this is a potential use case that requires later elaboration In addition, someone – a librarian, we presume will be expected to make sure that the catalogue reflects the actual stock held at the library, and a corresponding use case is needed for this.Our solution includes six basic use cases for the library software system:
Issue copy of book
Return copy of book
Reserve book
Browse catalogue
Update catalogue
Enrol new member
Figure 10 (p.32) shows a possible use case diagram for the proposed system. You may have used different names on your diagram, and you may have identified more or fewer than six use cases. There is no one correct solution: there are many possibilities. You may have defined use cases that combine two or more of our use cases, but in doing this it is likely that you would have assumed knowledge of the internal structure of the proposed system. In a use case diagram, you should identify only the behaviour that will bring some discernible value to at least one actor. In reaching your solution, you might have gone through several iterations. This is to be expected. Your first guess could have been done in your notebook, as opposed to using a CASE tool. In practice, you might alternate between pencil and paper and a CASE tool. Whatever your chosen means of recording, focus on getting a useful result. A rough diagram that is useful is better than a pretty one that is not! Finally, you should have included some notes with both the diagram and the elements in it. For example, in Figure 10, the issue copy of book use case has a note associated with it indicating the loan period. Notes are an excellent way to record constraints on
the behavioural requirements. Another use of a note is to indicate something that needs further attention or revision.Figure 10 shows that both members and librarians are associated with reservingbooks. A note records the fact that librarians can reserve books on behalf of members.
At some future point, once you have learnt more about the library, you would revise the
use case diagram.
Suggest a precondition and a postcondition for the check out guest use case given in Table 1. (You may also find the scenario of Table 1 useful.)
Precondition: the guest must be currently allocated to a room.
Postcondition: the room will have been designated as free to be reserved by another guest, and the guest will have paid his or her bill.
Prepare a textual description of the check in guest use case that appears in Figure 9. Follow the example of Table 1, which shows the main success scenario and other criteria for the make reservation use case. As part of your working, identify any exceptions to the main success scenario. You will need to make some reasonable
assumptions and should record them.
The actor for the check in guest use case is the Receptionist, as shown in Figure 9. You need to consider the exchanges that take place between each guest and the hotel’s receptionist. The main success scenario describes the simplest path for checking a guest into a room in a hotel. There can and will be exceptions to the main success scenario. Our solution is shown in Table 2.
What is the purpose of identifying relationships between actors?
The purpose of identifying relationships between actors is to indicate generalisations. Figure 11 illustrates a Guest being a special type of Reserver.A Guest can do the same things that a Reserver can, but may be able to do something else that a Reserver cannot.
What is a stereotype in UML?
A stereotype is a way of attaching extra classifications to a model. Stereotypes can be user-defined; this is a way of extending UML.
What is the function of the «include» stereotype?
The «include» stereotype indicates a situation where a use case is reused. In Figure 12, the diagram illustrates the check reservation use case, which is used by two other use cases. The purpose is to demonstrate commonality between tasks so that reuse can be achieved. The additional use case is included unconditionally in the original, or base, use case.