KEMBAR78
Fundamentals of software development | PPTX
Fundamentals of Software
Development
 Name :-
 Enrollment No. :-
 Class :-
 Batch :-
Contents in this Project…
 What is SOFTWARE ?
 Characteristics of Software.
 Software Engineering
 Layer Approach
 Need of Software engineering
 Software Development Models / Life Cycle Models
 Classical Waterfall model
 Iterative Waterfall model
 Prototyping model
 Spiral model
 RAD model
Software
 What is software ?
 Software is “ Collection of computer programs
,procedures ,rules ,associated documents and
concerned data with the operation of data processing
system.
 Software is Divided into :
 1. System Software
 Ex : Operating System
 2.Application Software
 Microsoft Word ,VLC , AutoCAD
CharacteristicOf Software
 Understandability:-software should be easy to
understand.
 Cost:-software should be cost effective as per its usage.
 Maintainability:-software should be easily maintainable
and modifiable in future.
 Modularity:-software should have modular approach so
it can be handled easily for testing.
 Reliability:-it should have the capability to provide
failure free services.
 Portability:-software should have the capability to be adapted
for different environments.
 Documentation:-software should be properly documented so that
we can re-refer it in future.
 Reusability:-it should be reusable, or its code or logic should be
reusable in future.
 Interoperability:- software should be able to communicate with
various devices using standard bus structure and protocol.
SoftwareEngineering
 Software Engineering is the application of a systematic,
disciplined and quantifiable approach to the
development, operation and
maintenance of software.
 Software Engineering provide framework that guides the
software
engineers to develop the software.
 Software Engineering tells how software will work with
machines.
Softwareengineering - A Layered Approach
 As We can see there are
Main four Layers in this
Layered approach.
 1. A quality focus
 2. Process
 3. Methods
 4. Tools A Quality
Focus
Process
Method
Tools
1. A QualityFocus Layer
 Software engineering mainly focuses on quality product.
 It checks whether the output meets with its
requirement specifications
or not.
 Every organization should maintain its total quality
management.
 This layer supports software-engineering.
2. Process Layer
 It is the heart of software engineering.
 It is also working as foundation layer.
 Software process is a set of activities together if
ordered and performed
properly, the desired result would be produced.
 It defines framework activities.
 Main objective of this layer is to deliver software in
time.
3. Methods 4. Tools
 It describes 'how-to‘
build software product.
 It creates software
engineering environment
to software product
using
CASE tools.
 (CASE tools combines
software, hardware and
software engineering
database).
O It provides
supports to below
layers.
O Due to this layer ,
process is
executed in proper
manner.
Need of software engineering
 To help developers to obtains high quality product.
 To develop the product in appropriate manner using life
cycle models.
 To acquire skills to be a better programmer.
 To provide a software product in a timely manner.
 To provide a quality software product.
 To provide a software product at an agreed cost.
 To develop ability to solve complex programming
problems.
SoftwareLife cycle models
 Different software life cycle models are given below.
1. Classical waterfall model
2. Iterative waterfall model
3. Prototyping model
4. Spiral model
5. RAD model
1. Classical waterfall model
Feasibility study
Requirement analysis &
specification
Design
Coding & testing Unit
Integration & system
testing
Maintenances
Development Phase
 This model was originally proposed by royce(1970).
 It is also called ‘traditional waterfall model’ or
‘conventional waterfall model’
 This model breakdown the life cycle into set of phases like:
 *)feasibility study
 *)requirements analysis and specification
 *)design
 *)Coding and unit testing
 *)integration and system testing
 *)maintenance
1.feasibility study
 Aim of this phase is to determine whether the system
would be financially and
technically feasible to develop the product.
 This is an abstract definition of the system.
 It includes the analysis of the problem definition and
collectionn of relevant info
of input, processing and output data.
 · Collected data are analysed for :
 An abstract definition
 Formulation of different solutions.
 Analysis of alternative solutions.
 and acceptance within the organization.
2. Requirements analysis andspecification
 Aim of this phase is to understand the exact requirements
of the
customer and to document them properly.
 Also reduces communication gap between developers and
customers.
 Two different activities are performed during this phase
1. Requirements gathering and analysis
2. Requirements specification
 Requirement gathering: The goal of this activity is to
collect all
relevant information from the customer regarding the
product to be
developed.
· This is done to clearly understand the customer
requirements so that
incompleteness and inconsistencies are removed
3. Design
 The goal of the design phase is to transform the
