Software Engineering
Atamjit singh
Assistant Professor
BCA 4th semesterBCA Department Modern group of Colleges
Software
Software is
 A information transformer – Producing, managing,
acquiring, Modifying, displaying or transmitting
information that is simple/ complex which is
satisfies the users needs & makes the user world
better.
 A software is either a collection of programs
which will transfer the data from one place to
another
BCA Department Modern group of Colleges
Engineering
 It is systematic and technical approach which tells
you the methods to carry out the work.
 It can de defined as Applying something technical
method or algorithm in a systematic way.
BCA Department Modern group of Colleges
Software Engineering
 Software engineering is the establishment and use of
sound engineering principles (applying some software
methods) in order to obtain economically software that is
reliable(not working properly) and works efficiently on real
machines.
 Software engineering is a discipline that integrates
process methods and tools for the development of
computer system.
BCA Department Modern group of Colleges
Software Engineering Layers
 Process layer : It is glue that holds the technology layers
together and enables timely. In other way we can say the
technology we are using produce accurate result.
 Methods : Provides the technical (which platform) how-
to’s for building software. It is a set of basic principles
that govern each area of technology.
 Tools: Provides automated and semi automated support
for process and method e.g MS excel tool is used to
applying some formula’s.
BCA Department Modern group of Colleges
Software characters
 Software is developed or engineered, it is not
manufactured in the classical sense.
 Software does not wear out. (design and develop is
available every where it is product) car example
 Although industry is moving towards component based
assembling most software continues to be custom built.
BCA Department Modern group of Colleges
Software Application
 System software
 Real time software
 Business software
 Engineering and scientific software e.g CAD, CAM
 Embedded software
 Personal computer software
 Web based software
 Artificial intelligence software
BCA Department Modern group of Colleges
Software process model
what is software process model ?
 A process model describes the sequence of phases for the entire
lifetime of a product . Therefore it is sometimes also called product
life cycle. This covers everything from the initial commercial ideas
until the final DE installation or disassembling of the product after its
use
 Each process model follows a particular life cycle in order to ensure
success in process of software development.
 Three main phases
concept phase
implementation phase
maintenance phase
BCA Department Modern group of Colleges
Developing model
 Linear sequential model
 Waterfall model
 Prototyping
 Prototyping model
 Rapid application development RAD model
 Evolutionary software process
 Spiral model
BCA Department Modern group of Colleges
SDLC--Water fall model
 Water fall model was the first SDLC approach to be used
widely in SE to ensure the success of the project. The
water fall approaches the whole process of software
development is divided into separate phases.
 It is also referred to as a linear sequential life cycle
model.
 It is very simple to understand and use.
 Each phase is must be completed before the next phase
can begin and there is no overlapping in the phases.
BCA Department Modern group of Colleges
Software devolvement life cycle
 SDLC is step by process involved in the development of a
software product. The whole process is generally
classified into a set of steps and a specified into a set of
steps and specific operation will be carried out in each of
the steps.
 There is no reverse action in this model
BCA Department Modern group of Colleges
Phases of Waterfall model SDLC
 Planning
 Requirement Analysis
 Design
 Development/coding
 Testing
 Maintenance
BCA Department Modern group of Colleges
Planning
 To plan the total project and estimate the merits and demerits of the project
to the developed.
 It involves estimation your attempt to determine how much money, how much
effort how many resource and how much time it will take to build a specific
software based system or project.
BCA Department Modern group of Colleges
analysis
 To perform statistics and requirement gathering.
 To know the behavior of the system to be developed.
 To understand the specific requirement that must be achieved to build high
quality software.
BCA Department Modern group of Colleges
Design
 Design begins with the requirement of the customer as a model.
 It is a meaning engineering representation of something that is to be built.
 Something like you would not attempt to build a house without blueprints.
BCA Department Modern group of Colleges
Development
 The blue prints is transformed into actual coding by developing or writing
programs in some platform.
 That is translating into a machine readable form.
 Development includes– structure data, implementation , logic, processing and
produce desired output.
BCA Department Modern group of Colleges
testing
 The testing process focuses on bugs. Software testing is critical element in
development to uncover errors in it.
 It is referred as verification and validation.
