+ All Categories
Home > Education > software development, process model, requirement engineering, srs, structured design, ooad based on...

software development, process model, requirement engineering, srs, structured design, ooad based on...

Date post: 31-Oct-2014
Category:
Upload: ashok-mohanty
View: 14 times
Download: 4 times
Share this document with a friend
Description:
It gives an overview/ introduction to software engineering
33
Software Software Engineering Engineering By: Ashok Mohanty Reader, Dept. of Mechanical Engg. College of Engg. & technology, Bhubaneswar 1 This ppt is based on: 1. Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson Education 2. Software Engineering, Pressman, McGrawHill 3. Guide to Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society’s Professional Practices Committee, 2004 ©Ashok Mohanty, <[email protected]>
Transcript
Page 1: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software Software EngineeringEngineeringBy:

Ashok Mohanty

Reader, Dept. of Mechanical Engg.

College of Engg. & technology, BhubaneswarCollege of Engg. & technology, Bhubaneswar

1

This ppt is based on:1.Software Engineering, Jibitesh Mishra & Ashok Mohanty, Pearson

Education

2.Software Engineering, Pressman, McGrawHill

3.Guide to Software Engineering Body of Knowledge (SWEBOK),IEEE Computer Society’s Professional Practices Committee, 2004

©Ashok Mohanty,

<[email protected]>

Page 2: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Topics to be discussed

• Characteristics of commercial software• Emergence of Software Engineering • Core aspects of software engineering

• Software processes• Software Development Life Cycle Models

• Types of software requirements• Methods and Activities in Requirement Engineering • Structure of Software Requirement Specification (SRS)

• Approaches to Software Engineering• Function Oriented (FO) approach• Object Oriented (OO) approach

2

©Ashok Mohanty,

<[email protected]>

Page 3: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software is a general term for Programs & Data

Characteristics of commercial Software• Developed for some clients under formal contracts• Software is designed based on some specification• Developed in teams and not by individuals• Includes detailed documentation• Meant for users• Requires some modification from time to time.• Requires some modification from time to time.• Does not wear out but has a lifespan, after which it becomes

obsolete.• Software failure may create catastrophe. So software is designed

for utmost reliability.• A computer system is prone to misuse or sabotage. So software

is designed to be temper-proof

3

©Ashok Mohanty,

<[email protected]>

Page 4: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software DevelopmentDesign and development of software requires great amount ofeffort, time and money

Computer programming is just one part of the process.

It requires a systematic approach that includes• Comprehensive methods• Tools for efficient execution of methods• Procedures for quality assurance• Coordination and control

4

• Coordination and controlIt also involves people and their management.

All these engineering aspects relating to software developmenthave combined together to evolve as a disciplinecalled Software Engineering.

Manufactured product � Industrial EngineeringSoftware product � Software Engineering ©Ashok Mohanty,

<[email protected]>

Page 5: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software CrisisDuring 1970s, large numbers of software projects failed mostlydue to human factors. This problem was referred to as the“software crisis”.

Study by Comptroller General of the United States (1979): 2% of software worked on delivery3% worked only after some corrections45% delivered, but never successfully used20% used, only after major modification/ reworked20% used, only after major modification/ reworked30% were paid for, never completed/ delivered

Software Crisis led to Software Engineering

Software Engineering• Systematic approach to software development• Application of engineering principles• Provides a set of methods, tools, and procedures• Ensures consistent software quality

5

©Ashok Mohanty,

<[email protected]>

Page 6: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Core Aspects of SE

The subject ‘Software Engineering’ is

inter-disciplinary in nature.

Software development requires

active involvement and participation of software

users and developers.users and developers.It requires domain knowledge of various fields including

computer science and area for which software being made.

Product, Process, People, and Project are the four core aspects of software development.

6

©Ashok Mohanty,

<[email protected]>

Page 7: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

SE includes 10 Knowledge Areas

1. Software requirements2. Software design3. Software construction4. Software testing5. Software maintenance

6. Software configuration mgmt.7. Software engg. Management8. Software engg. process9. Software engg. tools &methods 10. Software quality

7

SE knowledge derived from 8 subject areas

