Noida Institute of Engineering and Technology, Greater Noida Noida Institute of Engineering and Technology, Greater Noida

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 86

Noida Institute of Engineering and Technology, Greater Noida

INTRODUCTION

Unit: 1

Subject Name
Software Engineering Prakirti Raghuvanshi
Assistant Professor (IT)
Course Details
B.TECH IT-VI Sem

Prakirti Raghuvanshi KCS-601 & SE Unit 1


1
07/11/2021
Content

Introduction to Software Engineering,


• Software Components
• Software Characteristics
• Software Crisis
• Software Engineering Processes
• Similarity and Differences from Conventional Engineering Processes
• Software Quality Attributes
• Software Development Life Cycle (SDLC) Models
• Water Fall Model,
• Prototype Model,
• Spiral Model, Evolutionary Development Models,
• Iterative Enhancement Models

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 2


Course Objective

• Introduction to Software Engineering.

• Understand the basic components and characteristics of software.

• Understand the basic difference between software engineering and


conventional engineering.

• Have a knowledge of quality attributes of software.

• To know about different life cycle models for software development


based on SDLC.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 3


Course Outcome
Bloom’s
CO CO Description Knowledge
Level (KL)
Explain various software characteristics and analyze different
CO1 K1, K2
software Development Models.
Demonstrate the contents of a SRS and apply basic software
CO2 quality assurance practices to ensure that design, development K1, K2
meet or exceed applicable standards.

CO3 Compare and contrast various methods for software design. K2, K3

Formulate testing strategy for software systems, employ


CO4 techniques such as unit testing, Test driven development and K3
functional testing.
Manage software development process independently as well
CO5 as in teams and make use of Various software management K5
tools for development, maintenance and analysis.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 4


CO-PO and PSO Mapping
CO-PO correlation matrix of Data Structure (KCS 301)
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
KCS601.1 3 3 3 2 2 1 1 2 2 3 3 3

KCS601.2 3 3 3 3 2 2 1 3 2 3 3 3

KCS601.3 2 2 2 2 2 2 2 3 3 3 3 3

KCS601.4 3 2 3 3 3 1 1 3 2 3 2 2

KCS601.5 3 3 3 3 3 2 1 3 3 3 3 3

Average 2.80 2.60 2.80 2.60 2.40 1.60 1.20 2.80 2.40 3 2.80 2.80

Mapping of Program Specific Outcomes and Course Outcomes


PSO1 PSO2 PSO3 PSO4
KCS601.1 3 2 3 3

KCS601.2 3 2 3 3

KCS601.3 3 2 3 3

KCS601.4 3 2 3 3

KCS601.5 3 1 3 3

Average 3 1.80 3 3

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit III 5


Prerequisite and Recap

• Basics of Graph Theory.


• Basics of Computer Science

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 6


Unit I Syllabus

• Introduction: Introduction to Software Engineering, Software


Components, Software Characteristics, Software Crisis, Software
Engineering Processes, Similarity and Differences from Conventional
Engineering Processes, Software Quality Attributes.

• Software Development Life Cycle (SDLC) Models: Water Fall Model,


Prototype Model, Spiral Model, Evolutionary Development Models,
Iterative Enhancement Models.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 7


What is Software (CO1)

• Computer programs and associated


documentation

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 8


What is Software (contd..)

• Software is:-

– an instruction that when executed provide desired feature,


function and performance

– data structure that enable the programs to adequately


manipulate information.

– documents that describe the operation and use of the programs

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 9


What is Software (contd..)

Programs

Documentation Operating
Procedures

Software= Program + Documentation + Operating Procedures


Components of software

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 10


What is Software (contd..)

• IEEE definition of Software:-


– Software is the collection of computer programs procedures,
rules and associated documentation and data.

• To be precise
– Software is the collection of computer programs whose
objective is to enhance the capabilities of hardware

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 11


Importance of Software

• It affects nearly every aspect of our lives and has become pervasive
in our commerce, our culture and our every day activities
software impact on our society and culture is significant .

• As software importance grows, the software community


continually attempts to develop technologies that will make it
easier faster and less expensive to build high quality computer
programs

Prakirti Raghuvanshi KCS-601 & SE


07/11/2021 12
Unit 1
Importance of Software (contd..)

• It has become a driving force.


• It is engine that drive business decision making.
• It serve as the basis for modern scientific investigation and
engineering problem solving.
• It is embedded in all kind of systems like transportation, medical,
telecommunications, military, industrial process, entertainment,
office products etc.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 13


