Module 1_software engineering
Module 1_software engineering
Text Reading:
1. K. K. Aggarwal & Yogesh Singh, “Software Engineering”, 2nd Ed, New Age
International, 2005.
2. R. S. Pressman, “Software Engineering – A practitioner’s approach”, 5th Ed.,
McGraw Hill Int. Ed., 2001.
3. Rajib Mall, Fundamentals of Software Engineering, Prentice Hall India.
4. Ian Summerville, Software Engineering, Addison-Wesley.
References:
S. NO Topic
1 Software life cycle models: Waterfall
2 Software life cycle models: Prototype
4 Agile Methodology
3
4
What is software?
5
What is software?
6
What is software?
Programs
Documentation Operating
Procedures
Software=Program+Documentation+Operating
Procedures Components of software
7
What is software
8
What is Engineering
9
Software Engineering
10
IEEE Defination
11
What is software
12
Types of software
13
Types of software
14
Types of software
15
Types of software
16
Types of software
17
Difference between H/W and S/W
18
Difference between H/W and S/W
19
Difference between H/W and S/W
20
Difference between H/W and S/W
21
Characteristics of software
22
Characteristics of software
23
Characteristics of software
24
Principles of S/W Engineering
25
Principles of S/W Engineering
26
Principles of S/W Engineering
27
Principles of S/W Engineering
28
Principles of S/W Engineering
29
Principles of S/W Engineering
30
Principles of S/W Engineering
31
Software Product
32
Software Product
Software product is a product designated for
delivery to the user
Source code Documents
Reports
Manual
Object Code
plans
plans
Data
33
Software Process
• Lack of knowledge
34
Software Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
35
Software
Characteristics:
✓Software does not wear
out.
Burn-in
phase Wear out
phase
Failure Intensity
Useful life
phase
Time
36
Software
✓ Software is not Characteristics:
manufactured
✓ Reusability of components
✓ Software is flexible
37
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a
Sr.
program. Constructing a bridge Writing a program
No
1. The problem is well understood Only some parts the problem are
of understood,
others are not
2. There are many existing bridges Every program is different and designed for
special applications.
3. The requirement for a bridge typically do Requirements typically change during
not change much during construction
all phases of development.
4. The strength and stability of a bridge can be Not possible to calculate correctness of a
calculated with reasonable precision
program with existing methods.
5. When a bridge collapses, is a When a program fails, the reasons are often
there detailed investigation and report unavailable or even deliberately concealed.
6. Engineers have been constructing bridges Developers have been writing programs
for thousands of years for 50 years or so.
7. Materials (wood, stone,iron, steel) and Hardware and software changes rapidly.
techniques (making joints in wood, carving
stone, casting iron) change slowly.
38
The Changing Nature of
Software
System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software
39
The Changing Nature of
Software
Trend has emerged to provide source code to the
customer and organizations.
40
Software Myths
(Management
Management mayPerspectives
be confident about)good
standards and clear procedures of the company.
41
Software Myths (Management
Perspectives)
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!
42
Software Myths (Management
Perspectives)
Addition of more software specialists, those
with higher skills and longer experience may
bring the schedule back on the track!
Unfortunately,
that may further delay the
schedule!
43
Software Myths (Management
Perspectives)
Software is easy to change
44
Software Myths (Management
Perspectives)
45
Software Myths (Customer
Perspectives)
A general statement of objectives is sufficient to get started with
the development of software. Missing/vague requirements can
easily be incorporated/detailed out as they get concretized.
46
Software Myths (Customer
Perspectives)
Software with more features is
better software
47
Software Myths (Developer
Perspectives)
Once the software is demonstrated, the job is done.
48
Software Myths (Developer
Perspectives)
Software quality can not be assessed
before testing.
49
Software Myths (Developer
Perspectives)
The only deliverable for a
software development project is the tested
code.
50
Software Myths (Developer
Perspectives)
Aim is to develop working programs
51
Some Terminologies
➢ Deliverables and Milestones
52
Some Terminologies
➢ Product and Process
Product: What is delivered to the customer, is called a product.
It may include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
53
Some Terminologies
➢ Measures, Metrics and Measurement
54
Some Terminologies
➢ Software Process and Product Metrics
55
Some Terminologies
➢ Productivity and Effort
56
Some Terminologies
➢ Module and Software Components
There are many definitions of the term module. They range from “a
module is a FORTRAN subroutine” to “a module is an Ada
Package”, to “Procedures and functions of PASCAL and C”, to
“C++ Java classes” to “Java packages” to “a module is a work
assignment for an individual developer”. All these definition are
correct. The term subprogram is also used sometimes in place of
module.
57
Some
Terminologies
“An independently deliverable piece of functionality providing
access to its services through interfaces”.
58
Some Terminologies
➢ Generic and Customized Software Products
People
Project
Product Process
60
Role of Management in Software
Development People
Process
61
SDLC
62
SDLC
63
SDLC
64
Software Life Cycle
Models
3
Build & Fix
Model
❖ Product is constructed without
specifications or any attempt at
design
Build
❖ Adhoc approach and not
Code
well defined
4
Build & Fix
Model
5
Water fall model
68
Water fall model
69
Waterfall Model
Implementatio
n and unit
testing
Integr ation
and system
testing
Operation
and
maintenance
6
Water fall model
71
Water fall model
72
Water fall model
73
Waterfall Model
74
Waterfall Model
75
Waterfall Model
76
Water fall Model
77
Water fall Model
78
Water Fall Model
79
Water Fall model
80
Waterfall model
81
Water Fall Model
82
Waterfall model
83
Advantage of water fall model
84
Waterfall
Model
Problems of waterfall model
i. It is difficult to define all requirements at the beginning of
a project
ii. This model is not suitable for accommodating any change
iii. A working version of the system is not seen until late
in the project’s life
8
Incremental Process
Models
They are effective in the situations where requirements are
defined precisely and there is no confusion about the
functionality of the final product.
9
Iterative Enhancement
Model
This model has the same phases as the waterfall model, but with
fewer restrictions. Generally the phases occur in the same order
as in the waterfall model, but they may be conducted in several
cycles. Useable product is released at the end of the each cycle,
with each release providing additional functionality.
10
Incremental and Iterative
Model
• Iterative
Involves a series of cycles or iterations, where each cycle
produces a working version of the software. The team can then
test and refine the software based on feedback. This approach is
good when the vision isn't well defined and the team wants to get
feedback while refining it.
• Incremental
90
Iterative Enhancement Model
91
Iterative Enhancement Model
92
Iterative Enhancement Model
93
Iterative Enhancement Model
94
Iterative Enhancement Model
95
Difference between iterative
and Incremental
96
Evolutionary development
97
Evolutionary development
98
Prototype Model
99
Prototype Model
100
Prototype Model
101
Prototype Model
102
Prototyping
Model
17
Prototype Model
104
The Rapid Application Development
(RAD) Model
105
The Rapid Application Development
(RAD) Model
13
The Rapid Application
Development (RAD) Model
107
The Rapid Application
Development (RAD) Model
108
The Rapid Application
Development (RAD) Model
109
The Rapid Application
Development (RAD) Model
110
The Rapid Application
Development (RAD) Model
111
The Rapid Application
Development (RAD) Model
112
The Rapid Application
Development (RAD) Model
113
The Rapid Application
Development (RAD) Model
114
The Rapid Application
Development (RAD) Model
115
The Rapid Application
Development (RAD) Model
116
The Rapid Application Development (RAD)
Model
14
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.
19
Risk Involved in project
119
Spiral Model
120
Spiral
Model
20
Spiral
Model
▪ An important feature of the spiral model is that each phase is
completed with a review by the people concerned with the
project (designers and programmers)
▪ The advantage of this model is the wide range of options to
accommodate the good features of other life cycle models.
▪ It becomes equivalent to another life cycle
appropriate
model in situations.
The spiral model has some difficulties that need to be resolved
before it can be a universally applied life cycle model. These
difficulties include lack of explicit process guidance in
determiningconstraints, alternatives; relying on risk assessment
objectives,
expertise; and provides more flexibility than required for many
applications.
22
Spiral Model
123
Different phases of spiral model
124
Different phases of spiral model
125
Different types of risk involved.
1. Schedule Risk
2. Budget Risk
3. Operational Risks
4. Technical Risks
5. Programmatic
Risks
126
Different phases of spiral model
127
Different phases of spiral model
128
Example-Developing an E-
Commerce Website
First Spiral – Planning and Requirements: The
initial phase involves gathering basic requirements
for the e-commerce website, like product listing,
shopping cart, and payment options. The team
analyzes any risks, such as security or scalability,
and creates a small prototype.
129
Example-Developing an E-
Commerce Website
Second Spiral – Risk Analysis and Refining the Design:
After gathering feedback from the prototype, the next spiral
focuses on adding more features and fixing early issues.
The team addresses security risks, such as secure
payment processing, and tests how well the site handles
increasing user traffic.
Example: A basic shopping cart and user registration
system are added. The payment system is also tested with
dummy transactions to ensure security.
130
Example-Developing an E-
Commerce Website
Third Spiral – Detailed Implementation: With
more feedback, the team further refines the design,
adding advanced features like order tracking,
customer reviews, and search functionality. Risks
like scalability (handling many users) are re-
evaluated, and more testing is conducted.
131
Example-Developing an E-
Commerce Website
• Final Spiral – Full Deployment: The final phase
involves full implementation, thorough testing, and
launching the e-commerce website to the public.
Ongoing risks like system crashes or user feedback
are monitored and addressed as needed.
132
Advantage of spiral model
1.Software is produced early in the software life cycle.
2.Risk handling is one of important advantages of the Spiral model, it is best
development model to follow due to the risk analysis and risk handling at
every phase.
3.Flexibility in requirements. In this model, we can easily change requirements
at later phases and can be incorporated accurately. Also, additional
Functionality can be added at a later date.
4.It is good for large and complex projects.
5.It is good for customer satisfaction. We can involve customers in the
development of products at early phase of the software development. Also,
software is produced early in the software life cycle.
6.Strong approval and documentation control.
7.It is suitable for high risk projects, where business needs may be unstable. A
highly customized product can be developed using this.
133
Disadvantage of spiral model
139
The Agile Software
Development Process
140
Agile Software
Development
• Agile Software Development is widely used by
software development teams and is considered
to be a flexible and adaptable approach to
software development that is well-suited to
changing requirements and the fast pace of
software development.
• Agile is a time-bound, iterative approach to
software delivery that builds software
incrementally from the start of the project,
instead of trying to deliver all at once.
141
The Agile Software
Development Process
1. Requirements Gathering: The customer’s requirements for the
software are gathered and prioritized.
143
Example
• A Software company named ABC wants to make a
new web browser for the latest release of its
operating system. The deadline for the task is 10
months. The company’s head assigned two teams
named Team A and Team B for this task. To
motivate the teams, the company head says that the
first team to develop the browser would be given a
salary hike and a one-week full-sponsored travel
plan. With the dreams of their wild travel fantasies,
the two teams set out on the journey of the web
browser. Team A decided to play by the book and
decided to choose the Waterfall model for the
development. Team B after a heavy discussion
decided to take a leap of faith and choose Agile as
their development model. 144
example
The Development Plan of the Team A is as follows:
Requirement analysis and Gathering – 1.5 Months
145
Example
The Development Plan for the Team B is as follows:
• Since this was an Agile, the project was broken up into several
iterations.
• The iterations are all of the same time duration.
• At the end of each iteration, a working product with a new feature
has to be delivered.
• Instead of Spending 1.5 months on requirements gathering, they
will decide the core features that are required in the product and
decide which of these features can be developed in the first
iteration.
• Any remaining features that cannot be delivered in the first
iteration will be delivered in the next subsequent iteration, based
on the priority. At the end of the first iterations, the team will
deliver working software with the core basic features.
146
Agile Methodology
147
Agile Methodology
148
Agile Methodology
149
Agile Methodology
150
Agile Methodology
151
Agile Methodology
152
Agile Methodology
153
Agile Methodology
154
Agile Methodology
155
Agile Methodology
156
Agile Methodology
Product is delivered
as per customer
needs 157
Agile Methodology
Both KanBan and Scrum uses the pull technique to
allocate new tasks but used in two different ways
158
Agile Methodology
159
Agile VS. Waterfall
160
Agile VS. Waterfall
161
Agile VS. Waterfall
162
Agile VS. Waterfall
163
Agile VS. Waterfall
164
Agile VS. Waterfall
165
Agile VS. Waterfall
166
Agile VS. Waterfall
168
Agile VS. Waterfall
169
Agile VS. Waterfall
170
Agile VS. Waterfall
171
Agile VS. Waterfall
172
Selection of a Life Cycle Model
173
Selection of a Life Cycle Model
174
Selection of a Life Cycle
Model
Selection of a model is based on:
a) Requirements
b) Development team
c) Users
d) Project type and associated
risk
36
Based On Characteristics Of Requirements
Can we define
requirements Yes No Yes Yes No Yes
early in the
cycle?
Requirements are
indicating a No Yes Yes Yes Yes No
complex system to
be built
37
Based on Development Team
Less experience
on similar No Yes No No Yes No
projects?
Less domain
knowledge (new Yes No Yes Yes Yes No
to the
technology)
Less experience
on tools to be Yes No No No Yes No
used
Availability of
No No Yes Yes No Yes
training if
required
38
Based On User’s Participation
User involvement
in all phases No Yes No No No Yes
Limited user
participation Yes No Yes Yes Yes No
User have no
previous experience No Yes Yes Yes Yes No
of participation in
similar projects
39
Based On Type Of Project With Associated Risk
Project is the
enhancement of the No No Yes Yes No Yes
existing system
Funding is stable
for the project Yes Yes No No No Yes
High reliability
requirements No No Yes Yes Yes No
40
ISO 9001
180
ISO
181
ISO 9001
• ISO 9001 is the internationally recognized
Quality Management System (QMS)
standard that can benefit any size
organization.
182
ISO 9001
183
ISO 9001
184
ISO family
185
ISO family
186
ISO 9001
187
How ISO 9001 helps
• It helps you to
measure client
satisfaction
188
How ISO 9001 helps
189
How ISO 9001 helps
• It makes you assess
risks and identify
opportunities for your
business
• It makes you
continually examine
opportunities for
improvement
• You need to put in
place the operational
controls to effectively
manage and measure
your performance 190
How ISO 9001 helps
• Demonstrates your
commitment to quality
products and services
• It is the most widely
recognized international
management system
standard
• Helps safeguard the
quality of your products
and services
191
How ISO 9001 helps
• Requires you to identify al
internal and external
stakeholders relevant to your
Quality Management System
and their needs
• Requires you to communicate
the quality policy and ensure
that the workforce
understands how they
contribute to it
• You are expected to show
how you meet customer
requirements and regulatory
and statutory requirements
192
What Are the Myths of ISO 9000?
• It guarantees customers.
• If you’re certified, your products must be top
quality.
• A consultant can prepare the certification
documentation for you.
• It’s a waste of money and time.
• The ISO 9000 requirements are complicated.
• Certification is the job of the quality-control
department.
193
SEI CMM(Software Engineering Institute
Capability Maturity Model)
195
Key Process Areas (KPA)
of a software
organization
196
Module 1
197