1. Computer Engineering

2. Computer Science

3. Management

4. Mathematics

5. Project Management

6. Quality Management

7. Software Ergonomics

8. Systems Engineering

©Ashok Mohanty,

<[email protected]>

Page 8: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software Processrefers to methods of developing software

It has four major component processes1. Software Development Process2. Software Project Management Process3. SoftwareConfigurationManagementProcess3. SoftwareConfigurationManagementProcess4. Software Process Management Process

Software Development ProcessIt is a structured set of activities that transformthe userrequirements into a quality software product.

8

©Ashok Mohanty,

<[email protected]>

Page 9: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Sequential Process Models Iterative Process Models

Process Model

Sequential Process Model Iterative Process Model

Sequential Process Models Iterative Process Models

Software is developed in asequence of stagesStages are:

Analysis, Design,Coding, Testing, etc.

A prototype is developed using thesequential process.After one part is completed, allactivities are repeated fordeveloping the next part.

9

©Ashok Mohanty,

<[email protected]>

Page 10: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Sequential Process Models

The Waterfall modelTraditional sequential process modelSoftware development takes place in well defined phases

1. System Engineering2. Requirement Analysis3. Design

4. Implementation or Coding5. Verification or testing6. Maintenance

TheV-modelExtension of Waterfall modelStipulates various kinds of testing, like unit (module) testing andintegration testing.Information from earlier phases also used for testing

10

3. Design 6. Maintenance

©Ashok Mohanty,

<[email protected]>

Page 11: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Iterative Process Models

Prototyping ModelIt is of two types

Throw-away prototypingUsed for checking software

requirement specification

Evolutionary prototypingInitial working model of software basedon outline specification. This prototypeis evaluated and refined in number ofstagesto getfinal product.stagesto getfinal product.

Spiral model: Each cycle consists of four step

1. Planning 2. Risk Analysis 3. Engineering 4. ValidationSpiral model emphasizes on risk management.

Iterative Waterfall Model: It overcomes the limitations of

Waterfall Model by adding an “iterative” loop. After end of each phase, itsprevious phases are revisited to modify requirements and to remove errors.

11

©Ashok Mohanty,

<[email protected]>

Page 12: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software is developed to perform certainFunctions. Functions is stipulated by Software requirements

(It provides the basis for software development.)

Requirement Engineering (RE)is a systematic approach for determining

Software Requirement Specifications (SRS)

6 types of software requirement specifications• Functional requirement• Design requirement• Implementation requirement• Interface requirement• Performance requirement• Physical requirement.

12

©Ashok Mohanty,

<[email protected]>

Page 13: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Requirement Engineering Activities1. Inception Understanding the situation that have initiated

the software projectIdentification of stakeholders

2. Elicitation Seeking information about the software, system and business (through interview,

questionnaire, record review, observation, etc). Provides initial user requirements

13

Provides initial user requirements

3. Elaboration Developing a refined technical model ofsoftware functions, features & constraints

4. Negotiation Making tradeoff & fixing priorities

5. Validation Requirement specification assessed forcorrectness & quality

©Ashok Mohanty,

<[email protected]>

Page 14: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Requirement Engineering Process

14

©Ashok Mohanty,

<[email protected]>

Page 15: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Typical Structure of SRS Document

1. Introduction

1.1 Name & purpose of software; 1.2 Scope, benefits, objectives, and goals; 1.3 Typesof audience/ users

2. Overall Description

2.1 Product Perspective: Context and origin (how initiated?); Block diagram of overallsystem to which software relates; 2.2 Product Features: Major features and significantfunctions; Organization of functions/ modules; 2.3 Category/ types of users; 2.4Performance Requirements; 2.5 Operating Environment: Hardware platform, operatingsystem, database system, etc.; 2.6 Design and Implementation Constraints; 2.7 Security,safety and privacy Requirements; 2.8 User Documentation; 2.9 Assumptions

©Ashok Mohanty, <[email protected]> 15

3. Software Features: (Detailed software features)

3.1 Name of feature; 3.2 Description of feature & its priority; 3.3 Sequences of useractions & system responses; 3.4 Functional Requirements