Software Engineering (CO1)

• IEEE Definition:-

Software Engineering is the application of systematic, disciplined,


quantifiable approach to the development, operation and
maintenance of software.
OR
Software Engineering is an Engineering discipline which is
concerned with all aspects of software production.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 14


Software Components

• Software components is a system elements offering predefined


service and able to communicate with other components

• It should fulfill following five criteria:-


– Multiple use
– Non context specific
– Composable with other components
– Encapsulated i.e. non investigable through its interfaces

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 15


Why Software Engineering

• Managers and Technical Persons are asked:-


– Why does it take so long to get the program finished?
– Why are costs so high?
– Why can not we find all errors before release?
– Why do we have difficulty in measuring progress of software
development?

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 16


Software Characteristics(CO1)

The key characteristics of software are:-

– Most software is custom built, rather than being assembled


from existing components.

– Software is developed or engineered; It is not manufactured in


the classical sense.

– Software is flexible.

– Software doesn’t wear out.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 17


Software Characteristics(contd..)
Comparison of constructing a bridge and writing a program.
Sr.No Constructing a bridge Writing a program
1. Only some parts of the problem are understood,
The problem is well understood
others are not
2. Every program is different and designed for
There are many existing bridges
special applications.
3. The requirement for a bridge typically do Requirements typically change during all
not change much during construction 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, there is a detailed When a program fails, the reasons are often
investigation and report unavailable or even deliberately concealed.
6. Engineers have been constructing bridges Developers have been writing programs for 50
for thousands of years years or so.
7. Materials (wood, stone, iron, steel) and
techniques (making joints in wood, carving Hardware and software changes rapidly.
stone, casting iron) change slowly.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 18


Software Characteristics(contd..)

• Software does not have wear out phase

Figure: Software does not have wear out

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 19


Software Characteristics(contd..)

• We don’t have this phase for the software as it does not wear out.

• Important point is software becomes reliable overtime instead of


wearing out

• It becomes obsolete.

• Software may be retired due to environmental changes , new


requirement and new expectation

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 20


Today’s Lecture

• Software Crisis
• Software Myths
• Software Process

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 21


SOFTWARE CRISIS (CO1)

• During planning, development, installation and execution of


software many problems are encountered.

• These set of problem is known as software crisis.

• According to latest IBM report 31% of the projects get cancelled


before they are completed,53% over run their cost estimates by an
average of 189% and for every 100 projects there are 94 restarts.

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 22
Unit 1
SOFTWARE CRISIS (contd..)

Some examples of software crisis:-


• Ariane 5

• Y2K problem

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 23
Unit 1
SOFTWARE CRISIS (contd..)

• The Patriot Missile

• The Space Shuttle

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 24
Unit 1
SOFTWARE CRISIS (contd..)

• Heathrow Disruption (Feb-2020)

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 25
Unit 1
SOFTWARE MYTHS

• Software is easy to change

• Computers provide greater reliability than the devices they replace

• Software with more features is better software

• Software can work right the first time

• Once the software is demonstrated, the job is done.

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 26
Unit 1
Software Process (CO1)
• Software process is the related set of activities and process that
are involved in developing and evolving a software system.

• A set of activities whose goal is the development or evolution of


software.

• The software process is the way in which we produce software.

• Why is it difficult to improve software process ?


 Not enough time
 Lack of knowledge

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 27
Unit 1
Software Process (contd..)

There are four fundamental process activities which are common to all
software processes. These activities are :-
• Software specification:- the functionality of the software and
constraints on its operation must be defined.

• Software development:- the software to meet the specification


must be produced.

• Software validation:- the software must be validated to ensure that


it does what the customer wants

• Software evolution:- the software must evolve to meet the


changing customer needs.

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 28
Unit 1
Software Process (contd..)

• The software industry considers software development as a


process. According to Booch and Rambough-A process defines who
is doing what, when and how to reach a certain goal ?

• Software Engineering is a field, which combines process, methods


and tools for the development of software.

• The concept of process is the main step in the software engineering


approach. When these activities are performed in specific sequence
in accordance with ordering constraints, the desired results are
produced.

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 29
Unit 1
Evolution Of Software
Software Engineering principles have evolved over the past more than
fifty years from art to an engineering discipline.

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 30
Unit 1
Evolution Of Software (contd..)
• Early Era: In this era the software are mainly based on (1950-1960)
– Limited Distribution
– Custom Software
– Batch Orientation

