SOFTWARE ENGINEERING
UNIT-I
ABHIMANYU MISHRA
ASSISTANT PROF.(CSE)
JETGI
12/31/2016 1Abhimanyu Mishra(CSE) JETGI
 Introduction of software engineering.
 Software components.
 Software characteristics.
 Software crisis.
 Software engineering process.
 Software Quality attributes.
 SDLC-Types of models
CONTENTS
12/31/2016 2Abhimanyu Mishra(CSE) JETGI
“Software engineering is the practical application of scientific knowledge in the
design and the construction of programs and associated documentation required to
develop, operate and maintain them”.
According to Boehm-Software being a commercial products ,calls for engineering
approach to ensure that it is design with correct choice of technology.
Introduction of software:
12/31/2016 3Abhimanyu Mishra(CSE) JETGI
COMPONENT OF SOFTWARE:
Software engineering is concerned with all aspects of computer based
development including hardware,software,and process engineering.
SET of PROGRAM and SOFTWARE DOCUMENTS are the main
component of software.
A program is a set of instruction which is developed by
individual to solve their day to day simple mathematical and logical
problems.
12/31/2016 4Abhimanyu Mishra(CSE) JETGI
Software industry is a very fast growing dynamic industry, each new day comes
with some new invention and introducing new technology, This development force
software developer to keep watch on new technology and inventions which makes
the work of software developer critical and complex and cause the software crisis.
In other words we can say- Software crisis is the set of
difficulties and problems encountered while developing software.
Software crisis:
12/31/2016 5Abhimanyu Mishra(CSE) JETGI
There are various characteristic of software including:
 Understandability- To what extent is the process explicitly
defined and how easy is to understand the process.
 Visibility- Do the process activities culminate in clear result so
that the progress of process is visible.
 Robustness- Can the process continues in spite of unexpected
problems.
 Acceptability- Is the defined process acceptable to and usable
by engineers responsible for producing software product.
 Supportability- To what extent CASE tool support the process
activities.
characteristics of software:
12/31/2016 6Abhimanyu Mishra(CSE) JETGI
“Conformance to explicit stated functional and performance
requirments,explicitly documented development standards and implicit
characteristic that are expected of all professionally developed software”,
Attributes of software are:
•Correctness-A system is functionally correct if it behave according to its
functional requirements.
•Reliability-A system is said to reliable if it gives desired output even in case of
change of components.
•Portable-software system portability is the ease with which a software system
can be adapted to run on computer other than one for which it was design.
•Efficiency-It is the ability of software system to fulfil its purpose with best
possible utilization of necessary resources such as time, transmission channel,
peripherals.
Software Quality Attributes:
12/31/2016 7Abhimanyu Mishra(CSE) JETGI
SDLC stand for “SOFTWARE DEVELOPMENT LIFE CYCLE”.
It represents number of identifiable stages under which software goes during its life,
It is a diagrammatically representation which also provide
description of various phases and their sequence in life cycle of software product.
Software undergoes basic stages during its life cycle i.e. requirement
analysis and specification, design, coding and maintenance.
We have different SDLC models, each one have its own advantage and disadvantage
on the basis of:
• Development speed
• Product Quality
• Project Visibility
• Risk Exposure
• Administrative overhead
12/31/2016 8Abhimanyu Mishra(CSE) JETGI
Phases of SDLC:
Requirement
definition
System and
software design
Implementation &
unit testing
Integration &
system testing
Operation &
Maintenece
12/31/2016 9Abhimanyu Mishra(CSE) JETGI
Types of SDLC:
There are many software development life-cycle models as there is no
general agreement about various phases and their sequence in product life
cycle. Some most commonly used life cycles models are given :
i. Water fall model model
ii. Prototype model
iii. Spiral model
iv. Evolutionary development model
v. Iterative enhancement model
12/31/2016 10Abhimanyu Mishra(CSE) JETGI
WATER FALL MODEL-
Water fall model is a theoretical software development model .
It is developed by BOEHM in 1970.
• It is also known as classical,traditional,conventional or linear segment
model. There are different stages to the development and the output of
first stage flow to the next stage and so on. It force on sequential phase
development in which no phase can overlap another phase.
• Each phase of this model is well define the starting and ending criteria
which is to be documented by which the standard outputs produce by
each phase can formulate.
12/31/2016 11Abhimanyu Mishra(CSE) JETGI
Feasibility study
Requirement
analysis &
specification
System and Software
Design
Coding and Module
Testing
Integration &
System Testing
Implementation &
Maintenance
Fig-Water Fall Model
12/31/2016 12Abhimanyu Mishra(CSE) JETGI
Classification of phases of Water Fall Model:
Feasibility study-This phase is used to check whether the new proposed system is
economically, technically and operationally feasible or not.
Requirement analysis & Specification-This phase give specification about what is
the system for. It analyze and specifies the requirement of customer and document
them properly.
System & Software Designing-In design phase over all structure or architecture is
developed which is transformation of requirement specified in SRS. There are
two main types of design approach:
 Traditional design approach
 Object oriented design
