SlideShare a Scribd company logo
1 of 38
Download to read offline
Software Engineering (KCS-601)
Unit-1: Introduction To Software Engineering
Dr. Radhey Shyam
Professor
Department of Computer Science and Engineering
SRMCEM Lucknow
(Affiliated to Dr. A.P.J. Abdul Kalam Technical University, Lucknow)
Unit-1 have been compiled/prepared by Dr. Radhey Shyam, with grateful acknowledgment who made their
course contents freely available or (Contributed directly or indirectly). Feel free to use this study material
for your own academic purposes. For any query, the communication can be made through my mail
shyam0058@gmail.com.
March 14, 2022
chaYniliglies
a a unduitanking sl
Lwtatto
a Chavnblihi
ieemt *
buile
examine
a t malke u
(analysi
desig, Constnmalio testi)olkmA
eA thines -hat umam
Hi built, the Runan
Cretiua peë
tocnlt t a phyical om.
S a logical h a t tha a s
Aas
Candtirinlie Hat ase Conidrablr d4E*
a tiote o
1 s deneleped r emeineeres m s
manuaiuned wa lasic!
Cne.
. s doesn t wa o
3. A m he mdutm
Meuing ownd ombenat
base asembY mat Ha
Ceati me be eusa bulk
Tm
Swae o
(T) mstoneions
ClompiTan prriame) ~hatute
eea4 poonida deirrd unelEB
and pemmanes,(a) data stnains
haF emabla the pooiram t,
chang
A u a l
Cu
a l , andA documen5tat
Resesbea oprt amd ute
o Tams. Tim
Software Crisis:
It is a term used in computer science for the difficulty of writing useful and efficient
computer programs in the required time. Software crisis was due to using same workforce,
same methods, same tools even though rapidly increasing in software demand, complexity
of software and software challenges. With increase in the complexity of software, many
software problems arise because existing methods were insufficient.
If we will use same workforce, same methods and same tools after fast increasing in
software demand, software complexity and software challenges, then there arise some
problems like software budget problem, software efficiency problem, software quality
problem, software managing and delivering problem etc. This condition is called software
crisis.
Causes of Software Crisis:
•The cost of owning and maintaining software was as expensive as developing the
software
•At that time Projects was running over-time
•At that time Software was very inefficient
•The quality of software was low quality
•Software often did not meet requirements
•The average software project overshoots its schedule by half
•At that time Software was never delivered
Solution of Software Crisis:
There is no single solution to the crisis.one possible solution of software crisis is Software
Engineering because software engineering is a systematic, disciplined and quantifiable
approach. For preventing software crisis, there are some guidelines:
•Reduction in software over-budget
•The quality of software must be high
•Less time needed for software project
•Experience working team member on software project
•Software must be delivered
Similarity and Differences from Conventional Engineering Process:
1.Software Engineering Process :
It is a engineering process which is mainly related to computers and programming and
developing different kinds of applications through the use of information technology.
2. Conventional Engineering Process :
It is a engineering process which is highly based on empirical knowledge and is about
building cars, machines and hardware.
Difference between Software Engineering Process and Conventional Engineering Process :
S.No. Software Engineering Process Conventional Engineering Process
1.
Software Engineering Process is a
process which majorly involves computer
science, information technology and
discrete mathematics.
Conventional Engineering Process is a
process which majorly involves science,
mathematics and empirical knowledge.
2.
It is mainly related with computers,
programming and writing codes for
building applications.
It is about building cars, machines,
hardware, buildings etc.
3.
In Software Engineering Process
construction and development cost is low.
In Conventional Engineering Process
construction and development cost is
high.
4.
It can involve the application of new and
untested elements in software projects.
It usually applies only known and tested
principles to meet product requirements.
5.
In Software Engineering Process, most
development effort goes into building new
designs and features.
In Conventional Engineering Process,
most development efforts are required
to change old designs.
6. It majorly emphasize on quality.
It majorly emphasize on mass
production.
References
1. Roger S. Pressman, Software Engineering a Practitioner Approach, 3rd
Edition, TMH, 2005.
2. Rajib Mall, Fundamantal of Software Engineering, 3rd
Edition,PHI Publication, 2007.
3. Deepak Jain, Software Engineering for Practitioners, Ist
Edition, Oxford, 2012.
4. K K Agarwal and Yogesh Singh, Software Engineering, 3rd
Edition,Oxford, 2012.
21
Appendix-1:
Software Engineering | Waterfall Model
Classical waterfall model is the basic software development life cycle model. It is
very simple but idealistic. Earlier this model was very popular but nowadays it is not
used. But it is very important because all the other software development life cycle
models are based on the classical waterfall model.
Classical waterfall model divides the life cycle into a set of phases. This model
considers that one phase can be started after completion of the previous phase. That
is the output of one phase will be the input to the next phase. Thus the development
process can be considered as a sequential flow in the waterfall. Here the phases do
not overlap with each other. The different sequential phases of the classical waterfall
model are shown in the below figure:
Let us now learn about each of these phases in brief details:
1 Feasibility Study: The main goal of this phase is to determine whether it
would be financially and technically feasible to develop the software.
The feasibility study involves understanding the problem and then determine
the various possible strategies to solve the problem. These different
identified solutions are analyzed based on their benefits and drawbacks,
The best solution is chosen and all the other phases are carried out as per
this solution strategy.
2 Requirements analysis and specification: The aim of the requirement
analysis and specification phase is to understand the exact requirements of
the customer and document them properly. This phase consists of two
different activities.
 Requirement gathering and analysis: Firstly all the
requirements regarding the software are gathered from the
customer and then the gathered requirements are analyzed. The
goal of the analysis part is to remove incompleteness (an
incomplete requirement is one in which some parts of the actual
requirements have been omitted) and inconsistencies
(inconsistent requirement is one in which some part of the
requirement contradicts with some other part).
 Requirement specification: These analyzed requirements are