requirements specified
in the SRS document into a structure that is suitable for
implementation
in some programming language.
 This phase affecting the quality of the product.
 Two main approaches are concerned with this phase.
 (1) Traditional Design Approach
 Structural Analysis
 Stuctural Design
 (2) Object Oriented Design Approach
4. Coding & Testing
 The goal of the design phase is to transform the
requirements specified
in the SRS document into a structure that is suitable for
implementation
in some programming language.
 This phase affecting the quality of the product.
 Two main approaches are concerned with this phase.
 (1) Traditional Design Approach
 Structural Analysis
 Stuctural Design
 (2) Object Oriented Design Approach
5. Integration and system testing
 Goal of this phase is :- to ensure that the developed system works
well
to its requirements described in the SRS document.
 Basic function of testing is to detect errors. Ss it is also called
quality
control measure.
 Testing procedure is carried out using test data: Program test and
System test. Program is done on test data and system test is done
actual
data.
 It consists of three different kinds of testing activities.
 α Testing
 ß Testing
 Acceptance testing
6. Maintenance
 It requires max efforts to develop s/w product.
 This phase is needed to keep system operational.
 Generally maintenance is needed due to change in the environment
or
the requirement of the system.
 Maintenance involves performing following three kinds of
activities .
 Corrective maintenance - Correcting errors that were not
discovered
during the product development phase.
 Perfective maintenance - Improving and enhancing the
functionalities
of the system according to the customer's requirements.
 Adaptive maintenance - Porting the software to work in a new
environment and ensure working.
2. Iterative waterfall model
Feasibility study
Requirement
analysis &
specification
Design
Coding & testing
Unit
Integration &
system testing
Maintenances
Iterative waterfallmodel
 Iterative waterfall model is by far the most widely used
model. Almost
every other model is derived from the waterfall model.
 The principle of detecting errors as close to its point of
introduction as
Possible-is known as phase containment of errors.
 Phase containment of errors can be achieved by
reviewing after every
milestone.
Incremental model
C
B
A
B
A A
Incremental model
 It is also referred as the successive version of waterfall
model using
incremental approach and evolutionary model.
 In this model, the system is broken down into sseveral
modules which
can be incremented implemented and delivered.
 First develop the core product of the system. The core
product is used
by customers to evaluate the system.
 The initial product skeleton is refined into increasing levels
of
capability by adding new functionalities in successive
versions
RAD Model
Testing &
Turnover
Applicatio
n
modelAing
Process
Amodeling
Data
Amodeling
Business
modelAing
RAD Model
 Business modelling: The information flow is identified
between various business functions.
 Data modelling: Information gathered from business
modeling is used to define data objects that are needed
for the business.
 Process modelling: Data objects defined in data
modelling are converted to achieve the business
information flow to achieve some specific business
objective. Description are identified and created for
CRUD of data objects.
 Application generation: Automated tools are used to
convert process models into code and the actual system.
 Testing and turnover: Test new components and all the
interfaces
Prototyping Model
Quick
Design
Build
Prototype
Customer
Evaluation
of
prototype
Refine
Requirem
ents Design
Implement
Test
Maintenance
Requirement
gathering
Prototyping Model
 Prototype is a working physical system or sub system.
Prototype is nothing but
a toy implementation of a system.
 In this model, before starting actual development, a
working prototype of the
system should first be built.
 A prototype is actually a partial developed product.
 Compared to the actual software, a prototype usually
have
· limited functional capabilities
· low reliability
· inefficient performance
When to use RAD model:
 Prototype model should be used when the desired
system needs to have a lot of interaction with the end
users.
 Typically, online systems, web interfaces have a very
high amount of interaction with end users, are best
suited for Prototype model. It might take a while for a
system to be built that allows ease of use and needs
minimal training for the end user.
 Prototyping ensures that the end users constantly work
with the system and provide a feedback which is
incorporated in the prototype to result in a useable
system. They are excellent for designing good human
computer interface systems.
Spiral Model
Spiral Model
 1. To determine the objectives, alternatives and
