Unit 3 - From domain modelling to requirements Flashcards

1
Q

What is the function of business rules?

A

They constrain how a business is run

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

From a typical business description, what should we be able to identify?

A

Business processes in the domain and business rules (constraints)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Verification is?

A

The set of activities that ensure that a solution is being

correctly developed, i.e. that it is taking into account the business rules.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Validation ensures?

A

That what is being built satisfies the business, i.e. that

the business rules implemented are the ones that the business wants

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the important properties that a representation of business rules should have?

A

The important properties are as follows:

◦ Business rules that apply to the whole business should be represented separately from project specific models.

◦ They should be easy to verify (possibly automatically) and validate.

◦ They should be represented in a readable language that is easy to verify.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Business processes define?

A

What is done in a business, by whom, in what

order, needing which resources, and with what consequences

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How do you represent business processes?

A

With UML activity diagrams.

An activity diagram shows a process as a set of activities and describes how they must be coordinated – which ones depend on others having been completed first and where activities can be carried out in parallel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

For a process of making a hot drink, we need to boil water in a kettle. What are the two steps involved in this task?

A
  1. Fill Kettle

2. Boil Water

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the basic elements of an activity diagram?

A

Activities and Transitions.

Activities are shown as rounded boxes and Transitions are shown as lines with arrows.

There are two predefined activities, start and stop, which are represented as filled circles

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

UML decision nodes allow what?

A

To represent alternative mutually exclusive, ways out of an activity. A decision node is drawn as a diamond.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

The flow out of decision nodes are constrained with Boolean tests, known as?

A

The Boolean tests are known as Guards, written inside square brackets.

Each of the transitions leaving the first decision diamond has a guard to determine which path should be taken under a given condition

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

A diamond shape in an Activity diagram can also be used as a?

A

Merge node, which brings together alternative mutually exclusive flows.

A merge node will be reached only by one of the alternative flows and has a single outgoing flow.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What causes a transition in an activity diagram?

A

A transition in an activity diagram is caused by the completion of an activity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a synchronisation bar, and when is one used in an activity diagram?

A

A synchronisation bar is used to mark the point when two or more activities can take place concurrently (a fork) or when a number of concurrent tasks must finish before continuing to the next activity (a join).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

An activity diagram can be used to represent what?

A

The workflow of an existing process.

It represents the sequence of activities and helps identify the stages at which each role requires some interaction with the process.

This is of particular benefit when we want to investigate the steps that people – and any existing systems – take in order to do their jobs.

When modelling a workflow that involves more than one role, it is possible to identify which role is responsible for a particular activity. To do this in UML, we partition an activity diagram into swimlanes – one swimlane for each role

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does the partitioning of activities into swimlanes help us understand a set of activities?

A

Swimlanes group activities associated with different roles. The swimlanes show the role that is responsible for each activity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Give one reason for modelling a workflow in an activity diagram?

A

Activity diagrams represent the sequence of activities. 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. An activity diagram can help identify the stages at which each role
requires some interaction with the process.

18
Q

What are the main elements in a Use Case diagram?

A

The main elements in a diagram are:

. the actors, represented by stick figures

. the use cases, represented by ovals

. the relationships between actors and use cases – their associations – represented by lines.

19
Q

Name two aspects of software development where use case modelling can help

A

Eliciting requirements - representing requirements.

Planning iterations of development and validating software systems.

20
Q

Suggest a reason why use case diagrams are an aid to

communication between user and developer

A

Use cases offer users an opportunity to understand the system since the use case notation is relatively simple and doesn’t require an understanding of UML.

This provides a mechanism that enables developer and client to share a common understanding of the system,
as long as the developer provides some text to demonstrate their understanding of the problem.

21
Q

How do you represent a system boundary in a use case diagram?

A

By drawing a solid box around the use cases with actors located outside it, represents the system boundary and all we are interested in.

22
Q

What is the purpose of a system boundary? Is it always necessary to draw one in a use case diagram?

A

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.

23
Q

Explain why the actors in a use case diagram do not represent actual individuals.

A

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

Actors can also represent other systems, rather than people/roles.

24
Q

Suggest a guideline that will help you decide whether or not to include an interaction with an external system on your use case diagram.

A

One possible guideline would be to show interaction with an external system if the use case needs to communicate with the actors that represent the external system.

25
Q

Are roles in business process models the same as actors in use cases?

A

Roles in business process models may not correspond directly to actors in use cases as although they interact with a business process they may not interact with a proposed system.

26
Q

What is a precondition?

A

A condition that must hold true before a specific task is called to action.

27
Q

What is a postcondition?

A

A condition that will hold true after a specific task has completed.

28
Q

What is a scenario?

A

A scenario illustrates one particular way a use case can unfold, by the sequence of interactions the actors have with the system.