12/31/2016 13Abhimanyu Mishra(CSE) JETGI
Coding & Module Testing-
In this phase system design is translated into source code also called program
code. The programming for different module is done in selected programming
language. End product of coding phase is module testing in which each module is
tested individually whether they are working properly or not.
Integration & system Testing-Individually tested module integrated have according
to planned system to develop the system. There are two main testing:
 Alpha Testing
 Beta Testing
Implementation & maintenance-In this phase system is installed at the user end and
it is checked if there is any upgradation required in hardware and software elements
at use rend as per our software so that is made available.
12/31/2016 14Abhimanyu Mishra(CSE) JETGI
PROTOTYPE MODEL:
• The prototype model firstly a working prototype developed instead of
developing actual software.
• This is developed according to available requirements which basically
have limited functions, low reliability while it passes through all stages
of development.
• This model is used by developer and given to user for review which
help the user to better understand his needs and requirement and then
feedback from users.
12/31/2016 15Abhimanyu Mishra(CSE) JETGI
Outline
Requirements
Evolutionary
Prototype
Throw-away
prototype
Delivered System
Execution
Prototype
Fig- Prototype Model
12/31/2016 16Abhimanyu Mishra(CSE) JETGI
Classification of Prototype Model:
Evolutionary Prototype-In this type of prototyping the main objective is to work
with user to explore their requirements and deliver them a final system. The stage
of Exploratory prototype are:
 Gather the requirements.
 Develop a working prototype on basis of initial requirements.
 Handover to user to the working prototype and get the feedback.
 Make changes and add new requirements according to user feedback in working
prototype.
Throw-away prototype-Throw away prototype is concentrate on less well
understood requirements of user. The prototype is developed on less well
requirements its main aim is that when user will use this ,its shortcoming will help
to understand the requirements more accurately.
12/31/2016 17Abhimanyu Mishra(CSE) JETGI
SPIRAL MODEL:
• In 1987 the BOEHM proposed a model for development of sotware known
as “Boehm Spiral Life cycle Model”.
• According to its name the activity of this modelare organize like spiral that
has many circles whose number depends on software requirements.
• The radial dimension of this model, the cumulative cost for accomplishing
different stages and angular dimension show the progressin completing
each cycle of the spiral.
• The main objective of this model is to minimiza the RISK through the use
of prototype.
12/31/2016 18Abhimanyu Mishra(CSE) JETGI
SPIRAL DIAGRAM
12/31/2016 Abhimanyu Mishra(CSE) JETGI 19
Advantage of Spiral Model-
 This model tries to resolved all possible risk involved in the project starting
with the highest risk.
 User can see the product early in the life cycle.
 It is very flexible model.
 It can cope with changing user requirements.
Disadvantage of spiral model-
 The model required experts for risk management.
 This model is not suitable for small projects.
 This is time consuming model.
 The cost of risk analysis is high it makes the model costly.
 The model is not widely used because it is relatively new.