documented in a software requirement specification (SRS)
document. SRS document serves as a contract between
development team and customers. Any future dispute between the
customers and the developers can be settled by examining the
SRS document.
3 Design: The aim 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.
4 Coding and Unit testing: In coding phase software design is translated into
source code using any suitable programming language. Thus each designed
module is coded. The aim of the unit testing phase is to check whether each
module is working properly or not.
5 Integration and System testing: Integration of different modules are
undertaken soon after they have been coded and unit tested. Integration of
various modules is carried out incrementally over a number of steps. During
each integration step, previously planned modules are added to the partially
integrated system and the resultant system is tested. Finally, after all the
modules have been successfully integrated and tested, the full working
system is obtained and system testing is carried out on this.
System testing consists three different kinds of testing activities as
described below :
 Alpha testing: Alpha testing is the system testing performed by
the development team.
 Beta testing: Beta testing is the system testing performed by a
friendly set of customers.
 Acceptance testing: After the software has been delivered, the
customer performed the acceptance testing to determine whether
to accept the delivered software or to reject it.
6 Maintainence: Maintenance is the most important phase of a software life
cycle. The effort spent on maintenance is the 60% of the total effort spent to
develop a full software. There are basically three types of maintenance :
 Corrective Maintenance: This type of maintenance is carried out
to correct errors that were not discovered during the product
development phase.
 Perfective Maintenance: This type of maintenance is carried out
to enhance the functionalities of the system based on the
customer’s request.
 Adaptive Maintenance: Adaptive maintenance is usually required
for porting the software to work in a new environment such as
work on a new computer platform or with a new operating system.
Advantages of Classical Waterfall Model
Classical waterfall model is an idealistic model for software development. It is very
simple, so it can be considered as the basis for other software development life cycle
models. Below are some of the major advantages of this SDLC model:
 This model is very simple and is easy to understand.
 Phases in this model are processed one at a time.
 Each stage in the model is clearly defined.
 This model has very clear and well understood milestones.
 Process, actions and results are very well documented.
 Reinforces good habits: define-before- design, design-before-code.
 This model works well for smaller projects and projects where requirements
are well understood.
Drawbacks of Classical Waterfall Model
Classical waterfall model suffers from various shortcomings, basically we can’t use it
in real projects, but we use other software development life cycle models which are
based on the classical waterfall model. Below are some major drawbacks of this
model:
 No feedback path: In classical waterfall model evolution of a software from
one phase to another phase is like a waterfall. It assumes that no error is
ever committed by developers during any phases. Therefore, it does not
incorporate any mechanism for error correction.
 Difficult to accommodate change requests: This model assumes that all
the customer requirements can be completely and correctly defined at the
beginning of the project, but actually customers’ requirements keep on
changing with time. It is difficult to accommodate any change requests after
the requirements specification phase is complete.
 No overlapping of phases: This model recommends that new phase can
start only after the completion of the previous phase. But in real projects,
this can’t be maintained. To increase the efficiency and reduce the cost,
phases may overlap.
Software Engineering | Iterative Waterfall Model
In a practical software development project, the classical waterfall model is hard to use.
So, Iterative waterfall model can be thought of as incorporating the necessary changes
to the classical waterfall model to make it usable in practical software development
projects. It is almost same as the classical waterfall model except some changes are
made to increase the efficiency of the software development.
The iterative waterfall model provides feedback paths from every phase to its
preceding phases, which is the main difference from the classical waterfall
model.
Feedback paths introduced by the iterative waterfall model are shown in the figure
below.
When errors are detected at some later phase, these feedback paths allow correcting
errors committed by programmers during some phase. The feedback paths allow the
phase to be reworked in which errors are committed and these changes are reflected in
the later phases. But, there is no feedback path to the stage – feasibility study, because
once a project has been taken, does not give up the project easily.
It is good to detect errors in the same phase in which they are committed. It reduces the
effort and time required to correct the errors.
Phase Containment of Errors:The principle of detecting errors as close to their points
of commitment as possible is known as Phase containment of errors.
Advantages of Iterative Waterfall Model
 Feedback Path: In the classical waterfall model, there are no feedback
paths, so there is no mechanism for error correction. But in iterative waterfall
model feedback path from one phase to its preceding phase allows correcting
the errors that are committed and these changes are reflected in the later
phases.
 Simple: Iterative waterfall model is very simple to understand and use. That’s
why it is one of the most widely used software development models.
Drawbacks of Iterative Waterfall Model
 Difficult to incorporate change requests: The major drawback of the
iterative waterfall model is that all the requirements must be clearly stated
before starting of the development phase. Customer may change
requirements after some time but the iterative waterfall model does not leave
any scope to incorporate change requests that are made after development
phase starts.
 Incremental delivery not supported: In the iterative waterfall model, the full
software is completely developed and tested before delivery to the customer.
There is no scope for any intermediate delivery. So, customers have to wait
long for getting the software.
 Overlapping of phases not supported: Iterative waterfall model assumes
that one phase can start after completion of the previous phase, But in real
projects, phases may overlap to reduce the effort and time needed to
complete the project.
 Risk handling not supported: Projects may suffer from various types of
risks. But, Iterative waterfall model has no mechanism for risk handling.
 Limited customer interactions: Customer interaction occurs at the start of
