KEMBAR78
Unit 1 | PDF | Art | Computers
0% found this document useful (0 votes)
19 views43 pages

Unit 1

The document discusses different software development life cycle models including waterfall, incremental, spiral and prototyping models. It provides details about each model including their process, advantages and disadvantages. The key models covered are waterfall, incremental and spiral.

Uploaded by

mian19234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views43 pages

Unit 1

The document discusses different software development life cycle models including waterfall, incremental, spiral and prototyping models. It provides details about each model including their process, advantages and disadvantages. The key models covered are waterfall, incremental and spiral.

Uploaded by

mian19234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Unit 1 : INTRODUCTION OF

SOFTWARE & SOFTWARE


ENGINEERING
Questions asked in GTU
1. Distinguish between a program and a software product(W-20)
2. Explain Waterfall process model. (Summer 2018, Summer
2019,Winter 2019,w-20) ( 7 marks )
3. What is Software Engineering? What is Process? What is Product?
(Summer 2019) ( 3 marks )
4. Explain Software Engineering as a Layered Technology. ( Summer
2018,winter 2018) ( 4 marks )
5. Compare Prototype and RAD Process Model. ( Summer 2019,winter
2018) ( 3 marks )
6. Explain Incremental Model ( winter 2017/18) ( 7 marks)
7. Explain Spiral Model in brief with suitable diagram. (winter 2018) ( 4
marks )
8. What is the importance of Process Model in development of
Software System? Explain Prototype Process Model. (winter 2018) (
7 marks )

2
Outline
• What is software?
• Software Engineering
• Need of software engineering
• Importance of software engineering
• Software Engineering as a layered technology
• SDLC Models
-Waterfall Model
- Incremental Model
- Spiral Model
- Prototype Model
3
- RAD Model
What is Software ???
• Software, in its most general sense, is a set of instructions or
programs instructing a computer to do specific tasks.

4
Types of software

5
What is software Engineering?
• The term software engineering is the product of two
words, software, and engineering.

Software Engineering
It is a collection of It is the application
integrated programs. of scientific and practical knowledge to invent,
design, build, maintain, and improve
frameworks, processes, etc.

• Software engineering is the systematic application of


engineering approaches to the development of software.

6
7
Need of software Engineering
• To manage Large software
• For more Scalability
• Cost Management
• For Better quality Management

8
Importance of software
Engineering

9
Software Engineering as a layered
technology

10
▪ Quality Focus
• Main principle of Software Engineering is Quality Focus.
• An engineering approach must have a focus on quality.
• Total Quality Management (TQM), Six Sigma, ISO 9001, ISO
9000-3, CAPABILITY MATURITY MODEL (CMM), CMMI & similar
approaches encourages a continuous process improvement
culture
▪ Process layer
• It is a foundation of Software Engineering
• It defines a framework with activities for effective delivery of
software engineering technology
▪ Method
• It provides technical how-to’s for building software
• It encompasses many tasks including communication,
requirement analysis, design modeling, program construction,
testing and support
▪ Tools
• This layer contains automated or semi-automated tools that
offer support for the framework and the method each software
engineering project will follow.
• Computer-aided software engineering (CASE) is the scientific
application of a set of tools and methods to a software system
which is meant to result in high-quality, defect-free, and
maintainable software products.
• CASE tools automate many of the activities involved in various
life cycle phases.
SDLC
• The Software Development Life Cycle (SDLC) refers to a
methodology with clearly defined processes for creating
high-quality software
• The SDLC methodology focuses on the following phases of
software development:

13
List of SDLC models

14
Waterfall Model

• It is also called as linear sequential model.


• In this model whole application is developed in a
sequential approach.
• In this model each phase must be completed fully before
the next phase begin.

15
Waterfall Model

16
Where to use the waterfall model??

• Requirements are very well known.


• Product definition is stable.
• Technology is understood.

17
Advantages
• This model is simple
• Easy to understand and use.
• In this model phases are processed and completed one at
a time. Phases do not overlap.
• Waterfall model works well for smaller projects where
requirements are very well understood.

18
Disadvantages
• It is only suitable for the small size projects.
• Constant testing of the design is needed.
• If requirements may change the Waterfall model may not
work.
• High amounts of risk and uncertainty.
• Once an application is in the testing stage, it is very
difficult to go back and change something that was not
well-thought out in the concept stage.

19
Incremental Model

20
• Incremental Model is a process of software development
where requirements divided into multiple standalone
modules of the software development cycle.

• In this model, each module goes through the


requirements, design, implementation and testing phases.
Every subsequent release of the module adds function to
the previous release.

• The process continues until the complete system achieved.

21
22
▪ For example, word-processing software developed using
the incremental model
• It might deliver basic file management, editing and
document production functions in the first increment
• more sophisticated editing in the second increment;
• spelling and grammar checking in the third increment;
and
• advanced page layout capability in the fourth
increment.

