sech78

69
Slide 1 3 minute review of last week User requirements (C-requirements) Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers System requirements (D-requirements) A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor Software specification A detailed software description which can serve as a basis for a design or implementation. Written for developers

Upload: mahinth-christensen

Post on 28-Jan-2015

114 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: SECh78

Slide 1

wk03.ppt3 minute review of last week

User requirements (C-requirements)• Statements in natural language plus diagrams of the services the

system provides and its operational constraints. Written for customers

System requirements (D-requirements)• A structured document setting out detailed descriptions of the

system services. Written as a contract between client and contractor

Software specification• A detailed software description which can serve as a basis for a

design or implementation. Written for developers

Page 2: SECh78

Slide 2

Functional and non-functional requirements

Functional requirements• Statements of services the system should provide, how the

system should react to particular inputs and how the system should behave in particular situations.

Non-functional requirements• constraints on the services or functions offered by the system

such as timing constraints, constraints on the development process, standards, etc.

Domain requirements• Requirements that come from the application domain of the

system and that reflect characteristics of that domain

Page 3: SECh78

Slide 3

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Requirements Engineering Processes

Page 4: SECh78

Slide 4

What we cover this week UML tutorial

• Sommerville’s notation is a bit old Ch. 7 System models Ch. 8 Prototyping

Page 5: SECh78

Slide 5

UML Tutorial Given separately Download krishna-UML.ppt

Page 6: SECh78

Slide 6

5 minute break - a puzzle 4 people are taken hostage and put red/black hats on their

heads (2 red + 2 black hats) Will be released if at least 2 of them can tell the color of

their hats correctly. Incorrect answer costs ones head ! Can they plot their release if

• one can only see the people to their left

• one of them is placed next room

• everyone can hear others’ answers

• they are not allowed to talk to each other ?

Page 7: SECh78

Slide 7

Solution to the puzzle Let us name the hostages A, B, C and D from left to right. D sees B and C have different colored hats, so he cannot guess

his hat correctly. B and C know that D can guess his hat correctly if their hats are

of the same color. Since D did not tell his answer (fearing for his head), B and C conclude that they have different colored hats.

C sees B has black hat, so He answers that he has a RED hat. Now, B answers that he has a BLACK hat.

A B C D

Page 8: SECh78

Slide 8

Ch. 7 - System models User requirements are high-level statements of

what the system should do System requirements are detailed descriptions of

the system services. Use system models. Different models present the system from different

perspectives• External perspective showing the system’s context or

environment

• Behavioural perspective showing the behaviour of the system

• Structural perspective showing the system or data architecture

Page 9: SECh78

Slide 9

Structured methods

Structured methods incorporate system modelling as an inherent part of the method

Methods define a set of models, a process for deriving these models and rules and guidelines that should apply to the models

CASE tools support system modelling as part of a structured method

e.g. Rational Rose for Object-oriented modelling.

Page 10: SECh78

Slide 10

Model types

Data processing model shows how the data is processed at different stages

Composition model shows how entities are composed of other entities

Architectural model shows principal sub-systems Classification model shows how entities have

common characteristics Stimulus/response model shows the system’s

reaction to events

Page 11: SECh78

Slide 11

7.1 Context models

At an early stage in RE, software developers and stakeholders have to distinguish what is the system and what is its environment

Context models are used to illustrate the boundaries of a system

Social and organisational concerns may affect the decision on where to position system boundaries

Once the system boundaries are decided, the next step is to build architectural models showing the system and its relationship with other systems

Page 12: SECh78

Slide 12

The context of an ATM system

Auto-tellersystem

Securitysystem

Maintenancesystem

Accountdatabase

Usagedatabase

Branchaccounting

system

Branchcountersystem

Page 13: SECh78

Slide 13

Process models

Architectural models describe the environment, but does not show the relationship between the system and its environment

They are often supplemented by process models and data-flow models

Process models show the overall process and the processes that are supported by the system

Data flow models show the processes and the flow of information from one process to another

Page 14: SECh78

Slide 14

Equipment procurement process

Get costestimates