• Second Era: In this era the software are mainly based on (1960-
1972)
– Multi-user
– Data base
– Real time
– Product software
– Multiprogramming

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 31
Unit 1
Evolution Of Software (contd..)

• Third Era: In this era the software are mainly based on(1973-1985)
– Embedded intelligence
– Consumer impact
– Distributed systems
– Low cost hardware

• Fourth Era:- In this era the software are mainly based on(1985- )
– Powerful desktop system
– Expert system
– Artificial intelligence
– Network computers
– Parallel computing
– Object oriented technology

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 32
Unit 1
Software Quality Attributes (CO1)

Software Quality Attributes are: 


• Correctness
• Reliability
• Adequacy
• Learnability
• Robustness
• Maintainability
• Readability
• Extensibility
• Testability
• Efficiency
• Portability

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 33


Software Quality Attributes (contd..)
• Correctness: -The correctness of a software system refers to:
– Agreement of program code with specifications
– Independence of the actual application of the software system.
• Reliability: Reliability of a software system derives from
– Correctness
– Availability
• Adequacy:
– The input required of the user should be limited to only what is
necessary. The software system should expect information only
if it is necessary for the functions that the user wishes to carry
out.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 34


Software Quality Attributes (contd..)
• Learnability: Learnability of a software system depends on
– The design of user interfaces
– The clarity and the simplicity of the user instructions

• Robustness: 
– Robustness reduces the impact of operational mistakes,
erroneous input data, and hardware errors.

• Maintainability: The maintainability of a software system depends


on its
– Readability
– Extensibility
– Testability

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 35


Software Quality Attributes (contd..)

• Readability: Readability of a software system depends on its:


– Form of representation
– Programming style
– Consistency
– Structuredness of the system
– Quality of the documentation
– Tools available for inspection

• Extensibility: Extensibility allows required modifications at the


appropriate locations to be made without undesirable side effects.
Extensibility of a software system depends on its:

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 36


Software Quality Attributes (contd..)

Testability: The testability of a software system depends on its:


– Modularity
– Structuredness
• System-dependent elements are collected in easily
interchangeable program components
Efficiency: 
– ability of a software system to fulfill its purpose with the best
possible utilization of all necessary resources (time, storage,
transmission channels, and peripherals).
Portability:
– the ease with which a software system can be adapted to run on
computers other than the one for which it was designed.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 37


Software Engg. V/S Conventional Engg.

Sr.No Software Engineering Conventional Engineering


1. Software Engineering Process is a process Conventional Engineering Process is a process
which majorly involves computer science, which majorly involves science, mathematics
information technology and discrete and empirical knowledge.
mathematics.
2. It is mainly related with computers, It is about building cars, machines, hardware,
programming and writing codes for buildings etc.
building applications.
3. In Software Engineering Process In Conventional Engineering Process
construction and development cost is low. construction and development cost is high.
4. It can involve the application of new and It usually applies only known and tested
untested elements in software projects. principles to meet product requirements.
5. In Software Engineering Process, most In Conventional Engineering Process, most
development effort goes into building new development efforts are required to change old
designs and features. designs.
6. It majorly emphasize on quality. It majorly emphasize on mass production.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 38


SOFTWARE DEVELOPMENT LIFE CYCLE (CO1)

• SDLC is the acronym of Software Development Life Cycle.

• It is also called as Software Development Process.

• SDLC is a framework defining tasks performed at each step in the


software development process.

• ISO/IEC 12207 is an international standard for software life-cycle


processes. It aims to be the standard that defines all the tasks
required for developing and maintaining software.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 39


Today’s Lecture

• Software Development Life Cycle


• Waterfall Model

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 40


SOFTWARE DEVELOPMENT LIFE CYCLE (CO1)

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 41


SDLC MODELS (CO1)

• There are various software development life cycle models defined


and designed which are followed during the software development
process.
• Following are the most important and popular SDLC models
followed in the industry −
1. Waterfall Model
2. Prototype Model
3. Spiral Model
4. Iterative Enhancement Models
5. Evolutionary Development Models

Prakirti Raghuvanshi KCS-601 SE


07/11/2021 42
Unit 1
WATERFALL MODEL

• Origins
– Proposed in the early 70s & widely used even today
– Based strongly on the way hardware systems are designed &
implemented.

• There is a single pass through each phase.

• Overlap between these phases is neither precluded nor mandated.

• There is little or no iterative development.

• Sometimes called systematic sequential approach.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 43


WATERFALL MODEL (contd..)

Requirement
analysis &
specification
Software Design &
Detailed Design