verification – are we building the product right?
validation – are we building the right product?
BCA Department Modern group of Colleges
Maintenance
 Software is expected to undergo change in new environment.
 Support given after delivering the product to the customer in the original
environment.
 Maintenance is accommodating the changes in the software in the external
environment.
BCA Department Modern group of Colleges
PROTOTYPING MODEL
 The prototyping model begins with requirements
gathered.
 Developer and customer meet and define the overall
objectives for the software identity what ever
requirements are know, and a quick design occurs.
(when a customer is not clear or the costumer will know the area of problem but not in the position of
view how he wanted the output or how the result should be like or customer cannot explain the new
product he wants . So customer did not well wise. Customer did not know anything how product should
look like or how to get result in this type the costumer and developer need to be sit and discuss the
requirement gathering and they will discuss the problems now whats developers do he will create a
small program to show ) o
BCA Department Modern group of Colleges
Continues……
 The construction of this design is called a prototyping.
 The prototyping is evaluated by the customer & used to redefined
requirement for the software to be designed.
 Iteration occurs as the prototyping is tuned to satisfy the needs of the
customer.
BCA Department Modern group of Colleges
Rad Rapid application development
model
 It is incremental software development process model emphasis an extremely
short development cycle.
 The rad model is a high speed adaptation of the linear sequential model in
which rapid development is achieved by using component based
constructions.
 IF requirement are well understood and scope is defined the RAD model
develops the fully functional system in very short period.
BCA Department Modern group of Colleges
Rad Rapid application development
model
BCA Department Modern group of Colleges
Spiral Model
 Spiral model is an evolutionary version of incremental prototyping.
 Each iteration of the prototype representation as controlled and systematic
aspect in the cycle of spiral.
 The spiral software development model is risk oriented
 Spiral model software development model may be applicable to projects
where:
 The projects requirement are very difficult.
 Where new technologies are used.
BCA Department Modern group of Colleges
Evolutionary prototyping
 The objectives of evolution prototyping is to deliver a working system to end
users. The development starts with those requirements which are best
understood.
 An approach to system development where initial prototype is produced and
refined through a number of stages to the final system
BCA Department Modern group of Colleges
Spiral model
BCA Department Modern group of Colleges
4G techniques
BCA Department Modern group of Colleges
Fourth Generation Techniques
 4GT encompasses a broad array of software tools that have one thing in
common: each enables the software engineer to specify some characteristic
of software at a high level, then the tool automatically generates source code
based on the developer's specification.
 4GT paradigm focuses on the ability to specify software using specialized
language forms or a graphic notation that describes the problem to be solved
in terms that the customer can understand.
BCA Department Modern group of Colleges
Fourth Generation Techniques
 A software development environment that supports the 4GT paradigm
includes some or all of the following tools:
 nonprocedural languages for database query,
 report generation,
 data manipulation,
 screen interaction and definition,
 code generation;
 4GT tools have high-level graphics capability; spreadsheet capability, and
automated generation of HTML and similar languages used for Web-site
creation using advanced software tools.
BCA Department Modern group of Colleges
Fourth Generation Techniques
 4GT begins with a requirements gathering step.
 For small applications, it may be possible to move directly from the
requirements gathering step to implementation using a nonprocedural fourth
generation language (4GL) or a model composed of a network of graphical
icons.
 For larger efforts, it is necessary to develop a design strategy for the system,
even if a 4GL is to be used. The use of 4GT without design (for large projects)
will cause the difficulties (poor quality, poor maintainability, poor customer
acceptance)
BCA Department Modern group of Colleges
Fourth Generation Techniques
 To transform a 4GT implementation into a product, the developer must
 conduct thorough testing,
 develop meaningful documentation, and perform all
other solution integration activities
 The 4GT developed software must be built in a manner that enables
maintenance to be performed expeditiously.
BCA Department Modern group of Colleges
Concept of Software Project
Management
Software Project
 A Software Project is the complete procedure of software development from