the project at the time of requirement gathering and at project completion at
the time of software delivery. These fewer interactions with the customers
may lead to many problems as the finally developed software may differ from
the customers’ actual requirements.
Appendix-2:
Spiral Mode
It is one of the most important Software Development Life Cycle models, which provides
support for Risk Handling. In its diagrammatic representation, it looks like a spiral with
many loops. The exact number of loops of the spiral is unknown and can vary from
project to project. Each loop of the spiral is called a Phase of the software
development process. The exact number of phases needed to develop the product
can be varied by the project manager depending upon the project risks. As the project
manager dynamically determines the number of phases, so the project manager has an
important role to develop a product using the spiral model.
The Radius of the spiral at any point represents the expenses(cost) of the project so far,
and the angular dimension represents the progress made so far in the current phase.
The below diagram shows the different phases of the Spiral Model: –
Each phase of the Spiral Model is divided into four quadrants as shown in the above
figure. The functions of these four quadrants are discussed below-
1. Objectives determination and identify alternative solutions:
Requirements are gathered from the customers and the objectives are
identified, elaborated, and analyzed at the start of every phase. Then
alternative solutions possible for the phase are proposed in this quadrant.
2. Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using the
best possible strategy. At the end of this quadrant, the Prototype is built for the
best possible solution.
3. Develop next version of the Product:During the third quadrant, the identified
features are developed and verified through testing. At the end of the third
quadrant, the next version of the software is available.
4. Review and plan for the next Phase: In the fourth quadrant, the Customers
evaluate the so far developed version of the software. In the end, planning for
the next phase is started.
Risk Handling in Spiral Model
A risk is any adverse situation that might affect the successful completion of a software
project. The most important feature of the spiral model is handling these unknown risks
after the project has started. Such risk resolutions are easier done by developing a
prototype. The spiral model supports coping up with risks by providing the scope to
build a prototype at every phase of the software development. The prototype model also
supports risk handling, but the risks must be identified completely before the start of the
development work of the project. But in real life project risk may occur after the
development work starts, in that case, we cannot use the Prototyping Model. In each
phase of the Spiral Model, the features of the product dated and analyzed, and the risks
at that point in time are identified and are resolved through prototyping. Thus, this model
is much more flexible compared to other SDLC models.
Why Spiral Model is called Meta Model?
The Spiral model is called a Meta-Model because it subsumes all the other SDLC
models. For example, a single loop spiral actually represents the iterative water model.
The spiral model incorporates the stepwise approach of the classical waterfall model.
The spiral model uses the approach of the Prototyping Model by building a prototype
at the start of each phase as a risk-handling technique. Also, the spiral model can be
considered as supporting the evolutionary model – the iterations along the spiral can be
considered as evolutionary levels through which the complete system is built.
Advantages of Spiral Model:
Below are some advantages of the Spiral Model.
1. Risk Handling: The projects with many unknown risks that occur as the
development proceeds, in that case, Spiral Model is the best development
model to follow due to the risk analysis and risk handling at every phase.
2. Good for large projects:It is recommended to use the Spiral Model in large
and complex projects.
3. Flexibility in Requirements: Change requests in the Requirements at later
phase can be incorporated accurately by using this model.
4. Customer Satisfaction: Customer can see the development of the product
at the early phase of the software development and thus, they habituated with
the system by using it before completion of the total product.
Disadvantages of Spiral Model:
Below are some main disadvantages of the spiral model.
1. Complex: The Spiral Model is much more complex than other SDLC models.
2. Expensive:Spiral Model is not suitable for small projects as it is expensive.
3. Too much dependability on Risk Analysis: The successful completion of
the project is very much dependent on Risk Analysis. Without very highly
experienced experts, it is going to be a failure to develop a project using this
model.
4. Difficulty in time management: As the number of phases is unknown at the
start of the project, so time estimation is very difficult.
Appendix – 3: Prototype Model
The Prototyping model is also a popular software development life cycle model. The
prototyping model can be considered to be an extension of the Iterative Waterfall model.
This model suggests building a working Prototype of the system, before the development
of the actual software. A prototype is a toy and crude implementation of a system. It has
limited functional capabilities, low reliability, or inefficient performance as compared to the
actual software. A prototype can be built very quickly by using several shortcuts by
developing inefficient, inaccurate or dummy functions.
Necessity of the Prototyping Model –
• It is advantageous to develop the Graphical User Interface (GUI) part of a software
using the Prototyping Model. Through prototype, the user can experiment with a
working user interface and they can suggest any change if needed.
• The prototyping model is especially useful when the exact technical solutions are
unclear to the development team. A prototype can help them to critically examine the
technical issues associated with the product development. The lack of familiarity with a
required development technology is a technical risk. This can be resolved by
developing a prototype to understand the issues and accommodate the changes in the
next iteration.
Phases of Prototyping Model –
The Prototyping Model of software development is graphically shown in the figure below.
The software is developed through two major activities – one is prototype construction and
another is iterative waterfall based software development.
Prototype Development – Prototype development starts with an initial requirements
gathering phase. A quick design is carried out and a prototype is built. The developed
prototype is submitted to the customer for evaluation. Based on the customer feedback,
the requirements are refined and the prototype is suitably modified. This cycle of obtaining
customer feedback and modifying the prototype continues till the customer approves the
prototype.
Iterative Development –Once the customer approves the prototype, the actual software is
developed using the iterative waterfall approach. In spite of the availability of a working
prototype, the SRS document is usually needed to be developed since the SRS Document
is invaluable for carrying out tractability analysis, verification and test case design during
later phases.
The code for the prototype is usually thrown away. However, the experience gathered from
developing the prototype helps a great deal in developing the actual software. By
constructing the prototype and submitting it for user evaluation, many customer
requirements get properly defined and technical issues get resolved by experimenting with
the prototype. This minimises later change requests from the customer and the associated
redesign costs.
Advantages of Prototyping Model –This model is most appropriate for the projects that
suffer from technical and requirements risks. A constructed prototype helps to overcome
these risks.
Disadvantages of Prototyping Model –
• Cost of the development of the software by using prototyping model can increase in
various cases where the risks are very less.
• It may take more time to develop a software by using Prototyping model.
• The Prototyping model is effective only for those projects for which the risks can be
identified before the development starts. Since the prototype is developed at the start
of the project, so the Prototyping model is ineffective for risks that identified after the
development phase starts.
-------------------------------------------------
Q. Differentiate between iterative Enhancement Model and Evolutionary
Development model.
Ans. Iterative Enhancement Model: This model has the similar phases as the waterfall
model, but with fewer restrictions. In general the phases occur in the same order as in the
waterfall model but these may be conducted in several cycles. A utilizable product is
released at the end of the each cycle with each release providing additional functionality.
Evolutionary Development Model: Evolutionary development model bear a resemblance
to iterative enhancement model. The similar phases as defined for the waterfall model
occur here in a cyclical fashion. This model is different from iterative enhancement model
in the sense that this doesn't require a useable product at the end of each cycle. In
evolutionary development requirements are implemented by category rather than by
priority.
Appendix - 4: Difference Between Evolutionary Prototyping and Throw-
Away Prototyping
The prototype converts industrial ideas to concrete realities. A highly trained professional
team will adopt your entrepreneur idea specifications and sketch your ideas using the
latest CAD technology. Next, with the help of computer simulation, these CAD drawings
are transformed into a prototype which is an exact copy of the final product.
Prototyping helps you get an accurate and complete working model of innovation, adjust
the weight of several different options, adjust them, and ultimately create the perfect
design.
Evolutionary Prototyping
In evolutionary prototyping, the concept of the system will be developed as the project
progresses. First of all, we will develop the most visual aspect of the system. You present
a portion of the system to the customer and continue to develop prototypes based on the
feedback received. At some point, you and the customer agree that the prototype is “good
enough” and release the prototype as the final product. It is may be best suited for
business systems where developers can interact frequently and informally with end users.
However, it is suitable for commercial, shrink wrap, and system projects as long as end-
user involvement is obtained. Communication with users of these projects is generally
more structured and formal. If evolved prototyping does not provide more control than is
necessary or if you already know what the system should do, you can use evolutionary
delivery or gradual delivery instead.
Advantages of Evolutionary Prototyping
 It’s useful for exploratory programming, such as Artificial Intelligence applications, where it
is difficult to frame specifications.
 If big problems are anticipated, developers can stop development after several iterations.
 This model is very suitable for research projects. For example, in order to develop
software for automatic speech recognition, it is possible to take a small vocabulary and
develop a system. After successful, you can gradually increase your vocabulary. This
approach is superior to starting the development of an unlimited vocabulary speech
recognition system directly.
Disadvantages of Evolutionary Development Model
 As the project is open-ended, no time frame is able to be set.
 It is difficult to monitor the project.
 The visibility is low compared to the waterfall model.
Throw–Away Prototyping
The throw-away prototype is cheap, fast ones, which is designed to model an idea or
feature. They are commonly used in early phases of design when a large number of ideas
are still being considered. Throw-away prototypes may also be used in late stage design in
industries in which products are launched at a low state of refinement.
The throw-away prototype sounds like what it is. You make a prototype, then when you are
done with it, you abandon it. For example, you and your colleagues go to lunch, you come
up with an idea of the new product. When you discuss the idea, write down the idea and
pull out the original design of the paper napkin. When you return to the office, take out the
prototype of the paper napkin and transfer it to your computer. You throw out the napkin. In
that case, the napkin is considered a thrown away prototype.
The throw-away approach is most appropriate in the project acquisition stage, where
prototypes demonstrate the feasibility of new concepts and convince potential sponsors to
fund the proposed development projects. In this situation, available resources are limited
and the ability to convey the benefits of a new approach with a very low-cost
demonstration is essential to create a new project.
You can also skip or omit the throwaway code document. If this trial is not recorded,
lessons learned from prototyping efforts may be lost, and without the documentation or
deterioration of the initial design simplification, progress in prototypes is hampered and
customer needs Regarding the scope of prototype effort. The throw-away approach can be
a drawback for insufficient level of technology and is best suited for rough system
mockups used very early in the project.
Advantages of Throw Away Prototyping
 Save time and money
 Promote consistency of user interface design
 Enable early customer engagement
 Show concrete ways to show and believe in management to management. Instead of
telling the administrator
 Marketers and planners guarantee that customer needs are met.
Disadvantages of Rapid Prototyping
 User confusion for prototypes and completed systems
 Excessive development time of the prototype
 Normally it does not generate reusable code
 The development process slows down when placed under formal configuration control
 There is no clear stop point

More Related Content

What's hot

Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costslalithambiga kamaraj
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
Passes of compilers
Passes of compilersPasses of compilers
Passes of compilersVairavel C
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineeringtanni821216
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factorsNancyBeaulah_R
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Abdul Basit
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteriaUmaselvi_R
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)REHMAT ULLAH
 

What's hot (20)

Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 
Software quality
Software qualitySoftware quality
Software quality
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Chapter 5 Syntax Directed Translation
Chapter 5   Syntax Directed TranslationChapter 5   Syntax Directed Translation
Chapter 5 Syntax Directed Translation
 
Passes of compilers
Passes of compilersPasses of compilers
Passes of compilers
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
GE3151 problem solving and python programming - Syllabus
GE3151 problem solving and python programming - SyllabusGE3151 problem solving and python programming - Syllabus
GE3151 problem solving and python programming - Syllabus
 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8Capability maturity model cmm lecture 8
Capability maturity model cmm lecture 8
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 

Similar to SE UNIT-1 Revised.pdf

Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineeringMadhav Suratkar
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1Badar Waseer
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)YamunaP6
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Presentation of waterfall model
Presentation of waterfall modelPresentation of waterfall model
Presentation of waterfall modelRohitkumar3723
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles poonam bora
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to qualityDhanashriAmbre
 
System Development
System  DevelopmentSystem  Development
System DevelopmentSharad Patel
 

Similar to SE UNIT-1 Revised.pdf (20)

SE notes by k. adisesha
SE notes by k. adiseshaSE notes by k. adisesha
SE notes by k. adisesha
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)Software engineering (Unit-1 Introduction)
Software engineering (Unit-1 Introduction)
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
The process
The processThe process
The process
 
Software model
Software modelSoftware model
Software model
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
Ijetcas14 545
Ijetcas14 545Ijetcas14 545
Ijetcas14 545
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
Presentation of waterfall model
Presentation of waterfall modelPresentation of waterfall model
Presentation of waterfall model
 
software engineering
software engineering software engineering
software engineering
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
 
System Development
System  DevelopmentSystem  Development
System Development
 

More from Dr. Radhey Shyam

KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdf
KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdfKIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdf
KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdfDr. Radhey Shyam
 
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdf
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdfSE-UNIT-3-II-Software metrics, numerical and their solutions.pdf
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdfDr. Radhey Shyam
 
Introduction to Data Analytics and data analytics life cycle
Introduction to Data Analytics and data analytics life cycleIntroduction to Data Analytics and data analytics life cycle
Introduction to Data Analytics and data analytics life cycleDr. Radhey Shyam
 
KIT-601 Lecture Notes-UNIT-2.pdf
KIT-601 Lecture Notes-UNIT-2.pdfKIT-601 Lecture Notes-UNIT-2.pdf
KIT-601 Lecture Notes-UNIT-2.pdfDr. Radhey Shyam
 
KIT-601 Lecture Notes-UNIT-1.pdf
KIT-601 Lecture Notes-UNIT-1.pdfKIT-601 Lecture Notes-UNIT-1.pdf
KIT-601 Lecture Notes-UNIT-1.pdfDr. Radhey Shyam
 
Deep-Learning-2017-Lecture5CNN.pptx
Deep-Learning-2017-Lecture5CNN.pptxDeep-Learning-2017-Lecture5CNN.pptx
Deep-Learning-2017-Lecture5CNN.pptxDr. Radhey Shyam
 
SE UNIT-3 (Software metrics).pdf
SE UNIT-3 (Software metrics).pdfSE UNIT-3 (Software metrics).pdf
SE UNIT-3 (Software metrics).pdfDr. Radhey Shyam
 
Ip unit 4 modified on 22.06.21
Ip unit 4 modified on 22.06.21Ip unit 4 modified on 22.06.21
Ip unit 4 modified on 22.06.21Dr. Radhey Shyam
 
Ip unit 3 modified of 26.06.2021
Ip unit 3 modified of 26.06.2021Ip unit 3 modified of 26.06.2021
Ip unit 3 modified of 26.06.2021Dr. Radhey Shyam
 
Ip unit 2 modified on 8.6.2021
Ip unit 2 modified on 8.6.2021Ip unit 2 modified on 8.6.2021
Ip unit 2 modified on 8.6.2021Dr. Radhey Shyam
 

More from Dr. Radhey Shyam (20)

KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdf
KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdfKIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdf
KIT-601-L-UNIT-1 (Revised) Introduction to Data Analytcs.pdf
 
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdf
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdfSE-UNIT-3-II-Software metrics, numerical and their solutions.pdf
SE-UNIT-3-II-Software metrics, numerical and their solutions.pdf
 
Introduction to Data Analytics and data analytics life cycle
Introduction to Data Analytics and data analytics life cycleIntroduction to Data Analytics and data analytics life cycle
Introduction to Data Analytics and data analytics life cycle
 
KCS-501-3.pdf
KCS-501-3.pdfKCS-501-3.pdf
KCS-501-3.pdf
 
KIT-601 Lecture Notes-UNIT-2.pdf
KIT-601 Lecture Notes-UNIT-2.pdfKIT-601 Lecture Notes-UNIT-2.pdf
KIT-601 Lecture Notes-UNIT-2.pdf
 
KIT-601 Lecture Notes-UNIT-1.pdf
KIT-601 Lecture Notes-UNIT-1.pdfKIT-601 Lecture Notes-UNIT-1.pdf
KIT-601 Lecture Notes-UNIT-1.pdf
 
KCS-055 U5.pdf
KCS-055 U5.pdfKCS-055 U5.pdf
KCS-055 U5.pdf
 
KCS-055 MLT U4.pdf
KCS-055 MLT U4.pdfKCS-055 MLT U4.pdf
KCS-055 MLT U4.pdf
 
Deep-Learning-2017-Lecture5CNN.pptx
Deep-Learning-2017-Lecture5CNN.pptxDeep-Learning-2017-Lecture5CNN.pptx
Deep-Learning-2017-Lecture5CNN.pptx
 
SE UNIT-3 (Software metrics).pdf
SE UNIT-3 (Software metrics).pdfSE UNIT-3 (Software metrics).pdf
SE UNIT-3 (Software metrics).pdf
 
SE UNIT-2.pdf
SE UNIT-2.pdfSE UNIT-2.pdf
SE UNIT-2.pdf
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
Ip unit 5
Ip unit 5Ip unit 5
Ip unit 5
 
Ip unit 4 modified on 22.06.21
Ip unit 4 modified on 22.06.21Ip unit 4 modified on 22.06.21
Ip unit 4 modified on 22.06.21
 
Ip unit 3 modified of 26.06.2021
Ip unit 3 modified of 26.06.2021Ip unit 3 modified of 26.06.2021
Ip unit 3 modified of 26.06.2021
 
Ip unit 2 modified on 8.6.2021
Ip unit 2 modified on 8.6.2021Ip unit 2 modified on 8.6.2021
Ip unit 2 modified on 8.6.2021
 
Ip unit 1
Ip unit 1Ip unit 1
Ip unit 1
 
Cc unit 5
Cc unit 5Cc unit 5
Cc unit 5
 
Cc unit 4 updated version
Cc unit 4 updated versionCc unit 4 updated version
Cc unit 4 updated version
 
Cc unit 3 updated version
Cc unit 3 updated versionCc unit 3 updated version
Cc unit 3 updated version
 

Recently uploaded

Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 

Recently uploaded (20)

Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 