Implementation & Unit


Testing

Integration &
System Testing

Operation &
Maintenance

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 44


WATERFALL MODEL (contd..)

Advantages:
• Easy to understand even by non technical persons i.e.,
customers

• Each phase has well defined inputs and outputs e.g., input to
system design stage is Requirement Specification Documents
(RSD) and output is the design document

• Easy to use as software development proceeds.

• Each stage has well defined manager deliverables or


milestones.

• Helps the project in proper planning of the project.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 45


WATERFALL MODEL (contd..)

Disadvantages:
• It is difficult to define all requirements at the beginning of a
project.

• This model is not suitable for accommodating any change.

• It involves heavy documentation.

• We can not go in the backward direction while SDLC performs.

• The model is not suitable for new projects because of


uncertainty in the specifications.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 46


PROTOTYPE MODEL (CO1)

• A prototype is a partially developed product. It is a process of developing


working replica of a system.
• It always happen that a customer defines a set of general objectives for
software but does not identify detailed input, processing, or output
requirements.
• In other words the developer may be unsure of the efficiency of an algorithm,
the adaptability of an operating system or the form the human/machine
interaction should take.
• The prototyping begins with communication.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 47


PROTOTYPE MODEL (contd..)

• Developer and customer meet and define overall objective for the
software, identify whatever requirements are known, and outline
area where further definition is mandatory.

• A quick design than occurs.

• The quick design focuses on the representation of those aspects of


the software that will visible to customer/user (e.g., input
approaches and output format).

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 48


PROTOTYPE MODEL (contd..)

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 49


PROTOTYPE MODEL (contd..)

Reasons for using Prototyping Model


• An important purpose is to illustrate the input data formats,
messages, reports, and the interactive dialogues to the customer.
• The prototype model is very useful in developing the GUI part of
the system.
• The prototype model can be used when the technical solutions are
unclear to the development team.
• The reason for developing a prototype is that it is impossible to “get
in right” the first time and one must plant to throw away the first
product in order to develop a good product later.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 50


PROTOTYPE MODEL (contd..)

• Advantage of Prototyping Model


– suitable for large system for which there is no manual process
to define the requirements.
– User training to use the system.
– User service determination.
– System training.
– Requirement are not freezed.
• Limitation of Prototyping Model
– It was difficult to find all the requirements of the software
initially.
– It was very difficult to predict how the system will be after
development.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 51


Recap

• Waterfall Model
• Prototype Model

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 5 52


ITERATIVE ENHANCEMENT MODEL (CO1)

• An iterative life cycle model does not attempt to start with a full
specification of requirements.

• Instead, development begins by specifying and implementing just


part of the software, which is then reviewed to identify further
requirements.

• This process is then repeated, producing a new version of the


software at the end of each iteration of the model.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 53


ITERATIVE MODEL DESIGN

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 54


ITERATIVE ENHANCEMENT MODEL (contd..)

• The key to a successful use of an iterative software development


lifecycle is rigorous validation of requirements, and verification &
testing of each version of the software against those requirements
within each cycle of the model.

• As the software evolves through successive cycles, tests must be


repeated and extended to verify each version of the software.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 55


ITERATIVE MODEL APPLICATIONS

• Requirements of the complete system are clearly defined and


understood.

• Major requirements must be defined; however, some functionalities


or requested enhancements may evolve with time.

• There is a time to the market constraint.

• A new technology is being used and is being learnt by the


development team while working on the project.

• Resources with needed skill sets are not available and are planned
to be used on contract basis for specific iterations.

• There are some high-risk features and goals which may change in
the future.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 56


ITERATIVE MODEL ADVANTAGES

• Advantages of Incremental model:-


– Some working functionality can be developed quickly and early
in the life cycle.
– Parallel development can be planned.
– Less costly to change the scope/requirements.
– Testing and debugging during smaller iteration is easy.
– Risks are identified and resolved during iteration; and each
iteration is an easily managed milestone.
– It supports changing requirements.
– Better suited for large and mission-critical projects.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 57


ITERATIVE MODEL DISADVANTAGES

• Disadvantages of Incremental model:-


– More resources may be required.
– Although cost of change is lesser, but it is not very suitable for
changing requirements.
– More management attention is required.
– System architecture or design issues may arise because not all
requirements are gathered in the beginning of the entire life
cycle.
– Defining increments may require definition of the complete
system.
– Management complexity is more.
– Highly skilled resources are required for risk analysis.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 58


EVOLUTIONARY MODEL (CO1)

