users.edinboro.eduusers.edinboro.edu/hillman/csci408chapter4-5.doc · web viewmodeling notations er...

17
Chapter 4 – Requirements Engineering -- establishing the services that the customer requires from a system and constraints under which it operates and is developed What is a requirement? - a high-level abstract statement of a service or system constraint - a detailed mathematical function specification These are not really consistent, therefore sometimes separated into User Requirements and System Requirements/Technical specifications Functional vs. Non-functional requirements Functional – statement of services system must provide – how system should react to specific inputs and how system should behave in certain situations – may also state what the system should not do – if not precisely stated, they may be interpreted differently among constituents

Upload: others

Post on 24-Oct-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Chapter 4 – Requirements Engineering

-- establishing the services that the customer requires from a system and constraints under which it operates and is developed

What is a requirement?

- a high-level abstract statement of a service or system constraint

- a detailed mathematical function specification

These are not really consistent, therefore sometimes separated into User Requirements and System Requirements/Technical specifications

Functional vs. Non-functional requirements

Functional – statement of services system must provide – how system should react to specific inputs and how system should behave in certain situations – may also state what the system should not do – if not precisely stated, they may be interpreted differently among constituents

Non-functional – constraints on services or functions offered by system – ie timing constraints, constraints on development process, standards, environment, etc. – often apply to entire system rather than individual feature/service -- a single non-functional requirement, such as a security requirement, may generate a number of related functional requirements that define system services that are required

These can be further characterized as:

Design Constraints – design decision that restricts set of solutions to the problem

Process Constraints – restriction on the techniques or resources used to build the system

Quality Constraints – describes a quality characteristic

Handout:: Pfleeger and Atlee

Exercise: Classify each as a functional requirement, a quality constraint, design constraint or process constraint.

a) The client daemon must be invisible to the user

b) The system should provide automatic verification of corrupted links or outdated data

c) An internal naming convention should ensure that records are unique

d) Communication between the database and servers should be encrypted

e) Relationships may exist between title groups [a type of record in the database]

f) Files should be organizable into groups of file dependencies

g) The system must interface with an Oracle database

h) The system must handle 50,000 users concurrently

Need to make sure that non-functional requirements are verifiable – sometimes they are difficult to state precisely

Examples: Water quality information must be accessible immediately.

Water quality records must be retrieved within 5 seconds of the request.

The system should be easy to use by medical staff and should be organized in such a way that user errors are minimized.

Medical staff shall be able to use all the system functions after four hours of training. After this training, the average number of errors made by experienced users shall not exceed two per hour of system use.

Property

Measure

Speed

Processed transactions/second

User/event response time

Screen refresh time

Size

Mbytes

Number of ROM chips

Ease of use

Training time

Number of help frames

Reliability

Mean time to failure

Probability of unavailability

Rate of failure occurrence

Availability

Robustness

Time to restart after failure

Percentage of events causing failure

Probability of data corruption on failure

Portability

Percentage of target dependent statements

Number of target systems

The software requirements document

-- official statement of what is required of the system developers

-- should include both a definition of user requirements and a specification of the system requirements

-- NOT a design document - set of WHAT the system should do rather than HOW it should do it

Users of a requirements document

Handout:: proposed Requirements and Specification document

Ways of writing a system requirements specification – page 95 of text

Modeling Notations

ER Diagrams – entity-relationship diagrams

Entity – rectangles, collection of objects that have common properties and behaviors

Relationships – edge between entities, how entities interact with one another, may be 1..1, 1..N, M..N

Attributes – sometimes appear as tags on entity or inside of the rectangle, describes data or properties associated with the entity

UML Class Diagrams – a form of ER diagram – relates the classes (entities) in the specification

Class – box in the diagram represents a collection of similarly typed entities

Class has a name, a set of attributes (simple data variables), and a set of operations

Class-scope attribute – underlined attribute, is a data value shared by all instances of the class

Class-scope operation – underlined operation, operation performed by abstract class, rather than instances of the class

Association – line between two classes that represents the relationship between the classes

Aggregate associations – open diamond on one end – “has-a” relationship – one class is a property or element of another class – ie. Association between Patron and their Credit Card

Composition association – closed diamond on one end – instances of the class are constructed from instances of the component classes – ie. A bike consists of wheels, gears, pedals, handlebar, seat)

Generalization association – triangle on one end – “is-a” relationship – subtype – parent class and subclasses – subclass inherits attributes, operations and associations of parent class

Role name – specifies context of an entity with respect to particular association

Multiplicities – specifies constraints on the number of entities

Association Class – relates attributes and operations to an association – these cannot be attributed solely to the classes in the association

Exercise:: Elevator Case Study

A product is to be installed to control n elevators in a building with m floors. The problem concerns the logic required to move elevators between floors according to the following constraints:

1. Each elevator has a set of m buttons, one for each floor. These illuminate when pressed and cause the elevator to visit the corresponding floor. The illumination is canceled when the corresponding floor is visited by the elevator.

2. Each floor, except the first floor and the top floor, has two buttons, one to request an up-elevator and one to request a down-elevator. These buttons illuminate when pressed. The illumination is canceled when an elevator visits the floor and then moves in the desired direction.

3. When an elevator has no requests, it remains at its current floor with the doors closed.

Create a UML class diagram for the elevator problem.

Event Traces

-- graphical description of a sequence of events that are exchanged between real-world entities

vertical line – timeline for a distinct entity