12/31/2016 20Abhimanyu Mishra(CSE) JETGI
• This model is also known as Evolutionary Prototyping ,Simulated, Rapid
Delivery cycle.
• This model have many similarities with iterative enhancement model only
one and most important difference is that it does not require a usable product
at end of each cycle.
• In this model it is not necessary that all end products should be usable as a
particular software application can also be release in parts whose all parts
when combined then only it work.
• FOR EXAMPLE:
 First cycle implementation GUI.
 Second cycle implement file manipulation.
 Third develop queries.
12/31/2016 21Abhimanyu Mishra(CSE) JETGI
EVOLUTIONARY DEVELOPMENT MODEL:
Outline
Description
Initial version
Intermediate version
Final version
Specification
Developmen
t
Validation
Fig-Evolutionary Model
12/31/2016 22Abhimanyu Mishra(CSE) JETGI
Advantage of Evolutionary Developmet-
 Early delivery of partial system.
 Suitable for project using of new technology.
 One time delivery of all functionality of complex project whose requirement are
not clear at beginning and requirements are not stable.
Disadvantage of Evolutionary Development-
 Longer elapse time for project if the requirements gathering is done before each
increment.
 Difficulty in estimation of cost and schedule at start of project.
 Time apparently gained on the front end of a project because early release may
be lost later because of need for network resulting.
12/31/2016 23Abhimanyu Mishra(CSE) JETGI
ITERATIVE ENHANCEMENT MODEL:
• Iterative model is developed to overcome the draw back of water fall model.
• It is a combination of benefits of water fall model and prototype model. Very
popular i.e. used by industries.
• In this model software is developed in increments each increments add some
functional capability to the system until full system is developed.
• It provide better testing after each increment is easy as compare to entire model
testing of water fall model and prototype .
• In this model partial product is developed on few easily understandable
requirements of overall requirements.
12/31/2016 24Abhimanyu Mishra(CSE) JETGI
Integrate
increment
Define outline
requirements
Assign
requiremen
ts to
increment
Design
system
architecture
Develop
system
increment
Validate
increment
Validate
System
System incomplete
Final System
Fig-Iterative Enhancement Model
12/31/2016 25Abhimanyu Mishra(CSE) JETGI

