Methodologies and Algorithms

Methodologies and
Algorithms
DZIDULA KETEKU
The Waterfall lifecycle

The Waterfall lifecycle (also known as the linear-sequential lifecycle)
is a simple methodology. In the lifecycle, each phase can has to be
completed in order without doing any at the same time.
This diagram
shows the
waterfall
lifecycle
phases
The Waterfall lifecycle (Phases)

Requirement Analysis: This is where all the possible
requirements of the system are developed and
documented in a requirements specification
document.

System Design: The requirement specification is
studied to help produce the system design. The
system will help specify the hardware and the
system requirements. It also helps define the
overall system architecture.

Implementation: With help from help form the
system design, the system is developed in small
programs called units. Each unit is then tested.
This is called “Unit Testing”.
The Waterfall lifecycle (Phases)

Testing: All the units developed in the implementation phase are
integrated into a system after testing of each unit. After integrating
the units, the entire system is tested for any faults and failures.

Deployment: Once the functional and non functional testing is
done, the product is deployed in the customer environment or
released into the market.

Maintenance: This is done to make the product better for clients to
use.
The Waterfall lifecycle(advantages
and disadvantages)
Advantages
Disadvantages
Simple and easy to understand and
use
No working software is produced until
late during the life cycle.
Easy to manage due to the rigidity of
the model . each phase has specific
deliverables and a review process.
High amounts of risk and uncertainty.
Phases are processed and completed
one at a time.
Not a good model for complex and
object-oriented projects.
Works well for smaller projects where
requirements are very well
understood.
Poor model for long and ongoing
projects.
Agile methodologies

Agile methodologies handles every project differently and the
existing methods need to be tailored to best suit the project
requirements. In agile the tasks are divided to time boxes (small time
frames) to deliver specific features for a release.
The is an
illustration of the
Agile model.
Agile methodologies (advantages
and disadvantages)
Advantages
Disadvantages
Is a very realistic approach to software development
Not suitable for handling complex dependencies.
Promotes teamwork and cross training.
More risk of sustainability, maintainability and extensibility.
Functionality can be developed rapidly and
demonstrated.
An overall plan, an agile leader and agile PM practice is
a must without which it will not work.
Resource requirements are minimum.
Strict delivery management dictates the scope,
functionality to be delivered, and adjustments to meet
the deadlines.
Suitable for fixed or changing requirements
Depends heavily on customer interaction, so if customer
is not clear, team can be driven in the wrong direction.
Delivers early partial working solutions.
There is very high individual dependency, since there is
minimum documentation generated.
Good model for environments that change steadily.
Transfer of technology to new team members may be
quite challenging due to lack of documentation.
Extreme programming

Extreme programming (XP) is a methodology that uses to improve
software quality and responsiveness to changing customer
requirements.

XP is a for small and medium sized teams who are developing
software with vague or rapidly changing requirements. It is an agile
process that can

Extreme Programming consists of:

Pair Programming

Code Review

Unit Testing

Integration Testing
Extreme programming (phases)

Pair Programming: This is when two programmers work together on the
same station , One programmer (the driver) writes the code while the
other (the observer or navigator) reviews each line of code as it is typed
in. The two programmers switch roles frequently.

Code Review: This is a continuous method used to find mistakes
overlooked in the initial development phase and improve the overall
quality of the software.

Unit Testing: This is when units are individually and independently
inspected for proper operation.

Integration testing: This when units are combined and tested together. So
when the first part of the code is complete it is then tested. When the
second part of the code is complete you test it combined with the first
part of the cod and it goes on like that.
Extreme programming
(advantages and disadvantages)
Advantages
Disadvantages
Fast delivery of results
Requires discipline
Work well in projects with
undefined or changing
requirements
Requires much user input
The Spiral Model

Spiral model is a combination of iterative development process
model and sequential linear development model i.e. waterfall
model with very high emphasis on risk analysis.

The Spiral model is mainly used for risky projects.
This diagram
shows the spiral
model with all
the activities in
each phase
The Spiral Model (phases)

Identification: This phase starts with gathering the business
requirements in the baseline spiral. Identification of system
requirements, subsystem requirements and unit requirements are all
done in this phase.


This also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the
end of the spiral the product is deployed in the identified market.
Design: Design phase starts with the conceptual design in the
baseline spiral and involves architectural design, logical design of
modules, physical product design and final design in the
subsequent spirals.
The Spiral Model (phases)

Construct or Build: Construct phase refers to production of the
actual software product at every spiral. In the baseline spiral the
design is being developed and a POC (Proof of Concept) is
developed in this phase to get customer feedback.

Evaluation and Risk Analysis: Risk Analysis includes identifying,
estimating, and monitoring technical feasibility and management
risks, such as schedule slippage and cost overrun. After testing the
build, at the end of first iteration, the customer evaluates the
software and provides feedback.
The Spiral model (advantages and
disadvantages)
Advantages
Disadvantages
Changing requirements can be
accommodated.
Management is more complex.
Allows for extensive use of prototypes
End of project may not be known
early.
Requirements can be captured more
accurately.
Not suitable for small or low risk
projects and could be expensive for
small projects.
Development can be divided into
smaller parts and more risky parts can
be developed earlier which helps
better risk management.
Large number of intermediate stages
requires excessive documentation.
Users see the system early.
Process is complex
Rapid Application Development

The Rapid Application Development model (RAD) is based on
prototyping and iterative development with no specific planning
involved. The process of writing the software itself involves the
planning required for developing the product.
This diagram
shows the RAD
model
RAD (phases)

Business Modelling: The business model for the product under
development is designed depending on how information is passed
on. A complete business analysis is performed to find the vital
information for business. This includes: how it can be obtained; how
and when is the information processed and what are the factors
driving successful flow of information.

Data Modelling: The information gathered in the Business Modelling
phase is reviewed and analysed to form sets of data objects that
are vital for the business. The attributes of all data sets are identified
and defined. The relation between these data objects are
established and defined in detail in relevance to the business
model.
RAD (phases)

Process Modelling: The data object sets defined in the Data
Modelling phase are converted to establish the business information
flow needed to achieve specific business objectives as per the
business model. The process model for any changes or
enhancements to the data object sets is defined in this phase.
Process descriptions for adding , deleting, retrieving or modifying a
data object are given.

Application Generation: The actual system is built and coding is
done by using automation tools to convert process and data
models into actual prototypes.

Testing and Turnover: The overall testing time is reduced in RAD
model as the prototypes are independently tested during every
iteration. However the data flow and the interfaces between all the
components need to be thoroughly tested with complete test
coverage. Since most of the programming components have
already been tested, it reduces the risk of any major issues.
RAD (advantages and
disadvantages)
Advantages
Disadvantages
Changing requirements can be
accommodated.
Dependency on technically strong
team members for identifying business
requirements.
Progress can be measured.
Requires highly skilled
developers/designers.
Iteration time can be short with use of
powerful RAD tools.
High dependency on modelling skills.
Productivity with fewer people in short
time.
Requires user involvement throughout
the life cycle.
Reduced development time.
Increases reusability of components
Suitable for project requiring shorter
development times.