0% found this document useful (0 votes)
25 views

Software Engineering Unit-1

The document discusses software engineering concepts including software components, characteristics, and quality attributes. It describes different types of software and the software development life cycle, and discusses issues like the software crisis and how software engineering processes aim to address such issues.

Uploaded by

Ravi Yadav
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Software Engineering Unit-1

The document discusses software engineering concepts including software components, characteristics, and quality attributes. It describes different types of software and the software development life cycle, and discusses issues like the software crisis and how software engineering processes aim to address such issues.

Uploaded by

Ravi Yadav
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

SOFTWARE ENGINEERING

(KCS 601)

Lecture Notes

(Unit-1)(Notes-1)(Introduction)
Unit-1 Syllabus

Introduction: Introduction to Software Engineering, Software Components, Software


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

PROGRAM:
It is complete in itself and is generally used only by the author of the program, there is
usually little documentation or other aids to help other people use the program. These
programs are not designed with issues of portability, reliability and usability in mind.

PROGRAMMING SYSTEM PRODUCT:


► It is used largely by people, other than developers of the system.

► Proper interface is provided.

► There is sufficient documentation for help.

► Here portability is a key issue.

► The programming systems product is also called “Industrial Quality Software”

SOFTWARE:
Software is:

► Instructions that when executed provide desired function and performance.

► Data structures that enable the programs to adequately manipulate information.

► Documents that describe the operation and use of the programs.

Or

► IEEE defines software as collection of computer programs, procedures ,rules and


associated documentation and data.

SOFTWARE CHARACTERISTICS:

1) “Software is developed or engineered, it is not manufactured in the classical


sense”

-Difference after manufacturing Product cannot be modified but after developing


software, it can be easily modified.

2) “Software does not wear out”.

In this errors are corrected in the early stage after that it maintains that position.
3) “Most Software is custom built rather than being assembled from existing components”.
Hardware is assembled from components available in market but software is build according to the
needs of the customer.
TYPES OF SOFTWARE:

► System software

► Business software

► Embedded Software

► Real time Software

► Personal Computer Software

► Artificial Intelligence Software

► Web Based Software

System Software:

They directly interact with the hardware and do the necessary work relating to
hardware like CPU scheduling, resource sharing and complex data structure handling.

Business Software:

These are application level software developed for specific operations like according
package, payroll package & MIS.

Embedded Software:

Software which is specially dedicated to the particular operation is known as


Embedded software. It uses high level language which is fed in to the ROM and is used
to control products & systems.

Real Time Software:

Software which is dealing with changing environment of the real world event is called
as Real Time software.

Artificial Intelligence Software:

Software packages used for analysis are known as Expert systems or knowledge based
systems. They make use of non-numerical algorithms to solve complex problems that
are not amenable to computation.

Personal Computer Software

Word processing, spreadsheets, Computer graphics, Multimedia, entertainment,


Database access, personal & Business financial applications.

Web Based Software

Web pages retrieved by a browser are software that incorporates executable


instructions and data (Hypertext and a variety of visual and Audio formats.)
SOFTWARE QUALITY ATTRIBUTES-
► CORRECTNESS –

A Program is said to be functionally correct if it meets the desired specifications.

It can be defines in terms of mathematical expression correlating the two qualities


software and specifications.

► RELIABILTY –

It is the ability of a system to continue to keep operating over time.

► ROBUSTNESS –

If a program performs well even during extraneous conditions i.e. they perform well for
which they are not designed.

► PERFORMANCE –

It is the ability of a system in the form of responsiveness to various actions within a certain period
of time

► TESTABILITY:

It shows how well the system or component facilitates to perform tests to determine whether the
predefined test criteria have been met.

► MAINTAINABILITY –

The ease with which a software system or component can be modified to correct faults, improve
performance or other attributes, or adapt to a changed environment.

► REUSUABILTY–

Software components can be reused to form new software by making certain changes inthe
software components.

► PORTABILITY –

It can be defines as a software which can support various environments or platforms ex –


JAVA, UNIX.

► SECURITY –
It is the ability of a system to resist or block malicious or unauthorized attempts that destroy the
system and at the same time provide access to legitimate users.
► TIMELINESS-

It is a process related to the quality to deliver a product on time.

► INTEROPERABILITY-

