SE Software Development Process 150309

25
[email protected] 1 Software Development Process by : Bharat V. Chawda Computer Engineering Department, BBIT, VVNagar

Transcript of SE Software Development Process 150309

[email protected] 1

Software Development Process

by:Bharat V. Chawda

Computer Engineering Department,BBIT, VVNagar

[email protected] 2

Overview Program v/s Software SW: Definition, Characteristics, Myths SE: Definition, Need SE: A Layered Technology, A Generic View SE: Generic Framework Activities – Umbrella

Activities SDLC Models*

(As per GTU Curriculum – Diploma in Computer/IT Engineering)

Based on Books:

1. Fundamentals of Software Engineering – by Rajib Mall

2. Software Engineering: A Practitioner’s Approach – by Roger Pressman

(* SDLC Models are not covered in this presentation; They are given in another presentation.)

[email protected] 3

Program v/s Software

Program Software / Product

Definition

Developed by Individuals SW Engineers (Team)

Size Small Large

Functionality Limited Multiple

User Programmer

himself

Large no. of other

users

User Interface Not so important Very Important

Documentation Very Little Well Documented

Development

according to

Programmer’s

individual style

SW Engineering

Principles

[email protected] 4

Software - Definition

Software:

Instructions + Data Structures + Documents

Instructions/Computer Programs:

When executed, provide desired functionality

and performance

Data Structures

Enable programs to adequately manipulate

data/information

Documents:

Describe use and operations of the programs

[email protected] 5

SW: Characteristics-I

Software is developed/engineered;not manufactured:

SW is developed; HW is manufactured

For both: Good design High quality

Quality Problems:

Possible in manufacturing phase

Not possible/Easily corrected in developing phase

R’Ship: People Applied, Work Accomplished

Both activities require construction of product,but approaches are different

[email protected] 6

SW: Characteristics-II (i)

SW doesn’t wear out; does deteriorate:

HW:

HW: R’ship bet Failure Rate and Time: Bathtub curve Early: Design/Manufacturing defects With time: Dust, Vibration, Abuse, Temperature

extremes

[email protected] 7

SW: Characteristics-II (ii)

SW doesn’t wear out; does deteriorate:

SW:

SW: Changes over time; May introduce new defects No spare parts; No replacement; Maintenance complex

[email protected] 8

SW: Characteristics-III

Industry: moving towards componentbased assembly;

Most SW continues to be custom built

HW:

Reusable Components: Screws, ICs…

SW:

Reusable Components: Library, Data Structures, GUIcomponents like button, label…

[email protected] 9

SW: Customer Myths

A general statement of objectives isenough to begin SW project.

Constant communication bet customer &developer: to meet all requirements

Project requirements change continually,and, change is easy to accommodate inthe SW design.

Not easy; Unexpected consequences; Must bemanaged very carefully: In time, Under budget

[email protected] 10

SW: Practitioners’ Myths

Once a program is written, Softwareengineer’s work is finished.

There is no way to assess quality of apiece of a SW, until it is actually runningon some machine.

The only deliverable from a successful SWproject is the working program.

SE is all about the creation of large andunnecessary documentation.

[email protected] 11

SW: Management Myths

SW standards provide software engineers:all the guidance they need.

People with modern computers have all theSW development tools.

Adding people is a good way to catch upwhen a project is behind schedule.

Outsourcing of SW projects to third partiessolves all the SW project managementproblems.

[email protected] 12

SE: Def and Need

Def:

“The study & application of engineering to thedesign, development & maintenance of SW.”

Need:

Analogy: A Mason v/s Civil Engineering

Similarity: A Programmer v/s SE

Complexity:

Size ↑ Complexity, Effort, Time↑ (Exponentially)

1000L ‘X’ Complexity; 10000L ‘100X’ Complexity

[email protected] 13

SE: How to Reduce Complexity?

Abstraction:

Simplify the problem Omit irrelevant details

Once simple prob is solved; Add omitted details

Multiple levels of abstraction

Decomposition:

Divide complex problem into smaller problems:Modules

Can be solved independently

Can be combined together to get full solution

[email protected] 14

SE: A Layered Technology (i)

A Quality Focus

Process

Methods

Tools

[email protected] 15

SE: A Layered Technology (ii)

Process:

Foundation for the Software Engineering

Holds technology layers (Methods, Tools)together

Enables Rationally & Timely development ofSW

Defines a framework for a set of Key ProcessAreas (KPAs)

[email protected] 16

SE: A Layered Technology (iii)

Process – Key Process Areas (KPAs):

Establishes context in which technical methodsare applied

Work products are produced

Models, Documents, Data, Reports, Forms

Mile stones are established

Quality is ensured

Change is properly maintained

[email protected] 17

SE: A Layered Technology (iv)

Methods:

Provide technical how-to’s for building SW

Encompass broad array of tasks

Requirements Gathering and Analysis

Design

Program

Testing

Support

[email protected] 18

SE: A Layered Technology (v)

Tools:

Provide automated or semi-automated supportfor the process and methods

CASE: Computer Aided Software Engineering

Tools are integrated: Info created by one toolcan be used by another tool

Combines SW, HW, SE database to createSoftware Engineering Environment

Analogous to CAD/CAE (Computer AidedDesign/Engineering)

[email protected] 19

SE: A Generic View

The work associated with SE

Categorized : 3 generic phases

Definition

Development

Support

[email protected] 20

SE: A Generic View: Definition

Focuses on “What” Information to be Processed Functions & Performance are Desired System Behavior can be Expected Interfaces are to be Established Design Constraints Exist Validation Criteria are Required…

Key Requirements of System & SW are identified

3 Major Tasks:

System/Information Engineering

SW Project Planning

Requirements Analysis

[email protected] 21

SE: A Gen View: Development

Focuses on “How” Data – to be structured Functions – to be implemented Procedural Details – to be implemented Interfaces – to be characterized Design – will be translated into Prog Language Testing – will be performed

3 Major Tasks:

SW Design

Code Generation

SW Testing

[email protected] 22

SE: A Generic View: Support

Focuses on “Change”

Correction – Corrective Maintenance

Due to Defects

Adaptation – Adaptive Maintenance

Due to changes in external environment

Enhancement – Perfective Maintenance

Due to additional functionalities

Prevention – Preventive Maintenance

To prevent deteriorations due to change

[email protected] 23

SW Process: Framework Act.

[email protected] 24

SW Process: Umbrella Act.

Software project tracking and control

Formal technical reviews

Software quality assurance

Software configuration management

Document preparation and production

Reusability management

Measurement

Risk management

25

Thank U…!!!

[email protected]