Unit 1 ISE
Unit 1 ISE
Unit 1 ISE
&
UOs (Unit Outcomes)
CO (a)
Compare various software development process models.
UOs
1a. Define software engineering
1b. Recommend the relevant software solution for the
given problem.
1c. Describe generic framework activity
1d. Select the relevant software process model for the
given problem statement with justification.
2
1.1 Defining Software
3
1.2 Software Application Domain
4
1.2 Software Application Domain
Embedded software
– Concepts and examples
Web application software
– Concepts, developed using
– how web application works (fig)
– Characteristics of web app
- Availability - Client driven - Performance
- Responsive - Informational - Customized
- User input - Database access - Data warehousing
- Transaction oriented - Security - Usability
- Reliability - Download - flexibility
5
1.2 Software Application Domain
AI software
– Concepts and features of AI
– How does AI works
• Neural network
• Machine Learning (ML)
• Deep Learning
• Natural Language Processing (NLP)
• Computer Vision
– Examples of AI software
– Advantages and Disadvantages of AI software
6
1.2 Software Application Domain
7
1.3 Software Engineering – A layered approach
8
1.3 Software Engineering – A layered approach
9
1.3 Software Engineering – A layered approach
10
1.3 Software Engineering – A layered approach
- support below layers
- execute process in time
- ‘how-to’
- create SE environment using
CASE tools
- it includes analysis, design,
testing etc.
- s/w process
- heart of SE
- foundation layer
- Holds layers like GLUE
- define framework activities
- deliver s/w in time
- Focus on quality
- o/p meets with requirements
- manage TQM
- Support SE
1.4 Generic Process Model
• It outlines the activities and tasks involved in developing
software.
• Simplified and abstracted view of the software development
process.
• Provide structured approach.
• Phases of generic model
– Requirement gathering and analysis
– Design
– Implementation
– Testing
– Deployment
– Maintenance
• Some examples of generic process model.
12
1.5 Generic framework activity and Umbrella activity
• Any standard software process model would primarily
consist of two types of activities: A set of framework
activities, which are always applicable to all the projects and
a set of umbrella activities which are non SDLC activities
that are applicable throughout the process.
13
1.5 Generic framework activity and Umbrella activity
• Framework activities
– Communication: between customer and developer
– Documentation
– Reusability management
– Estimation
– Risk management
• Umbrella activities help to ensure that software development projects are
completed successfully and that the resulting software meets the required
quality standards.
15
1.6 Software development models
• Concept of software life cycle.
16
1.6 Software development models
• Different SDLC models:
Classical waterfall model
Prototyping model
Evolutionary model
Spiral model
Agile models
17
1.6 Software development models
Waterfall model
• Proposed by.
• Also called
• Different phases
60
50
40
30
20
10
0
Maintnce
Design
Test
Coding
Req. Sp
Development Phase
18
Waterfall model
Feasibility study
• Aim
• It is abstract definition of the system
• It includes data collection, processing of data.
• Collected data analyzed for:
– Abstract definition
– Formulation of different solutions
– Analysis of alternative solutions
• Cost / benefit analysis
• Three main issues:
– Technical feasibility
– Economical feasibility
– Operational feasibility
19
Waterfall model
Requirement Analysis and Specification
• Aim
• Reduce communication gap
• Two main activities
1. Requirements gathering and analysis
– Two activities (Requirement gathering [collect different
requirements from customer] and Requirement Analysis
[analyse collected requirements])
2. Requirements specification
– Organizing SRS
• Requirement engineering
20
Waterfall model
Design
• Goal of this phase
• Two main approaches:
1. Traditional design
2. Object oriented design
1. Traditional Design
• Two parts
i. Structure analysis:
• detailed structure of the problem is examined.
• Identify the flow of data between processes.
• DFD is used.
21
Waterfall model
ii. Structure design:
• Results of structured analysis are transformed into the software
design.
• Two main activities:
1. Architectural design (High-level design) – Modules and
relationships.
2. Detailed design (Low-level design) –Data structure and
algorithms.
22
Waterfall model
Coding and Unit testing
• Goal of this phase.
• Implementation phase.
• system is being operational (working conditions) at this
phase.
• Simplicity and clarity should be maintained.
• Output of this phase.
Integration and System testing
• When integration and system testing is performed.
• Goal of this phase.
• Detects errors and maintain quality. 23
Waterfall model
• Three kinds of testing:
i. α– testing
ii. β–testing
iii. Acceptance testing
• Output of this phase.
Maintenance
• It requires maximum efforts.
• Maintenance needed due to.
• Four types of maintenance
Corrective maintenance Perfective maintenance
Adaptive maintenance Preventive maintenance
24
Waterfall model
Advantages of waterfall model
• Simple and easy to understand.
• Clearly defined stages.
• Helps in planning.
• Results are well documented.
• Works well for smaller projects.
26
1.6 Software development models
Iterative Waterfall model
• Why there is a need of this model.
• Concept of phase containment of errors.
27
1.6 Software development models
Incremental process model (Evolutionary
model)
• successive version of waterfall model
• In this model, the system is broken down into several
modules.
• First develop the core product of the system.
• Then by adding new functionalities in successive versions.
28
Incremental model
Advantages of incremental model
• Each successive version performing more useful.
• Initial product delivery is faster.
• Reducing chance of errors in final product.
• More flexible.
• Chance to experiment with partially developed software.
• Helps finding exact user requirements.
Disadvantages of incremental model
• It requires more planning and design efforts.
• Used for very large problems.
• Cost may exceed.
29
Incremental model
Applications of incremental model
• When the problem is very large
• When user requirements are not well specified at initial stage.
• When new technology is used in development.
30
1.6 Software development models
Prototype model
• What is prototype.
• In this model, working prototype is built first.
• Provide crude version of the system.
• Compared to the actual software, a prototype usually have:
– limited functional capabilities
– low reliability
– inefficient performance
• Useful for GUI part of the system.
31
Prototype models
32
Prototype model
• Working of this model using figure description.
• Two types of prototype model:
– Exploratory development prototype model
– Throw away prototype model
Advantages of prototype model
• New requirements can be accommodate easily.
• Missing functionalities identified quickly.
• Better flexibility in design and development.
• More chance of user satisfaction.
• Quick user feedback is available.
33
Prototype model
Disadvantages of prototype model
• Usually throw away.
• High cost.
• If user not satisfied with initial prototype, so chance of lose
interest in final product.
• Required participation of customer extensively, it is not
possible every time.
Applications of prototype model
• When there is a need of lot of integrations with end users.
• Generally used in GUI type of development.
34
1.6 Software development models
Spiral model
• Proposed by Boehm 1986.
• It uses 4GL.
35
Spiral model
• Each loop of the spiral represents a phase of the software
process:
– the innermost loop might be concerned with system feasibility,
– the next loop with system requirements definition,
– the next one with system design, and so on
• It is more flexible compare with other models.
Four sectors (quadrants)
• 1st Quadrant (Determine objectives)
– Identify objects and their relationships.
– Find alternative solutions.
• 2nd Quadrant (Identify and resolve risks)
– detailed analysis is carried out
– Alternate solutions are evaluated and risks are reduces
36
Spiral model
• 3rd Quadrant (Develop next level product)
– Develop and validate the next level of the produ.
– Resolution of critical operations and technical issues of next
level product are performed.
• 4th Quadrant (Review and Planning [Customer
evaluation])
– In this part, review the results achieved so far.
– Plan the next iteration around the spiral.
• With each iteration around the spiral: progressively more
complete version of the software gets built.
• In spiral model at any point, Radius represents: cost and
Angular dimension represents: progress of the current
phase.
• At the end, all risks are resolved and software is ready to use.
37
Spiral model
Advantages of spiral model
• More flexible.
• Improved user satisfaction.
• It provides cohesion between different stages.
• Final product will be more reliable.
Disadvantages of spiral model
• Applicable to large problems only.
• More complex.
• More numbers of documents needed.
• Need of higher expertise.
• High cost. 38
Spiral model
Applications of spiral model
• Used when medium to high risk projects.
• When users are unsure for their needs.
• When requirements are complex.
40
1.7 Agile Development Model
• Most popular and common agile methodology examples
(or frameworks) are:
Scrum
Kanban
XP (eXtreme Programming)
Dynamic System Development Method (DSDM)
Feature Driven Development (FDD)
Adaptive Software Development (ASD)
Adaptive Project Framework (APF)
Lean Software Development (LSD)
41
1.7 Agile Development Model
• Agile Principles:
• Agile principles make up the foundation of agile. The agile method
is based on 12 guiding principles, known as agile principles, which
are:
42
1.7 Agile Development Model
Comparison of Agile model v/s Traditional model approach
Traditional model approach Agile approach
- It is process oriented. - It is people oriented.
- In it, project scope and requirements are - Project scope and requirements are
less flexible. more flexible.
- Clear initial requirements. - Creative, innovative and unclear
requirements.
- In this approach, planning is done at the - In it, planning is done iteratively and
beginning. incrementally.
- Focuses on delivering a complete - Focuses on delivering working software
product. or features in small increments.
Explanation of each
phase in fig.
45
eXtreme Programming (XP) model
• The XP model suggests quick release.
Advantages of XP model
• stable and well-performing systems with minimal debugging.
• Less number of documents needed.
• Results can be derived soon.
Disadvantages of XP model
• Time consuming.
• Customer involvement is sometime tedious.
• High cost 46
eXtreme Programming (XP) model
Applications of XP model
• Mainly used for smaller projects.
• Projects involving new technologies and research.
47
Scrum model
• It is a light weight agile process framework.
• Scrum is adaptable, fast, flexible and effective agile framework.
• It focused primarily on ways to manage tasks in team-based
development conditions.
• This model based on an iterative and incremental processes.
• Scrum is characterised by cycles or stages of development,
known as ‘sprints’
• Every day starts with a small 15-minute meeting, called ‘daily
scrum’, which takes the role of synchronising activities and
finding the best way to plan out the working day.
48
Scrum model
• Process of scrum.
• Three different roles and their responsibilities.
1. Scrum master
2. Product owner
3. Scrum team
49
Scrum model
Advantages of Scrum model
• It is adaptable and flexible.
• Focus on product quality.
• Improve team motivations.
• More chance of customer satisfaction.
51
MCQs
52
MCQs
53
TRUE / FALSE
54