• Evolutionary model is a combination of Iterative and Incremental


model of software development life cycle.
• Delivering your system in incremental process over time is the
action done in this model.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 59


EVOLUTIONARY MODEL DESIGN

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 60


EVOLUTIONARY MODEL (contd..)

• Evolutionary model suggests breaking down of work into smaller


chunks, prioritizing them and then delivering those chunks to the
customer one by one.

• The number of chunks is huge and is the number of deliveries made to


the customer.

• The main advantage is that the customer’s confidence increases as he


constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements.

• The model allows for changing requirements as well as all work in


broken down into maintainable work chunks.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 61


EVOLUTIONARY MODEL APPLICATIONS

• It is used in large projects where you can easily find modules for
incremental implementation. Evolutionary model is commonly used
when the customer wants to start using the core features instead of
waiting for the full software.

• Evolutionary model is also used in object oriented software


development because the system can be easily portioned into units
in terms of objects.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 62


SPIRAL MODEL(CO1)

• 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 i.e. the waterfall
model with a very high emphasis on risk analysis.

• It allows incremental releases of the product or incremental


refinement through each iteration around the spiral.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 63


SPIRAL MODEL DESIGN

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 64


SPIRAL MODEL APPLICATION

• When there is a budget constraint and risk evaluation is important.


• Long-term project commitment because of potential changes to
economic priorities as the requirements change with time.
• Customer is not sure of their requirements which is usually the
case.
• Requirements are complex and need evaluation to get clarity.
• New product line which should be released in phases to get enough
customer feedback.
• Significant changes are expected in the product during the
development cycle.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 65


SPIRAL MODEL ADVANTAGE

• Changing requirements can be accommodated.

• Allows extensive use of prototypes.

• Requirements can be captured more accurately.

• Users see the system early.

• Development can be divided into smaller parts and the risky parts can
be developed earlier which helps in better risk management.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 66


SPIRAL MODEL DISADVANTAGES

• Management is more complex.

• End of the project may not be known early.

• Not suitable for small or low risk projects and could be expensive for
small projects.

• Process is complex

• Spiral may go on indefinitely.

• Large number of intermediate stages requires excessive documentation.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 67


SELECTION OF A LIFE CYCLE MODEL

• Selection of a model is based on:


– Requirements
– Development team
– Users involvement
– Project type and associated risk

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 68


SELECTION BASED ON REQUIREMENTS

Iterative Evolutionary
Requirements Waterfall Prototype Spiral RAD
enhancement development

Are requirements
easily understandable Yes No No No No Yes
and defined?

Do we change
requirements quite No Yes No No Yes No
often?

Can we define
requirements early in Yes No Yes Yes No Yes
the cycle?

Requirements are
indicating a complex No Yes Yes Yes Yes No
system to be built

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 69


BASED ON DEVELOPMENT TEAM

Development Iterative Evolutionary


Waterfall Prototype Spiral RAD
team enhancement development

Less experience on
No Yes No No No No
similar projects?

Less domain Yes Yes Yes Yes


knowledge (new to No No
the technology)

Less experience on Yes


No No No Yes No
tools to be used

Availability of
Yes Yes Yes
training if required No No No

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 70


BASED ON USER INVOLVEMENT

Involvement Iterative Evolutionary


Waterfall Prototype Spiral RAD
of Users enhancement development

User involvement in
No Yes No No No Yes
all phases

Limited user No
Yes Yes Yes Yes No
participation

User have no
previous experience
No Yes Yes Yes Yes No
of participation in
similar projects

Users are experts of No


No Yes Yes Yes Yes
problem domain

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 71


Based On Type Of Project With Associated Risk

Project type Waterfall Prototype Iterative Evolutionary Spiral RAD


and risk enhancement development

Project is the No No Yes Yes No Yes


enhancement of the
existing system
Funding is stable for Yes Yes No No No Yes
the project

High reliability No No Yes Yes Yes No


requirements

Tight project No Yes Yes Yes Yes Yes


schedule
Use of reusable No Yes No No Yes Yes
components
Are resources (time,
money, people etc.) No Yes No No Yes No
scare?

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 72


MCQS

• Choose the correct option according to the given statement.


Statement 1: Software is a physical rather than a logical system element.
Statement 2: Computer software is the product that software engineers design and
build.
Statement 3: Software is a logical rather than a physical system element.
Statement 4: Software is a set of application programs that are built by software
engineers.
a) Statement 1 and 2 are correct.
b) Only Statement 2 and 3 are correct.
c) Statement 2 and 3 and 4 are correct.
d) All statements are correct

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 73