23
When to use ?
• When the requirements are superior.
• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the
product.
• You can develop prioritized requirements first.

24
Advantages
• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• The Client gets important functionality early.

25
Disadvantages
• It requires a good planning
• Problems might cause due to system architecture as such
not all requirements collected up front for the entire
software lifecycle
• Rectifying a problem in one unit requires correction in all
the units and consumes a lot of time
• Total cost is higher than waterfall

26
Evolutionary Process Models
▪ In Evolutionary model, the software requirement is first broken
down into several modules (or functional units) that can be
incrementally constructed and delivered.
▪ Evolutionary Process Models are specially meant for that which
produce an increasingly more complete version of the software
with each iteration.
▪ Evolutionary Models are iterative.
▪ Evolutionary models are
• Prototyping Model
• Spiral Model
The Spiral Model
• The spiral model combines the idea of iterative
development with the systematic, controlled aspects of
the waterfall model.
• This Spiral model is a combination of iterative
development process model and sequential linear
development model
• It allows incremental releases of the product or
incremental refinement through each iteration around the
spiral.
• The spiral model has five phases. A software project
repeatedly passes through these phases in iterations
called Spirals.
• The spiral model is a risk-driven software development
process model.

29
▪ When to use Spiral Model?
• For development of large scale / high-risk projects.
• When costs and risk evaluation is important.
• Users are unsure of their needs.
• Requirements are complex.
• Significant (considerable) changes are expected.
▪ Advantages
• High amount of risk analysis hence, avoidance of Risk
is enhanced.
• Strong approval and documentation control.
• Additional functionality can be added at a later date.
• Software is produced early in the Software Life Cycle.

31
▪ Disadvantages
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects.
• Not suitable for low risk project.
Prototyping model
▪ Prototyping model is appropriate when
• Customers have general objectives of software but do not have
detailed requirements for functions & features.
• Developers are not sure about efficiency of an algorithm &
technical feasibilities.
▪ It serves as a mechanism for identifying software requirements.
▪ Prototype can be serve as “the first system”.
▪ Both stakeholders and software engineers like prototyping model
• Users get feel for the actual system
• Developers get to build something immediately
Deployment & Communication
Feedback

Construction
of Prototype Quick Plan

Modeling Quick
Design
▪ It works as follow
• Communicate with stockholders & define objective of Software
• Identify requirements & design quick plan
• Model a quick design (focuses on visible part of software)
• Construct Prototype & deploy
• Stakeholders evaluate this prototype and provides feedback
• Iteration occurs and prototype is tuned based on feedback
▪ Problem Areas
• Customer demand that “a few fixes” be applied to make the
prototype a working product, due to that software quality suffers
as a result
• Developer often makes implementation in order to get a
prototype working quickly; without considering other factors in
mind like OS, Programming language, etc.
▪ Advantages
• Users are actively involved in the development
• Since in this methodology a working model of the system is
provided, the users get a better understanding of the system
being developed
• Errors can be detected much earlier
Disadvantage

• This model is costly.


• It has poor documentation because of continuously
changing customer requirements.
• There may be too much variation in requirements.
• Customers sometimes demand the actual product to be
delivered soon after seeing an early prototype.

37
Rapid Application Development
Model (RAD)
Team - 1
Modeling

Construction
Integration
Communication Delivery
Team - 2 Feedback

Planning Modeling
Deployment
Construction

Team - 3
Modeling Component Reuse
Business Modeling Automatic Code
Data Modeling Generation
Construction
Process Modeling Testing
▪ It is also know as RAD Model
▪ It is a type of incremental model in which; components or
functions are developed in parallel.
▪ Rapid development is achieved by component based construction
▪ This can quickly give the customer something to see and use and
to provide feedback.
▪ Communication
• This phase is used to understand business problem.
▪ Planning
• Multiple software teams work in parallel on different
systems/modules.
▪ Modeling
• Business Modeling: Information flow among the business.
• Ex. What kind of information drives (moves)?
• Who is going to generate information?
• From where information comes and goes?
• Data Modeling: Information refine into set of data objects that
are needed to support business.
• Process Modeling: Data object transforms to information flow
necessary to implement business.
▪ Construction
• It highlighting the use of pre-existing software component.
▪ Deployment
• Deliver to customer basis on subsequent iteration.
▪ When to Use ?
• There is a need to create a system that can be modularized in 2-3
months of time.
• High availability of designers and budget for modeling along with
the cost of automated code generating tools.
• Resources with high business knowledge are available.
▪ Advantages
• Reduced development time.
• Increases reusability of components.
• Quick initial reviews occur.
• Encourages customer feedback.
• Integration from very beginning solves a lot of integration issues.
▪ Drawback
• For large but scalable projects, RAD requires sufficient human
resources.
• Projects fail if developers and customers are not committed in a
much shortened time-frame.
• Problematic if system can not be modularized.
• Not appropriate when technical risks are high (heavy use of new
technology).
43

You might also like