pvk-051 contents introduction requirements engineering project management software design detailed...

26
PVK-05 1 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

Post on 18-Dec-2015

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 1

Contents

IntroductionRequirements EngineeringProject ManagementSoftware DesignDetailed Design and CodingQuality AssuranceMaintenance

Page 2: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 2

Requirements Engineering

What is a Requirement?

RE Activities

Requirements Documentation

RE Methods and Notations

Examples

Page 3: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 3

What is a requirement?

A Requirement is something that the product must do or a quality that the product must have.Three kinds of requirements:o Functional Requirementso Non functional requirementso Constraints

Page 4: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 4

1. System shall communicate with external system X.

2. The product shall run on the company’s existing Unix machines.

3. The system must have a file containing a complete list of students that is accessible only by the teacher.

4. The product should be user friendly.....

Functional

Constraint

Non Functional

Functional and non functional

.....new users should be able to add buttons within 30 minutes of their first attempt at using the product.

Examples

Page 5: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 5

Acquire and identify requirementso Study the system / organisationo Study available documentso Ask users / domain experts

• Questionnaires• Interviews

Analyse and evaluate requirementso Domain analysiso Prototypingo JAD / JAW o Scenario modelling

Document requirementsReview and validate requirements

RE Activities

Page 6: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 7

Describe external system behaviouro Functional requirementso User interfaceo Acceptable responses to undesired events

Describe system propertieso Non-functional requirementso Acceptance criteria

Implementation independent reference Specifies the WHAT and not the HOW Part of the contract between customer and

developer

Purpose of the Requirements Document

guide analysis

guide design

Page 7: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 9

Quality factors for requirements documents

o Understandable by users and developers

o Correct

o Consistent

o Complete

Documenting Requirements is Important

oRealistic

oTestable

oTraceable

oPrioritised

Page 8: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 10

Requirements Writing Style

Do not use vague terms or verbs like “some,” “obviously,” “usually,” “often,” “it follows that,” …

Make sure that uncompleted lists are understood completely (e.g. “etc.,” “and so on,”“…,” ...)

Make sure that ranges are clearly understood, e.g. what means “in the range of 1 to 100”

Ask for clear definitions of terms like “always,” “never,” “almost,” etc.

Use pictures and examples to aid in understanding

Explain all of your terminology Use “shall,” “must,” “should,” consistently

Page 9: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 11

Requirements Engineering

What is a Requirement? RE ActivitiesRequirements DocumentationRE Methods and NotationsExamples

Page 10: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 12

Classical Approaches to RE

Problems:o Coping with size

Structured approachStepwise refinementHierarchical organisation

o Coping with changeLogic modelMaintainable results

o Coping with documentation

Simple notationGraphical elements

Solutions:o SA (75/75)

Function-oriented

o ER (end 70s)Data-oriented

o SA/RT (85/87)Control-oriented

o Integrated approachesSA/ER/RT (end 80s)OO/RT (early/mid 90s)???

Systematic approaches to requirements analysis and definition

Page 11: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 13

Structured Analysis (SA)Developed 1975/76o DeMarco/Yourdono Gane/Sarson

System = Process transforming input into outputHierarchical, logical system modelo Processeso Data flowso Data storeso Terminators

Notation:o Data flow diagrams (DFDs)o Data dictionary (DD)o Process specifications (PSpecs)

Page 12: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 14

Data Flow Diagrams

Gane/Sarson DeMarco/Yourdon

Terminator:Source or destination of data/information.

Outside the system boundaries.

Data flow:Flow of data.

Process:Transforms input data flow(s)

into output data flow(s).

Data store:Data repository.

data item(s) data item(s)

Page 13: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 15

DFD DevelopmentStart with a context diagramSuccessively refine processesDescribe all data in the data dictionaryDescribe all atomic processes by PspecsExample: Order processing

Customerprocessorders

order

invoice

refineCustomer

verifyif order is

valid

order

invoice

package data

customer data

credit status

available

packages

assembleand invoice

order

Page 14: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 16

DFDs--Managing Complexity

structure

DFD hierarchy+ numbering/naming rules

+ balancing rules

Level n+1

Level n

Level n+2

Page 15: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 17

DFDs--“Forbidden” Structures

The SA notation is not formally definedRules are defined by experiences and tool features

In-data only

Out-data only

Store-to-store flows

Terminator-to-terminator flows

Cycles

Unnamed dataflows(exception: from/to data stores)

Page 16: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 18

