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

Unit2 (I)

The document discusses several software development models including cost-benefit analysis, the waterfall model, spiral model, and software prototyping. It provides details on the key steps and phases in each model as well as their advantages and disadvantages. The waterfall model is described as a sequential process while the spiral model allows for risk analysis and handling at each phase in an iterative way. Software prototyping involves creating early versions of the software to test assumptions and requirements.

Uploaded by

2130154006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Unit2 (I)

The document discusses several software development models including cost-benefit analysis, the waterfall model, spiral model, and software prototyping. It provides details on the key steps and phases in each model as well as their advantages and disadvantages. The waterfall model is described as a sequential process while the spiral model allows for risk analysis and handling at each phase in an iterative way. Software prototyping involves creating early versions of the software to test assumptions and requirements.

Uploaded by

2130154006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

**REMAINING PART OF UNIT 1

Cost-benefit analysis

Even where the estimated benefits will exceed the estimated costs, it is often necessary to
decide if the proposed project is the best of several options. Not all projects can be
undertaken at any one time and, in any case, the most valuable projects should get most
resources.

Cost-benefit analysis comprises two steps:

 Identifying all of the costs and benefits of carrying out the proiect and operating
the delivered application these include the development costs, the operating costs
and the benefits expected from the new system. Where the proposed system is a
replacement, these estimates should reflect the change in costs and benefits due to the
new system.

 Expressing, these costs and benefits in common units We must express each cost
and benefit - and the net benefit which is the difference between the two - in money

Most direct costs are easy to quantify in monetary terms and can be categorized as
 Development costs, including development staff costs; .

 setup costs, consisting of the costs of putting the system into place, mainly of any
new hardware but also including the costs of file conversion, recruitment and staff
training;
 operational costs relating to operating the system after installation.

Difference between project life cycle and product life cycle

 A product life cycle can have single or multiple projects.


 The product life cycle is longer than the project life cycle.
 The project life cycle has a definite end while the product life cycle may not.
 The map for the product life cycle is conceptual and depends on market conditions
while projects have predictive and well-defined roadmaps.
 The product life cycle phases do not overlap while the project phases may overlap.
 Phases generally occur only once in the product life cycle while in the project life
cycle phases may repeat.
 Phases are sequential in the product life cycle, while in the project life cycle phases
may or may not be sequential.
UNIT 2

Software Process Model:

A software process model is an abstraction of the actual process, which is being


described. It can also be defined as a simplified representation of a software
process. Each model represents a process from a specific perspective. Basic
software process models on which different type of software process models can be
implemented:

Waterfall model

This is the 'classical' model of system development As can be seen from the
example in Figure , there is a sequence of activities working from top to bottom. The
diagram shows some arrows pointing upward and backwards. This indicates that a
later stage may reveal the need for some extra work at an earlier stage, but this should
definitely be the exception rather than the rule. After all, the flow of a waterfall
should be downwards, with the possibility of just a little splashing back.
Advantages

 Feedback Path –
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 –
It is very simple to understand and use. That’s why it is one of the most widely used
software development models.
 Cost-Effective –
It is highly cost-effective to change the plan or requirements in the model. Moreover, it
is best suited for agile organizations.
 Well-organized –
In this model, less time is consumed on documenting and the team can spend more time
on development and designing.

Drawbacks of Waterfall Model:

 Difficult to incorporate change requests –


The major drawback is that all the requirements must be clearly stated before starting
the development phase. Customers may change requirements after some time but the
iterative waterfall model does not leave any scope to incorporate change requests that
are made after the development phase starts.

 Incremental delivery not supported –


There is no scope for any intermediate delivery. So, customers have to wait a long for
getting the software.

 Overlapping of phases not supported –


It 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, the 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.

Spiral model

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 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.
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.

Software prototyping

A prototype is a working model of one or more aspects of the projected system.

lt is constructed and tested quickly and inexpensively in order to test out assumptions.

Prototypes can be classified as throw-away or evolutionary.


Throw-away prototypes: The prototype tests out some ideas and is then discarded when the
true development of the operational system is commenced.

Evolutionary prototypes : The prototype is developed and modified until it is finally in a


state where it can become the operational system. ln this case the standards that are used to
develop the software have to be carefully considered

Advantages –

 The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
 New requirements can be easily accommodated as there is scope for refinement.
 Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
 The developed prototype can be reused by the developer for more complicated projects
in the future.
 Flexibility in design.

Disadvantages –

 Costly w.r.t time as well as money.


 There may be too much variation in requirements each time the prototype is evaluated
by the customer.
 Poor Documentation due to continuously changing customer requirements.
 It is very difficult for developers to accommodate all the changes demanded by the
customer.
 There is uncertainty in determining the number of iterations that would be required
before the prototype is finally accepted by the customer.
 After seeing an early prototype, the customers sometimes demand the actual product to
be delivered soon.
 Developers in a hurry to build prototypes may end up with sub-optimal solutions.
 The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.

