SE Software Development Process 150309
-
Upload
bharat-chawda -
Category
Technology
-
view
97 -
download
0
Transcript of SE Software Development Process 150309
Software Development Process
by:Bharat V. Chawda
Computer Engineering Department,BBIT, VVNagar
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.)
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
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
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
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
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
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…
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
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.
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.
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
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
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)
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
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
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)
SE: A Generic View
The work associated with SE
Categorized : 3 generic phases
Definition
Development
Support
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
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
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
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