Unit-i (Intro)- Process Models
Unit-i (Intro)- Process Models
Unit-I: Introduction
Introduction to Software Engineering, Software Components,
Software Characteristics, Software Crisis, Software
Engineering Processes, Similarity and Differences from
Conventional Engineering Processes, Software Quality
Attributes. Software Development Life Cycle (SDLC) Models:
Water Fall Model, Prototype Model, Spiral Model, Evolutionary
Development Models, Iterative Enhancement Models.
Unit-II: Software Requirement Specifications (SRS)
Requirement Engineering Process: Elicitation, Analysis,
Documentation, Review and Management of User Needs,
Feasibility Study, Information Modeling, Data Flow Diagrams,
Entity Relationship Diagrams, Decision Tables, SRS Document,
IEEE Standards for SRS.
Software Quality Assurance (SQA): Verification and
Validation, SQA Plans, Software Quality Frameworks, ISO 9000
Models, SEI-CMM Model.
Unit-III: Software Design
Basic Concept of Software Design, Architectural Design, Low
Level Design: Modularization, Design Structure Charts,
Pseudo Codes, Flow Charts, Coupling and Cohesion Measures,
Design Strategies: Function Oriented Design, Object Oriented
Design, Top-Down and Bottom-Up Design. Software Measurement
and Metrics: Various Size Oriented Measures: Halestead’s
Software Science, Function Point (FP) Based Measures,
Cyclomatic Complexity Measures: Control Flow Graphs.
Unit-IV: Software Testing
Testing Objectives, Unit Testing, Integration Testing,
Acceptance Testing, Regression Testing, Testing for
Functionality and Testing for Performance, Top-Down and
Bottom-Up Testing Strategies: Test Drivers and Test Stubs,
Structural Testing (White Box Testing), Functional Testing
(Black Box Testing), Test Data Suit Preparation, Alpha and
Beta Testing of Products.
Static Testing Strategies: Formal Technical Reviews (Peer
Reviews), Walk Through, Code Inspection, Compliance with
Design and Coding Standards.
Unit-V: Software Maintenance and Software Project Management
Software as an Evolutionary Entity, Need for Maintenance,
Categories of
Maintenance: Preventive, Corrective, Adaptive and Perfective
Maintenance, Cost of Maintenance, Software Re-Engineering,
Reverse Engineering, Software Configuration Management
Activities, Change Control Process, Software Version
Control, An Overview of CASE Tools. Estimation of Various
Parameters such as Cost, Efforts, Schedule/Duration,
Constructive Cost Models (COCOMO), Resource Allocation
Models, Software Risk Analysis and Management.
Plan Organize
Control Monitor
Software Crisis
(Need of Software Engineering)
4 P’s
• People
• Product
• Process
• Project
Project Effort Distribution
Generally accepted guidelines are:
02-03 % planning
10-25 % requirements analysis
20-25 % design
15-20 % coding
30-40 % testing and debugging
40-20-40 Rule
5WHH Principle
• Why is the system being developed (Scope) ?
• What will be done (SRS) ?
• When it will be done (Schedule) ?
• Who is responsible for a function (Resource)?
• Where are they organizationally located
(Organization) ?
• How will the job be done technically and
managerially (Process) ?
• How much of each resource is needed
(Estimation) ?
Linear Sequential Model
or Waterfall Model
Requirements
definition
System and
software design
Implementation
and unit testing
Operation and
maintenance
Advantages and Disadvantages
• Easy to understand and reinforces the notion of
“define before design” and “design before code”.
• Defining all the requirements in the beginning is
very difficult.
• Not suitable for accommodating any changes at
later stages.
• Working version of the system is available very
late.
• Does not scale up well for very large projects and
real projects are rarely sequential.
• Suitable for situations where the requirements
and their implementations are well understood .
Prototype Model
Concurrent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
Prototyping Model
Users get a feel
Requirements of the actual
system and
developers get to
Focuses only on
build something
visible aspects Quick design
immediately
and not on Refinement of
quality/efficien
cy parameters Requirements
Implementation as per
Ideally prototype suggestions
serves as a
mechanism for
identifying Customer
requirements Evaluation
precisely Now engineer the product
using usual phases of
PM Features
• Working prototype is developed as per current available
requirements. It has limited functionality, low reliability,
and poor performance (stripped down version of the
final product).
• Refined versions of prototype are more and more
suitable.
• Final prototype approved by the customer can be used
to draw requirements for the ultimate product
development through WFM.
• Involves extensive participation of customer which may
not be possible.
• Although involvement of extra cost for prototype
development but still the overall cost is relatively low
because of the experience gained.
Spiral Model
Determination of Analyze
objectives, alternatives and
alternatives and attempt to
constraints identify &
resolve the
risks
Evaluation by
the customer
Actual product
and feedback
development and
reporting
testing
Spiral Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
SM Features
• Entire development space is supposed to be divided into 4-6
regions.
• Radial dimension represents the cumulative cost of
development.
• Angular dimension represents the progress made in
completing each cycle.
• Each loop from x-axis clockwise through 360 degree
represents one phase.
• During first phase planning is done, risks are analyzed,
prototypes are built, and customer evaluates the prototype.
In subsequent phases more refined prototypes are built.
• Good feature is that each phase is followed by an evaluation.
• It includes quality objectives in the development by
eliminating error in the early phases through evaluation
process.
Incremental/Iterative
Enhancement Model
Code
Generator?
Formal transformations
T1 T2 T3 T4
Formal R1 Executable
R2 R3
specification program
P1 P2 P3 P4