Incremental Delivery

This approach breaks the application down ínto small components which are then
implemented and delivered in sequence. Each component delivered must give some benefit to
the user. Figure gives a general idea of the approach.

Time-boxing is often associated with an incremental approach. Here the scope of deliverables
for an increment is rigidly constrained by an agreed deadline. This deadline has to be met,
even at the expense of dropping some of the planned functionality. Omitted features can be
transferred to later increments.
Advantages of this approach

 The feedback from early increments improves the later stages.


 The possibility of changes in requirements is reduced because of the shorter time
span between the design of a component and its delivery.
 Users get benefits earlier than with a conventional approach.
 Early delivery of some useful components improves cash flow, because you get some
return on investment early on.
 Smaller sub-projects are easier to control and manage.
 Gold-plating, that is, the requesting of features that are unnecessary and not in fact
used, is less as users know that if a feature is not in the current increment then it can
be included in the next.
 The project can be temporarily abandoned if more urgent work emerges.
 Job satisfaction is increased for developers who see their labours bearing fruit at
regular, short, intervals.

Disadvantages

 Later increments might require modifications to earlier increments. This is known as


software breakage.
 Software developers may be more productive working on one large system than on a
series of smaller ones.
Rapid Application Development (RAD) Model

A software project can be implemented using this model if the project can be broken down
into small modules wherein each module can be assigned independently to separate teams.
These modules can finally be combined to form the final product.
Development of each module involves the various basic steps as in waterfall model i.e
analyzing, designing, coding and then testing, etc. as shown in the figure.

Another striking feature of this model is a short time span i.e the time frame for
delivery(time-box) is generally 60-90 days.

.
This model consists of 4 basic phases:
1. Requirements Planning –
It involves the use of various techniques used in requirements elicitation like
brainstorming, task analysis, form analysis, user scenarios, FAST (Facilitated
Application Development Technique), etc. It also consists of the entire structured plan
describing the critical data, methods to obtain it and then processing it to form final
refined model.

2. User Description –
This phase consists of taking user feedback and building the prototype using developer
tools. In other words, it includes re-examination and validation of the data collected in
the first phase. The dataset attributes are also identified and elucidated in this phase.
3. Construction –
In this phase, refinement of the prototype and delivery takes place. It includes the actual
use of powerful automated tools to transform process and data models into the final
working product. All the required modifications and enhancements are too done in this
phase.

4. Cutover –
All the interfaces between the independent modules developed by separate teams have
to be tested properly. The use of powerfully automated tools and subparts makes testing
easier. This is followed by acceptance testing by the user.

The process involves building a rapid prototype, delivering it to the customer and the taking
feedback. After validation by the customer, SRS document is developed and the design is
finalised.

Advantages –

 Use of reusable components helps to reduce the cycle time of the project.
 Feedback from the customer is available at initial stages.
 Reduced costs as fewer developers are required.
 Use of powerful development tools results in better quality products in comparatively
shorter time spans.
 The progress and development of the project can be measured through the various
stages.
 It is easier to accommodate changing requirements due to the short iteration time spans.

Disadvantages –

 The use of powerful and efficient tools requires highly skilled professionals.
 The absence of reusable components can lead to failure of the project.
 The team leader must work closely with the developers and customers to close the
project in time.
 The systems which cannot be modularized suitably cannot use this model.
 Customer involvement is required throughout the life cycle.
 It is not meant for small scale projects as for such cases, the cost of using automated
tools and techniques may exceed the entire budget of the project.

Verification and Validation

Verification is the process of checking that a software achieves its goal without any bugs.
It is the process to ensure whether the product that is developed is right or not. It verifies
whether the developed product fulfills the requirements that we have. Verification is static
testing.
Verification means Are we building the product right?

Validation is the process of checking whether the software product is up to the mark or in
other words product has high level requirements. It is the process of checking the validation
of product i.e. it checks what we are developing is the right product. it is validation of
actual and expected product. Validation is the dynamic testing.
Validation means Are we building the right product?

The difference between Verification and Validation is as follow:

Verification Validation

It includes checking documents, design, It includes testing and validating the actual
codes and programs. product.

Verification is the static testing. Validation is the dynamic testing.

It does not include the execution of the


code. It includes the execution of the code.

Methods used in verification are reviews, Methods used in validation are Black Box
walkthroughs, inspections and desk- Testing, White Box Testing and non-
checking. functional testing.

It checks whether the software meets the


It checks whether the software conforms to requirements and expectations of a customer
specifications or not. or not.

It can find the bugs in the early stage of the It can only find the bugs that could not be
development. found by the verification process.

The goal of verification is application and


software architecture and specification. The goal of validation is an actual product.

Validation is executed on software code with


Quality assurance team does verification. the help of testing team.

It comes before validation. It comes after verification.

It consists of checking of documents/files It consists of execution of program and is


and is performed by human. performed by computer.

You might also like