software engineering week 9 – brief introduction of requirement #1 a.a. gde bagus ariana, s.t....

39
Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. [email protected] http://gungariana.wordpress.com

Upload: juliana-caldwell

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

SoftwareEngineeringWeek 9 – Brief Introduction of Requirement #1

A.A. Gde Bagus Ariana, [email protected]

http://gungariana.wordpress.com

Page 2: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Objectives

• To introduce the concepts of user and system requirements

• To describe functional and non-functional requirements

• To explain how software requirements may be organised in a requirements document

Page 3: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com
Page 4: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com
Page 5: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Why Important?

• The hardest single part of building a software system is deciding precisely what to build. No other part of conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines and to other software systems. No other part of the work so cripples the resulting system If done wrong. No other part is more difficult to rectify later.

(Brooks 1987)

Page 6: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Causes of the failed projects

• Incomplete requirements (13.1%)• Lack of user involvement (12.4%)• Lack of resources (10.6%)• Unrealistic expectations (9.9%)• Lac of executive support (9.3%)• Changing requirements and specifications (8.7%)• Lack of planning (8.1%)• System no longer needed (7.5%)

Page 7: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com
Page 8: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com
Page 9: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Requirements Engineering Domains

Page 10: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Boundary

Page 11: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process :2 Documents

• Req. definition– Complete listing of customer’s system

expectations– High-level abstract description of req.– Natural language + simple diagrams– Limitations & constraints– From customer-supplied info.– Written for customers

Page 12: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process

• Definition of Requirement– Feature of system– Description of system

• Process– Action to determine the req.

• Capable of doing•There is a purpose

Page 13: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

• Req. specification– Restates req. definition in technical terms– For sys. designers to follow– Detailed desc. ? system should do– Sets out sys. services in detail– A.k.a. Functional Spec.– Cust./User/Developer contract– Written as a contract between customer and

developer

The Requirements Process :2 Documents

Page 14: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process

• S/W specification– More detailed description– Bridge req. process & design activities– S/W abstracts basis: design & implementation

Page 15: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process

ProblemAnalysis

ProblemDescription

Prototypingand testing

Documentation & Validation

Have we captured all the user need?

Are we usingthe right techniques or views?

Is this functionfeasible?

Have we captured what the user expects?

Reqn Elicitation and AnalysisReqn Definition and Specification

Feasibility study Reqn Analysis

Reqn Definition

Reqn SpecificationSystem models

Definition of reqn

Specification of reqnReqn Document

Feasibility Report

Page 16: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process

• Req. elicitation– Developers work with cust. :• Asking questions• Demonstrating similar systems• Developing prototypes

– Problem analysis identify:• People• Processes• Resources

ProblemAnalysis

ProblemDescription

Prototypingand testing

Have we captured all the user need?

Are we usingthe right techniques or views?

Is this functionfeasible?

Reqn Elicitation and Analysis

Page 17: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process• Req. definition & spec.– 3 categories of req.:• Must be met• Highly desirable but not necessary• Possible but could be eliminated

Documentation & Validation

Have we captured what the user expects?

Reqn Definition and Specification

Page 18: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process• Req. definition & specification– Doc. formal agreement• Req. specific descriptions of

functions/charateristics • Req. does not specify “how” (E.g. what DBMS or pgm. Lang. to use)

Page 19: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

The Requirements Process

• 2 steps ensuring req. fully mapped & understood:– Verification complete, correct & consistent

requirements– Validation developers described what customer

intends

Page 20: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Configuration Mgmt.

• Set of procedures that track:– Requirements– Designs– Program codes– Tests strategies & approaches– Documents

Page 21: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Functional & Non

• Functional req.– Capture the intended behavior of the system ie.

tasks or functions the system is required to perform.

– Use cases have quickly become a widespread practice for capturing functional requirements

– E.g. engine for a vehicle & invoice generation for a Debtors accounting system

Page 22: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com
Page 23: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Functional & Non

• Functional req.

Page 24: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Functional & Non• Non-functional req.– Describes a restriction on the system– Split into two types: • performance and development.

• Performance Constraints– The response time for information to appear to a user.– The number of hours a system should be available.– The number of records a system should be able to hold.– The capacity for growth of the system.– The length of time a record should be held for auditing purposes.

Page 25: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Functional & Non• For the customer records example these might be:– Information should be made available and be stored in a

maximum of 3 seconds.– The system should be available from 9am to 5 pm Monday

to Friday.– The system should be able to hold a 100,000 customer

records initially.– The system should be able to add 10,000 records a year for

10 years.– A record should be fully available on the system for at least

7 years.

Page 26: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Functional & Non• Development constraints:– Time - When a system should be delivered is the obvious

time constraint.– Resource - How much money is available to develop the

system is obvious, but a key resource would be the amount of time business staff could spend in briefing system development staff.

– Quality - Any standards which are used to develop the system including project management, development methods etc.

Page 27: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?

• Natural language– Problem• Not precise & unambiguous• Not easily separated system elements• Difficult to trace back

– Solution• Formal notation• Automated tools

Page 28: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

A Picture Is Worth thousand Words

Page 29: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?• Additional Reqn Notations– Hierarchical Techniques (Warnier-Orr

Diagram)– Data Flow Diagrams (DFD)– Software Req. Engineering Methodology

(SREM)– Structured Analysis & Design Technique

(SADT)– Formal Specification (Z)

Page 30: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?

• Data Abstraction– Describing what the data are for– Each kind of data an object class type– Methods identified– UML’s diamond aggregation– UML’s horizontal arrow association

Page 31: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?STUDENT

Student numberCredit-Hours

Compute Tuition

IN-STATE STUDENT

Student numberIn-State Rate

Compute Tuition

OUT-STATE-STUDENT

Student numberOut-of-State Rate

Compute Tuition

class name

attributes

methods

Page 32: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?

• Object-Oriented Specification• Focus on entities involved• Data-abstraction elements within• Objects, attributes & methods• Distinguishable:– Encapsulation– Information hiding– Class hierarchies– Inheritance– Polymorphism

Page 33: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

How to Express Req.?

• Data Flow Diagram (DFD)– You already know

Page 34: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

IEEE requirements standard

• Defines a generic structure for a requirements document that must be instantiated for each specific system. – Introduction.– General description.– Specific requirements.– Appendices.– Index.

Page 35: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Requirements document structure• Preface• Introduction• Glossary• User requirements definition• System architecture• System requirements specification• System models• System evolution• Appendices• Index

Page 36: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Key points

• Requirements set out what the system should do and define constraints on its operation and implementation.

• Functional requirements set out services the system should provide.

• Non-functional requirements constrain the system being developed or the development process.

• User requirements are high-level statements of what the system should do. User requirements should be written using natural language, tables and diagrams.

Page 37: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Key points

• System requirements are intended to communicate the functions that the system should provide.

• A software requirements document is an agreed statement of the system requirements.

• The IEEE standard is a useful starting point for defining more detailed specific requirements standards.

Page 38: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Thank YouQuestion?

Page 39: Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T. gungariana@yahoo.com

Tugas

• Buat resume tentang Requirement yang baik. Kriteria requirement yang baik adalah SMART:– Specific / spesifik– Measurable / terukur– Attainable / dapat dicapai– Realizable / daapt direalisasikan– Traceable / dapat dilacak

• Jelaskan dan beri contoh masing-masing kriteria diatas