Group 4 - Methodology
Muhammad
Nur Khaliq Bin Norsalim 01DDT17F1039
Durratun
Nasihah Binti Che Lateh 01DIS17F1071
Muhammad
Syazwan Nadzmi Bin Mohd Salwazi 01DIS17F1073
Muhammad Arif
Bin Shahril Anuar 01DIS17f1079
Muhammad
Sufi Asraf Bin Sabri 01DIS17F1081
Daniel
Iskandar Agus Bin Faisal 01DIS17f1089
Ifwat
Irsyad Bin Shamsul Hadi 01DIS17f1091
Veennosh
Nedunchezhian 01DIS17F2019
Anbukarasee
Perumal 01DDT17F2052
Post 1 Waterfall
model
The
Waterfall Model was the first Process Model to be introduced. It is also
referred to as a linear-sequential life cycle model. It is very
simple to understand and use. In a waterfall model, each phase must be
completed before the next phase can begin and there is no overlapping in the
phases.
The
Waterfall model is the earliest SDLC approach that was used for software
development.
The
waterfall Model illustrates the software development process in a linear
sequential flow. This means that any phase in the development process begins
only if the previous phase is complete. In this waterfall model, the phases do
not overlap.
Waterfall
Model - Design
Waterfall
approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project. In "The Waterfall" approach, the whole
process of software development is divided into separate phases. In this
Waterfall model, typically, the outcome of one phase acts as the input for the
next phase sequentially.
The
following illustration is a representation of the different phases of the
Waterfall Model.
Phases in
Waterfall model
·
Requirement Gathering and Analysis - All possible requirements of the
system to be developed are captured in this phase and documented in a requirement
specification document.
·
System Design –
The requirement specifications from first phase are studied in this phase and
the system design is prepared.
·
Implementation –
With inputs from the system design, the system is first developed in small
programs called units, which are integrated in the next phase.
·
Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit.
·
Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the
market.
·
Maintenance −
There are some issues which come up in the client environment. To fix those
issues, patches are released.
Application
Every software
developed is different and requires a suitable SDLC approach to be followed
based on the internal and external factors. Some situations where the use of
Waterfall model is most appropriate are −
·
Requirements are very well documented, clear and
fixed.
·
Product definition is stable.
·
Technology is understood and is not dynamic.
·
There are no ambiguous requirements.
·
Ample resources with required expertise are
available to support the product.
·
The project is short.
Advantages
The advantages of waterfall development are that it
allows for departmentalization and control. A schedule can be set with
deadlines for each stage of development and a product can proceed through the
development process model phases one by one.
Development moves from concept, through design, implementation,
testing, installation, troubleshooting, and ends up at operation and
maintenance. Each phase of development proceeds in strict order.
Some of the major advantages of the Waterfall Model
are as follows −
·
Simple
and easy to understand and use
· Easy
to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
·
Phases
are processed and completed one at a time.
·
Works
well for smaller projects where requirements are very well understood.
·
Clearly
defined stages.
·
Well
understood milestones.
·
Easy
to arrange tasks.
·
Process
and results are well documented.
Disadvantages
The disadvantage of waterfall development is that it
does not allow much reflection or revision. Once an application is in the
testing stage, it is very difficult to go back and change something that was
not well-documented or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as
follows −
·
No
working software is produced until late during the life cycle.
·
High
amounts of risk and uncertainty.
·
Not
a good model for complex and object-oriented projects.
·
Poor
model for long and ongoing projects.
· Not
suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
·
It
is difficult to measure progress within stages.
·
Cannot
accommodate changing requirements.
·
Adjusting
scope during the life cycle can end a project.
· Integration
is done as a "big-bang. at the very end, which doesn't allow identifying
any technological or business bottleneck or challenges early.
Post 2
Iterative Model
What is
iterative model?
Iterative model is a particular implementation of a software development
life cycle (SDLC) that focuses on an initial, simplified implementation, which
then progressively gains more complexity and a broader feature set until the
final system is complete. When discussing the iterative method, the concept of
incremental development will also often be used liberally and interchangeably,
which describes the incremental alterations made during the design and implementation
of each new iteration.
Process of iterative model.
Unlike the more
traditional waterfall model, which
focuses on a stringent step-by-step process of development stages, the
iterative model is best thought of as a cyclical process. After an initial
planning phase, a small handful of stages are repeated over and over, with each
completion of the cycle incrementally improving and iterating on the software.
Enhancements can quickly be recognized and implemented throughout each
iteration, allowing the next iteration to be at least marginally better than
the last.
§
Planning
& Requirements: As
with most any development project, the first step is go through an
initial planning stage to map
out the specification documents, establish software or hardware requirements, and generally prepare for the
upcoming stages of the cycle.
§
Analysis
& Design:
Once planning is complete,
an analysis is performed to
nail down the appropriate business logic, database models, and the like that
will be required at this stage in the project. The design stage also occurs here, establishing any technical
requirements (languages, data layers, services, etc) that will be utilized in
order to meet the needs of the analysis stage.
§
Implementation: With the planning and analysis out of the way, the
actual implementation and
coding process can now begin. All planning, specification, and design docs up
to this point are coded and implemented into this initial iteration of the
project.
§
Testing: Once this current build iteration has been
coded and implemented, the next
step is to go through a series of testing procedures
to identify and locate any potential bugs or issues that have have cropped up.
§
Evaluation: Once all prior stages have been completed,
it is time for a thorough evaluation of
development up to this stage. This allows the entire team, as well as clients
or other outside parties, to examine where the project is at, where it needs to
be, what can or should change, and so on.
Advantages
·
Implemented
during the earlier stages of the development process.
·
Allows
the team to find functional or design related flaws as early as possible.
·
Easily
adaptable to the ever changing needs of the project as well as the client.
·
It is
best suited for agile organisations.
·
Parallel
development can be planned.
·
Less
time is spent on documenting and more on designing
Disadvantages
·
To implement iterative model more resources may be
required.
·
It is not suitable for smaller projects.
·
Project progress is highly dependent upon the risk
analysis phase.
·
Defining increments may require definition of the
complete system.
·
It is not very suitable for changing requirements.
·
More management attention is required.
Post 3 Agile
methodology
Agile methodology is a practice that
promotes continuous iteration of
development and testing throughout the software development lifecycle of the
project. Both development and testing activities are concurrent unlike the
Waterfall model
Value
1. Focus should be more on individuals and
interactions instead of processes and tools
2. Working software is more important that
comprehensive documentation
3. Customer collaboration is more vital than
contract negotiation
4. The process should respond to change rather
than follow a plan
Principles
1. Deliver customer satisfaction
by delivering valuable software continuously
2. Always accept change of
requirements matter how early or late in the project
3. Deliver software that works
within a shorter timescale
4. Both developers and business
professionals must work closely together daily throughout the duration of the
project
5. Information is best transferred
between parties in face-to-face conversations
6. Motivate people to build a
project by creating an environment of appreciation, trust, and empowerment
7. Working software is the key
measure of progress
8. The agile process promotes
sustainable development
9. Continuous attention to
excellence and quality in technical development and design boosts the agility
10. 10
Simplicity is a vital part of effective agile management
11. Self-organized teams produce the best architecture, requirements, and
design
12. Teams should reflect through inspection and adaption to be more
effective
Step
1. Requirement
The purpose of this phase is to investigate all the requirement and
problem for this project. The investigation is anticipated step because the
outcome will affect whole development process. A key part of the investigation
is a feasibility study that reviews anticipated cost and benefit and recommends
a course of action based on operational, technical, and economic
2. Design and Analysis
The purpose of the analysis and design phase is to design a model of the
system. The first step is brainstorming about the system design, where we
documented what the system must have. Analysis and design is important to
determine what the system needs, as well as how they can be met, who will be
responsible for individual pieces of the project, and what sort of timeline
should be expected.
3. Build
The purpose of build phase is to create a physical model that will
satisfy all documented needs for the system design. At this stage, we design
the interface of the system and identify the necessary needs for the system.
4. Test
The testing phase is where we focus on investigation and discovery if
the system have any errors.
5. Iteration
The evaluation phase is where we focus to test the system if it can run
without any problems and maintain the system so that it can be used.
Post 4
Reuse-oriented model
The reuse-oriented model, also called reuse-oriented
development (ROD), is a method of software development in which a program
is refined by producing a sequence of prototypes called models, each of which
is automatically derived from the preceding one according to a sequence of
defined rules.
The reuse-oriented model can reduce the
overall cost of software development compared with more tedious manual methods.
It can also save time because each phase of the process builds on the previous
phase which has already been refined. When carefully carried out, ROD can
minimize the likelihood of errors or bugs making their way into the final
product.
The reuse-oriented model is not always
practical in its pure form because a full repertoire of reusable components may
not be available. In such instances, some new program components must be
designed. If not thoughtfully done, ROD can lead to compromises in perceived
requirements, resulting in a product that does not fully meet the needs of its
intended users.
1. Component Analysis:- According to given
requirement, component is selected to implement that requirement specification.
That is not possible the selected component provide the complete functionality,
but that is possible the component used provide some of the functionality required.
2. Requirement Modification:- Information about component
that is selected during component analysis is used to analysis requirement
specification. Requirements are modified according to available components.
Requirement modification is critical then component analysis activity is reused
to find relative solution.
3. System design with reuse:- During this stage the design
of the system is build. Designer must consider the reused component and
organize the framework. If reused component is not available then new software
is develop.
4. Development and Integration:- Components and COTS system are
integrated to develop new software. Integration in this model is part of
development rather than separate activity.
Advantages
1. It can reduce the overall cost
of software development as compared to other model.
2. It can reduce the risk.
3. It can save the time of
software development. b/c testing of component is minimize.
4. Faster delivery of software.
Disadvantages
1. Reuse-oriented model is not
always practical in its pure form.
2. Compromises in Requirement may
lead to a system that does not meet the real requirement of the user.
3. Organization using the reusable
component, are not able to control the new version of component, this may lead
to lost control over the system evolution.
Comments
Post a Comment