Professional Documents
Culture Documents
Syllabus
UNIT-I
Introduction: Introduction of Software (SW), Type of Software, SW Components: Process, People,
Project, Product, Software crisis, Software Process Models: Details of People involve in each
Process, SDLC methods/models: Build & Fix, Waterfall, Prototype (Evolutionary & Throw-away),
Iterative, Incremental iterative, Spiral, RAD, Agile methodology.
UNIT-II
Requirement Analysis & Specifications: Requirement Analysis, Requirement Specification,
Approaches to Requirement analysis, Specifying Behavioural & Non-Behavioural Requirements, SRS
Components & various User’s of SRS. Introduction of Requirement Specification: Dataflow(DF)
Diagram, Data dictionaries, Entity-Relationship (ER) diagram, Object Diagram etc., Requirement
Validation.
Syllabus
UNIT-III
Software Design and Testing: Design Architecture and Patterns, Modularity, Function oriented
design, Object Oriented Design, Software Testing: Software Testing Strategy and Techniques,
Functional testing, Structural testing, Debugging and testing tools, SW/HW reliability, Reliability
concepts and models, Reliability allocation, Software Maintenance: Introduction to SW
Maintenance and types, SW Maintenance models: Re-engineering & Forward Engineering.
UNIT-IV
Software Project Planning: Role of Software Project Planning, Estimation method, Estimation of
Effort & Schedule, Software Metrics: Introduction to Size metrics, Data structure metrics,
information flow metrics, entropy-based measures, metric analysis. Basic COCOMO, Intermediate
COCOMO, Detailed COCOMO, Quality Planning, Planning Parameter, Quality Defect Removal
Cycle, Role of Risk Analysis.
Evolving Role of Software
Software industry is in Crisis!
Software in Crisis
As per the IBM report, “31% of the project get cancelled before they are
completed, 53% overrun their cost estimates by an average of 189% and for
every 100 projects, there are 94 restarts”.
Productivity graph
Factors Contributing to the Software Crisis
• Larger problems,
• Lack of adequate training in software engineering,
• Increasing skill shortage,
• Low productivity improvements.
Some Software Failures
Ariane 5
Y2k Problem
The Patriot Missile
Windows XP
No Silver Bullet in Software Engineering
The hardware cost continues to decline drastically.
There is no single development, either in technology or in management
technique, that by itself promises even one order of magnitude improvement
in productivity.
The hard part of building software is the specification, design and testing of
this conceptual construct, not the labor of representing it and testing the
correctness of representation.
What is Software?
Documentation Manuals
Role of Management in Software Development
Role of Management in Software Development
The People
Software development requires good managers.
A good manager cannot ensure the success of the project, but can increase the
probability of success.
Managers face challenges.
◦ Requires mental toughness.
◦ Need to plan for the best, but be prepared for the worst.
Hardware Software
Software Characteristics
Software is not manufactured.
Reusability of components
Software is flexible
Software Myths
Company has latest computers and state-of-the-art software tools, so we shouldn’t worry about the
quality of the product.
The infrastructure is only one of the several factors that determine the quality of the product!
The only deliverable for a software development project is the tested code.
Tested code is only one of the deliverable!
Deliverables and Milestones
Different deliverables are generated during software development.
The examples are source code, user manuals, operating procedure manuals etc.
The milestones are the events that are used to ascertain the status of the
project.
Finalization of specification is a milestone. Completion of design documentation is
another milestone.
The milestones are essential for project planning and management.
Generic and Customized Software Products
Generic products are developed for anonymous customers. The target is
generally the entire world and many copies are expected to be sold.
Infrastructure software like operating system, compilers, analyzers, word
processors, CASE tools etc. are covered in this category.
The customized products are developed for particular customers. The specific
product is designed and developed as per customer requirements. Most of the
development projects (say about 80%)come under this category.
Software Life Cycle Models
The period of time that starts when a software product is conceived and ends
when the product is no longer available for use.
The software life cycle typically includes a requirement phase, design phase,
implementation phase, test phase, installation and check out phase, operation
and maintenance phase, and sometimes retirement phase.
Build and Fix Model
Product is constructed without specifications or any attempt at design.
Adhoc approach and not well defined.
Simple two phase model.
Suitable for small programming exercises of 100 or 200 lines
Waterfall Model
This model is named “waterfall model” because its diagrammatic representation
resembles a cascade of waterfalls.
Easy to understand.
Problems of waterfall model
• It is difficult to define all requirements at the beginning
of a project.
• This model is not suitable for accommodating any
change.
• A working version of the system is not seen until late in
the project’s life.
• It does not scale up well to large projects.
• Real projects are rarely sequential.
Iterative Enhancement Model
Iterative Enhancement Model
This model has the same phases as the waterfall model, but with fewer
restrictions.
Useable product is released at the end of the each cycle, with each release
providing additional functionality.
Customers and developers specify as many requirements as possible and
prepare a SRS document.
Developers and customers then prioritize these requirements.
Developers implement the specified requirements in one or more cycles of
design, implementation and test based on the defined priorities.
Evolutionary Model
Evolutionary process model resembles iterative enhancement model. The same
phases as defined for the waterfall model occur here in a cyclical fashion.
This model differs from iterative enhancement model in the sense that this does
not require a useable product at the end of each cycle.
In evolutionary development, requirements are implemented by category
rather than by priority.
Prototype Model
Prototype Model
The prototype may be a usable program but is not suitable as the final software
product.
The code for the prototype is thrown away. However experience gathered helps
in developing the actual system.
The development of a prototype might involve extra cost, but overall cost might
turnout to be lower than that of an equivalent system developed using the
waterfall model.
Spiral Model
Models do not deal with uncertainly which is inherent to software projects.
Important software projects have failed because project risks were neglected &
nobody was prepared when something unforeseen happened.
Barry Boehm recognized this and tired to incorporate the “project risk” factor
into a life cycle model.
Spiral Model
The radial dimension of the model represents the cumulative costs.
Each path around the spiral is indicative of increased costs.
The angular dimension represents the progress made in completing each cycle.
Each loop of the spiral from X-axis clockwise through 360 degrees represents
one phase.
Rapid Application Development Model
User participation is essential.
Build a rapid prototype
Give it to user for evaluation & obtain feedback
Prototype is refined
Another Agile methodology that is widely used is Scrum. In Scrum, specific goals
are set for a 30-day sprint, at which point the agreed-upon software is delivered.
Advantages of Agile Software Development
The idea behind Agile model, in which everyone -- including the business side --
stayed involved and informed in the development process, represented a
profound change in both the culture and a company's ability to get better
software to market more quickly.
Agile has been adapted and modified to fit organizations of all sizes and types.
The Agile also paved the way for the latest software development evolution,
DevOps.
Selection of Life Cycle Model
Selection of a model is based on:
a) Requirements
b) Development team
c) Users
d) Project type and associated risk
MCQ
Software is
(a) Superset of programs (b) subset of programs
(c) Set of programs (d) none of the above
Software engineering approach is used to achieve:
(a) Better performance of hardware (b) Error free software
(c) Reusable software (d) Quality software product
Milestones are used to
(a) know the cost of the project (b) know the status of the project
(c) know user expectations (d) none of the above
MCQ
Which model is most popular for student’s small projects?
(a) Waterfall model (b) Spiral model
(c) Quick and fix model (d) Prototyping model
SRS stands for
(a) Software requirements specification (b) Software requirements solution
(c) System requirements specification (d) none of the above
Spiral Model was developed by
(a) Bev Littlewood (b) Berry Boehm
(c) Roger Pressman (d) Victor Basili
End of the Chapter