4. External Interface Requirements

4.1 User Interfaces; 4.2 Hardware Interfaces; 4.3 Software Interfaces; 4.4Communications Interfaces

5. Other Non-functional Requirements

5.1 Performance Requirements; 5.2 Safety and Security Requirements; 5.3 Softwarequality attributes; 5.4 Other requirements if any

6. Appendix:

6.1 Glossary of terms; 6.2 List of issues; 6.3 Figures and diagrams

Page 16: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Software development process Software development process

Comprises of following activities.

System Analysis or Requirement Analysis

Software Design

Implementation or CodingImplementation or Coding

Testing or Inspection

Maintenance or Adaptation

Activities are performed according to a plan.

16

©Ashok Mohanty,

<[email protected]>

Page 17: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Approaches to Software EngineeringSystem for which software is to be developed is successively broken down (decomposed) into parts and arranged in to hierarchy.

Decomposition is a convenient way of handling any complex problem. complex problem.

TWO approaches to Software Engineering

1. Function-Oriented (FO) Approach 2. Object-Oriented (OO) Approach

Similarity: System factored into parts in both approaches

Difference: lies in the basis on which the system is factored17

Page 18: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Function Oriented vs Object Orient

FO approach focus is on functions or processesFunctions � Sub-functions � more Sub-functions

OO approach focus is on objects or entities

18

OO approach focus is on objects or entitiesObject � Parts (child-objects) � more parts (child-objects)

FO emphasis on ‘what system does (verb)OO emphasis on ‘what system consists of (noun)’.

©Ashok Mohanty,

<[email protected]>

Page 19: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Example of academic institution

Functions Entities that do the functions

Impart teaching on theory Teachers, Classroom, Syllabus

Impart teaching on practical Teachers, Laboratories, Syllabus

Conduct examination Examination section, Classroom,

19

FO approach concentrates on functions. OO approach focuses on objects that do the functions.

Conduct examination Examination section, Classroom, Question-setter, Invigilators, etc.

Evaluate students’ performance

Examination section, Examiners, etc.

©Ashok Mohanty,

<[email protected]>

Page 20: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Function Oriented ApproachFO approach is traditional. It supports structuredprogrammingA structured programconsists of functions (modules) organized in ahierarchy.

Higher level function invokes lower level function.Data is either local or global

20

Global Data

Calls

Function 1

Function 2

Function 3

Operates on

Local Data

Local Data

Local Data

Calls

Operates on©Ashok Mohanty,

<[email protected]>

Page 21: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

FO methodology is also called‘Structured System Analysis and Design (SSAD)’.

Structured analysis is done to determine:

– Functions to be performed– Data to be manipulated– Constraints on functions and data

Functional specification specifies ‘what the software is expected to

21

Functional specification specifies ‘what the software is expected todo?’ It provides the basis for design of software.

Structured Design is done to develop design

specification.Design specification is the blue print for constructing thesoftware.Design specification is translated into a program code.

©Ashok Mohanty,

<[email protected]>

Page 22: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Tools used in SSADTools Purpose

Data Flow Diagram (DFD)

Process mapping of system

Data Dictionary List of different data items used insystem

ER Diagram Data modelling

Process Specification Depictsproceduresusedin system

22

Process Specification Tools

Depictsproceduresusedin system

State Transition Diagram (ST Diagram)

Depicts chronological events andcorresponding systemstates

Structure chart Depicts modular design of a program

Structured English/ Pseudocode

Depicts logic of program

Page 23: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Structured Design

Structured Analysis

Environmental Model

• Statement of Purpose• Context Diagram• Event List

Behavioural Model

Implementation Model

•Structure chart•Interface design

23

• Data Flow Diagram• Data Dictionary • ER diagram• Process specification• State Transition Diagram

•Interface design•Data design•Module specification

Function Oriented Approach to Software Development©Ashok Mohanty,

<[email protected]>

Page 24: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Overview of Object Oriented Approach

World is made up of entities or objects. So analysis and design a system in terms of objects is closer to the real world modelling.

The object oriented approach uses object oriented programming concepts.

24

concepts.

Object consists of data structures combined with relevant functions (method)