Acceptdelivery ofequipment

Checkdelivered

items

Validatespecification

Specifyequipmentrequired

Choosesupplier

Placeequipment

order

Installequipment

Findsuppliers

Supplierdatabase

Acceptdelivered

equipment

Equipmentdatabase

Equipmentspec.

Checkedspec.

Deliverynote

Deliverynote

Ordernotification

Installationinstructions

Installationacceptance

Equipmentdetails

Checked andsigned order form

Orderdetails +

Blank orderform

Spec. +supplier +estimate

Supplier listEquipment

spec.

Page 15: SECh78

Slide 15

7.2 Behavioural models

Behavioural models are used to describe the overall behaviour of a system

Two types of behavioural model are shown here• Data processing models that show how data is

processed as it moves through the system

• State machine models that show the systems response to events

Both of these models are required for a description of the system’s behaviour• Data processing models for data-driven systems• State machine models for event-driven systems

Page 16: SECh78

Slide 16

Data-processing models Data flow diagrams are used to model the system’s

data processing These show the processing steps as data flows

through a system - give functional perspective They also show the data exchange between a

system and other systems in its environment Intrinsic part of many analysis methods Simple and intuitive notation that customers can

understand Show end-to-end processing of data

Page 17: SECh78

Slide 17

Order processing DFD

Completeorder form

Orderdetails +

blankorder form

Valida teorder

Recordorder

Send tosupplier

Adjustavailablebudget

Budgetfile

Ordersfile

Completedorder form

Signedorder form

Signedorder form

Checked andsigned order

+ ordernotification

Orderamount

+ accountdetails

Signedorder form

Orderdetails

Page 18: SECh78

Slide 18

CASE toolset DFD

Designeditor

Designcross checker

Designanalyser

Reportgenerator

Designdatabase

Code skeletongenerator

Designdatabase

Inputdesign

Validdesign

Checkeddesign

Designanalysis

Userreport

and

Referenceddesigns

Checkeddesign Output

code

Page 19: SECh78

Slide 19

State machine models

These model the behaviour of the system in response to external and internal events

They show the system’s responses to stimuli -- often used for modelling real-time systems

State machine models show system states as nodes and events as arcs between these nodes. When an event occurs, the system moves from one state to another. States may be composite states.

State diagrams are an integral part of the UML

Page 20: SECh78

Slide 20

Microwave oven model

Full power

Enabled

do: operateoven

Fullpower

Halfpower

Halfpower

Fullpower

Number

TimerDooropen

Doorclosed

Doorclosed

Dooropen

Start

do: set power = 600

Half powerdo: set power = 300

Set time

do: get numberexit: set time

Disabled

Operation

Timer

Cancel

Waiting

do: display time

Waiting

do: display time

do: display 'Ready'

do: display 'Waiting'

Page 21: SECh78

Slide 21

Microwave oven state description

Page 22: SECh78

Slide 22

Microwave oven stimuli

Page 23: SECh78

Slide 23

Composite states

Cookdo: run generator

Done

do: buzzer on for 5 secs.

Waiting

Alarm

do: display event

do: checkstatus

Checking

Turntablefault

Emitterfault

Disabled

OK

Timeout

TimeOperation

Dooropen

Cancel

Page 24: SECh78

Slide 24

7.3 Semantic data models Used to describe the logical structure of data

processed by the system Entity-relation-attribute model sets out the entities

in the system, the relationships between these entities and the entity attributes

Widely used in database design. Can readily be implemented using relational databases

No specific notation provided in the UML but objects and associations can be used

Page 25: SECh78

Slide 25

Software design semantic modelDesign

namedescriptionC-dateM-date

Link

nametype

Node

nametype

links

has-links

12

1 n

Label

nametexticon

has-labelshas-labels

1

n

1

n

has-linkshas-nodes is-a

1

n

1

n1

1

Page 26: SECh78

Slide 26

Data dictionaries

Data models lack detail, supplemented with data dictionaries

Data dictionaries are lists of all of the names used in the system models. Descriptions of the entities, relationships and attributes are also included