Software Engineering Unit 1

  • 1.
    SOFTWARE ENGINEERING UNIT-I ABHIMANYU MISHRA ASSISTANTPROF.(CSE) JETGI 12/31/2016 1Abhimanyu Mishra(CSE) JETGI
  • 2.
     Introduction ofsoftware engineering.  Software components.  Software characteristics.  Software crisis.  Software engineering process.  Software Quality attributes.  SDLC-Types of models CONTENTS 12/31/2016 2Abhimanyu Mishra(CSE) JETGI
  • 3.
    “Software engineering isthe practical application of scientific knowledge in the design and the construction of programs and associated documentation required to develop, operate and maintain them”. According to Boehm-Software being a commercial products ,calls for engineering approach to ensure that it is design with correct choice of technology. Introduction of software: 12/31/2016 3Abhimanyu Mishra(CSE) JETGI
  • 4.
    COMPONENT OF SOFTWARE: Softwareengineering is concerned with all aspects of computer based development including hardware,software,and process engineering. SET of PROGRAM and SOFTWARE DOCUMENTS are the main component of software. A program is a set of instruction which is developed by individual to solve their day to day simple mathematical and logical problems. 12/31/2016 4Abhimanyu Mishra(CSE) JETGI
  • 5.
    Software industry isa very fast growing dynamic industry, each new day comes with some new invention and introducing new technology, This development force software developer to keep watch on new technology and inventions which makes the work of software developer critical and complex and cause the software crisis. In other words we can say- Software crisis is the set of difficulties and problems encountered while developing software. Software crisis: 12/31/2016 5Abhimanyu Mishra(CSE) JETGI
  • 6.
    There are variouscharacteristic of software including:  Understandability- To what extent is the process explicitly defined and how easy is to understand the process.  Visibility- Do the process activities culminate in clear result so that the progress of process is visible.  Robustness- Can the process continues in spite of unexpected problems.  Acceptability- Is the defined process acceptable to and usable by engineers responsible for producing software product.  Supportability- To what extent CASE tool support the process activities. characteristics of software: 12/31/2016 6Abhimanyu Mishra(CSE) JETGI
  • 7.
    “Conformance to explicitstated functional and performance requirments,explicitly documented development standards and implicit characteristic that are expected of all professionally developed software”, Attributes of software are: •Correctness-A system is functionally correct if it behave according to its functional requirements. •Reliability-A system is said to reliable if it gives desired output even in case of change of components. •Portable-software system portability is the ease with which a software system can be adapted to run on computer other than one for which it was design. •Efficiency-It is the ability of software system to fulfil its purpose with best possible utilization of necessary resources such as time, transmission channel, peripherals. Software Quality Attributes: 12/31/2016 7Abhimanyu Mishra(CSE) JETGI
  • 8.
    SDLC stand for“SOFTWARE DEVELOPMENT LIFE CYCLE”. It represents number of identifiable stages under which software goes during its life, It is a diagrammatically representation which also provide description of various phases and their sequence in life cycle of software product. Software undergoes basic stages during its life cycle i.e. requirement analysis and specification, design, coding and maintenance. We have different SDLC models, each one have its own advantage and disadvantage on the basis of: • Development speed • Product Quality • Project Visibility • Risk Exposure • Administrative overhead 12/31/2016 8Abhimanyu Mishra(CSE) JETGI
  • 9.
    Phases of SDLC: Requirement definition Systemand software design Implementation & unit testing Integration & system testing Operation & Maintenece 12/31/2016 9Abhimanyu Mishra(CSE) JETGI
  • 10.
    Types of SDLC: Thereare many software development life-cycle models as there is no general agreement about various phases and their sequence in product life cycle. Some most commonly used life cycles models are given : i. Water fall model model ii. Prototype model iii. Spiral model iv. Evolutionary development model v. Iterative enhancement model 12/31/2016 10Abhimanyu Mishra(CSE) JETGI
  • 11.
    WATER FALL MODEL- Waterfall model is a theoretical software development model . It is developed by BOEHM in 1970. • It is also known as classical,traditional,conventional or linear segment model. There are different stages to the development and the output of first stage flow to the next stage and so on. It force on sequential phase development in which no phase can overlap another phase. • Each phase of this model is well define the starting and ending criteria which is to be documented by which the standard outputs produce by each phase can formulate. 12/31/2016 11Abhimanyu Mishra(CSE) JETGI
  • 12.
    Feasibility study Requirement analysis & specification Systemand Software Design Coding and Module Testing Integration & System Testing Implementation & Maintenance Fig-Water Fall Model 12/31/2016 12Abhimanyu Mishra(CSE) JETGI
  • 13.
    Classification of phasesof Water Fall Model: Feasibility study-This phase is used to check whether the new proposed system is economically, technically and operationally feasible or not. Requirement analysis & Specification-This phase give specification about what is the system for. It analyze and specifies the requirement of customer and document them properly. System & Software Designing-In design phase over all structure or architecture is developed which is transformation of requirement specified in SRS. There are two main types of design approach:  Traditional design approach  Object oriented design 12/31/2016 13Abhimanyu Mishra(CSE) JETGI
  • 14.
    Coding & ModuleTesting- In this phase system design is translated into source code also called program code. The programming for different module is done in selected programming language. End product of coding phase is module testing in which each module is tested individually whether they are working properly or not. Integration & system Testing-Individually tested module integrated have according to planned system to develop the system. There are two main testing:  Alpha Testing  Beta Testing Implementation & maintenance-In this phase system is installed at the user end and it is checked if there is any upgradation required in hardware and software elements at use rend as per our software so that is made available. 12/31/2016 14Abhimanyu Mishra(CSE) JETGI
  • 15.
    PROTOTYPE MODEL: • Theprototype model firstly a working prototype developed instead of developing actual software. • This is developed according to available requirements which basically have limited functions, low reliability while it passes through all stages of development. • This model is used by developer and given to user for review which help the user to better understand his needs and requirement and then feedback from users. 12/31/2016 15Abhimanyu Mishra(CSE) JETGI
  • 16.
  • 17.
    Classification of PrototypeModel: Evolutionary Prototype-In this type of prototyping the main objective is to work with user to explore their requirements and deliver them a final system. The stage of Exploratory prototype are:  Gather the requirements.  Develop a working prototype on basis of initial requirements.  Handover to user to the working prototype and get the feedback.  Make changes and add new requirements according to user feedback in working prototype. Throw-away prototype-Throw away prototype is concentrate on less well understood requirements of user. The prototype is developed on less well requirements its main aim is that when user will use this ,its shortcoming will help to understand the requirements more accurately. 12/31/2016 17Abhimanyu Mishra(CSE) JETGI
  • 18.
    SPIRAL MODEL: • In1987 the BOEHM proposed a model for development of sotware known as “Boehm Spiral Life cycle Model”. • According to its name the activity of this modelare organize like spiral that has many circles whose number depends on software requirements. • The radial dimension of this model, the cumulative cost for accomplishing different stages and angular dimension show the progressin completing each cycle of the spiral. • The main objective of this model is to minimiza the RISK through the use of prototype. 12/31/2016 18Abhimanyu Mishra(CSE) JETGI
  • 19.
  • 20.
    Advantage of SpiralModel-  This model tries to resolved all possible risk involved in the project starting with the highest risk.  User can see the product early in the life cycle.  It is very flexible model.  It can cope with changing user requirements. Disadvantage of spiral model-  The model required experts for risk management.  This model is not suitable for small projects.  This is time consuming model.  The cost of risk analysis is high it makes the model costly.  The model is not widely used because it is relatively new. 12/31/2016 20Abhimanyu Mishra(CSE) JETGI
  • 21.
    • This modelis also known as Evolutionary Prototyping ,Simulated, Rapid Delivery cycle. • This model have many similarities with iterative enhancement model only one and most important difference is that it does not require a usable product at end of each cycle. • In this model it is not necessary that all end products should be usable as a particular software application can also be release in parts whose all parts when combined then only it work. • FOR EXAMPLE:  First cycle implementation GUI.  Second cycle implement file manipulation.  Third develop queries. 12/31/2016 21Abhimanyu Mishra(CSE) JETGI EVOLUTIONARY DEVELOPMENT MODEL:
  • 22.
    Outline Description Initial version Intermediate version Finalversion Specification Developmen t Validation Fig-Evolutionary Model 12/31/2016 22Abhimanyu Mishra(CSE) JETGI
  • 23.
    Advantage of EvolutionaryDevelopmet-  Early delivery of partial system.  Suitable for project using of new technology.  One time delivery of all functionality of complex project whose requirement are not clear at beginning and requirements are not stable. Disadvantage of Evolutionary Development-  Longer elapse time for project if the requirements gathering is done before each increment.  Difficulty in estimation of cost and schedule at start of project.  Time apparently gained on the front end of a project because early release may be lost later because of need for network resulting. 12/31/2016 23Abhimanyu Mishra(CSE) JETGI
  • 24.
    ITERATIVE ENHANCEMENT MODEL: •Iterative model is developed to overcome the draw back of water fall model. • It is a combination of benefits of water fall model and prototype model. Very popular i.e. used by industries. • In this model software is developed in increments each increments add some functional capability to the system until full system is developed. • It provide better testing after each increment is easy as compare to entire model testing of water fall model and prototype . • In this model partial product is developed on few easily understandable requirements of overall requirements. 12/31/2016 24Abhimanyu Mishra(CSE) JETGI
  • 25.