Unit1 PPTPPTX 2025 03 05 20 31 59
Unit1 PPTPPTX 2025 03 05 20 31 59
Computer
Engineering
UNIT 1
Introduction and
Software Process
Models
Subject Code:
01CE0607
• Software engineering
• Dual role of software
• Software Crisis history
• Various Myths Associated with Software
• Different Software Process Models
• The Linear Sequential Model
• The Prototyping Model
Contents • The RAD Model
• Evolutionary Process Models
• Component-Based Development
• Process, Product and Process
• Agile Method
• Manifesto
• Various Agile Modelling Techniques: XP, Scrum,
Crystal
●As technology advances, the ability to build quality
software while considering design, development,
security, and maintenance is sought after amongst all
kinds of companies, from finance and banking to
healthcare and national security.
Why ●Software Engineering applies the knowledge and
Software theoretical understanding gained through computer
science to building high-quality software products. As a
Engineeri maturing discipline, software is becoming more and
more important in our everyday lives.
ng? ●According to the Bureau of Labor Statistics’
Occupational Outlook Handbook, 2014-15 Edition,
“software engineers are among the occupations
projected to grow the fastest and add the most new jobs
over the 2012-2022 decade, resulting in excellent job
prospects.”
●Enable to understand different phases of software
development
●Enables to appreciate their role and contribution in
different phases of software development
●Introduce well known methods to analyse requirement
of a client and to design a system that meet these
requirements
●Help to realise the need for good practices in
developing software
●Introduce effective methods of testing software
●Help to understand the importance of adhering to the
quality standards
• Software encompasses:
1. Instructions (computer programs) that
when executed provide desired features,
What is function, and performance
Software? 2. Data structures that enable the
programs to store and manipulate
information
3. Documentation that describes the
operation and use of the programs.
• Software products may be of two types
1.Generic products:-
Software
Developed to be sold to a range of different
Products customers
2.Customized products:-
developed for a single customer according
to their specification
Application
Software
Web-based System
software software
Software Software
Application
Artificial
intelligence
Applicatio Real-time
software. n software
Domains
Domains
Embedded Business
software software
Engineerin
g/ scientific
software
The application of a
What is systematic, disciplined,
Software quantifiable approach to the
Engineering development, operation, and
?
maintenance of software
• Software Engineering is the science and
What is art of building (designing and writing
programs) a software systems that are:
Software 1. on time
Engineering 2. on budget
? 3. with acceptable performance
4. with correct operation
Product Development from an IT failures perspective
1 2 3 4 5
© http://www.projectcartoon.com/
10
6 7 8 9
Dual role of software:
1. A Product
• Information transformer
• Producing, managing, acquiring,
Dual role of modifying, displaying, or transmitting
information
software 2. The vehicle for delivering a product
• The control of the computer(ex. OS)
• The communication of information(ex.
Networking software)
• Helps build other software (ex.
Software Tools)
Change
Request
System Impact
Dual role of Release Analysis
software
System Release
Update Planning
When modern computer is built, it is
necessary to answer the following
questions:
• Why does it take so long to get software
Dual role of finished?
software • Why are development costs so high?
• Why can't we find all the errors before we
give the software to customers?
• Why do we continue to have difficulty in
measuring progress as software is being
developed and maintained?
Increasing Increasing Increasing
Demand Complexity Challenges
Software:
A Crisis on SOFTWARE CRISIS
the
Horizon
Same Same Same
Workforce Method Tools
• Maintenance cost of software is as
expensive as development cost
• Projects was running over-time
Causes of
Software • Less efficient
2.REUSABILITY
Software 3.FLEXIBILITY
Quality 4.MAINTAINABLITY
Attributes
5.PORTABILITY
6.RELIABILITY
7. FUNCTIONALITY
1. Software is developed or engineered, it is
not manufactured
• It is not manufactured like hardware
Software • The manufacturing phase for hardware
Characteristi can introduce quality problems that
cs are nonexistent (or easily corrected)
for software
• Both require the construction of a
"product" but the approaches are
different.
2. Software doesn't "wear out"
Software
Characteristi
cs
Software
Characteristi
cs
Managem • Reality:
Customer
myths
Practitioner' • Reality:
s ✓ One of the most effective software
quality assurance mechanisms can be
(Developer) applied from the beginning of a project
myths —the formal technical review.
✓ Software reviews are a "quality filter"
that have been found to be more
effective than testing for finding certain
classes of software defects.
• Myth 3: The only deliverable work product
for a successful project is the working
Practitioner' program.
s • Reality:
(Developer) ✓ A working program is only one part of a
software configuration
myths
✓ Documentation, Model and plans
provides a foundation for successful
engineering and, more important,
guidance for software support.
• Myth 4: Software engineering is about
Practitioner' creating unnecessary documentation.
s • Reality:
(Developer) ✓ Software engineering is not about
myths creating documents. It is about creating
quality.
✓ Better quality leads to reduced rework.
And reduced rework results in faster
delivery times.
CASE Tools
Engineering:
A Layered Bedrock
Framework
Technology
1. The
Linear PLANNING
Sequential
Model or
MODELLING
CODING
Waterfall CONSTRUCTION
Model or
TESTING
Cycle
• Communication:
1. The ✓ Requirement gathering and analysis
Linear ✓ Requirement specification(SRS)
Sequential • Planning:
Model or ✓ Assessing progress against the project
plan.
Waterfall ✓ Perform required action to maintain
Model or schedule
Classic Life • Modelling:
Cycle ✓ To transform the requirements
specified in the SRS document into a
structure that is suitable for
implementation
• Construction:
✓ Coding and Testing
1. The ✓ Unit testing, Integration and System
Linear testing
• Deployment:
Sequential ✓ Maintenance
Model or o Corrective Maintenance: Correct
Waterfall errors that were not discovered in
development phase
Model or o Perfective Maintenance: To enhance
the functionalities of the system
Classic based on the customer’s request
Life Cycle o Adaptive Maintenance: To port the
software to work in a new
environment
• Requirements are very well known, clear
and fixed
• Product definition is stable
When to • Technology is understood
use? • There are no ambiguous requirements
• Ample resources with required expertise
are available freely
• The project is short
• Simple and easy to understand.
• Phases in this model are processed one at
Advantages a time.
of the • Each stage in the model is clearly defined.
• This model has very clear and well
Linear understood milestones.
Sequential • Reinforces good habits: define-before-
Model design, design-before-code.
• This model works well for smaller projects
and projects where requirements are well
understood.
• It is often difficult for the customer to state
all requirements explicitly.
Disadvantag • The model implies that you should
es of the attempt to complete a given stage before
moving on to the next stage
Linear • Some teams sit idle for other teams to
Sequential finish
Model • Appropriate when the requirements are
well-understood and changes will be fairly
limited during the design process.
2.The
Prototyping
Model
ic Courtesy: R.Pressman
• It represented schematically as series of
major technical activities, tasks, and their
associated states.
• It is often more appropriate for system
Concurrent engineering projects where different
Developmen engineering teams are involved.
t Model • The activity “modeling” may be in any one
of the states for a given time.
• All activities exist concurrently but reside in
different states.
• E.g. The “analysis” activity (existed in the
none state while initial customer
communication was completed) now makes
a transition into the under development
Concurrent state.
Developmen • Analysis activity moves from the under
development state into the awaiting
t Model changes state only if customer indicates
changes in requirements.
• Series of event will trigger transition from
state to state.
• Applicable to all types of software
development processes.
Advantages • Easy to understand and use.
• It provide an accurate picture of the current
state of a project.
• It needs better communication between the
team members. This may not be achieved
Disadvantag all the time.
es • It requires to remember the status of the
different activities.
• Component-based development (CBD)
model incorporates many of the
5. characteristics of the spiral model.
Component- • It is evolutionary by nature and iterative
based approach to create software.
• CBD model creates applications from
development prepackaged software components (called
classes).
Component-
based
development
• The engineering activities begin with identification of
candidate components.
• Classes created in past software engineering projects
are stored in a class library or repository.
• Once candidate classes are identified, the class
library is searched to determine if these classes
Component- already exist.
based • If class is already available in library extract and
reuse it.
development •
If class is not available in library, it is engineered or
developed using object-oriented methods.
• The first iteration of the application to be built is then
composed, using classes extracted from the library
and any new classes built to meet the unique needs
of the application.
• CBD model leads to software reusability.
• Based on studies, CBD model leads to 70 %
Advantages reduction in development cycle time.
• 84% reduction in project cost.
• Productivity is very high.
Product
and system. It can also be said that this is the result of a project.
Process Process
© www.eudigital.co
Customer satisfaction and valuable
software
Dynamic in development
F2F Communication
Progressive measure
Sustainable development
Need of Self-organizing
Being effective
• Agile Process addresses this key assumption
© www.ontoborn.com
• Project is not very urgent, too complex
or novel
• Project plan & requirements are clear &
Where agile unlikely to change
methodology • Your customer requires neat
not work documentation of each development
cycle
• Unclear understanding of Agile Approach
among Teams
• Big Enterprises where team
collaboration is tough
Agile Model Waterfall Model
• Agile method proposes incremental • Development of the software flows
and iterative approach to software sequentially from start point to end
design point.
• The agile process is broken into • The design process is not broken
individual models that designers into an individual models
work on
Crystal
© www.researchgate.net
• User story-cards
• Release planning
XP - • Small releases
Planning • Iterative process
• Stand up meetings - F2F at same location
• Simple design
• It is always good to keep the things
simple to meet the current
requirements
• Spike solution
XP - Design • For answering the tough technical
problem
• Refactoring
• Reduction in the redundancy,
elimination of unused functionalities
• Encourage the use of CRC (class-
responsibility-collaborator) cards
CRC cards (Class-Responsibility-
Collaborator)
©https://www.lucidchart.com/blog/what-is-extreme-programming
XP - Coding • Pair programming - Driver/Supporter.
• Collective code ownership - All
contribute, one person doesn’t become
bottleneck of the project.
• Continuous integration of codes.
• Unit tests should be automated.
• Encourages regression testing whenever
XP - Testing code is modified.
• Integration and validation testing on daily
basis.
• Acceptance tests are derived from user
stories that have been implemented as
part of software release.
Weekly Cycle
The Weekly Cycle is synonymous to an iteration
Quarterly Cycle
The Quarterly Cycle is synonymous to a release.
The customer lays out the overall plan for the team in terms of
features desired within a particular quarter
Extra
Slack
stories.
• This model is developed by Jeff Sutherland
and Ken Schwaber in 1995.
• Scrum is an agile process model which is
2. Scrum used for developing the complex software
systems.
• It is a lightweight process framework.
• Lightweight means the minimum overhead of
the process in order to maximize the
productivity.
• Iterative and incremental approach.
• There are small working teams on the
projects due to which there is maximum
communication and minimum overhead.
• The task of people must be partitioned into
small and clean packets/partitions.
Scrum • The process must accommodate the
technical or business changes, if they occur.
Principles • The process should produce software
increments.
• During product building, constant testing and
documentation must be conducted.
• The SCRUM process must produce the
working model of the product whenever
required or demanded.
• Product Owner
• The product owner is the project’s key stakeholder and
represents users, customers and others in the process.
• Scrum Master
• Typically a Team Leader
©warren2lynch.medium.com
Roles
Scrum
Master
©codersera.com
Product backlog: The product backlog is a prioritized
features list containing every desired feature or
change to the product.
Some more
Terminology
©www.c-sharpcorner.com
• At the start of each sprint, a sprint planning meeting is held,
during which the product owner presents the top items on
the product backlog to the team.
Sprint • The Scrum team selects the work they can complete during
Planning the coming sprint.
• That work is then moved from the product backlog to a
sprint backlog, which is the list of tasks needed to complete
the product backlog items the team has committed to
complete in the sprint.
©www.agilemarketing.net
• Backlog
• It is a list of project requirements or
features that must be provided to the
customer.
• The items can be included in the backlog
Scrum at any time.
Developme • The product manager analyses this list
and updates the priorities as per the
nt Activities requirements.
• Sprint
• These are the work units that are needed
to achieve the requirements mentioned in
the backlogs.
• Typically the sprints have fixed duration or
• Meetings
• There are 15 minutes daily meetings to
report the completed activities, obstacles
and plan for next activities.(Development
Team)
• Following are three questions that are
Scrum mainly discussed during the meetings.
Developme 1. What are the tasks done since last
nt Activities meeting ?
2. What are the issues that team is
facing ?
3. What are the next activities that are
planned ?
• Demo
• During this phase implemented
●Crystal method is an agile software
development approach that focuses primarily
on people and their interactions when working
on a project rather than on processes and
tools
●Properties of Crystal method:
1. Frequent delivery
3. Crystal 2. Reflective improvement
3. Communication
4. Personal Safety
5. Focus
6. Easy access to expert/users
7. Technical Tools
The Crystal Family: