You are on page 1of 9

PRACTICAL 2

AIM: Identify Suitable Design and Implementation model from the


different software engineering models.

Types of Methodologies
The mechanism of methodology is mainly composed of the one or more techniques
in conjunction with the one of the models of software development. The prototyping
techniques, object oriented techniques which are the multiple ways in order to
implement the models such as incremental, waterfall and spiral models. During the
single project such kinds of mechanisms are matched as well as mixed. Thus the
methodology = techniques + models. Following are different kinds of methodologies
which are prepared on the basis of combination of techniques as well as models:

1) Waterfall Model (Life Cycle)

2) Prototyping Model (Life Cycle)

3) Iterative Enhancement Model

4) Incremental Model

5) The Spiral Model

6) Object Oriented Methodology

Introduction Methodologies

1) Waterfall Model:
This model is called as the waterfall model, because in this model the more
emphasizes is on the complete phase development before proceeding with the next
phase of the development. With the combination with some kinds phase
completions, establishment of the baseline is done which freezes the development
products at such point. If the current requirement is identified in order to change
these products, then the process of formal change is followed in order make the
change. Such kind of phases graphic representation during the software
development resembling the waterfall model downward flow.

2) Prototyping Model:
Waterfall model is basically designed for addressing the issues with the waterfall
model. In this model, the basic idea is that rather than freezing the requirements
before coding or designs we can proceed, using the throwaway prototype
requirements of the development understands. On the basis of requirements which
are currently known. The prototype development is inside contains the coding,
designing as well as testing. But each of these phases is not done very formally or
thoroughly. Thus using such kind of mechanism, end users can get the systems
actual feel, only because of the thing that prototype interactions will allow clients to
understand the requirements better way for the desired system.

3) Iterative Enhancement Model:


This model is trying to combine the features of models like waterfall as well as
prototyping models. The main idea behind such model is that development of the
software is done on the basis of incremental approaches, in which each and every
increment is adding the some kind of functional capability in the system still the
system is fully implemented. During the every step, extensions, designing and
modifications are made.

4) Incremental Model
Main idea in this model is that during the overlapping sections waterfall is performed
in order to attempt projects of waterfall model compensate which is done by
generating the earlier usable functionality. This kind of model may be needed the
overall requirements set that are small projects series. With the general objectives,
initially using the basic objective, incremental model is started.

5) Spiral Model
The model for the incremental is can be considered as the spiral model sometimes.
The view of the spiral model is illustrating the one of the strength of the previous
model in this section which is: system size grows while the resources can be held on
constant. The size of spiral is corresponds to the size of system, on the other hand
the distance among the coils indicating the resources. As the name indicating such
model has many cycles. The dimension of the radial representing cumulative cost
which is incurred while accomplishing the steps that are done so far as well as
dimension of angular representing the progress which is made during the
completing the every spiral cycle.

6) Object Oriented Methodology


As the name indicating, such methodology requiring using the object oriented
techniques which can be used during the requirement analysis, designing and
implementation phase of the system. Such kind of methodology asking for the
analyst for determining the systems objects, their behavior over the time or their
behavior in response to the events, as well as what kind of relations and
responsibilities an object has to with the other objects.

Advantages and Disadvantages

Advantages of Prototyping Model


Early functionality.

Providing the process in order to perfect the definition of requirments.

Providing the risk control.

Main focus of the documentation is on the end product rather than the evolution of
product.

Providing the basic specification which is embodied in the operating replica.

Disadvantages of Prototyping Model


This method is less applicable for the existing systems as compare to the existing
new systems development.

Suffering from the dirty documentaion.

Bad reputation in between the conservatives because of dirty and quick method.

Sometimes using this method system is developed with the poor performance.

Advantages of Iterative Method


Reliable software production.

This may be intrdouced gradually to an organization.

Disadvantages of Iterative Method


Complete sets of requirements are required.
Disciplined style may stifle creativity.

Advantages of Object-Oriented:
Problem owners can joining in producing the solution.

Maintenance costs are less due to the object oriented analysis which encourages the
complete set of solution.

This kind of model expresses the reality of users view.

Disadvantages of Object-Oriented
This is difficult for those methods which is having the structured analysis of
background.

This method may be difficult with the DoD-STD- 2167A.

[Ref.
http://codebetter.com/blogs/raymond.lewallen/archive/2005/07/13/129114.aspx ]

2.4 Details: Two Methodologies


In the following section, discussion and detailed working of the two models such as
incremental model and waterfall model.

1) Waterfall Model:
As we discussed the basic working this model in above section, in this section we will
take the overview of basic steps of the model in the software development:

Following figure shows the different phase in the development of the software. The
documentation included the documentation from each phase. The phases below the
detailed design phase include software as part of their output. Transition from phase
to phase is accomplished by holding a formal review that is attended by the
contractor and appropriate government agencies. These reviews provide the
government insight into the contractor’s progress. At critical points on the waterfall
model, baselines are established, the last of which is the product baseline.