horizontal line – represents event or interaction between the entities (often represents a message passed between the entities

each graph depicts a single trace – below represents turnstile problem (left is typical behavior, right is exceptional behavior)

Message Sequence Charts – type of event trace – includes facilities for creating and destroying entities

vertical line – represents entity

message – arrow from sending entity to receiving entity – arrow’s label specifies message name and data parameters (if any)

If message arrow slopes downwards, this represents passage of time between sent and received

dashed arrow – entity is being created

cross at end of vertical line – end of entity’s execution

solid rectangle at end of vertical line – end of entity’s specification without meaning the end of its execution

actions – show invoked operations or changes to variable values – represented by rectangles on vertical line

conditions – important states in entity’s evolution – represented as labeled hexagons

Exercise:: Develop a scenario for making a hotel reservation. Describe the process in paragraph form first. Then you should model the process using a message sequence chart.

State Machines – used to represent collections of event traces in a single model – graphical description of all dialog between the system and its environment

State – or node represents a stable set of conditions that exist between event occurrences

Transition – represents a change in the behavior or condition due to the occurrence of an event – transition is labeled with the triggering event and possibly with an output event

Useful for specifying the dynamic behavior of a process and for describing how behavior should change in response to events

UML Statechart Diagrams – a state diagram that depicts dynamic behavior of the objects in a UML class diagram – UML class diagram gives a static, big picture view of the problem in terms of the entities involved and their relationships – it says nothing on how the entities behave or change in response to input events

UML model is a collection of concurrently executing statecharts – one per instantiated object that communicate via message passing – every class in a UML class diagram has an associated statechart that specifies the behavior of the objects in the class

Transition label syntax: event(args) [condition] / action* ^Object.event(args)*

event – trigger and may carry arguments

condition – predicate on object’s attribute values

action – each prefaced with a (/) specifies assignments made to object’s attributes

output event – may carry parameters and is designated for a target object or broadcast to all objects

“*” – transition may have many actions or generate many output events

Exercise: Create a UML statechart for the elevator problem above.

Petri Nets – form of state transition notation used to model concurrent activities and their interactions

places – circles in the net that represent activities or conditions

bars – represent transitions

arcs – connect a transition with input places and output places

tokens – populate places and act as enabling conditions for transitions

weight – assigned to arc and specifies how many tokens to remove from input place or inserted into arc’s output place when transition fires

Data-flow Diagrams – model functionality and flow of data from one function to another – these differ from above approach as they show high-level functionality of a single model that can then be decomposed

process – bubble in the diagram – data transformer

data flow – arrow – into bubble – input to the process – out of bubble – output to the process

data store – parallel lines – formal repository

data sources/sinks – rectangles – provide data or receive output

Exercise: Create a DFD for an online telephone directory to replace the phonebook provided by the phone company. The directory should be able to provide phone numbers when presented with a name; list the area codes for different parts of the country and generate emergency phone numbers for the area.

UML Use-case – similar to a DFD that shows observable, user-initiated functionality in terms of interactions between system and its environment – used to specify user views of essential system behavior

Box – represents the system boundaries

Stick figures – represent actors (both human and system)

Oval – inside box represents major required functionality

Line between actor and use case – indicates actor participates in the use case

Dashed line – from base case to sub case

Each use case encompasses several possible scenarios – these scenarios are usual described in text and include the following:

Name of use case

Actors

Goal of use case

Preconditions

Postconditions

Trigger

Description of Scenario (numbered list)

Sample Use-case description (not associated with above diagram)

Exercise:: Create a use case for the following:

Automated library circulation system. Every book has a barcode, and every borrower has a card bearing a barcode. When a borrower wishes to check out a book, the librarian scans the barcodes on the book and the borrower’s card, and enters a C at the computer terminal. Similarly, when a book is returned, it is again scanned and the librarian enters R. Librarians can add books (+) to the library collection or remove books (-). Borrowers can go to a terminal and determine all the books in the library by a particular author (the borrower enters A = followed by the author’s name), all the books with a specific title (T = followed by the title), or all the books in a particular subject area (S = followed by the subject area). Finally, if a borrower wants a book currently checked out, the librarian can place a hold on the book so that when it is returned, it will be held for the borrower who requested it (H = followed by the number of the book).

Ways to write System Specs

Notation

Description

Natural language

The requirements are written using numbered sentences in natural language. Each sentence should express one requirement.

Structured natural language

The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement.

Design description languages

This approach uses a language like a programming language, but with more abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications.

Graphical notations

Graphical models, supplemented by text annotations, are used to define the functional requirements for the system; UML use case and sequence diagrams are commonly used.

Mathematical specifications

These notations are based on mathematical concepts such as finite-state machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract

Requirements Engineering Processes

-- processes depend on the application domain – however, there are a number of generic activities common to all processes

Requirements elicitation -- technical staff working with customers to find out about application domain, the services that the system should provide and the system’s operational constraints

Interviewing – can be formal or informal

Scenarios – real-life examples of how system can be used – describes normal flow of events and describes what can go wrong

Use cases

Requirements analysis -- Requirements classification and organization -- Prioritization and negotiation -- resolving requirements conflicts

Requirements validation -- concerned with demonstrating that requirements define the system that the customer really wants -- requirements error costs are high so validation is very important (fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error)

Requirements Reviews – manual analysis of requirements

Prototyping – executable model of system

Test-case generation – develop tests to check testability

Requirements management -- Requirements management is the process of managing changing requirements during the requirements engineering process and system development

-- in practice, Requirements Engineering is an iterative activity

� EMBED Unknown ���

_1389374183.bin