30
REKAYASA PERANGKAT LUNAK Semester Genap 2013 - 2014 Analysis Concepts and Principles Beni Suranto, S.T., M.SoftEng

RPL - 004 Analysis Concepts and Principles

Embed Size (px)

Citation preview

Page 1: RPL - 004 Analysis Concepts and Principles

REKAYASAPERANGKAT LUNAKSemester Genap 2013 - 2014

Analysis Concepts and Principles

Beni Suranto, S.T., M.SoftEng

Page 2: RPL - 004 Analysis Concepts and Principles

Outline

● Software requirement analysis

● Source, stakeholders, techniques

● Analysis principles

● Prototyping

● Requirement specification

● Review

Page 3: RPL - 004 Analysis Concepts and Principles

Definition

Engineering process

● What is the problem to be solved?

● What are the characteristics of the solution?

● How will the solution be realised?

● How will the solution be constructed?

● What approach will be used to uncover errors that were made in the design and construction of the solution?

● How will the solution be supported over long term?

Development

Change

Page 4: RPL - 004 Analysis Concepts and Principles

Analysis

Design

Code

Test

Maintenance

Definition

Change

Development

Page 5: RPL - 004 Analysis Concepts and Principles

Software requirements

● A software requirement

● a property which must be exhibited by softwaredeveloped or adapted to solve a particular problem.

Page 6: RPL - 004 Analysis Concepts and Principles

● Product vs. process requirements

● Product

– requirements on software

– “The software shall verify that a student meets all prerequisites before he/she registers for a course.”

● Process

– requirements on the development of software

– “The software shall be written in Java.”

Page 7: RPL - 004 Analysis Concepts and Principles

● Functional vs. non-functional requirements

● Functional

– Functions that the software must execute

– “The software processes students' course registrations.”

● Non-functional

– Constraints or quality of the software

– “The software shall be able to process at least 500 course registrations per minute.”

Page 8: RPL - 004 Analysis Concepts and Principles

Software requirement analysis

● A process of discovery, refinement, modeling, and specification of software requirements.

● Enables software engineer to

● specify function and performance

● indicate interaction with other elements

● establish constraints that must be met.

Page 9: RPL - 004 Analysis Concepts and Principles

Software requirement

analysis

Software design

Architectural design

Page 10: RPL - 004 Analysis Concepts and Principles

● Requirement sources

● Goals (eg. business concern, success factors)

● Domain knowledge

● Stakeholders

● Operational environment

● Organisational environment

Page 11: RPL - 004 Analysis Concepts and Principles

● Stakeholders(people involved in software development)

● Users

● Customers

● Market analysts (for mass market software)

● Regulators (eg. banking, transportation)

● Software engineers

Page 12: RPL - 004 Analysis Concepts and Principles

● Techniques● Interviews

● Observations

● Scenarios (what-if, how-to)

● Prototypes

● Facilitated meetings– Refinement

– Conflicts resolution

– Prioritisation

Page 13: RPL - 004 Analysis Concepts and Principles

Analysis principles (1)

● The information domain of the problem must be represented and understood.

● Software is to process data and information.

● Information domain consists of

– Information content (ie. individual data)

– Information structure

– Information flow

Page 14: RPL - 004 Analysis Concepts and Principles

● The functions that the software is to perform must be defined.

● Function: what to do

– Process

– Input and output

– Actor (optional)

Analysis principles (2)

Page 15: RPL - 004 Analysis Concepts and Principles

● The behaviour of the software must be represented.

● Behaviour: how to do

– The detailed information of functions.

Analysis principles (3)

Page 16: RPL - 004 Analysis Concepts and Principles

● The models must be partitioned in a manner that uncovers detail in a layered fashion.

● Problem is too large or too complex to handle.

● Decompose the problem into sub-problems.

– Vertical and horizontal decomposition

Analysis principles (4)

Page 17: RPL - 004 Analysis Concepts and Principles

Alarm software

Configure system

Monitor sensors

Interact with user

Poll for sensor event

Activate alarm functions

Horizontal partitioning

Vert

ical part

itio

nin

g

Page 18: RPL - 004 Analysis Concepts and Principles

● The analysis process should move from essential information toward implementation detail.

● Essential view

– High-level representation of structures and function (without involving implementation detail)

● Implementation view

– Real-world realisation of structures and functions.

Analysis principles (5)

Page 19: RPL - 004 Analysis Concepts and Principles

Model AModel A

Model A'

Model A''

Essential information

Implementation detail 1

Implementation detail 2

Page 20: RPL - 004 Analysis Concepts and Principles

Prototyping

● Prototype is a software realisation of requirements for assessment.

Build prototype

Customer test

prototype

Listen to customer

Assessment

Requirement analysis

Page 21: RPL - 004 Analysis Concepts and Principles

● Throwaway prototype

● For demonstration purpose only

● Prototype is discarded when requirement are clearly understood.

● Evolutionary prototype

● Prototype is the first evolution of the software.

● Prototype is continued into design and construction.

Page 22: RPL - 004 Analysis Concepts and Principles

Requirement specification

● Establishes the basis for agreement between customers and developers on

● What the software to do

● What the software not expected to do.

● Provides a realistic basis for estimating product costs, risks, and schedules.

Page 23: RPL - 004 Analysis Concepts and Principles

● Requirements are in natural language.

● Requirement specification is supplemented by formal or semi-formal description.

● Eg. mathematical or graphical model.

Page 24: RPL - 004 Analysis Concepts and Principles

Example: Specification outline● Introduction

– System references

– Overall description

– Software project constraints

● Information description– Information content and structure representation

– Information flow representation

● Functional description– Functional partitioning

– Functional description: narrative, limitation, performance, constraints, diagrams.

Page 25: RPL - 004 Analysis Concepts and Principles

● Behavioural description

● Validation and criteria

– Performance bounds

– Classes of tests

– Expected response

– Special considerations

● Bibliography

● Appendix

Page 26: RPL - 004 Analysis Concepts and Principles

● Specification review– Do goals and objectives for software remain consistent

with system goals and objectives?

– Have important interfaces to all system elements been described?

– Is information structure and flow adequately defined?

– Are diagrams clear?

– Do functions remain within scope and has each been adequately described?

Page 27: RPL - 004 Analysis Concepts and Principles

– Is the behaviour consistent with the information it must process and the functions it must perform?

– Are design constraints realistic?

– Have the technological risk been considered?

– Have alternative software requirements been considered?

– Have validation criteria been stated in detail? Are they adequate?

– Do inconsistencies, omissions, or redundancy exist?

– Has the user reviewed the preliminary prototype?

– How are planing estimates affected?

Page 28: RPL - 004 Analysis Concepts and Principles

Summary

● Software requirement analysis

● Analysis principles

● Requirement specification

Page 29: RPL - 004 Analysis Concepts and Principles
Page 30: RPL - 004 Analysis Concepts and Principles

Thanks..