Advantages• Support name management and avoid duplication

• Store of organisational knowledge linking analysis, design and implementation

Many CASE workbenches support data dictionaries

Page 27: SECh78

Slide 27

Data dictionary entries

Page 28: SECh78

Slide 28

7.4 Object models Object models describe the system in terms of

object classes Object class identification is recognised as a

difficult process requiring a deep understanding of the application domain

Object classes reflecting domain entities are reusable across systems

Various object models may be produced• Inheritance models

• Aggregation models

• Interaction models

Page 29: SECh78

Slide 29

Inheritance models Organise the domain object classes into a

hierarchy Classes at the top of the hierarchy reflect the

common features of all classes Object classes inherit their attributes and services

from one or more super-classes. Class hierarchy design is an important (though

difficult) process if duplication in different branches is to be avoided

Page 30: SECh78

Library class hierarchyCatalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

Book

YearIssue

MagazineDirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published item

TitleMedium

Recorded item

Page 31: SECh78

User class hierarchyNameAddressPhoneRegistration #

Library user

Register ()De-register ()

Affiliation

Reader

Items on loanMax. loans

Borrower

DepartmentDepartment phone

Staff

Major subjectHome address

Student

Page 32: SECh78

Slide 32

Multiple inheritance

# Tapes

Talking book

AuthorEditionPublication dateISBN

Book

SpeakerDurationRecording date

Voice recording

Page 33: SECh78

Slide 33

Object aggregation

Videotape

Tape ids.

Lecturenotes

Text

OHP slides

Slides

Assignment

Credits

Solutions

TextDiagrams

Exercises

#Problems Description

Course titleNumberYearInstructor

Study pack

Page 34: SECh78

Slide 34

Object behaviour modelling

:Library User

Ecat:Catalog

Lookup

Issue

Display

:Library Item Lib1:NetServer

Issue licence

Accept licence

Compress

Deliver

Issu

e of

ele

ctro

nic

item

s

Page 35: SECh78

Slide 35

7.5 CASE workbenches

A coherent set of tools that is designed to support related software process activities such as analysis, design or testing

Analysis and design workbenches support system modelling during both requirements engineering and system design

These workbenches may support a specific design method or may provide support for creating several different types of system model

Page 36: SECh78

Slide 36

An analysis and design workbench

Centralinformationrepository

Codegenerator

Querylanguagefacilities

Structureddiagramming

tools

Datadictionary

Reportgenerationfacilities

Design, analysisand checking

tools

Formscreation

tools

Import/exportfacilities

Page 37: SECh78

Slide 37

Analysis workbench components Diagram editors Model analysis and checking tools Repository and associated query language Data dictionary Report definition and generation tools Forms definition tools Import/export translators Code generation tools

Page 38: SECh78

Slide 38

Key points A model is an abstract system view.

Complementary types of model provide different system information

Context models show the position of a system in its environment with other systems and processes

Data flow models may be used to model the data processing in a system

State machine models model the system’s behaviour in response to internal or external events

Page 39: SECh78

Slide 39

Key points Semantic data models describe the logical

structure of data which is imported to or exported by the systems

Object models describe logical system entities, their classification and aggregation

Object models describe the logical system entities and their classification and aggregation

CASE workbenches support the development of system models

Page 40: SECh78

Slide 40

5 minute break - a joke/puzzle Some couple has twins who only share their looks One is very optimistic The other is very pessimistic Father puts a set of wonderful toys in the

pessimist’s room and puts horse-manure in the optimist’s room What are the kids’ reactions next morning ?

• Pessimist cries that his friends may break his nice toys

• Optimist hopes that there is a horse somewhere around

Page 41: SECh78

Slide 41

Ch. 8 - Software Prototyping

Prototyping is the rapid development of a system In the past, the developed system was normally

thought of as inferior in some way to the required system so further development was required

Now, the boundary between prototyping and normal system development is blurred and many systems are developed using an evolutionary approach

Page 42: SECh78

Slide 42

Uses of system prototypes The principal use is to help customers and

developers understand the requirements for the system• Requirements elicitation. Users can experiment