MCQS

• A generic process framework for software engineering encompasses five


activities. What are those activities?
a) Communication, risk management, measurement, production, deployment.
b) Communication, Planning, Modeling, construction, deployment.
c) Analysis, designing, programming, debugging, maintenance
d) None of the above.
• Software process and improvement are assessed by.
a) ISO 9000
b) ISO 9001
c) SPICE (ISO/IEC15504)
d) Both B and C options are correct.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 74


MCQS

• Which phase refers to the support phase of software development?


a) Acceptance Phase.
b) Testing.
c) Maintenance.
d) None of the above

• Where is the prototyping model of software development well suited?


a) When requirements are well defined.
b) For projects with large development teams.
c) When a customer cannot define requirements clearly.
d) None of the above.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 75


MCQS

• Which is not one of the types of prototype of Prototyping Model?


a) Horizontal Prototype
b) Vertical Prototype
c) Diagonal Prototype
d) Domain Prototype 

• Waterfall model is not suited for:


a) Small projects
b) Accommodating change
c) Complex projects
d) None

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 76


MCQS

• Which one is not a life cycle model


a) Waterfall
b) Spiral
c) Prototyping
d) CMM
• The model in which the requirements are implemented by its category is ______.
a) Evolutionary Development Model
b) Waterfall Model
c) Prototyping
d) Iterative Enhancement Model

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 77


MCQS

• For a well understood data processing application it is best to use


a) The waterfall model
b) prototyping model
c) t he evolutionary model
d) the spiral model

• What is the simplest model of software development paradigm?


a) Spiral model
b) Big Bang model
c) V-model
d) Waterfall model

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 78


MCQS

•In the spiral model ‘risk analysis’ is performed


a) In the first loop
b) in the first and second loop
c) In every loop
d) before using spiral model

• Which of the following is not included in failure costs?


a) Rework
b) repair
c) failure mode analysis
d) none of the mentioned

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 79


MCQS

• Which requirements are the foundation from which quality is measured?


a) Hardware
b) Software
c) Programmers
d) None of the mentioned
• Degree to which design specifications are followed in manufacturing the product
is called
a) Quality Control
b) Quality of conformance
c) Quality Assurance
d) None of the mentioned

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 80


Expected Questions for University Exam

• Define the term “Software Engineering”. Explain the major differences between
software engineering and other traditional engineering disciplines.
• Discuss different components of the Software Engineering involved in the
development process.
• Define various software characteristics.
• What is Software development life cycle?
• What is Software process?
• Who is called as the Stakeholder?
• List four reasons why it is difficult to improve software process.
• Discuss the prototype model. What is the effect of designing a prototype on the
overall cost of the software project ?
• List the advantage of waterfall model.
• Explain the waterfall model. Explain why it is more beneficial than adhoc methods.

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 81


Expected Questions for University Exam

• What are the merits of incremental model ?


• Name the Evolutionary process Models.
• Explain incremental model? Define core product and detailed plan.
• What are the demerits of incremental model ?
• What do you mean by task set in spiral Model?
• How does the risk factor affect the spiral model of software development?
• What do you mean by feasibility study ?
• What is software Quality Attribute?
• By what methods quality attributes can be judged?
• What is the main technique for achieving portable software?

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 82


SUMMARY

• Software Components
• Software Characteristics
• Software Crisis
• Software Engineering Processes
• Similarity and Differences from Conventional Engineering Processes
• Software Quality Attributes
• Software Development Life Cycle (SDLC) Models
• Water Fall Model,
• Prototype Model,
• Spiral Model, Evolutionary Development Models,
• Iterative Enhancement Models

07/11/2021 Prakirti Raghuvanshi KCS-601 SE Unit 1 83


References

1. RS Pressman, Software Engineering: A Practitioners Approach,


McGraw Hill.
2. Pankaj Jalote, Software Engineering, Wiley
3. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
4. KK Aggarwal and Yogesh Singh, Software Engineering, New Age
International Publishers.
5. Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of Software
Engineering, PHI Publication.
6. Ian Sommerville, Software Engineering, Addison Wesley.
7. Kassem Saleh, “Software Engineering”, Cengage Learning.
8. P fleeger, Software Engineering, Macmillan Publication.

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 84


Dr. Raj Kumar Goel RCA-502 SE
07/11/2021 85
Unit 1
Thank You

07/11/2021 Prakirti Raghuvanshi KCS-601 & SE Unit 1 86

You might also like