+ All Categories
Home > Documents > Software Engineering: Requirements, Analysis and...

Software Engineering: Requirements, Analysis and...

Date post: 31-Jan-2018
Category:
Upload: dinhkiet
View: 223 times
Download: 0 times
Share this document with a friend
22
Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and Design Paul Dunne GMIT Lecture Outline u Requirements Engineering u Intro to Analysis and Design v Defining Analysis and Design v Why do Analysis and Design? v Types of Analysis and Design
Transcript
Page 1: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 1

Paul Dunne GMIT

Software Engineering: Requirements, Analysis and Design

Paul Dunne GMIT

Lecture Outline

uRequirements Engineeringu Intro to Analysis and DesignvDefining Analysis and DesignvWhy do Analysis and Design?vTypes of Analysis and Design

Page 2: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 2

Paul Dunne GMIT

Roadmap

Paul Dunne GMIT

Requirements Engineering

u Challenge facing system and software engineers:“How can we ensure that we have specified a

system that:vProperly meets the customer’s needsvSatisfies the customer’s expectations

u Requirements engineering provides mechanisms for:vUnderstanding what the customer wantsv analysing needv assessing feasibilityv negotiating a reasonable solutionv specifying the solutionv validating the specificationvmanaging the transformation of the requirements into an

operational system

Page 3: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 3

Paul Dunne GMIT

Requirements Engineering

u The requirements engineering process can be described in six steps:vRequirements elicitationvRequirements analysis and negotiationvRequirements specificationvSystem modellingvRequirements validationvRequirements management

uWe will discuss some of these in more detail

Paul Dunne GMIT

Find-out Analyse Document CheckingThe process of finding, analysing, documenting and checking services and constraints

What is Requirements Engineering?

RAn Abstract description of Services or Constraints for System

Detailed formal mathematical definition of a system function

A range of definitions depending who’s talking!What is a Requirement?

Manager

Coder

Definitions please...

Page 4: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 4

Paul Dunne GMIT

So where do all these different requirement definitions come from? Abstraction (Davis)

“If a company wishes to let a contract for a large software development project, it must define its needs in asufficiently abstract way that a solution is not pre-defined. The requirements must be written so that several

contractors can bid for the contract, offering, perhaps, different ways of meeting the client organisation’s needs.Once a contract has been awarded, the contractor must write a system definition for the client in more detail sothat the client understands and can validate what the software will do. Both of these documents may be called

the requirements document for the system.”

abstractAllow a lot of

people bidAward

Contract

Nailit

down

Requirements Detailed System Requirements

Abstract User Requirements

Paul Dunne GMIT

Say that again ....What is a requirement?

u It may range from v a high-level abstract description of a service or of a system

constraintv to a detailed mathematical functional specification

u This is inevitable as requirements may serve a dual functionv May be the basis for a bid for a contract - therefore must be

open to interpretationv May be the basis for the contract itself - therefore must be

defined in detail

u Both these statements may be called requirements

Page 5: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 5

Paul Dunne GMIT

Importance of ‘correct’ Requirements

Paul Dunne GMIT

Requirements Elicitation

u It might seem that this should be simple:vAsk the customer, users, and others:

» What the objectives for the system are» What is to be accomplished» How the system fits the into the needs of the business» How the system will be used on a day-to-day basis

u In fact it is hard!vProblems of scopevProblems of understandingvProblems of volatility

Page 6: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 6

Paul Dunne GMIT

Why its Difficult

Paul Dunne GMIT

Problems of Scope

u The boundary of the system may be ill-definedvWho is going to interact with the system?vWhat other systems are involved?vExactly what functionality is the responsibility of the system

» e.g. should a rostering system produce a telephone directory?

u The customer/user may specify unnecessary technical detail that may confuse overall system objectivesve.g. specifying OS, language, hardware, etc. for no particularly

good reason

Page 7: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 7

Paul Dunne GMIT

Problems of Understanding /1

uCustomers/users may:vNot be completely sure of what is needed, e.g.:

» “See what you can do to help us”(Marketing director of textile business)

» “Try to improve the project”(Director of British Aircraft Corporation, with reference to theConcorde project)

vHave a poor understanding of the capabilities and limitations oftheir computing equipmentvNot have a full understanding of the problem domainvHave trouble communicating needs to system engineervOmit information believed to be “obvious”vSpecify requirements that conflict with needs of othersvSpecify requirements that are ambiguous or untestable

Paul Dunne GMIT

Problems of Understanding /2

Page 8: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 8

Paul Dunne GMIT

Problems of Volatility

uRequirements change over timeuChange is inevitable in most systems, due to

factors such as:vChanges in customer organization, e.g.

» new divisions, new productsvChanges in scale, e.g.