with a prototype to see how the system supports their work

• Requirements validation. The prototype can reveal errors and omissions in the requirements

Prototyping can be considered as a risk reduction activity which reduces requirements risks

Page 43: SECh78

Slide 43

Prototyping benefits Misunderstandings between software users and

developers are exposed Missing services may be detected and confusing

services may be identified A working system is available early in the process The prototype may serve as a basis for deriving a

system specification The system can support user training and system

testing

Page 44: SECh78

Slide 44

Prototyping process

Establishprototypeobjectives

Defineprototype

functionality

Developprototype

Evaluateprototype

Prototypingplan

Outlinedefinition

Executableprototype

Evaluationreport

Page 45: SECh78

Slide 45

8.1 Prototyping in the software process Evolutionary prototyping

• An approach to system development where an initial prototype is produced and refined through a number of stages to the final system

• The objective is to deliver a working system to end-users. Starts with best understood requirements.

Throw-away prototyping• A prototype which is a practical implementation of the

system, is produced to help discover requirements problems and then discarded.

• The objective is to validate or derive the system requirements. The prototyping process starts with poorly understood requirements.

Page 46: SECh78

Slide 46

Approaches to prototyping

Evolutionaryprototyping

Throw-awayPrototyping

Deliveredsystem

Executable Prototype +System Specification

OutlineRequirements

Page 47: SECh78

Slide 47

Evolutionary prototyping Must be used for systems where the specification

cannot be developed in advance e.g. AI systems and user interface systems

Based on techniques which allow rapid system iterations. Ev. Proto. has the following benefits.

Accelerated delivery of the system• Rapid delivery and deployment are sometimes more important

than functionality or long-term software maintainability

User engagement with the system• Not only is the system more likely to meet user requirements,

they are more likely to commit to the use of the system

Page 48: SECh78

Slide 48

Evolutionary prototyping

Build prototypesystem

Develop abstractspecification

Use prototypesystem

Deliversystem

Systemadequate?

YES

N

Page 49: SECh78

Slide 49

Evolutionary prototyping

Specification, design and implementation are inter-twined

The system is developed as a series of increments that are delivered to the customer

Techniques for rapid system development are used such as CASE tools and 4GLs

User interfaces are usually developed using a GUI development toolkit

Page 50: SECh78

Slide 50

Evolutionary prototyping problems

Management problems• Existing management processes assume a waterfall

model of development (regular deliverables)• Intractable for large systems with a number of

different subcontractors. Maintenance problems

• Continual change tends to corrupt system structure so long-term maintenance is expensive

Contractual problems• Verification is impossible as there is no specification.

Validation means demonstrating the adequacy of the system. How do you check adequacy ?

Page 51: SECh78

Slide 51

Incremental development Avoids the above problems with a more

manageable process and better system structure but has some of the advantages of prototyping

System is developed and delivered in increments after establishing an overall architecture

Requirements and specifications for each increment may be developed

Users may experiment with delivered increments while others are being developed. Therefore, these serve as a form of prototype system

Page 52: SECh78

Slide 52

Incremental development process

Validateincrement

Build systemincrement

Specify systemincrement

Design systemarchitecture

Define systemdeliverables

Systemcomplete?

Integrateincrement

Validatesystem

Deliver finalsystem

YES

NO

Page 53: SECh78

Slide 53

Throw-away prototyping Used to reduce requirements risk The prototype is developed from an initial

specification, delivered for experiment and then discarded

The throw-away prototype should NOT be considered as a final system• Some system characteristics may have been left out

• There is no specification for long-term maintenance

• The system will be poorly structured and difficult to maintain

Page 54: SECh78

Slide 54

Throw-away prototyping

Outlinerequirements

Developprototype

Evaluateprototype

Specifysystem

Developsoftware

Validatesystem

Deliveredsoftwaresystem

Reusablecomponents

Page 55: SECh78

Slide 55

Prototype delivery

Developers may be pressurised to deliver a throw-away prototype as a final system

This is not recommended• It may be impossible to tune the prototype to meet

non-functional requirements