requirement gathering to testing and maintenance, carried out according to
the execution methodologies, in a specified period of time to achieve
intended software product.
BCA Department Modern group of Colleges
Need of software project management
BCA Department Modern group of Colleges
Software Management Activities
Software project management comprises of a number of
activities, which contains planning of project, deciding scope
of software product, estimation of cost in various terms,
scheduling of tasks and events, and resource management.
Project management activities may include:
•Project Planning
•Scope Management
•Project Estimation
BCA Department Modern group of Colleges
Project planning
 Software project planning is task, which is performed
before the production of software actually starts. It is
there for the software production but involves no
concrete activity that has any direction connection with
software production; rather it is a set of multiple
processes, which facilitates software production.
BCA Department Modern group of Colleges
Project Scope management
It defines the scope of project; this includes all the activities, process need to
be done in order to make a deliverable software product. Scope management is
essential because it creates boundaries of the project by clearly defining what
would be done in the project and what would not be done. This makes project
to contain limited and quantifiable tasks, which can easily be documented and in
turn avoids cost and time overrun. During project scope management, it is
necessary to
 Define the scope
 Decide its verification and control
 Divide the project into various smaller parts for ease of management.
 Verify the scope
 Control the scope by incorporating changes to the scope
BCA Department Modern group of Colleges
Project Estimation
For an effective management accurate estimation of various measures is
a must. With correct estimation managers can manage and control the
project more efficiently and effectively.
Project estimation may involve the following:
• Software size estimation Software size may be estimated either in
terms of KLOC (Kilo Line of Code) or by calculating number of
function points in the software. Lines of code depend upon coding
practices and Function points vary according to the user or software
requirement.
BCA Department Modern group of Colleges
Effort estimation
 The managers estimate efforts in terms of personnel requirement
and man-hour required to produce the software. For effort estimation
software size should be known. This can either be derived by
managers’ experience, organization’s historical data or software size
can be converted into efforts by using some standard formulae.
BCA Department Modern group of Colleges
Time estimation
Once size and efforts are estimated, the time required to produce
the software can be estimated. Efforts required is segregated into
sub categories as per the requirement specifications and
interdependency of various components of software. Software tasks
are divided into smaller tasks, activities or events by Work
Breakthrough Structure (WBS). The tasks are scheduled on day-to-
day basis or in calendar months.
• The sum of time required to complete all tasks in hours or days is the
total time invested to complete the project.
BCA Department Modern group of Colleges
Cost estimation
This might be considered as the most
difficult of all because it depends on more elements than any of
the previous ones. For estimating project cost, it is required to consider
-
• Size of software
• Software quality
• Hardware
• Additional software or tools, licenses etc.
• Skilled personnel with task-specific skills
• Travel involved
• Communication
• Training and support
BCA Department Modern group of Colleges
Project Estimation Techniques
We discussed various parameters involving project estimation such as size,
effort, time and cost.
Decomposition Technique
This technique assumes the software as a product of various compositions.
There are two main models -
 Line of Code Estimation is done on behalf of number of line of codes in the
software product.
 Function Points Estimation is done on behalf of number of function points in
the software product.
BCA Department Modern group of Colleges
Empirical Estimation Technique
This technique uses empirically derived formulae to make estimation.
These formulae are based on LOC or FPs.
 COCOMOCOCOMO stands for COnstructive COst MOdel, developed by Barry W.
Boehm. It divides the software product into three categories of software:
organic, semi-detached and embedded.
BCA Department Modern group of Colleges
Project Risk Management
Risk management involves all activities pertaining to identification, analyzing
and making provision for predictable and non-predictable risks in the project.
Risk may include the following:
 Experienced staff leaving the project and new staff coming in.
 Change in organizational management.
 Requirement change or misinterpreting requirement.
 Under-estimation of required time and resources.
 Technological changes, environmental changes, business competition.
BCA Department Modern group of Colleges
Risk Management Process
There are following activities involved in risk management process:
 Identification - Make note of all possible risks, which may occur in the
project.
 Categorize - Categorize known risks into high, medium and low risk intensity
as per their possible impact on the project.
 Manage - Analyze the probability of occurrence of risks at various phases.
Make plan to avoid or face risks. Attempt to minimize their side-effects.
 Monitor - Closely monitor the potential risks and their early symptoms. Also
monitor the effects of steps taken to mitigate or avoid them.
BCA Department Modern group of Colleges