» Number of transactions per day» Number of users» Increased connection bandwidth

vExternal changes» Changes in law (e.g. taxation)» Changes in international standards (e.g. MPEG)

vCustomers get new ideas as they become aware of system possibilities

Paul Dunne GMIT

Overcoming Requirements Elicitation Problems

uSommerville and Sawyer give guidelines for addressing these problemsvAssess business and technical feasibility for the proposed systemv Identify the people who will help to specify requirements, and

understand their organizational biasvDefine the technical environment in which the system will be

placed:» Computing architecture, operating system,

telecommunications needsv Identify “domain constraints” that limit system functionality or

performance» Characteristics of business environment specific to application

domain

Page 9: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 9

Paul Dunne GMIT

Overcoming Requirements Elicitation Problems (cont.)

uDefine one or more requirements elicitation methodsv Interviews, focus groups, team meetings

uEnsure that many people participate so that requirements are defined from different points of viewv Identify and record the rationale for each requirement

u Identify ambiguous requirements as candidates for prototypingvA means of addressing volatility

uCreate usage scenarios to help customers/users better identify key requirements

Paul Dunne GMIT

Products of Requirements Elicitation Process

u The requirements elicitation process will produce work products to be included in the software configurationv statement of need and feasibilityv bounded statement of scope for the systemv list of customers, users and other stakeholders who participated

in requirements elicitationv description of system’s technical environmentv list of requirements and their domain constraints

» preferably organized by function v set of usage scenarios (under different operating conditions)v any prototypes that were developed

u All work products are reviewed by participants in requirements elicitation

Page 10: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 10

Paul Dunne GMIT

Requirements Analysis and Negotiation

u The products of requirements elicitation form the basis for requirements analysis

uRequirements analysisvCategorises requirements

» Organises them into related sub-setsvExplores relationships between requirementsvExamines requirements for

» Consistency» Omissions» Ambiguity

vPrioritises requirements based on customer/user needs» May lead to plan for incremental development

Paul Dunne GMIT

Requirements Analysis Questions

u Is each requirement consistent with the overall objective for the system?

u Have all requirements been specified at the proper level of abstraction?v i.e. not too much technical detail, or exclusion of future

possibilities

u Is each requirement really necessary?vOr is it an add-on not needed for core system objective?

u Is each requirement bounded an unambiguous?u Does each requirement have an attribution?

vWho or what is the source of the requirement?

u Are there any conflicting requirements?u Is each requirement technically achievable in specified

environment?u Is each requirement testable once implemented?

Page 11: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 11

Paul Dunne GMIT

Requirements Negotiation

u It is common for customers/users to ask for more than can be achieved

u Also common for different stakeholders to proposed conflicting requirementsv e.g. cost requirement from management vs. performance

requirement from usersvEach party might argue that their requirement is “essential”

u Requirements engineer must resolve these conflicts through negotiation:vPrioritise requirements, discuss conflicts in this orderv Identify risks associated with requirementsvProduce “guesstimates” of development effort for each

requirement

u In an iterative process, modify, combine or eliminate requirements so that each stakeholder gets some satisfaction

Paul Dunne GMIT

Requirements Management

uWe have noted that changes in requirements:v are essentially unavoidablevwill persist throughout the lifetime of the system

uRequirements management helps the project team to identify, track and control requirements and changes to themvThis is closely related to configuration management

u Traceability tables are developed for requirements

Page 12: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 12

Paul Dunne GMIT

Requirement flavours

u Requirements can be considered to come in two, or three, flavours depending on your perspective.

v Functional requirements v Non-Functional requirements v Domain requirements

Paul Dunne GMIT

Functional and non-functional requirements(an artificial distinction?)

u Functional requirements v Statements of services the system should provide, how the system

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

v FR1: The system should read my id card, then request and read my account password and tell me my account balance.

u Non-functional requirementsv Constraints on the services or functions offered by the system such

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

v NFR1: ID cards should be authenticated within 30ms

u Domain requirementsv Requirements that come from the application domain of the system

and that reflect characteristics of that domainv The ATM should be weatherproof (IP65)

Page 13: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 13

Paul Dunne GMIT

Functional requirements

uDescribe functionality or system servicesuDepend on the type of software, expected users and

the type of system where the software is usedu Functional user requirements may be high-level

statements of what the system should do .... but ... u Functional system requirements should describe the

system services in detail

What services does the system provide?

Paul Dunne GMIT

Requirements imprecision

u Problems arise when requirements are not precisely stated - in fact its one of software’s biggest problems!

u Ambiguous requirements may be interpreted in different ways by developers and users

u Consider the term ‘appropriate viewers’v User intention -

» Special purpose viewer for each different document typev Developer interpretation

» Provide a text viewer that shows the contents of the document

What I mean