An object is invoked by its method. Invocation of a method may change either the properties of the object or invoke some other object.

©Ashok Mohanty,

<[email protected]>

Page 25: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Object 1

MethodsData

Object 3

Methods

Object 4

Methods

Object 2

MethodsData

All arrows represent Invokes

MethodsData

MethodsData

Messages passing within Objects

In OO approach, system functionality is expressed in terms ofoperations or services associated with each object.

Page 26: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Object Oriented Analysis & Design (OOAD)The OOAD comprises of

Object Oriented Analysis (OOA)Object Oriented Design (OOD)

Documentation Tool• Unified Modelling Language (UML)’ is a

documentation tool used in OOAD methodology documentation tool used in OOAD methodology • UML has evolved from the work of Grady Booch,

James Rumbaugh, Ivar Jacobsen, and others at Rational Corporation in 1997.

• At present, the UML has almost become an industry standard documentation tool.

• UML comprises of number of diagrams ©Ashok Mohanty,

<[email protected]>

Page 27: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Steps of OOA•Define User Viewof Requirements•Identify Analysis Objects and their Characteristics•Determine Object Dynamics•Determine Object Interactions and relationship

Diagrams used in OOA.Use case diagram Describes how users interact with processes

Class diagram It is used to refine the use case diagram and define a

27

Class diagram It is used to refine the use case diagram and define adetailed design of the system

State diagram Represents different states that objects in the systemundergo during their life cycle

Activity diagram Describes the process flow of the system

Sequence diagram Represents interaction between objects

Collaboration diagram Groups together interactions between objects.

Page 28: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Fundamental questions in OOD•What objects do we need?•What behaviours are required?•How do we distribute behaviour over the set of objects?

Classes, Attributes, Methods and Associations

Static Modelling’

28

Designed for implementation in OOD

Identified in OOA

Objects also performsome action. Defining thebehaviour (methods) of objects is called the‘Dynamic Modelling’.

©Ashok Mohanty,

<[email protected]>

Page 29: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

Name of diagram PurposeComponentdiagram

Represents high-level parts that make up thesystem.

Deployment Capturesconfigurationof runtime elements

Diagrams in OOD

29

Deploymentdiagram

Capturesconfigurationof runtime elementsof application

Package Holds model elements such as classes, statemachines and use cases.

Subsystem Represents a portion of a systemthat can beimplemented as a distinct component

©Ashok Mohanty,

<[email protected]>

Page 30: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

The OOAD comprises ofObject Oriented Analysis (OOA)Object Oriented Design (OOD)

But there is overlapping of both these phasese.g, Class diagram and Object diagram are included inOOA. But these are also useful in OOD..

30

OO CodingOO DesignOO Analysis

©Ashok Mohanty,

<[email protected]>

Page 31: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

SSAD vs OOADSame basic steps

– Understand the problem– Specify requirements (WHAT)– Design the solution (HOW)– Write the code– Test and deploy

Similar types of tasks

31

Similar types of tasks – Elicitation of requirements – Documentation of requirements– Identification of software modules– Design of software modules– Acceptance tests

Similar project management issues e.g. Planning, Estimating, Monitoring & Control, Communicating

Page 32: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

How OO Approach is different?• Different View of the System• Integration of Data and Method• Different Documentation Tools• Real World Focus• Approach to Project Life Cycle• Approachto ProgramCoding

32

• Approachto ProgramCoding• Approach to Component Reuse• Approach to Software Maintenance

FO methodology is more suitable for data intensive softwareprojects, whereas OO methodology is more suitable forsoftware project that requires complex algorithm/ processinglogic.

©Ashok Mohanty,

<[email protected]>

Page 33: software development, process model, requirement engineering, srs, structured design, ooad based on pressman, swebok, wiki, etc

References

1. Software Engineering,Jibitesh Mishra & Ashok Mohanty,Pearson Education

2. Software Engineering,,

33

2. Software Engineering,Pressman,McGrawHill

3. Guide to Software Engineering Body of Knowledge,IEEE Computer Society’s Professional Practices Committee, 2004

©Ashok Mohanty,

<[email protected]>


Recommended