It is the ability of two or more systems to communicate or exchange data easily and to use the
data that has been exchanged.
SOFTWARE ENGINEERING
► It is application of science and mathematics by which the capabilities of computer
equipment are made useful to man via computer programs, procedures and
associated documentation.

► Basic objective of software Engineering is to :

“Develop methods and procedures for software development that can scale up for
large systems and that can be used to consistently produce high quality Software at
low cost and with a small cycle time”

► Three Factors driving the Software Engineering are :

i) Cost ii) Schedule iii) Quality

Cost - Cost of a developing system is the cost of resources used for the system, in case of
software are Manpower, Hardware, software and other supportresources.
Schedule – Relates to cycle time from concept to delivery which should be
small.

Quality – Quality of a software product is known through 3 dimensions

i) Product Operation- deals with Quality factors such as correctness,


reliability &efficiency.

ii) Product transition- deals with factors like portability , Interoperability, Reusability
iii) Product Revision – It is concerned with those aspects related to modification,
maintainability & testability.

SOFTWARE CRISIS-
Software crisis is a term used in the early days of computing science for the difficulty of writing useful
and efficient computer programs in the required time. The software crisis was due to the rapid
increases in computer power and the complexity of the problems that could not be tackled. With the
increase in the complexity of the software, many software problems arose because existing methods
were inadequate.

The reason responsible for Software Crisis:

► Scheduling and costing of a project does not match with the actuals.

► Software is not meeting the current demand for which it should accommodate.

► Quality of software is not good and user-friendly.

► Timely collection of data and analysis is not done correctly

► Due to lack of linking and coordination between the developer and consumer.
SOFTWARE PROCESS-

► It is set of activities, together with ordering constraints among them such that if the
activities are performed properly and in accordance with the ordering constraints, the
desired result is produced. Desired result is High quality software at low cost.

► The process that deals with the technical and management issues of software
development is called a “software process” it specifies a method of developing
software

► A software project is development project in which a software process is used.

► Software products are the outcomes of a software project.

Software Process

Product Process
engineering Management
Process Process

Software
Project
Development Configuration
Management
Process Management
process
Process

► Development Process: specifies the development and Quality assurance activities


that need to be performed.

► Management Process: specifies how to plan and control these activities are met

► Objective of Software Configuration Management process is to primarily deal with


managing change, so that the cost and Quality objectives are met & the integrity of
the products is not violated despite these changes requests.

CHARACTRISTICS OF SOFTWARE PROCESS

► PREDICTABILTY –

It determines how accurately the outcome of following process in a project can be


predicted before the project is completed. Predictable process is also said to be
under statistical control.
► SUPPORT TESTABILITY AND MAINTAINBILITY-

If we want to reduce the overall cost of software or achieve “global “optimality in


terms of cost rather than “local” optimality in terms of development cost only. The
goal of development should be to reduce the maintenance effort, i.e. one of the
main objectives of the development project should be to produce software that is
easy to maintain.

The observation from the data about effort distribution with phases is that testing
consumes the most resources during development.

Underestimating the testing & less knowledge of testing tools effort often causes the
planners to allocate insufficient resources for testing which in turn results in
unreliable software or schedule slippage.

► EARLY DEFECT REMOVAL & DEFECT PREVENTION-

Errors occur throughout the department Process. However, the cost of correcting
errors of different phases is not the same and depends on when the error is detected
and corrected.

The greater the delay in detecting an error after it occurs the more expensive it is to
correct it.

Detecting errors soon after they have introduced is clearly an objective that should be
supported by the process.

However, even better is to provide support for Defect Prevention.

► PROCESS IMPROVEMENT –

Having process improvement as a basic goal of the software process implies that the
software process used is such that it supports its improvement. This requires that
there be means for evaluating the existing process and underestimating the weakness
in the process. And it is always preferable to have a quantifiable evaluation rather than
a subjective evaluation. Hence it is important that the process provides data that can
be used to evaluate the current processes and its weakness. Process improvement is
a fundamental objective which requires that the software process be a closed loop
process. “The Process must learn from previous experiences & each project done
using the existing process must feed information back into the process itself, which
can then use this information for self-improvement”.
SOFTWARE DEVELOPMENT LIFE CYCELE (SDLC) -
► PHASED DEVELOPMENT PROCESS

Development process consist of various phases, each phase ending with a


