Unit2 (I)
Unit2 (I)
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.
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.
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.
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:
Software prototyping
lt is constructed and tested quickly and inexpensively in order to test out assumptions.
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 –
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
Disadvantages
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 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?
Verification Validation
It includes checking documents, design, It includes testing and validating the actual
codes and programs. product.
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 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.