DFD Naming and Balancing

System0

Context diagram Level 0

Terminput

output

Do X1

System Level 1

input outputDo Y

2

Do Z3

some data

other data

data

Do A.1

Do Z Level 2

data d5Do B

.2

Do C.3

d3

d2

d1a store d6

In data dictionary: some data = d5 + d6(alternatively: some data = d5 | d6)

All names must beunambiguous.

Numbering schemehelps to find processesin the hierarchy Do C: 3.3

Page 17: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 19

PSpecs and DDThe format of PSpecs is not restrictedo Free texto Pseudocode

PSpecs must be defined for all atomic processes

The format of the DD is semi-formalExample:

telephone number = [ local extension | outside number ]local extension = 2 + { number }3

outside number = 0 + [ local number | long distance number ]local number = prefix + access numberlong distance number = (1) + area code + local numberprefix = [ 123 | 124 | 125 ]access number = { number }4

number = * any number between 0 and 9 *

selection (or)

optional

repetitiona comment

composition (and)

Page 18: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 20

SA--SummaryAdvantageso Simple notationo Supports hierarchical decompositiono Easy to understando Good communication mediumo Supports consistency checks

Disadvantageso Not well definedo No common guidelineso Many dialectso Incomplete

• Very poor data descriptions• No description of control flows

Page 19: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 21

Data Modelling

The entity-relationship (ER) model was developed by Chen (late 70s) to support data(base) modellingFocuses only on the static structure of dataNotationo Entity-relationship diagrams (ERDs)o Attribute dictionary

Page 20: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 22

ERD NotationAccording to Chen + common extensions

Set of real or abstract things about which data is stored

Set relations between entities with cardinalities m and n.

Information that is stored along with entities and relationships.Composition of entities.

Classification between entity- and relationship types.

Entitytype

Attribute

Relation-ship type

m n

Page 21: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 23

ERD--An ExampleTeam

MemberName Responsi-bility

n 1..3

ExternalEmployee

SWProject

DocumentsEquipment

Address

Rank h/week

Responsi-bility

m n

Attribute Dictionary

Attribute structuresTeamMember = Name, Address, Rank;Employee = ...;...

Attribute typesName = STRING;Address = STRING;...

Page 22: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 24

SA/ER Integration

ProjectTeam

Data Dictionary

ProjectTeam = { TeamMember }n

TeamMember = Name + Address + Rank...

Process

DFDsTeam

MemberName Responsi-bility

n 1..3

ExternalEmployee

SWProject

Address

Rank

ERDs

Page 23: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 25

ERM--SummaryAdvantageso Simple notationo Supports hierarchical and

structural decompositiono Easy to understando Good communication mediumo Well understoodo Widely usedo Good tool support

Well-suited for DB design

Disadvantageso No behaviour

descriptionso No control

descriptions

Almost useless for non-DB applications

Extensions of ERM lead to OO approaches

Page 24: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 26

Use Case Diagram

Sign on for exams

Take exam Student

Secretary

Dean

Student

Administer marks

Schedule lectures Prof

Page 25: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 27

Popularity of (Classical) Methods

23%

8%13%

5%

36%

15%

SA [DeMarco/ Yourdon]

SA [Gane/ Sarson]

DSSD [Warnier/ Orr]

Other "structured"methods (JSD, SADT, ...)VHLL [Martin] (no RElanguage)Inhouse method

Study from 1990, see [Yourdon 92].

Page 26: PVK-051 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Maintenance

PVK-05 28

ReferencesYourdon, E. (1989). Modern structured analysis. Englewood

Cliffs, N.J. : Yourdon Press.Page-Jones, M. (1988). The Practical Guide to Structured

Systems Design. Englewood Cliffs, N.J. : Yourdon Press.Kaufmann, A. (2000). Transcript for Systems Analysis Lecture.

University of Applied Sciences Giessen-FriedbergSimons, A. (2000). Use Cases Considered Harmful Dept. of

Computer Science, University of Sheffieldhttp://

www.smartdraw.com/resources/centers/software/ssadm.htmhttp://www.canberra.edu.au/~sam/whp/datadict.htmlhttp://www.software-magazin.de/Programmierung/Methoden/SA/body_sa.htmlhttp://www.sims.berkeley.edu/courses/is208/s01/Lectures/208-dataflowdgm.ppthttp://www.cis.ohio-state.edu/~bbair/516http://www.bus.iastate.edu/hndrcksn/MIS538