Unit - 1 Introduction To Software Engineering
Unit - 1 Introduction To Software Engineering
INTRODUCTION TO SOFTWARE
ENGINEERING
Unit I Syllabus
INTRODUCTION
• Software Engineering paradigms –
Waterfall Life cycle model – Spiral Model
– Prototype Model – Fourth Generation
Techniques – Planning – Software
Project Scheduling, – Risk analysis and
management – Requirements and
Specification – Case Study for Project
Plan and SRS.
Session - 1
Objective
- To understand the subtle introductory
concepts in software engineering
terminology
INTRODUCTION
What is Software ?
- That which encompasses
a) Instructions
b) Data Structures &
c) Documentation
Features of Software ?
- Not manufactured but developed and
engineered
- Does’nt wear-out but deteriorates over time
- Most of the software are custom-built
INTRODUCTION
tools
methods
process model
a “quality” focus
Engineering
Technology
Esoteric Past
Experience Craft
Systematic Use of Past
Experience and Scientific Basis
Unorganized Use of
Past Experience
Art
Time
Why Software Engineering ?
[1] Acquiring skills to build large
programs and systems
a) Growth in size, complexity and
difficulty level of an exponential
nature
b) When the size of software increases,
the ad-hoc approach breaks down
Why Software Engineering ?
[2] Able to solve complex problems
a) Breaking problems into smaller and
manageable parts
b) Practicing techniques like
specification, design, interface
development, testing, project
management etc.
Why Software Engineering ?
INPUT OUTPUT
Process is Set of activities
Analysis
Problem
Design Models
Development
Solution
Testing
Generic Phases
1) Definition Phase
- Focusing on “what” the software is
2) Development Phase
- Focusing on “how” the software
works
3) Maintenance Phase
- Focusing on “changes” to the software
Process Models
• Waterfall model
• Software automation
• V-Model
• Rapid Application Development Model RAD
• Spiral Model
• WIN – WIN Spiral Model
• Iteration model
• Incremental model
• Component-based software engineering
• Prototyping
• Rapid prototyping
• Fourth Generation Techniques
• Concurrent Development Model
• Formal Methods Model
• Combining paradigms
Process Models
Waterfall Model – Classic Life Cycle
Waterfall Model - Highlights
• Oldest and most widely used paradigm
• Activities ‘flow’ from one phase to
another
• If there are corrections, return to a
previous phase and ‘flow’ from there
again
Waterfall Model - Advantages
• Good for planning and well-defined /repeated
projects
Pitfalls :
• Real-time projects often do not follow the
sequence
• All requirements may not be stated explicitly
by customer
• Customer only sees the results after some
time
• Developers are often delayed at certain phases
Spiral Model
Spiral Model - Highlights
• Originally proposed by Boehm, couples
iterative nature of prototyping and the
systematic aspects of the waterfall
model
• Software is developed in series of
incremental releases
• Each iteration produces a more complete
product
• Better management through risk
analysis
Spiral Model – Pitfalls
• May be difficult to convince customers
that evolution is controllable
• Demands risk assessment expertise -
major risk will cause problems if not
identified
• Relatively new and not widely used -
cannot determine performance
Note: An alternate spiral model is the
“Win-Win Spiral Model”
Prototyping Model
What is software/system prototyping ?
- Rapid software development to validate
requirements
- In the past, the developed system was
normally thought of as inferior in some
way to the required system so further
development was required
- Now, the boundary between prototyping
and normal system development is
blurred and many systems are developed
using an evolutionary approach
Prototyping Model
Uses of System Prototypes
• The principal use is to help customers and
developers understand the requirements for
the system
– Requirements elicitation. Users can experiment
with a prototype to see how the system supports
their work
– Requirements validation. The prototype can
reveal errors and omissions in the requirements
• Prototyping can be considered as a risk
reduction activity which reduces requirements
risks
Prototyping Model
Benefits of Prototyping
• Misunderstandings between software
users and developers are exposed
• Missing services may be detected and
confusing services may be identified
• A working system is available early in
the process
• The prototype may serve as a basis for
deriving a system specification
• The system can support user training
and system testing
Prototyping Model
The Prototyping Process
Establish Define
Develop Evaluate
prototype prototype
prototype prototype
objectives functionality
Stop
Prototyping Model - Highlights
• Developer and customer determine
objectives and draft requirements
• Prototype quickly produced and
evaluated by customer
• Prototype then refined, and re-evaluated
• Process iterated, before final product
development
Advantages: Customer participation and
better requirements
Prototyping Model - Pitfalls
Requirements
gathering
"Design"
Strategy
Implementation
using 4GL
Testing
Fourth Generation Techniques
Features of 4GL Tools
• Non-procedural languages for Database query
• Report generation
• Data manipulation
• Code generation
Types of 4GLs
a) Report Generators
b) Forms Generators
c) Ambitious 4GLs (Fourth Generation
Systems)
Fourth Generation Techniques
Successful 4GLs
a) Forte TOOL
b) PowerBuilder
c) DataFlex…
GUI Creators
a) MATLAB’s GUIDE
b) Omni’s Studio
c) OpenROAD…
Session - 3
Objective
- To highlight the importance of planning
in the software systems life cycle
- To know the different types of software
planning and its overall benefits
Planning
1) Vital Inputs
• This is the most important ingredient in
software development
• Proper planning procedures to track the
progress of the project
• Role of a Project/Technical Manager
• Drafting an initial plan
• Revising a plan as the project
progresses
Planning
2) The Project Plan
- Looking for resources required for the
project
- Outlining the WBS (Work Breakdown
Structure) and the schedule
Items that need to be included in a Project
Plan
a) Introduction
b) Project Organisation
Planning
c) Risk Analysis
d) Hardware and Software requirements
e) Work Breakdown
f) Project Schedule
g) Monitoring and reporting mechanisms
Note:
Regular revision of the project plan to be
done as the project progresses
Planning
Plan Description
Quality plan Describes the quality procedures and standards that will be
used in a project. See Chapter 27.
Validation plan Describes the approach, resources and schedule used for
system validation. See Chapter 22.
Configuration Describes the configuration management procedures and
management plan structures to be used. See Chapter 29.
Maintenance plan Predicts the maintenance requirements of the system,
maintenance costs and effort required. See Chapter 21.
Staffdevelopment plan. Describes how the skills and experience of the project team
members will be developed. See Chapter 25.
T 10 10 da ys
1 8 /7 /0 3
T 12
M5
2 5 day s
T8 Fini sh
19 /9/ 03
Project Scheduling
4 /7 11 /7 1 8/7 2 5/7 1 /8 8 /8 1 5/8 2 2/8 2 9/8 5 /9 1 2/9 1 9/9
St art
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T 11
M8
T12
Fini sh
Project Scheduling
Staff Allocation Chart
Project Scheduling
Gantt Charts
Session 5 - Risk Management
Agenda
- Risk identification
- Risk projection (estimation)
- Risk mitigation, monitoring, and
management
Risk Management
• A risk is a potential problem – it might happen
or not
• Conceptual definition of risk
– Risk concerns future happenings
– Risk involves change in mind, opinion, actions,
places, etc.
• Two characteristics of risk
– Uncertainty – the risk may or may not happen,
that is, there are no 100% risks (those, instead, are
called constraints)
– Loss – the risk becomes a reality and unwanted
consequences or losses occur
Risk Management
Categorization of Risks – One way to do it
1) Project risks
– Threaten the project plan
– If they become real, it is likely that the project
schedule will slip and that costs will increase
2) Technical risks
– They threaten the quality and timeliness of the
software to be produced
– If they become real, implementation may become
difficult or impossible
3) Business risks
– They threaten the viability of the software to be built
– If they become real, they jeopardize the project or
the product
Risk Management
Sub-categories of Business risks
1) Market risk – building an excellent product or
system that no one really wants
2) Strategic risk – building a product that no longer
fits into the overall business strategy for the
company
3) Sales risk – building a product that the sales
force doesn't understand how to sell
4) Management risk – losing the support of senior
management due to a change in focus or a
change in people
5) Budget risk – losing budgetary or personnel
commitment
Risk Management
RISK IDENTIFICATION
RISK PRIORITIZATION
RISK
MANAGEMENT RISK MANAGEMENT
PLANNING
RISK MONITORING
Fig : Risk Management Tasks
Risk Management
Two Risk Strategies – Proactive and
Reactive
a) Reactive risk strategies
– "Don't worry, I'll think of something"
– The majority of software teams and managers rely on this
approach
– Nothing is done about risks until something goes wrong
• The team then flies into action in an attempt to correct the
problem rapidly (fire fighting)
– Crisis management is the choice of management techniques
b) Proactive risk strategies
– Steps for risk management are followed
– Primary objective is to avoid risk and to have a contingency
plan in place to handle unavoidable risks in a controlled and
effective manner
Risk Management
Steps to follow in Risk Management
1) Identify possible risks; recognize what can
go wrong
2) Analyze each risk to estimate the probability
that it will occur and the impact
(i.e., damage) that it will do if it
does occur
3) Rank the risks by probability and impact
- Impact may be negligible, marginal,
critical, and catastrophic
4) Develop a contingency plan to manage
those risks having high probability
and high impact
Risk Management
Risk Item Checklist
• Used as one way to identify risks
• Focuses on known and predictable risks
in specific subcategories
• Can be organized in several ways
– A list of characteristics relevant to each risk
subcategory
– Questionnaire that leads to an estimate on
the impact of each risk
– A list containing a set of risk component and
drivers and their probability of occurrence
Risk Management
Questionnaire on Project Risk
1) Have top software and customer managers
formally committed to support the project?
2) Are end-users enthusiastically committed to
the project and the system/product to be
built?
3) Are requirements fully understood by the
software engineering team and its
customers?
4) Have customers been involved fully in the
definition of requirements?
5) Do end-users have realistic expectations?
6) Is the project scope stable?
Risk Management
• The impact of each risk driver on the risk
component is divided into one of four
impact levels
– Negligible, marginal, critical, and
catastrophic
• Risk drivers can be assessed as
impossible, improbable, probable, and
frequent
Risk Management
Contents of a Risk Table
• A table that provides a project manager with a
simple technique for risk projection
• It consists of five columns
– Risk Summary(short description of the risk)
– Risk Category(one of seven risk categories)
– Probability – estimation of risk occurrence based on
group input
– Impact – (1) catastrophic (2) critical (3) marginal
(4) negligible
– RMMM – Pointer to a paragraph in the Risk
Mitigation, Monitoring, and Management Plan
Risk Management
Analysis
Figure : The requirement
Specification process
Validation
Validated SRS
Requirements and Specification
Concepts which can be used to
perform the RA in an effective manner
a) Divide and Conquer
b) Organizing large volumes of information
c) Using diagrams like data flow diagrams,
object diagrams etc…
Problem Analysis
- To gain an understanding of the needs,
requirements, and constraints on the
software
Requirements and Specification
Analysis involves the following
activities
a) Interviewing clients and users
b) Reading manuals
c) Studying current systems
d) Helping client/users understand new
possibilities
e) Like becoming a consultant
f) Must understand the working of the organization ,
client, and users
Requirements and Specification
i) Basic principle: problem partition
j) Partition w.r.t what?
Object - OO analysis
Function - structural analysis
Events in the system – event partitioning