1 models modelling can help us to understand the requirements thoroughly ambiguous behaviour is...

33
1 Models • Modelling can help us to understand the requirements thoroughly • Ambiguous behaviour is revealed by holes in the models • Inconsistencies in requirements are revealed by multiple, conflicting outputs to the same input

Upload: shannon-carr

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

1

Models

• Modelling can help us to understand the requirements thoroughly

• Ambiguous behaviour is revealed by holes in the models

• Inconsistencies in requirements are revealed by multiple, conflicting outputs to the same input

Page 2: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

2

Requirements Modelling

• Consists of:– Decomposition

• the process by which a problem is broken down into parts

– Abstraction• a description of the problem at some level of generalisation

that allows us to concentrate on the key aspects of the problem without getting involved in the difficulties of the details.

– Separation of concerns• the process of breaking a program into distinct features that

overlap, as little as possible, in functionality

Page 3: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

3

Purposes of Decomposition

• Requirements specification is decomposed along separate concerns to simplify the resulting model and make it easier to read and to understand

• In contrast , decomposition of a design improve the system’s quality attributes (modularity, maintainability, performance, time to delivery, etc.)

Page 4: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

4

Unified Modelling Language

• UML is a collection of notations used to document software specifications and designs

• Represents a standard notation for modelling, documenting, and communicating decisions

• Modelling – helps us to understand requirements

– reveal inconsistencies in requirements (conflicting outputs to same input)

Page 5: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

5

Notations - ERD• Entity-Relationship Diagrams

– Represents conceptual model and decomposes by entity– Popular for describing database schema– Mostly static, structural view and says nothing about how

entities are to behave

• Three core constructs, which are combined to specify a problem’s elements and inter-relationships:– Entities (collection of real-world objects)– Attributes (annotation that describes data or properties

associated with the entity)– Relations

Page 6: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

6

Notations – UML class diagram

• ER diagram in which – entities are called actors– Class is a collection of similarly typed entities– Class has a name, set of attributes and operations

• Primarily for design notation but is used for conceptual modelling, in which classes represent real-world entities in the problem

• e.g. Conceptual model – Customer class which corresponds to CustomerRecord class in program class in implementation

Page 7: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

7

Notations – Event Traces• Describes system’s behavioural requirements decomposed by

scenario– Not used to provide a complete description of required behaviour as

number of scenarios can become unwieldy

• Graphical depiction of a sequence of events that are exchanged between real-world entities– Vertical line represents timeline for an entity, whose name appears on top

of the line– Horizontal line represents and event or interaction between two entities

bounding the line, i.e. a message passed– Time progresses from top to bottom, i.e. an upper event happens before a

lower event

• Each graph represents a single trace, i.e. only one of the several possible behaviours

Page 8: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

8

Notations – State Machines• Used to represent a collection of event traces in a single

model decomposed by control state– Used for specifying dynamic behaviour and for describing how

behaviour should change in response to the history of events that have already occurred

• Graphical depiction of all dialog between the system and its environment– Each node (state) represents a stable set of conditions that exist

between event occurrences– Each edge (transition) represents a change in behaviour or

condition due to the occurrence of an event• Labelled with a triggering event and possibly an output event generated

when transition occurs

Page 9: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

9

Notations – UML Statechart Diagrams

• Depicts dynamic behaviour of objects in a UML class– Shows how class instances should change state and how

their attributes should change value as the objects interact with each other

• UML model is a collection of concurrently executing statecharts – one per instantiated object – that communicate with each other via message passing

• Each class in a UML class diagram has an associated statechart diagram that specifies the dynamic behaviour of objects of that class

Page 10: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

10

Notations – Data-Flow Diagrams

• Promotes decomposition by functionality– Models functionality and the flow of data from one function

to another

• Representations:– Bubble process or function that transforms data– Arrow data flow, into bubble represents an input and out

of bubble represents an output– Data store is a formal repository or database of information

used to store data that persist beyond their use in a single computation

– Actors (data sources or sinks) are entities that provide input data or receive the output results

Page 11: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

11

Notations – UML Use-case Diagrams

• Similar to top-level data-flow diagram that depicts observable, user-instantiated functionality in terms of interactions between the system and its environment.

• Components:– Large box represents system boundary– Stick figures outside box portray actors (humans and

systems)– Each oval inside box is a use case that represents some

major required functionality and its variants– Line between actor and use case indicates that actor

participates in the use case

Page 12: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

12

Notations – UML Use-case Diagrams

• Use cases are not meant to model all the tasks in the system but used to specify user views of essential system behaviour

• Model only system functionality that can be initiated by some actor in the environment

Page 13: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

13

Formal Methods/Approaches

• Mathematically based specification and design techniques

• Encouraged by software developers who build safety-critical systems

Page 14: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

14

Advantages of Formal Methods

• Mathematical models are more precise and less ambiguous than other models

• Mathematical models lend themselves to more systematic and sophisticated analysis and verification

• Many formal specifications can be checked automatically for consistency, completeness, non-determinism, reachable states, type correctness

Page 15: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

15

Functions and Relations• Some formal paradigms model requirements/ software

behaviour as a collection of mathematical functions or relations

• When function and relations are composed together, they map the system inputs to system outputs

• Functions– Specify state of a system’s execution– Specify outputs

• Relations– Used instead of a function whenever an input value maps to

more than one output value

Page 16: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

16

Function