defined output.
The main reason for having a phased process is that it breaks the problem of developing
software into successfully performing set of phases each handling a different concern of
software development.
Any problem solving in software must consists of these activities.

PLANNING:

 Leaders of the project evaluate the terms of the project, including the calculation of labor and
material costs, to create a timetable with goals.

 Planning must also include areas of feedback from stakeholders or anybody who is going to
benefit from the applications.

 The scope of the project should be clearly defined, the purpose of the application outlined, and
the boundaries that are needed to keep the project from expanding beyond scope or shifting.

 In other words, the team should determine the feasibility of the project and how they can
implement the project successfully with the lowest risk in mind.

REQUIREMENTS ANALYSIS:
► It is done in order to understand the problems that the software system is to solve.

► Emphasis on identifying what is needed from the system.

► Two parties involved in software development

A CLIENT, A DEVELOPER
The developer usually does not understand the client’s problem and client does not
understand the issues involved in software systems.

This causes a communication Gap.

This is to be bridged between Requirement Analysis.

► There are 2 major activities in this phase:

► Problem Understanding

► Requirement Specification

Once the problem is analyzed & the essentials understood the requirements must be specified
in the requirement specification document.

Requirement document (SRS) must satisfy all functional & performance requirements , the
formats of inputs and outputs and all design constraints that exist due to political ,
economic, environmental & security reasons.

SOFTWARE DESIGN:
► Purpose is to plan a solution of the problem specified by the requirements documents.

► It is the most critical factor affecting the quality of software. It has major impact on
the later phases such as Testing and Maintenance.

► Output is design document which is similar to a blue print or plan for the
solution and is used later during implementation, testing and maintenance.

► Design Activity is divided into two separate phases

► System Design

► Detailed Design

In system design the focus is on identifying the modules, whereas during design the focus is
on designing the logic for each of the modules.

CODING:
► Goal of coding phase is to translate the design of the system into code in a given
programming language.

► During coding the focus should be on developing programs that are easy to read &
understand.

► Goal of structured programming is to linearize the control flow in the program i.e.
program text should be as a sequence of statements & during execution the statements
are executed in the sequence given in the programming.
TESTING:
► Its basic function is to detect errors in the software

► Goal of testing is to uncover requirements, design & coding errors in the programs.

► UNIT TESTING – In this, a module is tested separately and is often performed by


the coder himself simultaneously along with the coding of the module.

► INTEGRATION TESTING – After Unit Testing the modules are gradually


integrated into subsystems, which are then integrated to eventually form the
entire system.

► SYSTEM TESTING – Here the system tested against the system requirements to see
if all the requirements are met and if the system performs as specified by the
requirements.

► ACCEPTANCE TESTING – It is performed to demonstrate to the client on the real


life data of the client, the operation of the system.

► Final output of testing phase is the test report & the error report.
LIFE CYCLE MODEL
► Process model is a descriptive and diagrammatic representation of the software life cycle.

► It represents all the activities required to make a software product transit


through its life cycle phases.

► It also captures the order in which these activities are to be undertaken.

► Life cycle model maps the different activities performed on a software product
from its inception to retirement.

► Different life cycle models may map the basic development activities to phases in
different ways.

► No matter which life cycle model is followed, the basic activities are included in all
life cycle models though the activities may be carried out in different orders in
different life cycle models.

During any life cycle phase, more than one activity may also be carried out

THE NEED FOR A SOFTWARE LIFE CYCLE MODEL:


► The development team must identify a suitable life cycle model for the particular project
and then adhere to it.

► Without using of a particular life cycle model the development of a software product
would not be in a systematic and disciplined manner.

► When a software product is being developed by a team there must be a clear


understanding among team members about when and what to do.
► Otherwise it would lead to chaos and project failure.

► This problem can be illustrated by using an example.

► Suppose a software development problem is divided into several parts and the parts are
assigned to the team members.

► From then on, suppose the team members are allowed the freedom to develop the parts
assigned to them in whatever way they like.

► It is possible that one member might start writing the code for his part, another might
decide to prepare the test documents first, and some other engineer might begin with the
design phase of the parts assigned to him.

► This would be one of the perfect recipes for project failure.

► A software life cycle model defines entry and exit criteria for every phase.

► A phase can start only if its phase-entry criteria have been satisfied.

► So without software life cycle model the entry and exit criteria for a phase cannot be
recognized.
► Without software life cycle models it becomes difficult for software project managers to
monitor the progress of the project.

► Many life cycle models have been proposed so far.

► Each of them has some advantages as well as some disadvantages. A few important and
commonly used life cycle models are as follows:

► Classical Waterfall Mode

► Iterative Waterfall Model

► Prototyping Model

► Evolutionary Model

► Spiral Model
CLASSICAL WATERFALL MODEL:

System
Feasibility

Requirement
Analysis

System
Design

Detailed
Design

Coding

Testing and Installation Operation &


Integration Maintenance

System Feasibility:

► In this, we establish requirements for all system elements and the allocating some
subsets of these needs to software.

► Result of this phase tabulated in feasibility report.

Requirements Analysis – Project Planning:

► In this, we define the needs, requirements, scope etc.


► This is called critical Phase.
► After requirement analysis with rigorous integration with the proposed software end
users the whole project for software development is panned and scheduled.
► End products of this phase are requirements document & Project schedule
System Design:

► In this, the overall design or architecture of system is proposed using the previous
results of phase carried out.

► Product of this stage is System Design Document


Detailed Design:

► In this stage, the programmers code for different modules of the software in the
chosen programming Language.

► Programmers or every module is individually developed overall the backend is same


for every module programmed.

Testing & Integration:

► All the wides for various modules are tested for their aimed working & efficiency.
► After achieving the rate factor results, all the modules are integrated & their again
the integrated system is chosen for testing in wholesome manner.
► End Product is test & integration report
Installation:

► Whole system is installed if any upgradation of software or hardware is needed at


the site, then the required resources are made available.
► Users are given training how to use software & they may also be provided with a
user’s manual.

Operation and Maintenance:

► The stage spans to the whole life of software product developed.

► Routine check is also needed to ensure the proper & efficient monitoring of software
installed at the site.

► If end users face any problem afterwards, it is also looked into the software is
always expected to be maintained upgraded in the further for various changes
occurring in the users environment & also in his needs.

► Maintenance of a typical software product requires much more than the effort
necessary to develop the product itself.

► Many studies carried out in the past confirm this and indicate that the relative effort
of development of a typical software product to its maintenance effort is roughly in
the 40:60 ratios.

► Maintenance involves performing any one or more of the following three kinds of
activities:

 Correcting errors that were not discovered during the product development phase.
This is called corrective maintenance.

 Improving the implementation of the system, and enhancing the functionalities


of the system according to the customer’s requirements. This is called
perfective maintenance.

 Porting the software to work in a new environment. For example, porting may
be required to get the software to work on a new computer platform or with a
new operating system. This is called adaptive maintenance.
SHORTCOMINGS OF THE CLASSICAL WATERFALL MODEL:

► The classical waterfall model is an idealistic one since it assumes that no


development error is ever committed by the engineers during any of the life cycle
phases.

► However, in practical development environments, the engineers do commit a large


number of errors in almost every phase of the life cycle.

► The source of the defects can be many: oversight, wrong assumptions, use of
inappropriate technology, communication gap among the project engineers, etc.

► These defects usually get detected much later in the life cycle. For example, a design
defect might go unnoticed till we reach the coding or testing phase. Once a defect is
detected, the engineers need to go back to the phase where the defect had occurred
and redo some of the work done during that phase and the subsequent phases to
correct the defect and its effect on the later phases.

► Therefore, in any practical software development work, it is not possible to strictly


follow the classical waterfall model

ADVANTAGES OF WATERFALL MODEL:

► Systematic & Sequential

► It is linear Model

► There is a clear identification of the beginning and end of any stage.

► It involves problem documentation

► It enforces the responsibility of carrying out all the phases in listed order.

LIMITATIONS OF WATERFALL MODEL:

► No changes in the requirement can be after the start of design process.

► For long projects, may be the hardware can become obsolete.

► Providing different versions with limited capabilities is not possible

► There is heavy documentation involved.

► We cannot go back to any previously executed phase

► There is no risk analysis.

► It is very difficult to predict the requirement explicitly for the customer.

WHERE TO USE WATERFALL MODEL-

1. Requirements are clear and fixed that may not change.

2. There are no ambiguous requirements (no confusion).


3. It is good to use this model when the technology is well understood.