For each use case, we normally start by considering a main scenario in which the goal of the use case is successfully achieved.

29
Q

What is the relationship between a use case and a scenario?

A

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 they have no outstanding loans.

Another member wishes to borrow a book, but
has exceeded the quota for the number of books that can be borrowed. 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.

30
Q

What is meant by a main success scenario?

A

The main success scenario shows the steps normally followed to achieve the stated goal of the use case

31
Q

How do use cases help with:

(a) requirements capture
(b) the elicitation of detailed software requirements
(c) development
(d) the system’s architecture
(e) system validation (checking that the system actually supports the functionality required by the users)?

A

(a) Use cases help with requirements capture through 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.

(b) Detailed software requirements can be associated with each step in a use case scenario. There may be more than one requirement for each step.

(c) One of the difficulties that developers face is planning delivery times. Often a customer can put pressure on the developer to meet a particular deadline. It is part of the developer’s job to elicit from the users the use cases that have the highest priority and to indicate what functionality in the software system can be met under such constraints. The use case descriptions help the developer to:
◦ understand the complexity of each use case
◦ determine which actors interact with each use case and to what extent
◦ establish which use cases carry the most risk
◦ estimate 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 cases should 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.

(d) Use cases, as standalone chunks of system specification, dictate the sorts of functionality that need to be provided by the system and constitute an aid for identifying interfaces in an architecture. Use cases can also be grouped in terms of similar functionality, therefore influencing the architecture of the system. Scenarios can be used to check how an architecture meets non-functional requirements, in particular those that can be affected by the architecture, such as security and safety requirements.
(e) One way to validate a system is to use the walk-through technique, checking the functionality related to each use case in turn. The walkthrough 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.

32
Q

What is the purpose of identifying relationships between actors?

A

The purpose of identifying relationships between actors is to indicate generalisations and establish which use cases can be performed by which actors.

For example, a Receptionist can do the same things that a Reserver can, but may be able to do something else that a Reserver cannot, in this case check in guest and check out guest.

33
Q

What is a stereotype in UML?

A

A stereotype is a way of attaching extra classifications to a model adding to its basic language. Stereotypes can be user defined – this is a way of extending UML.

34
Q

What is the meaning of the «include» stereotype?

A

The «include» stereotype indicates a situation where a use case is reused. An example would be a ‘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 (base) use case.

35
Q

What is the meaning of the «extend» stereotype?

A

The «extend» stereotype indicates a conditional extension to the original use case, known as alternative behaviour.

This is used to illustrate a case where there are two or more significantly different scenarios, so that the main case and the additional subsidiary cases are clearly differentiated.

The main purpose of this classification is to separate out a special case. You should add a condition to each
extension – with either a note or an extension point – to specify when the variant behaviour will be included.

36
Q

Is it necessary to place the «include» and «extend» stereotypes on all diagrams?

A

No, it is not necessary to place the «include» stereotype and the «extend» stereotype on all diagrams. In fact, in some situations they can cause confusion since they will not be understood by everyone.

37
Q

How would you modify a use case model to show that you intend to employ a component that already exists?

A

Each use case that benefits from the component must have a relationship to that component shown on the diagram. This relationship should have the «include» stereotype attached to it.

38
Q

What problems may arise when developing a software system from a set of use cases?

A

One problem is that the focus may end up being top-down and function-oriented, resulting in an inflexible and difficult-to-maintain system.

Focusing on use cases may cause the developer to sacrifice the object-oriented nature of the system, thus losing any advantage that UML offers.

Another danger lies in mistaking design for requirements, where a design decision is mistaken for a constraint.

Focusing on the requirements in a use case may cause the developer to view the system too operationally, where a sequence of events is assumed to be the only answer. Developers need to distinguish between requirements and preferred designs.

39
Q

What are the tasks involved in preparing a use case model intended for the development team?

A

The tasks comprise:

. defining the context for the model by identifying the actors involved in the aspect of the system in question

. analysing the behaviour that each actor expects from the proposed system, and identifying the use cases (as units of functionality within the overall requirements)

. identifying the common behaviour that may be reused by other actors, and the variations on common behaviour (the stereotypes «include» and «extend»)

. drawing a model that shows the use cases, the actors and the relationships between them

. annotating the use cases as you learn more about the requirements.

40
Q

Who initiates the prototyping process?

A

The developers would normally start the prototyping process because they have detected or identified a particular problem in their requirements analysis.

41
Q

Who should test a prototype?

A

The intended users should test it. For example, if you developed a series of interfaces as part of a prototype for the borrowing and returning of books, the library members would be the testers

42
Q

What is the main benefit of identifying user interfaces in your activity diagrams?

A

The main benefit of recording user (or any other) interfaces in an activity diagram is traceability. To the users, the interface is the software system: an unacceptable interface can lead to failure.

The user interface is the link between what the users want and what the developer produces in response.