constraints. We try to understand the product objectives,
alternatives in design and constraints imposed because of
cost, technology, schedule, etc.
2. Risk analysis and evaluation of alternatives. Here we try
to find which other approaches can be implemented in order
to fulfill the identified constraints. Operational and
technical issues are addressed here. Risk mitigation is in
focus in this phase. And evaluation of all these factors
determines future action.
3. Execution of that phase of development. In this phase
we develop the planned product. Testing is also done. In
order to do development, waterfall or incremental approach
can be implemented.
4. Planning the next phase. Here we review the progress
and judge it considering all parameters. Issues which need
to be resolved are identified in this phase and necessary
steps are taken.
Fundamentals of software development

Fundamentals of software development

  • 1.
    Fundamentals of Software Development Name :-  Enrollment No. :-  Class :-  Batch :-
  • 2.
    Contents in thisProject…  What is SOFTWARE ?  Characteristics of Software.  Software Engineering  Layer Approach  Need of Software engineering  Software Development Models / Life Cycle Models  Classical Waterfall model  Iterative Waterfall model  Prototyping model  Spiral model  RAD model
  • 3.
    Software  What issoftware ?  Software is “ Collection of computer programs ,procedures ,rules ,associated documents and concerned data with the operation of data processing system.  Software is Divided into :  1. System Software  Ex : Operating System  2.Application Software  Microsoft Word ,VLC , AutoCAD
  • 4.
    CharacteristicOf Software  Understandability:-softwareshould be easy to understand.  Cost:-software should be cost effective as per its usage.  Maintainability:-software should be easily maintainable and modifiable in future.  Modularity:-software should have modular approach so it can be handled easily for testing.  Reliability:-it should have the capability to provide failure free services.
  • 5.
     Portability:-software shouldhave the capability to be adapted for different environments.  Documentation:-software should be properly documented so that we can re-refer it in future.  Reusability:-it should be reusable, or its code or logic should be reusable in future.  Interoperability:- software should be able to communicate with various devices using standard bus structure and protocol.
  • 6.
    SoftwareEngineering  Software Engineeringis the application of a systematic, disciplined and quantifiable approach to the development, operation and maintenance of software.  Software Engineering provide framework that guides the software engineers to develop the software.  Software Engineering tells how software will work with machines.
  • 7.
    Softwareengineering - ALayered Approach  As We can see there are Main four Layers in this Layered approach.  1. A quality focus  2. Process  3. Methods  4. Tools A Quality Focus Process Method Tools
  • 8.
    1. A QualityFocusLayer  Software engineering mainly focuses on quality product.  It checks whether the output meets with its requirement specifications or not.  Every organization should maintain its total quality management.  This layer supports software-engineering.
  • 9.
    2. Process Layer It is the heart of software engineering.  It is also working as foundation layer.  Software process is a set of activities together if ordered and performed properly, the desired result would be produced.  It defines framework activities.  Main objective of this layer is to deliver software in time.
  • 10.
    3. Methods 4.Tools  It describes 'how-to‘ build software product.  It creates software engineering environment to software product using CASE tools.  (CASE tools combines software, hardware and software engineering database). O It provides supports to below layers. O Due to this layer , process is executed in proper manner.
  • 11.
    Need of softwareengineering  To help developers to obtains high quality product.  To develop the product in appropriate manner using life cycle models.  To acquire skills to be a better programmer.  To provide a software product in a timely manner.  To provide a quality software product.  To provide a software product at an agreed cost.  To develop ability to solve complex programming problems.
  • 12.
    SoftwareLife cycle models Different software life cycle models are given below. 1. Classical waterfall model 2. Iterative waterfall model 3. Prototyping model 4. Spiral model 5. RAD model
  • 13.
    1. Classical waterfallmodel Feasibility study Requirement analysis & specification Design Coding & testing Unit Integration & system testing Maintenances Development Phase
  • 14.
     This modelwas originally proposed by royce(1970).  It is also called ‘traditional waterfall model’ or ‘conventional waterfall model’  This model breakdown the life cycle into set of phases like:  *)feasibility study  *)requirements analysis and specification  *)design  *)Coding and unit testing  *)integration and system testing  *)maintenance
  • 15.
    1.feasibility study  Aimof this phase is to determine whether the system would be financially and technically feasible to develop the product.  This is an abstract definition of the system.  It includes the analysis of the problem definition and collectionn of relevant info of input, processing and output data.  · Collected data are analysed for :  An abstract definition  Formulation of different solutions.  Analysis of alternative solutions.  and acceptance within the organization.
  • 16.
    2. Requirements analysisandspecification  Aim of this phase is to understand the exact requirements of the customer and to document them properly.  Also reduces communication gap between developers and customers.  Two different activities are performed during this phase 1. Requirements gathering and analysis 2. Requirements specification  Requirement gathering: The goal of this activity is to collect all relevant information from the customer regarding the product to be developed. · This is done to clearly understand the customer requirements so that incompleteness and inconsistencies are removed
  • 17.
    3. Design  Thegoal of the design phase is to transform the requirements specified in the SRS document into a structure that is suitable for implementation in some programming language.  This phase affecting the quality of the product.  Two main approaches are concerned with this phase.  (1) Traditional Design Approach  Structural Analysis  Stuctural Design  (2) Object Oriented Design Approach
  • 18.
    4. Coding &Testing  The goal of the design phase is to transform the requirements specified in the SRS document into a structure that is suitable for implementation in some programming language.  This phase affecting the quality of the product.  Two main approaches are concerned with this phase.  (1) Traditional Design Approach  Structural Analysis  Stuctural Design  (2) Object Oriented Design Approach
  • 19.
    5. Integration andsystem testing  Goal of this phase is :- to ensure that the developed system works well to its requirements described in the SRS document.  Basic function of testing is to detect errors. Ss it is also called quality control measure.  Testing procedure is carried out using test data: Program test and System test. Program is done on test data and system test is done actual data.  It consists of three different kinds of testing activities.  α Testing  ß Testing  Acceptance testing
  • 20.
    6. Maintenance  Itrequires max efforts to develop s/w product.  This phase is needed to keep system operational.  Generally maintenance is needed due to change in the environment or the requirement of the system.  Maintenance involves performing following three kinds of activities .  Corrective maintenance - Correcting errors that were not discovered during the product development phase.  Perfective maintenance - Improving and enhancing the functionalities of the system according to the customer's requirements.  Adaptive maintenance - Porting the software to work in a new environment and ensure working.
  • 21.
    2. Iterative waterfallmodel Feasibility study Requirement analysis & specification Design Coding & testing Unit Integration & system testing Maintenances
  • 22.
    Iterative waterfallmodel  Iterativewaterfall model is by far the most widely used model. Almost every other model is derived from the waterfall model.  The principle of detecting errors as close to its point of introduction as Possible-is known as phase containment of errors.  Phase containment of errors can be achieved by reviewing after every milestone.
  • 23.
  • 24.
    Incremental model  Itis also referred as the successive version of waterfall model using incremental approach and evolutionary model.  In this model, the system is broken down into sseveral modules which can be incremented implemented and delivered.  First develop the core product of the system. The core product is used by customers to evaluate the system.  The initial product skeleton is refined into increasing levels of capability by adding new functionalities in successive versions
  • 25.
  • 26.
    RAD Model  Businessmodelling: The information flow is identified between various business functions.  Data modelling: Information gathered from business modeling is used to define data objects that are needed for the business.  Process modelling: Data objects defined in data modelling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.  Application generation: Automated tools are used to convert process models into code and the actual system.  Testing and turnover: Test new components and all the interfaces
  • 27.
  • 28.
    Prototyping Model  Prototypeis a working physical system or sub system. Prototype is nothing but a toy implementation of a system.  In this model, before starting actual development, a working prototype of the system should first be built.  A prototype is actually a partial developed product.  Compared to the actual software, a prototype usually have · limited functional capabilities · low reliability · inefficient performance
  • 29.
    When to useRAD model:  Prototype model should be used when the desired system needs to have a lot of interaction with the end users.  Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model. It might take a while for a system to be built that allows ease of use and needs minimal training for the end user.  Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. They are excellent for designing good human computer interface systems.
  • 30.
  • 31.
    Spiral Model  1.To determine the objectives, alternatives and constraints. We try to understand the product objectives, alternatives in design and constraints imposed because of cost, technology, schedule, etc. 2. Risk analysis and evaluation of alternatives. Here we try to find which other approaches can be implemented in order to fulfill the identified constraints. Operational and technical issues are addressed here. Risk mitigation is in focus in this phase. And evaluation of all these factors determines future action. 3. Execution of that phase of development. In this phase we develop the planned product. Testing is also done. In order to do development, waterfall or incremental approach can be implemented. 4. Planning the next phase. Here we review the progress and judge it considering all parameters. Issues which need to be resolved are identified in this phase and necessary steps are taken.