4. The project is short and cast is low.

5. Risk is zero or minimum.


PROTOTYPE MODEL:
► A prototype is a toy implementation of the system.

► A prototype usually exhibits limited functional capabilities, low reliability, and


inefficient performance compared to the actual software.

► A prototype is usually built using several shortcuts.

► The shortcuts might involve using inefficient, inaccurate, or dummy functions.

► The shortcut implementation of a function, for example, may produce the desired
results by using a table look-up instead of performing the actual computations.

► A prototype usually turns out to be a very crude version of the actual system

NEED OF PROTOTYPE:
► To illustrate the input data formats, messages, reports, and the interactive
dialogues to the customer.

► This is a valuable mechanism for gaining better understanding of the customer’s needs:

· how the screens might look like

· how the user interface would behave

· how the system would produce outputs

► Another reason for developing a prototype is that it is impossible to get the perfect
product in the first attempt.

► The experience gained in developing the prototype can be used to develop the final
product.

► A prototyping model can be used when technical solutions are unclear to the
development team.

► A developed prototype can help engineers to critically examine the technical issues
associated with the product development.

► In such circumstances, a prototype may be the best or the only way to resolve the
technical issues. A prototype of the actual product is preferred in situations such as:

• User requirements are not complete

• Technical issues are not clear


Cost can be reduced using prototype:

 Experience of developing the prototype might reduce the cost if the later phases
when the actual software development is done.

 In many projects the requirements are constantly changing particularly when


development takes a long time.

 Client and users get experience with the system it is more likely that the
requirements specified after the prototype will be closer to the actual
requirements. This will lead to fewer changes in the requirements at a later time.

TYPES OF PROTOTYPING:
 Evolutionary Prototyping

 Incremental Prototyping

 Throwaway Prototyping

 EVOLUTIONARY PROTOTYPING:
► It helps in delivering the complete system to user.

► The system design starts with prototype & subsequent modules are developed &
integrated with the prototype which would ultimately result in the complete system
even high costs does not matter because our prototype will form a part of the
system.

► It is also an effective method of demonstrated the feasibility of a certain approach.

► The development of the prototype type starts when the preliminarily version of
the requirements specification document has been developed.

► After the prototype has been developed the end users and clients are given an
opportunity to use the prototype.

► Based on the feedback, the initial requirements are modified to produce the final
requirements specification which is then used to develop the production Quality
System.
HOW COST CAN BE REDUCED:

► As prototype is to be discarded there is no point in implementing those parts of


requirements which are well understood.

► Minimal documentation needs to be produced during prototyping ex design


documents , a test plan, test case specification are not need during prototyping,

► Because testing consumes a major part of developer expenditure during regular


software development we reduce testing.

 INCREMENTAL PROTOTYPING:
 Incremental Model is a process of software development where requirements are
broken down into multiple standalone modules of software development cycle.

 Incremental development is done in steps from analysis design, implementation,


testing/verification, maintenance.

 Each iteration passes through the requirements, design, coding and testing phases.
And each subsequent release of the system adds function to the previous release
until all designed functionality has been implemented.

ADVANTAGES OF AN INCREMENTAL MODEL:

 Customer feedback is received after the delivery of each component.

 Risk of requirement changes is reduced

 More flexible

 Easy to test and debug

 Give quick results


DISADVANTAGES OF AN INCREMENTAL MODEL:

 Needs a proper plan to integrate the components

 Needs a proper design to integrate the components

 More expansive as compared to the waterfall model.

WHEN TO USE THE INCREMENTAL MODEL?

 When major requirements are understood but some requirements can evolve within the
passage of time.

 When product launch in the market is getting late.

 When a customer has no problem with the budget but he demands more and more
quality in software.

 THROWAWAY PROTOTYPING:
 Idea is to discard after the analysis is complete.

 This prototyping helps us in validation of the system and in deriving the


complete system requirements.

 Cost of prototype is kept to a minimum as when the overall system is developed this
prototype is of no use.

 Only minimal documents need to be produced during prototyping.

ADVANTAGES:
► Partial product is built in the initial stages therefore customers get a chance to see the
product early in life cycle & thus give necessary feedback.

► New requirements can be easily accommodated as there is scope of refinement.

► Requirements become more clear resulting into an accurate products.

► As user is involved from the starting of the project, he/she tend to be more secure,
comfortable and satisfied.