Software Engineering concept

  • 1.
    Software Engineering Atamjit singh AssistantProfessor BCA 4th semesterBCA Department Modern group of Colleges
  • 2.
    Software Software is  Ainformation transformer – Producing, managing, acquiring, Modifying, displaying or transmitting information that is simple/ complex which is satisfies the users needs & makes the user world better.  A software is either a collection of programs which will transfer the data from one place to another BCA Department Modern group of Colleges
  • 3.
    Engineering  It issystematic and technical approach which tells you the methods to carry out the work.  It can de defined as Applying something technical method or algorithm in a systematic way. BCA Department Modern group of Colleges
  • 4.
    Software Engineering  Softwareengineering is the establishment and use of sound engineering principles (applying some software methods) in order to obtain economically software that is reliable(not working properly) and works efficiently on real machines.  Software engineering is a discipline that integrates process methods and tools for the development of computer system. BCA Department Modern group of Colleges
  • 5.
    Software Engineering Layers Process layer : It is glue that holds the technology layers together and enables timely. In other way we can say the technology we are using produce accurate result.  Methods : Provides the technical (which platform) how- to’s for building software. It is a set of basic principles that govern each area of technology.  Tools: Provides automated and semi automated support for process and method e.g MS excel tool is used to applying some formula’s. BCA Department Modern group of Colleges
  • 6.
    Software characters  Softwareis developed or engineered, it is not manufactured in the classical sense.  Software does not wear out. (design and develop is available every where it is product) car example  Although industry is moving towards component based assembling most software continues to be custom built. BCA Department Modern group of Colleges
  • 7.
    Software Application  Systemsoftware  Real time software  Business software  Engineering and scientific software e.g CAD, CAM  Embedded software  Personal computer software  Web based software  Artificial intelligence software BCA Department Modern group of Colleges
  • 8.
    Software process model whatis software process model ?  A process model describes the sequence of phases for the entire lifetime of a product . Therefore it is sometimes also called product life cycle. This covers everything from the initial commercial ideas until the final DE installation or disassembling of the product after its use  Each process model follows a particular life cycle in order to ensure success in process of software development.  Three main phases concept phase implementation phase maintenance phase BCA Department Modern group of Colleges
  • 9.
    Developing model  Linearsequential model  Waterfall model  Prototyping  Prototyping model  Rapid application development RAD model  Evolutionary software process  Spiral model BCA Department Modern group of Colleges
  • 10.
    SDLC--Water fall model Water fall model was the first SDLC approach to be used widely in SE to ensure the success of the project. The water fall approaches the whole process of software development is divided into separate phases.  It is also referred to as a linear sequential life cycle model.  It is very simple to understand and use.  Each phase is must be completed before the next phase can begin and there is no overlapping in the phases. BCA Department Modern group of Colleges
  • 11.
    Software devolvement lifecycle  SDLC is step by process involved in the development of a software product. The whole process is generally classified into a set of steps and a specified into a set of steps and specific operation will be carried out in each of the steps.  There is no reverse action in this model BCA Department Modern group of Colleges
  • 12.
    Phases of Waterfallmodel SDLC  Planning  Requirement Analysis  Design  Development/coding  Testing  Maintenance BCA Department Modern group of Colleges
  • 13.
    Planning  To planthe total project and estimate the merits and demerits of the project to the developed.  It involves estimation your attempt to determine how much money, how much effort how many resource and how much time it will take to build a specific software based system or project. BCA Department Modern group of Colleges
  • 14.
    analysis  To performstatistics and requirement gathering.  To know the behavior of the system to be developed.  To understand the specific requirement that must be achieved to build high quality software. BCA Department Modern group of Colleges
  • 15.
    Design  Design beginswith the requirement of the customer as a model.  It is a meaning engineering representation of something that is to be built.  Something like you would not attempt to build a house without blueprints. BCA Department Modern group of Colleges
  • 16.
    Development  The blueprints is transformed into actual coding by developing or writing programs in some platform.  That is translating into a machine readable form.  Development includes– structure data, implementation , logic, processing and produce desired output. BCA Department Modern group of Colleges
  • 17.
    testing  The testingprocess focuses on bugs. Software testing is critical element in development to uncover errors in it.  It is referred as verification and validation. verification – are we building the product right? validation – are we building the right product? BCA Department Modern group of Colleges
  • 18.
    Maintenance  Software isexpected to undergo change in new environment.  Support given after delivering the product to the customer in the original environment.  Maintenance is accommodating the changes in the software in the external environment. BCA Department Modern group of Colleges
  • 19.
    PROTOTYPING MODEL  Theprototyping model begins with requirements gathered.  Developer and customer meet and define the overall objectives for the software identity what ever requirements are know, and a quick design occurs. (when a customer is not clear or the costumer will know the area of problem but not in the position of view how he wanted the output or how the result should be like or customer cannot explain the new product he wants . So customer did not well wise. Customer did not know anything how product should look like or how to get result in this type the costumer and developer need to be sit and discuss the requirement gathering and they will discuss the problems now whats developers do he will create a small program to show ) o BCA Department Modern group of Colleges
  • 20.
    Continues……  The constructionof this design is called a prototyping.  The prototyping is evaluated by the customer & used to redefined requirement for the software to be designed.  Iteration occurs as the prototyping is tuned to satisfy the needs of the customer. BCA Department Modern group of Colleges
  • 21.
    Rad Rapid applicationdevelopment model  It is incremental software development process model emphasis an extremely short development cycle.  The rad model is a high speed adaptation of the linear sequential model in which rapid development is achieved by using component based constructions.  IF requirement are well understood and scope is defined the RAD model develops the fully functional system in very short period. BCA Department Modern group of Colleges
  • 22.
    Rad Rapid applicationdevelopment model BCA Department Modern group of Colleges
  • 23.
    Spiral Model  Spiralmodel is an evolutionary version of incremental prototyping.  Each iteration of the prototype representation as controlled and systematic aspect in the cycle of spiral.  The spiral software development model is risk oriented  Spiral model software development model may be applicable to projects where:  The projects requirement are very difficult.  Where new technologies are used. BCA Department Modern group of Colleges
  • 24.
    Evolutionary prototyping  Theobjectives of evolution prototyping is to deliver a working system to end users. The development starts with those requirements which are best understood.  An approach to system development where initial prototype is produced and refined through a number of stages to the final system BCA Department Modern group of Colleges
  • 25.
    Spiral model BCA DepartmentModern group of Colleges
  • 26.
    4G techniques BCA DepartmentModern group of Colleges
  • 27.
    Fourth Generation Techniques 4GT encompasses a broad array of software tools that have one thing in common: each enables the software engineer to specify some characteristic of software at a high level, then the tool automatically generates source code based on the developer's specification.  4GT paradigm focuses on the ability to specify software using specialized language forms or a graphic notation that describes the problem to be solved in terms that the customer can understand. BCA Department Modern group of Colleges
  • 28.
    Fourth Generation Techniques A software development environment that supports the 4GT paradigm includes some or all of the following tools:  nonprocedural languages for database query,  report generation,  data manipulation,  screen interaction and definition,  code generation;  4GT tools have high-level graphics capability; spreadsheet capability, and automated generation of HTML and similar languages used for Web-site creation using advanced software tools. BCA Department Modern group of Colleges
  • 29.
    Fourth Generation Techniques 4GT begins with a requirements gathering step.  For small applications, it may be possible to move directly from the requirements gathering step to implementation using a nonprocedural fourth generation language (4GL) or a model composed of a network of graphical icons.  For larger efforts, it is necessary to develop a design strategy for the system, even if a 4GL is to be used. The use of 4GT without design (for large projects) will cause the difficulties (poor quality, poor maintainability, poor customer acceptance) BCA Department Modern group of Colleges
  • 30.
    Fourth Generation Techniques To transform a 4GT implementation into a product, the developer must  conduct thorough testing,  develop meaningful documentation, and perform all other solution integration activities  The 4GT developed software must be built in a manner that enables maintenance to be performed expeditiously. BCA Department Modern group of Colleges
  • 31.
    Concept of SoftwareProject Management Software Project  A Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product. BCA Department Modern group of Colleges
  • 32.
    Need of softwareproject management BCA Department Modern group of Colleges
  • 33.
    Software Management Activities Softwareproject management comprises of a number of activities, which contains planning of project, deciding scope of software product, estimation of cost in various terms, scheduling of tasks and events, and resource management. Project management activities may include: •Project Planning •Scope Management •Project Estimation BCA Department Modern group of Colleges
  • 34.
    Project planning  Softwareproject planning is task, which is performed before the production of software actually starts. It is there for the software production but involves no concrete activity that has any direction connection with software production; rather it is a set of multiple processes, which facilitates software production. BCA Department Modern group of Colleges
  • 35.
    Project Scope management Itdefines the scope of project; this includes all the activities, process need to be done in order to make a deliverable software product. Scope management is essential because it creates boundaries of the project by clearly defining what would be done in the project and what would not be done. This makes project to contain limited and quantifiable tasks, which can easily be documented and in turn avoids cost and time overrun. During project scope management, it is necessary to  Define the scope  Decide its verification and control  Divide the project into various smaller parts for ease of management.  Verify the scope  Control the scope by incorporating changes to the scope BCA Department Modern group of Colleges
  • 36.
    Project Estimation For aneffective management accurate estimation of various measures is a must. With correct estimation managers can manage and control the project more efficiently and effectively. Project estimation may involve the following: • Software size estimation Software size may be estimated either in terms of KLOC (Kilo Line of Code) or by calculating number of function points in the software. Lines of code depend upon coding practices and Function points vary according to the user or software requirement. BCA Department Modern group of Colleges
  • 37.
    Effort estimation  Themanagers estimate efforts in terms of personnel requirement and man-hour required to produce the software. For effort estimation software size should be known. This can either be derived by managers’ experience, organization’s historical data or software size can be converted into efforts by using some standard formulae. BCA Department Modern group of Colleges
  • 38.
    Time estimation Once sizeand efforts are estimated, the time required to produce the software can be estimated. Efforts required is segregated into sub categories as per the requirement specifications and interdependency of various components of software. Software tasks are divided into smaller tasks, activities or events by Work Breakthrough Structure (WBS). The tasks are scheduled on day-to- day basis or in calendar months. • The sum of time required to complete all tasks in hours or days is the total time invested to complete the project. BCA Department Modern group of Colleges
  • 39.
    Cost estimation This mightbe considered as the most difficult of all because it depends on more elements than any of the previous ones. For estimating project cost, it is required to consider - • Size of software • Software quality • Hardware • Additional software or tools, licenses etc. • Skilled personnel with task-specific skills • Travel involved • Communication • Training and support BCA Department Modern group of Colleges
  • 40.
    Project Estimation Techniques Wediscussed various parameters involving project estimation such as size, effort, time and cost. Decomposition Technique This technique assumes the software as a product of various compositions. There are two main models -  Line of Code Estimation is done on behalf of number of line of codes in the software product.  Function Points Estimation is done on behalf of number of function points in the software product. BCA Department Modern group of Colleges
  • 41.
    Empirical Estimation Technique Thistechnique uses empirically derived formulae to make estimation. These formulae are based on LOC or FPs.  COCOMOCOCOMO stands for COnstructive COst MOdel, developed by Barry W. Boehm. It divides the software product into three categories of software: organic, semi-detached and embedded. BCA Department Modern group of Colleges
  • 42.
    Project Risk Management Riskmanagement involves all activities pertaining to identification, analyzing and making provision for predictable and non-predictable risks in the project. Risk may include the following:  Experienced staff leaving the project and new staff coming in.  Change in organizational management.  Requirement change or misinterpreting requirement.  Under-estimation of required time and resources.  Technological changes, environmental changes, business competition. BCA Department Modern group of Colleges
  • 43.
    Risk Management Process Thereare following activities involved in risk management process:  Identification - Make note of all possible risks, which may occur in the project.  Categorize - Categorize known risks into high, medium and low risk intensity as per their possible impact on the project.  Manage - Analyze the probability of occurrence of risks at various phases. Make plan to avoid or face risks. Attempt to minimize their side-effects.  Monitor - Closely monitor the potential risks and their early symptoms. Also monitor the effects of steps taken to mitigate or avoid them. BCA Department Modern group of Colleges