Requirements Engineering (Quiz 7)

Total Page:16

File Type:pdf, Size:1020Kb

Requirements Engineering (Quiz 7)

GCIS 504/GENG 580 Requirements Engineering (Quiz 7) Team Skill 5

Name:

1. Describe the relationship between software requirements and use cases.

2. Describe the Relationship between Features and Software Requirements.

3. Discuss the limitation of use cases

4. List three types of requirements

a. ______

b. ______

c. ______

5. You are developing an e-commerce system in which you have a base use case called Place Online Order that has an extending use case called Specify Shipping Instructions. Draw the relationship between those two use cases

6. Explain the semantic of the relationship in question 5. 7. Explain the semantic of the relationship in the following diagram.

8. Why we need a supplementary Specification?

9. Nonfunctional requirements can be organized into four categories:

a. ______

b. ______

c. ______

d. ______

10. Provide one example for each category in question 9.

a. ______

b. ______

c. ______

d. ______

11. Provide two examples of design constraint.

a. ______

b. ______

12. How to avoid both over-specified requirements and under-specified design? 13. When specifying requirements, describe the best scenario to use

a. use case: ______

b. pseudo-code:______

c. finite state machines: ______

d. decision trees: ______

e. activity diagrams: ______

f. entity-relationship models: ______

Use cases are just one way to express software requirements. Use cases can't conveniently express certain types of requirements Requirements shall tell us what the system is to do, and NOT how the system shall do it. A use case is a technique for documenting the potential requirements of a new system or software change Use cases are deceptively simple tools for describing the behavior of software or systems.

Software Req.s Detailed descriptions of system services (features). We can code from them. They should be specific enough to be "testable"

Features Simple descriptions of system services in a shorthand manner. Help us understand and communicate at a high level of abstraction. We can't fully describe the system and write code from those descriptions. They are too abstract for this purpose.

Use cases have limitations: (http://en.wikipedia.org/wiki/Use_case) . Use case flows are not well suited to easily capturing non-interaction based requirements of a system (such as algorithm or

mathematical requirements) or non-functional requirements(such as platform, performance, timing, or safety-critical aspects). These are

better specified declaratively elsewhere.

. Use cases templates do not automatically ensure clarity. Clarity depends on the skill of the writer(s).

. There is a learning curve involved in interpreting use cases correctly, for both end users and developers. As there are no fully standard

definitions of use cases, each group must gradually evolve its own interpretation. Some of the relations, such as extends, are ambiguous in

interpretation and can be difficult for stakeholders to understand.

. Proponents of Extreme Programming often consider use cases too needlessly document-centric, preferring to use the simpler approach

of a user story.

. Use case developers often find it difficult to determine the level of user interface (UI) dependency to incorporate in a use case. While

use case theory suggests that UI not be reflected in use cases, it can be awkward to abstract out this aspect of design, as it makes the use

cases difficult to visualize. Within software engineering, this difficulty is resolved by applyingrequirements traceability through the use of

a traceability matrix.

. Use cases can be over-emphasized. In Object Oriented Software Construction (2nd edition), Bertrand Meyer discusses issues such as

driving the system design too literally from use cases and using use cases to the exclusion of other potentially valuable requirements

analysis techniques.

. Use cases have received some interest as a starting point for test design.[6] Some use case literature, however, states that use case pre

and postconditions should apply to all scenarios of a use case (i.e., to all possible paths through a use case) which is limiting from a test

design standpoint. If the postconditions of a use case are so general as to be valid for all possible use case scenarios, they are likely not to be

useful as a basis for specifying expected behavior in test design. For example, the outputs and final state of a failed attempt to withdraw

cash from an ATM are not the same as a successful withdrawal: if the postconditions reflect this, they too will differ; if the postconditions

don’t reflect this, then they can’t be used to specify the expected behavior of tests. An alternate perspective on use case pre &

postconditions more suitable for test design based on model-based specification is discussed in [7]

. Usability . Reliability . Performance . Supportability

 Sources of Design Constraints 1. Restriction of design options 2. Conditions imposed on the development process 3. Regulations and imposed standards.

Recommended publications