► Flexibility in design & development is also supported by the model.

DISADVANTAGES:
► After seeing an early prototype end users demand the actual system to be delivered soon.

► End users may not like to know the difference between a prototype and aw well
engineered fully developed system.

► Developers in a hurry to build porotypes may end up with sub optimal solutions.

► If not managed properly, the iterative process of prototype demonstration and


refinement can continue for long duration.

► If end user is not satisfied with initial prototype, he may lose interest in the project.

► Poor documentation.
ITERATIVE ENHANCEMENT MODEL:
► Known as Momental Enhanced Model.
► Aims at bonding the merits of prototyping and the waterfall model
► Software should be developed in increments, each increment adding some functional

capability to the system until the full system is implemented .

► Project Control List is created that contains all the tasks that must be performed to
obtain the final implementation

► First step is to create a simple initial implementation is done for a subset if overall
problem.

► Each step consists of removing the next task from the list, designing the
implementation for the selected task, coding and testing the implementation.

► The process is iterated until the project control list is empty, at which time the final
implementation of the system, will be available.

► Project control list guides the iteration steps and keeps track of all tasks that must be
done.

► Based on analysis one of the tasks in the list can include redesign of defective
components or redesign of the entire system.

► However, redesign of the system will generally occur only in initial steps.

ADVANTAGES:
► One effective use of this type of model is for product development, in which the
developers themselves provide the specifications & therefore have a lot of control on
what specifications go in the system & what stay out.

► As product is to be delivered in parts total cost of project is distributed,

► Limited number of persons can be put on project because work is to be delivered in part

► As development activities for next release & use of early version of product is done
simultaneously, errors if found can be corrected.

► Customers or end users feedback requirements for successive releases become more
clear.

► As functionality is incremented in steps, testing also becomes easy.

► Risk of failure of a product is decreased as users start using the product early.
DISADVANTAGES:
► As product is delivered in parts total development cost is higher.

► Well defined interfaces are required to connect modules developed with each phase.

► Model requires well defined project planning schedule to distribute the work properly.

► Testing of modules also results into overhead and increased cost.

► In customized software development, where the client has to essentially provide


and approve the specification it is not always clear how this process can be applied.

► Another problem is in generating the business control how will the cost of additional
features be determined, negotiated, particularly because the client organization is
likely to be tied to the original vendor who developed the first version.

SPIRAL MODEL:
► Proposed by Bohem.

► The activities in this model can be organized like a spiral that has many cycles.

► Spiral Model is a risk-driven software development process model.

► It is a combination of the waterfall model and the iterative model.

► Radial Dimensions represents the cumulative cost incurred in accomplishing the steps
done so far.

► Angular dimensions represent the progress made in completing each cycle of the
spiral.
MAIN PHASES OF SPIRAL MODEL:

► It has four stages or phases: The planning of objectives, risk analysis, engineering or
development, and finally reviews. A project passes through all these stages
repeatedly and the phases are known as a Spiral in the model.
• Determine Objectives
• Alternatives
• Constraints
• Planning Phase

 Region 1 – Determine Objectives

This phase includes requirement gathering and analysis. Based on the requirements,
objectives are defined and different alternate solutions are proposed. There’s a wide
range of them, from trivial to fatal. The primary task for the development team is to
enumerate all the possible risks and prioritize them according to importance.

 Region 2 – Risk Analysis

In this quadrant, all the proposed solutions are analyzed and any potential risk is
identified, analyzed, and resolved. During the first spiral, when the overall requirements
are not so clear, the so-called Proof of Concept (POF) is created to get the customer’s
feedback.
 Region 3 – Develop and verify next level of Product

This phase includes the actual implementation of the different features. All the
implemented features are then verified with thorough testing.

 Region 4  Plan Next Phase

► In this phase, the software is evaluated by the customer. It also includes risk
identification and monitoring like cost overrun or schedule slippage and after that
planning of the next phase is started.

ADVANTAGES:
► This model is a very flexible model and it is highly suited to project development of
our times.

► In this model, very little documentation is generated in compare to waterfall model.

► This particular model lays a lot of stress on Risk Analysis.

► This model efficiently uses prototyping.

LIMITATIONS:
► There is no concrete beginning or end of particular phases.

 We do not get very strict standards for software development

You might also like