• Systematic and straightforward test for consistency and completeness– Because it maps each input to a single output,

by definition it is consistent– If it specifies an output for every distinct input,

total function, and is by definition complete

Page 17: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

17

Logic

• Is a descriptive notation, which better expresses global properties and constraints– Descriptive notation describes a problem or

proposed solution in terms of its properties or its invariant behaviour

• Consists of:– a language for expressing properties– a set of inference rules for deriving new,

consequent properties from the stated properties

Page 18: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

18

Logic

• Used to express a property of a software problem/system– This property is an assertion about the problem

or system that should be true– As such, a property specification represents

only those values of the property’s variables for which the property’s expression evaluates true

Page 19: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

19

First-order logic

• Typed variables• Constants• Function• Predicates < and >• Equality• Logical connectives (and), (or), ¬ (not),

(implies), (logical equivalence)• Quantifiers (there exists) and (for all)

Page 20: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

20

Temporal logic• Introduces additional logic connectives for

constraining how variables can change value over time– More precisely over multiple points in an execution

• The following (linear-time) connectives constrain future variable values, over a single execution trace: f f is true now and throughout the rest of the execution f f is true now or at some future point of the execution– f f is true in the next point of the execution– f W g f is true until a point where g is true, but g may

never be true

Page 21: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

21

• Properties may be often used to augment a model-based specification either to:– Impose constraints on model’s allowable

behaviour• Property specifies behaviour not expressed in model

and the property

– Simply express redundant but non-obvious global properties

• Property does not alter specified behaviour but may aid in understanding the model by explicating otherwise implicit behaviour

• Also aids in requirements verification, by providing expected properties of the model for the reviewer to check

Page 22: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

22

Algebraic specifications

• Used to specify the behaviour of operations by specifying the interactions between pairs of operations rather than modelling individual operations– Multi-operational view – viewing system in terms of

what happens when combinations of operations are performed

– Execution trace – a sequence of operations that have been performed since the start of execution

Page 23: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

23

Algebraic specification axioms

• Specify the effects of applying pair operations on an arbitrary sequence of operations that has already been executed

Page 24: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

24

Disadvantage of Algebraic specification

• For a collection of operations, it can be tricky to construct a concise set of axioms that is complete and consistent, and correct

Page 25: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

25

Prototyping Requirements

• One way to elicit details• It solicits feedback from potential users about

what aspects they would like to see improved– which features are not so useful, or what functionality

is missing

• help determine whether customer’s problem has a feasible solution

• Assist in exploring options for optimising quality requirements

Page 26: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

26

Rapid prototyping

• Involves building software to answer questions about requirements– Partial solution that is built to help us

understand the requirements or evaluate design alternatives

– Different from prototyping, in which prototype is a complete solution

• Whose purpose is to test and design product before automating / optimising manufacturing step for mass production

Page 27: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

27

Types of Rapid PrototypingThrowaway• Developed to learn more

about a problem or a proposed solution, and is never intended to be part of delivered software

• Allows “quick-and-dirty” software to be built to be written, i.e. poorly constructed, inefficient, with no error checking

Evolutionary

• Developed not only to help us answer questions but also to be incorporated into the final product

• As such, more careful development is undertaken, because this software has to eventually exhibit quality requirements (e.g. response rate, modularity) of the final product– These qualities cannot be

retrofitted

Page 28: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

28

Validation and Verification• Requirements validation

– Checks that our requirements definition accurately reflects all the stakeholder’s needs

• Requirements verification– Check that one document or artefact conforms

to another– Verifies that:

• Code conforms to design

• Design conforms to requirements specifications

• Requirements specification conforms to requirements definition

Page 29: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

29

Requirements Validation

• Uses the following characteristics as the criteria for validating requirements:

– Correctness

– Consistency

– Unambiguity

– Completeness

– Relevance

– Testability

– Traceability

Page 30: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

30

Requirements Validation Techniques• Checklist

– Common errors can be recorded in a checklist, which reviewers can use to guide their search for errors

• Reading– Reading document and report errors

• Walkthrough– One of the document’s authors presents the

requirements to the rest of the stakeholders, and asks for feedback

• Formal Inspection– Reviewers take on specific roles and follow prescribed

rules (when to meet or take breaks, when to schedule follow-up inspection)

Page 31: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

31

Requirements Validation Techniques• Review

– Representative of developer’s staff and customer’s staff examine the requirements document individually

– Then they meet to discuss identified problems

– Customer’s representatives may include those who will:

• be operating the system

• prepare the system’s inputs

• use the system’s outputs

• manager of these employees who attend

– Developer’s representatives include:• design team

• test team

• process team

Page 32: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

32

Requirements Verification

• Checking our requirements-specification document correspond to our requirements-definition document– Ensures a system ca be implemented that

• meets the specification

• satisfies customer’s requirements

• Most often, it is a check of traceability

Page 33: 1 Models Modelling can help us to understand the requirements thoroughly Ambiguous behaviour is revealed by holes in the models Inconsistencies in requirements

33

Requirements Verification• For critical systems, we may want to demonstrate that the

specification fulfils the requirements– prove that the specification realises every function, event, activity

and constraint in the requirements

• To do this we need to make assumptions about how the environment behaves– Assumptions about what inputs the system will receive– Assumptions about how the environment will react to outputs

• We rely on our environment to help us satisfy the customer’s requirements– If our assumptions about how the environment behave is wrong,

then our system may not work as the customer expects