What you think I mean

Page 14: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 14

Paul Dunne GMIT

Requirements completeness and consistency

u In principle requirements should be both complete and consistentv Complete

» They should include descriptions of all facilities required

v Consistent

» There should be no conflicts or contradictions in the descriptions of the system facilities

u In practice, it is impossible to produce a complete and consistent requirements document!

Paul Dunne GMIT

Non-functional requirements

u They mayv Define (emergent) system properties

» e.g. reliability, response time and storage requirements. v and constraints

» Constraints are I/O device capability, system representations, etc.

u Process requirements may also be specified:v use a particular CASE system v use a programming language v use Type A development methodv conform to a quality standard.

u Non-functional requirements may be more criticalthan functional requirements. If these are not met, the system is useless

Page 15: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 15

Paul Dunne GMIT

Possible metrics for specifying non- functional system properties

Property MeasureSpeed Processed transactions/second

User/Event response timeScreen refresh time

Size K BytesNumber of RAM chips

Ease of use Training timeNumber of help frames

Reliability Mean time to failureProbability of unavailabilityRate of failure occurrenceAvailability

Robustness Time to restart after failurePercentage of events causing failureProbability of data corruption on failure

Portability Percentage of target dependent statementsNumber of target systems

Paul Dunne GMIT

Domain requirements

uDerived from the application domain of the system rather than the specific needs of system user.

uDescribe system characteristics and features that reflect the domain.

uMay be new functional requirements, constraints on existing requirements or define specific computations

u If domain requirements are not satisfied, the system may be unworkable

Page 16: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 16

Paul Dunne GMIT

Domain requirements problems

uUnderstandabilityvRequirements are expressed in the language of the application

domainvThis is often not understood by software engineers developing the

system

u ImplicitnessvDomain specialists understand the area so well that they do not

think of making the domain requirements explicit

Paul Dunne GMIT

Requirements and design

u In principle, requirements should state what the system should do and the design should describe how it does this

u In practice, requirements and design are inseparablev A system architecture may be designed to structure the

requirementsv The system may inter-operate with other systems that

generate design requirementsv The use of a specific design may be a domain requirement

Page 17: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 17

Paul Dunne GMIT

Roadmap

Paul Dunne GMIT

Analysis and Design

Page 18: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 18

Paul Dunne GMIT

Definitions

uMany different definitions of the difference between analysis and design

u In the past there was common agreementuWas viewed as follows:

EssentialModel

ImplementationModel

Role of the Analyst Role of the Designer

Description of the Problem Description of the Solution

Paul Dunne GMIT

Definitions (2)

uStructured Analysis and Structured Designv different tools used to develop systemv often different teams used to do analysis and designv clear distinction between tasksv leads to the “Analysis/Design Wall”

Page 19: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 19

Paul Dunne GMIT

Definitions (3)

uWith newer development methods, the divide between analysis and design breaks downv the concept of seamlessnessv that an essential model is very difficult to develop without

reference to the implementation issuesv the increasing emphasis on requirements analysis

uSome commentators see onlyv Requirements Analysisv High-level Designv Low-level Design

u The debate rages on!

Paul Dunne GMIT

Definitions (4)

uSystems Analysisv Process of defining a problem, gathering the requirements and

developing an analysis model representing those requirementsv Describing the problem the system means to solve

uSystems Designv Process by which the analysis model is transformed into a model

which is capable of being implementedv Describing the solution to the problem

Page 20: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 20

Paul Dunne GMIT

Why do we need Analysis?

Paul Dunne GMIT

Why do analysis and design?

uAdd formalityuReduce errorsu Improve communication between participantsuGet the requirements right!u The cost of fixing analysis and design errors as one

moves from the analysis phase to the maintenance phase can increase by a factor of 100

uGenerate documentation

Page 21: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 21

Paul Dunne GMIT

Cost of Analysis/Design Errors

Paul Dunne GMIT

Source of Errors

Page 22: Software Engineering: Requirements, Analysis and Designgmitweb.gmit.ie/pdunne/sweng/03-Requirements.pdf · Page 1 Paul Dunne GMIT Software Engineering: Requirements, Analysis and

Page 22

Paul Dunne GMIT

Types of Analysis/Design

u Top-down Analysis and Designv Structured Analysisv SADT

uObject-Oriented Analysis and Designv Object Modeling Technique (OMT)v Booch OOA&Dv Unified Modeling Language (UML)

uData-Driven Analysis and Designv Jackson System Designv Warnier-Orr Method

Paul Dunne GMIT

References

uPressman, R., Software Engineering: A Practitioner's Approach, McGraw-Hill, 2000 (Chapter 10).

uSommerville, I. and Sawyer, P., Requirements Engineering, Wiley, 1997.


Recommended