SE UNIT-1 Revised.pdf

  • 1. Software Engineering (KCS-601) Unit-1: Introduction To Software Engineering Dr. Radhey Shyam Professor Department of Computer Science and Engineering SRMCEM Lucknow (Affiliated to Dr. A.P.J. Abdul Kalam Technical University, Lucknow) Unit-1 have been compiled/prepared by Dr. Radhey Shyam, with grateful acknowledgment who made their course contents freely available or (Contributed directly or indirectly). Feel free to use this study material for your own academic purposes. For any query, the communication can be made through my mail shyam0058@gmail.com. March 14, 2022
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. chaYniliglies a a unduitanking sl Lwtatto a Chavnblihi ieemt * buile examine a t malke u (analysi desig, Constnmalio testi)olkmA eA thines -hat umam Hi built, the Runan Cretiua peë tocnlt t a phyical om. S a logical h a t tha a s Aas Candtirinlie Hat ase Conidrablr d4E* a tiote o 1 s deneleped r emeineeres m s manuaiuned wa lasic! Cne. . s doesn t wa o 3. A m he mdutm Meuing ownd ombenat base asembY mat Ha Ceati me be eusa bulk Tm Swae o (T) mstoneions ClompiTan prriame) ~hatute eea4 poonida deirrd unelEB and pemmanes,(a) data stnains haF emabla the pooiram t, chang A u a l Cu a l , andA documen5tat Resesbea oprt amd ute o Tams. Tim
  • 7. Software Crisis: It is a term used in computer science for the difficulty of writing useful and efficient computer programs in the required time. Software crisis was due to using same workforce, same methods, same tools even though rapidly increasing in software demand, complexity of software and software challenges. With increase in the complexity of software, many software problems arise because existing methods were insufficient. If we will use same workforce, same methods and same tools after fast increasing in software demand, software complexity and software challenges, then there arise some problems like software budget problem, software efficiency problem, software quality problem, software managing and delivering problem etc. This condition is called software crisis. Causes of Software Crisis: •The cost of owning and maintaining software was as expensive as developing the software •At that time Projects was running over-time •At that time Software was very inefficient •The quality of software was low quality •Software often did not meet requirements •The average software project overshoots its schedule by half •At that time Software was never delivered Solution of Software Crisis: There is no single solution to the crisis.one possible solution of software crisis is Software Engineering because software engineering is a systematic, disciplined and quantifiable approach. For preventing software crisis, there are some guidelines: •Reduction in software over-budget •The quality of software must be high •Less time needed for software project •Experience working team member on software project •Software must be delivered
  • 8. Similarity and Differences from Conventional Engineering Process: 1.Software Engineering Process : It is a engineering process which is mainly related to computers and programming and developing different kinds of applications through the use of information technology. 2. Conventional Engineering Process : It is a engineering process which is highly based on empirical knowledge and is about building cars, machines and hardware. Difference between Software Engineering Process and Conventional Engineering Process : S.No. Software Engineering Process Conventional Engineering Process 1. Software Engineering Process is a process which majorly involves computer science, information technology and discrete mathematics. Conventional Engineering Process is a process which majorly involves science, mathematics and empirical knowledge. 2. It is mainly related with computers, programming and writing codes for building applications. It is about building cars, machines, hardware, buildings etc. 3. In Software Engineering Process construction and development cost is low. In Conventional Engineering Process construction and development cost is high. 4. It can involve the application of new and untested elements in software projects. It usually applies only known and tested principles to meet product requirements. 5. In Software Engineering Process, most development effort goes into building new designs and features. In Conventional Engineering Process, most development efforts are required to change old designs. 6. It majorly emphasize on quality. It majorly emphasize on mass production.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. References 1. Roger S. Pressman, Software Engineering a Practitioner Approach, 3rd Edition, TMH, 2005. 2. Rajib Mall, Fundamantal of Software Engineering, 3rd Edition,PHI Publication, 2007. 3. Deepak Jain, Software Engineering for Practitioners, Ist Edition, Oxford, 2012. 4. K K Agarwal and Yogesh Singh, Software Engineering, 3rd Edition,Oxford, 2012. 21
  • 22. Appendix-1: Software Engineering | Waterfall Model Classical waterfall model is the basic software development life cycle model. It is very simple but idealistic. Earlier this model was very popular but nowadays it is not used. But it is very important because all the other software development life cycle models are based on the classical waterfall model. Classical waterfall model divides the life cycle into a set of phases. This model considers that one phase can be started after completion of the previous phase. That is the output of one phase will be the input to the next phase. Thus the development process can be considered as a sequential flow in the waterfall. Here the phases do not overlap with each other. The different sequential phases of the classical waterfall model are shown in the below figure: Let us now learn about each of these phases in brief details: 1 Feasibility Study: The main goal of this phase is to determine whether it would be financially and technically feasible to develop the software.
  • 23. The feasibility study involves understanding the problem and then determine the various possible strategies to solve the problem. These different identified solutions are analyzed based on their benefits and drawbacks, The best solution is chosen and all the other phases are carried out as per this solution strategy. 2 Requirements analysis and specification: The aim of the requirement analysis and specification phase is to understand the exact requirements of the customer and document them properly. This phase consists of two different activities.  Requirement gathering and analysis: Firstly all the requirements regarding the software are gathered from the customer and then the gathered requirements are analyzed. The goal of the analysis part is to remove incompleteness (an incomplete requirement is one in which some parts of the actual requirements have been omitted) and inconsistencies (inconsistent requirement is one in which some part of the requirement contradicts with some other part).  Requirement specification: These analyzed requirements are documented in a software requirement specification (SRS) document. SRS document serves as a contract between development team and customers. Any future dispute between the customers and the developers can be settled by examining the SRS document. 3 Design: The aim 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. 4 Coding and Unit testing: In coding phase software design is translated into source code using any suitable programming language. Thus each designed module is coded. The aim of the unit testing phase is to check whether each module is working properly or not.
  • 24. 5 Integration and System testing: Integration of different modules are undertaken soon after they have been coded and unit tested. Integration of various modules is carried out incrementally over a number of steps. During each integration step, previously planned modules are added to the partially integrated system and the resultant system is tested. Finally, after all the modules have been successfully integrated and tested, the full working system is obtained and system testing is carried out on this. System testing consists three different kinds of testing activities as described below :  Alpha testing: Alpha testing is the system testing performed by the development team.  Beta testing: Beta testing is the system testing performed by a friendly set of customers.  Acceptance testing: After the software has been delivered, the customer performed the acceptance testing to determine whether to accept the delivered software or to reject it. 6 Maintainence: Maintenance is the most important phase of a software life cycle. The effort spent on maintenance is the 60% of the total effort spent to develop a full software. There are basically three types of maintenance :  Corrective Maintenance: This type of maintenance is carried out to correct errors that were not discovered during the product development phase.  Perfective Maintenance: This type of maintenance is carried out to enhance the functionalities of the system based on the customer’s request.  Adaptive Maintenance: Adaptive maintenance is usually required for porting the software to work in a new environment such as work on a new computer platform or with a new operating system.
  • 25. Advantages of Classical Waterfall Model Classical waterfall model is an idealistic model for software development. It is very simple, so it can be considered as the basis for other software development life cycle models. Below are some of the major advantages of this SDLC model:  This model is very simple and is easy to understand.  Phases in this model are processed one at a time.  Each stage in the model is clearly defined.  This model has very clear and well understood milestones.  Process, actions and results are very well documented.  Reinforces good habits: define-before- design, design-before-code.  This model works well for smaller projects and projects where requirements are well understood. Drawbacks of Classical Waterfall Model Classical waterfall model suffers from various shortcomings, basically we can’t use it in real projects, but we use other software development life cycle models which are based on the classical waterfall model. Below are some major drawbacks of this model:  No feedback path: In classical waterfall model evolution of a software from one phase to another phase is like a waterfall. It assumes that no error is ever committed by developers during any phases. Therefore, it does not incorporate any mechanism for error correction.  Difficult to accommodate change requests: This model assumes that all the customer requirements can be completely and correctly defined at the beginning of the project, but actually customers’ requirements keep on changing with time. It is difficult to accommodate any change requests after the requirements specification phase is complete.  No overlapping of phases: This model recommends that new phase can start only after the completion of the previous phase. But in real projects, this can’t be maintained. To increase the efficiency and reduce the cost, phases may overlap.
  • 26. Software Engineering | Iterative Waterfall Model In a practical software development project, the classical waterfall model is hard to use. So, Iterative waterfall model can be thought of as incorporating the necessary changes to the classical waterfall model to make it usable in practical software development projects. It is almost same as the classical waterfall model except some changes are made to increase the efficiency of the software development. The iterative waterfall model provides feedback paths from every phase to its preceding phases, which is the main difference from the classical waterfall model. Feedback paths introduced by the iterative waterfall model are shown in the figure below.
  • 27. When errors are detected at some later phase, these feedback paths allow correcting errors committed by programmers during some phase. The feedback paths allow the phase to be reworked in which errors are committed and these changes are reflected in the later phases. But, there is no feedback path to the stage – feasibility study, because once a project has been taken, does not give up the project easily. It is good to detect errors in the same phase in which they are committed. It reduces the effort and time required to correct the errors. Phase Containment of Errors:The principle of detecting errors as close to their points of commitment as possible is known as Phase containment of errors. Advantages of Iterative Waterfall Model  Feedback Path: In the classical waterfall model, there are no feedback paths, so there is no mechanism for error correction. But in iterative waterfall model feedback path from one phase to its preceding phase allows correcting the errors that are committed and these changes are reflected in the later phases.  Simple: Iterative waterfall model is very simple to understand and use. That’s why it is one of the most widely used software development models. Drawbacks of Iterative Waterfall Model  Difficult to incorporate change requests: The major drawback of the iterative waterfall model is that all the requirements must be clearly stated before starting of the development phase. Customer may change requirements after some time but the iterative waterfall model does not leave any scope to incorporate change requests that are made after development phase starts.  Incremental delivery not supported: In the iterative waterfall model, the full software is completely developed and tested before delivery to the customer. There is no scope for any intermediate delivery. So, customers have to wait long for getting the software.  Overlapping of phases not supported: Iterative waterfall model assumes that one phase can start after completion of the previous phase, But in real
  • 28. projects, phases may overlap to reduce the effort and time needed to complete the project.  Risk handling not supported: Projects may suffer from various types of risks. But, Iterative waterfall model has no mechanism for risk handling.  Limited customer interactions: Customer interaction occurs at the start of the project at the time of requirement gathering and at project completion at the time of software delivery. These fewer interactions with the customers may lead to many problems as the finally developed software may differ from the customers’ actual requirements.
  • 29. Appendix-2: Spiral Mode It is one of the most important Software Development Life Cycle models, which provides support for Risk Handling. In its diagrammatic representation, it looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process. The exact number of phases needed to develop the product can be varied by the project manager depending upon the project risks. As the project manager dynamically determines the number of phases, so the project manager has an important role to develop a product using the spiral model. The Radius of the spiral at any point represents the expenses(cost) of the project so far, and the angular dimension represents the progress made so far in the current phase. The below diagram shows the different phases of the Spiral Model: – Each phase of the Spiral Model is divided into four quadrants as shown in the above figure. The functions of these four quadrants are discussed below-
  • 30. 1. Objectives determination and identify alternative solutions: Requirements are gathered from the customers and the objectives are identified, elaborated, and analyzed at the start of every phase. Then alternative solutions possible for the phase are proposed in this quadrant. 2. Identify and resolve Risks: During the second quadrant, all the possible solutions are evaluated to select the best possible solution. Then the risks associated with that solution are identified and the risks are resolved using the best possible strategy. At the end of this quadrant, the Prototype is built for the best possible solution. 3. Develop next version of the Product:During the third quadrant, the identified features are developed and verified through testing. At the end of the third quadrant, the next version of the software is available. 4. Review and plan for the next Phase: In the fourth quadrant, the Customers evaluate the so far developed version of the software. In the end, planning for the next phase is started. Risk Handling in Spiral Model A risk is any adverse situation that might affect the successful completion of a software project. The most important feature of the spiral model is handling these unknown risks after the project has started. Such risk resolutions are easier done by developing a prototype. The spiral model supports coping up with risks by providing the scope to build a prototype at every phase of the software development. The prototype model also supports risk handling, but the risks must be identified completely before the start of the development work of the project. But in real life project risk may occur after the development work starts, in that case, we cannot use the Prototyping Model. In each phase of the Spiral Model, the features of the product dated and analyzed, and the risks at that point in time are identified and are resolved through prototyping. Thus, this model is much more flexible compared to other SDLC models.
  • 31. Why Spiral Model is called Meta Model? The Spiral model is called a Meta-Model because it subsumes all the other SDLC models. For example, a single loop spiral actually represents the iterative water model. The spiral model incorporates the stepwise approach of the classical waterfall model. The spiral model uses the approach of the Prototyping Model by building a prototype at the start of each phase as a risk-handling technique. Also, the spiral model can be considered as supporting the evolutionary model – the iterations along the spiral can be considered as evolutionary levels through which the complete system is built. Advantages of Spiral Model: Below are some advantages of the Spiral Model. 1. Risk Handling: The projects with many unknown risks that occur as the development proceeds, in that case, Spiral Model is the best development model to follow due to the risk analysis and risk handling at every phase. 2. Good for large projects:It is recommended to use the Spiral Model in large and complex projects. 3. Flexibility in Requirements: Change requests in the Requirements at later phase can be incorporated accurately by using this model. 4. Customer Satisfaction: Customer can see the development of the product at the early phase of the software development and thus, they habituated with the system by using it before completion of the total product. Disadvantages of Spiral Model: Below are some main disadvantages of the spiral model. 1. Complex: The Spiral Model is much more complex than other SDLC models. 2. Expensive:Spiral Model is not suitable for small projects as it is expensive.
  • 32. 3. Too much dependability on Risk Analysis: The successful completion of the project is very much dependent on Risk Analysis. Without very highly experienced experts, it is going to be a failure to develop a project using this model. 4. Difficulty in time management: As the number of phases is unknown at the start of the project, so time estimation is very difficult.
  • 33. Appendix – 3: Prototype Model The Prototyping model is also a popular software development life cycle model. The prototyping model can be considered to be an extension of the Iterative Waterfall model. This model suggests building a working Prototype of the system, before the development of the actual software. A prototype is a toy and crude implementation of a system. It has limited functional capabilities, low reliability, or inefficient performance as compared to the actual software. A prototype can be built very quickly by using several shortcuts by developing inefficient, inaccurate or dummy functions. Necessity of the Prototyping Model – • It is advantageous to develop the Graphical User Interface (GUI) part of a software using the Prototyping Model. Through prototype, the user can experiment with a working user interface and they can suggest any change if needed. • The prototyping model is especially useful when the exact technical solutions are unclear to the development team. A prototype can help them to critically examine the technical issues associated with the product development. The lack of familiarity with a required development technology is a technical risk. This can be resolved by developing a prototype to understand the issues and accommodate the changes in the next iteration. Phases of Prototyping Model – The Prototyping Model of software development is graphically shown in the figure below. The software is developed through two major activities – one is prototype construction and another is iterative waterfall based software development. Prototype Development – Prototype development starts with an initial requirements gathering phase. A quick design is carried out and a prototype is built. The developed prototype is submitted to the customer for evaluation. Based on the customer feedback, the requirements are refined and the prototype is suitably modified. This cycle of obtaining customer feedback and modifying the prototype continues till the customer approves the prototype. Iterative Development –Once the customer approves the prototype, the actual software is developed using the iterative waterfall approach. In spite of the availability of a working prototype, the SRS document is usually needed to be developed since the SRS Document
  • 34. is invaluable for carrying out tractability analysis, verification and test case design during later phases. The code for the prototype is usually thrown away. However, the experience gathered from developing the prototype helps a great deal in developing the actual software. By constructing the prototype and submitting it for user evaluation, many customer requirements get properly defined and technical issues get resolved by experimenting with the prototype. This minimises later change requests from the customer and the associated redesign costs. Advantages of Prototyping Model –This model is most appropriate for the projects that suffer from technical and requirements risks. A constructed prototype helps to overcome these risks. Disadvantages of Prototyping Model –
  • 35. • Cost of the development of the software by using prototyping model can increase in various cases where the risks are very less. • It may take more time to develop a software by using Prototyping model. • The Prototyping model is effective only for those projects for which the risks can be identified before the development starts. Since the prototype is developed at the start of the project, so the Prototyping model is ineffective for risks that identified after the development phase starts. ------------------------------------------------- Q. Differentiate between iterative Enhancement Model and Evolutionary Development model. Ans. Iterative Enhancement Model: This model has the similar phases as the waterfall model, but with fewer restrictions. In general the phases occur in the same order as in the waterfall model but these may be conducted in several cycles. A utilizable product is released at the end of the each cycle with each release providing additional functionality. Evolutionary Development Model: Evolutionary development model bear a resemblance to iterative enhancement model. The similar phases as defined for the waterfall model occur here in a cyclical fashion. This model is different from iterative enhancement model in the sense that this doesn't require a useable product at the end of each cycle. In evolutionary development requirements are implemented by category rather than by priority.
  • 36. Appendix - 4: Difference Between Evolutionary Prototyping and Throw- Away Prototyping The prototype converts industrial ideas to concrete realities. A highly trained professional team will adopt your entrepreneur idea specifications and sketch your ideas using the latest CAD technology. Next, with the help of computer simulation, these CAD drawings are transformed into a prototype which is an exact copy of the final product. Prototyping helps you get an accurate and complete working model of innovation, adjust the weight of several different options, adjust them, and ultimately create the perfect design. Evolutionary Prototyping In evolutionary prototyping, the concept of the system will be developed as the project progresses. First of all, we will develop the most visual aspect of the system. You present a portion of the system to the customer and continue to develop prototypes based on the feedback received. At some point, you and the customer agree that the prototype is “good enough” and release the prototype as the final product. It is may be best suited for business systems where developers can interact frequently and informally with end users. However, it is suitable for commercial, shrink wrap, and system projects as long as end- user involvement is obtained. Communication with users of these projects is generally more structured and formal. If evolved prototyping does not provide more control than is necessary or if you already know what the system should do, you can use evolutionary delivery or gradual delivery instead.
  • 37. Advantages of Evolutionary Prototyping  It’s useful for exploratory programming, such as Artificial Intelligence applications, where it is difficult to frame specifications.  If big problems are anticipated, developers can stop development after several iterations.  This model is very suitable for research projects. For example, in order to develop software for automatic speech recognition, it is possible to take a small vocabulary and develop a system. After successful, you can gradually increase your vocabulary. This approach is superior to starting the development of an unlimited vocabulary speech recognition system directly. Disadvantages of Evolutionary Development Model  As the project is open-ended, no time frame is able to be set.  It is difficult to monitor the project.  The visibility is low compared to the waterfall model. Throw–Away Prototyping The throw-away prototype is cheap, fast ones, which is designed to model an idea or feature. They are commonly used in early phases of design when a large number of ideas are still being considered. Throw-away prototypes may also be used in late stage design in industries in which products are launched at a low state of refinement. The throw-away prototype sounds like what it is. You make a prototype, then when you are done with it, you abandon it. For example, you and your colleagues go to lunch, you come up with an idea of the new product. When you discuss the idea, write down the idea and pull out the original design of the paper napkin. When you return to the office, take out the prototype of the paper napkin and transfer it to your computer. You throw out the napkin. In that case, the napkin is considered a thrown away prototype. The throw-away approach is most appropriate in the project acquisition stage, where prototypes demonstrate the feasibility of new concepts and convince potential sponsors to fund the proposed development projects. In this situation, available resources are limited and the ability to convey the benefits of a new approach with a very low-cost demonstration is essential to create a new project.
  • 38. You can also skip or omit the throwaway code document. If this trial is not recorded, lessons learned from prototyping efforts may be lost, and without the documentation or deterioration of the initial design simplification, progress in prototypes is hampered and customer needs Regarding the scope of prototype effort. The throw-away approach can be a drawback for insufficient level of technology and is best suited for rough system mockups used very early in the project. Advantages of Throw Away Prototyping  Save time and money  Promote consistency of user interface design  Enable early customer engagement  Show concrete ways to show and believe in management to management. Instead of telling the administrator  Marketers and planners guarantee that customer needs are met. Disadvantages of Rapid Prototyping  User confusion for prototypes and completed systems  Excessive development time of the prototype  Normally it does not generate reusable code  The development process slows down when placed under formal configuration control  There is no clear stop point