As showing in above figure 1, as the name indicating waterfall model is made up of


sequentially of phases one after the next phase. In comparison with the other
software development models, following are some of the salient attributes of this
model:
This is the forma method.

This is like top down development approach.

This is consisting of phases which are independent and needs to be completed


sequentially.

This model is used in different ways:

Phases are combined,

The starting as well as ending points are different.

2) Incremental Method:
As we discussed in the last paragraph, the model of incremental is performing the
waterfall in the overlapping sections in order to attempt length compensation for the
waterfall model projects by generating the earlier useful functionality.

As compared to the waterfall model, a project which uses the incremental model is
starting with the general objectives. In this case, some part of such objectives are
defined as the requirements as well as are implemented, after that the next part of
these objective are considered and implemented, this process is continues until the
complete objective is achieved. However as compare to the complete requirements
general objectives can be uncomfortable for the management. Well defined
interfaces are needed due to the fact that few modules may be completed early
compare to others. This model is more flexible for the development of the websites
as compare to the software’s. Thus we selected incremental model for the same.

Difference between models

Properties of Model Water-Fall Model Incremental Model Spiral Model Rad Model

Planning in early stage Yes Yes Yes No

Returning to an earlier
No Yes Yes Yes
phase

Handle Large-Project Not Appropriate Not Appropriate Appropriate Not Appropriate

Detailed Documentation Necessary Yes but not much Yes Limited

Cost Low Low Expensive Low


Properties of Model Water-Fall Model Incremental Model Spiral Model Rad Model

Requirement Time boxed


Beginning Beginning Beginning
Specifications release

Flexibility to change Difficult Easy Easy Easy

Only at the
User Involvement Only at beginning Intermediate High
beginning

Promotes
Maintenance Least Typical Easily Maintained
Maintainability

Duration Long Very long Long Short

Risk Involvement High Low Medium to high risk Low

Framework Type Linear Linear + Iterative Linear + Iterative Linear

After completion of At the end of the After completion


Testing After every iteration
coding phase engineering phase of coding

Yes (As parallel


Overlapping Phases No No Yes
development is there)

Easily
Maintenance Least Maintainable Maintainable Yes
Maintainable

Re-usability Least possible To some extent To some extent Yes

Time-Frame Very Long Long Long Short

Working software At the end of the life- At the end of every At the end of every At the end of the
availability cycle iteration iteration life cycle

Rapid
Objective High Assurance Rapid Development High Assurance
development

Team size Large Team Not Large Team Large Team Small Team

Customer control over


Very Low Yes Yes Yes
administrator

Diagram for selected model and its description.


For our proposed application we have to use the method of Incremental approach
which is best suitable for such kinds of applications. Because of the following benefits
listed below.
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.

The system is put into production when the first increment is delivered. The first
increment is often a core product where the basic requirements are addressed,
and supplementary features are added in the next increments. Once the core
product is analyzed by the client, there is plan development for the next
increment.

Characteristics of an Incremental module includes


 System development is broken down into many mini development
projects
 Partial systems are successively built to produce a final total system
 Highest priority requirement is tackled first
 Once the requirement is developed, requirement for that increment are
frozen

Incremental Phases Activities performed in incremental phases

Requirement Analysis  Requirement and specification of the software are collected

Design  Some high-end function are designed during this stage

Code  Coding of software is done during this stage

Test  Once the system is deployed, it goes through the testing phase

When to use Incremental models?


 Requirements of the system are clearly understood
 When demand for an early release of a product arises
 When software engineering team are not very well skilled or trained
 When high-risk features and goals are involved
 Such methodology is more in use for web application and product based
companies

Justification
 Generates working software quickly and early during the software life cycle.
 More flexibleless costly to change scope and requirements.
 Easier to test and debug
 during a smaller iteration.
 Each iteration is an easily managed milestone.
 Due to iteration each phase complete within time period.
Agile Methodologies
Agile methodologies are the best candidates for e-commerce systems that
incorporate the innovative and dynamic nature of the web. Agile web development is
a development model for web applications that follow the same concept as the agile
methodologies. This approach is more efficient and powerful to ensure every piece of
functionality is delivered early in the development stage and improves throughout
the life of the web application.

Agile web development has the following characteristics according to Clark (2008):

Iterative and incremental development methods that is aimed to deliver the


application at shorter period of time;

The production progress is measured based on the complete and tested features
during the schedule release of the application;

Tasks are broken down into smaller increments that make it more adaptable to some
changes;

A working application is the principal measure of the development progress.

This methodology follows planning, requirements analysis, designing, coding, testing


and documentation in parallel during the stage of production process. Customer
involvement during the development process by getting their feedback improves the
confidence of making changes, error free, and customer-oriented approach.

Agile web methodologies also cover the following approaches that are presented in
this paper: feature driven development (FDD), adaptive software development (ASD),
and dynamic systems development method (DSDM).

You might also like