• The prototype is inevitably undocumented

• The system structure will be degraded by the changes made during development

• Normal organisational quality standards may not have been applied

Page 56: SECh78

Slide 56

8.2 Rapid prototyping techniques

Various techniques may be used for rapid development• Dynamic high-level language development

• Database programming

• Component and application assembly These are not exclusive techniques - they are often

used together Visual programming is an inherent part of most

prototype development systems

Page 57: SECh78

Slide 57

Dynamic high-level languages Languages which include powerful data

management facilities Need a large run-time support system. Not

normally used for large system development Some languages offer excellent UI development

facilities Some languages have an integrated support

environment whose facilities may be used in the prototype

Page 58: SECh78

Slide 58

Prototyping languages

• What is the application domain of the problem?• What user interaction is required?• What support environment comes with the language?• Different parts of the system may be programmed

in different languages. However, there may be problems with language communications

Page 59: SECh78

Slide 59

Database programming languages Domain specific languages for business systems

based around a database management system Normally include a database query language, a

screen generator, a report generator and a spreadsheet.

May be integrated with a CASE toolset The language + environment is sometimes known

as a fourth-generation language (4GL) Cost-effective for small to medium sized business

systems

Page 60: SECh78

Slide 60

Database programming

DBprogramming

language

Interfacegenerator Spreadsheet

Reportgenerator

Database management system

Fourth-generation language

Page 61: SECh78

Slide 61

Component and application assembly

Prototypes can be created quickly from a set of reusable components plus some mechanism to ‘glue’ these component together

The system specification must take into account the availability and functionality of existing components

Componentcompositionframework

Executableprototype

Reusablesoftware

components

Control andintegration code

Page 62: SECh78

Slide 62

Prototyping with reuse Application level development

• Entire application systems are integrated with the prototype so that their functionality can be shared

• For example, if text preparation is required, a standard word processor can be used

Component level development• Individual components are integrated within a

standard framework to implement the system

• Frame work can be a scripting language or an integration framework such as CORBA

Page 63: SECh78

Slide 63

Compound documents in Application level development

For some applications, a prototype can be created by developing a compound document

This is a document with active elements (such as a spreadsheet) that allow user computations

Each active element has an associated application which is invoked when that element is selected

The document itself is the integrator for the different applications

Page 64: SECh78

Slide 64

Application linking in compound documents

Compound document

Word processor Spreadsheet Audio player

Text 1 Text 2 Text 3

Text 4 Text 5

Table 1

Table 2

Sound 1

Sound 2

Page 65: SECh78

Slide 65

Visual programming in Component level development

Scripting languages such as Visual Basic support visual programming where the prototype is developed by creating a user interface from standard items and associating components with these items

A large library of components exists to support this type of development

These may be tailored to suit the specific application requirements

Page 66: SECh78

Slide 66

Visual programming with reuse

File Edit Views Layout Options Help

GeneralIndex

Hypertextdisplay componentDate component

Range checkingscript

Tree displaycomponent

12th January 2000

3.876

Draw canvascomponent

User promptcomponent +

script

Page 67: SECh78

Slide 67

8.3 User interface prototyping

It is impossible to pre-specify the look and feel of a user interface in an effective way. Prototyping is essential.

UI development consumes an increasing part of overall system development costs

User interface generators may be used to ‘draw’ the interface and simulate its functionality with components associated with interface entities

Web interfaces may be prototyped using a web site editor

Page 68: SECh78

Slide 68

Key points A prototype can be used to give end-users a

concrete impression of the system’s capabilities Prototyping is becoming increasingly used for

system development where rapid development is essential

Throw-away prototyping is used to understand the system requirements

In evolutionary prototyping, the system is developed by evolving an initial version to the final version

Page 69: SECh78

Slide 69

Key points Rapid development of prototypes is essential. This

may require leaving out functionality or relaxing non-functional constraints

Prototyping techniques include the use of very high-level languages, database programming and prototype construction from reusable components

Prototyping is essential for parts of the system such as the user interface which cannot be effectively pre-specified. Users must be involved in prototype evaluation