Tutorial Lab 2 (Group 3)
MUHAMMAD AZWAN BIN JOHAN (01DIS17F1031)
THEVA KUMARAN A/L RAMAN
(01DIS17F1028)
MUHAMMAD FATHULLAH
HADI BIN MOHAMMAD ALI (01DIS17F1027)
MUHAMMAD AZRUL AZIB
BIN FAKHRUL ARIFIN (01DIS17F1018)
MUHAMMAD SHAZWAN BIN
MOHAMED SHAFIEE (01DIS17F1004)
MUHAMMAD FADTHI BIN MD
SUKRI (01DDT17F2013)
ADAM YUSSOF BIN
MARZUKI (01DDT17F2010)
DARRSHANA MURTHY
(01DDT17F2007)
DIVAGARAN A/L SRI
SELVAM (01DDT17F2019)
Waterfall Model
Introduction
-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.
Definition
The sequential phases in Waterfall model are −
• 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. This system design helps in specifying
hardware and system requirements and helps in defining the overall system
architecture.
• Implementation
− With inputs from the system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit
Testing.
• Integration
and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
• 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. Also to enhance the product some better versions
are released. Maintenance is done to deliver these changes in the customer
environment.
All these phases are cascaded to each other in which
progress is seen as flowing steadily downwards (like a waterfall) through the
phases. The next phase is started only after the defined set of goals are achieved
for previous phase and it is signed off, so the name "Waterfall
Model". In this model, phases do not overlap.
Advantages and disadvantages
Advantages
• 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.
Disadvantages
• 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.
_
Iterative model
·
Iterative
model is vital part of SDLC, as it breaks down the development process of a
large software application into smaller pieces.
·
It
starts with a simple implementation of a small set of the software
Requirements, which iteratively enhances the evolving versions until the
complete system is implemented and ready to de deployed.
·
Each
release of the model is developed in a fixed time period and is called
iteration
When to use iterative model
·
The
requirements of the system and defined and understood clearly.
·
There
are some high-risk features and goals, which might change the future
Iterative process
·
Planning Phase: This is the first stage of the
iterative model, where proper planning is done by the team, which helps them in
mapping out the specifications documents, establish software or hardware
requirements and generally prepare for the upcoming stages of the cycle.
·
Analysis and Design Phase: Once the planning is complete for
the cycle, an analysis is performed to point out the appropriate business
logic, database models and to know any other requirements of this particular
stage. Moreover, the design stage also occurs in this phase of iterative model,
where the technical requirements are established that will be utilized in order
to meet the need of analysis stage.
·
Implementation Phase: This is the third and the most
important phase of the iterative model. Here, the actual implementation and
coding process is executed. All planning, specification, and design documents
up to this point are coded and implemented into this initial iteration of the
project.
·
Testing Phase: After the current build iteration is
coded and implemented, testing is initiated in the cycle to identify and locate
any potential bugs or issues that may have been in the software.
·
Evaluation Phase: The final phase of the Iterative
life cycle is the evaluation phase, where the entire team along with the
client, examine the status of the project and validate whether it is as per the
suggested requirements.
Advantage of Iterative model
• It is easily adaptable to the ever
changing needs of the project as well as the client.
• It is best suited for agile
organisations.
• It is more cost effective to change
the scope or requirements in Iterative model.
• Parallel development can be planned.
• Testing and debugging during smaller
iteration is easy.
• Risks are identified and resolved
during iteration; and each iteration is an easily managed.
Disadvantage of Iterative model
• More resources may be required.
• Although cost of change is lesser, but
it is not very suitable for changing requirements.
• More management attention is required.
• It is not suitable for smaller
projects.
• Highly skilled resources are required
for skill analysis.
• Project progress is highly dependent
upon the risk analysis phase.
• Defining increments may require
definition of the complete system.
AGILE
MODEL
Agile
model is a combination of iterative and incremental
process models with focus on process adaptability and customer satisfaction by
rapid delivery of working software product. Agile Methods break the product
into small incremental builds. These builds are provided in iterations. Each
iteration typically lasts from about one to three weeks. Every iteration
involves cross functional teams working simultaneously on various areas like −
- Planning
- Requirements Analysis
- Design
- Coding
- Unit Testing and
- Acceptance Testing.
At the end of the iteration, a working
product is displayed to the customer and important stakeholders.
What is AGILE?
Agile model believes that every project
needs to be handled 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.
Iterative approach is taken and working
software build is delivered after each iteration. Each build is incremental in
terms of features; the final build holds all the features required by the
customer.
1.1 Graphical Illustration of Agile
Model
Agile
principle
·
Individuals
and interactions −
In Agile development, self-organization and motivation are important, as are
interactions like co-location and pair programming.
·
Working
software − Demo
working software is considered the best means of communication with the
customers to understand their requirements, instead of just depending on
documentation.
·
Customer
collaboration − As
the requirements cannot be gathered completely in the beginning of the project
due to various factors, continuous customer interaction is very important to
get proper product requirements.
·
Responding
to change − Agile
Development is focused on quick responses to change and continuous development.
Agile VS Traditional Model
Agile is based on the adaptive software development methods,
whereas the traditional SDLC models like the waterfall model is based on a
predictive approach. Predictive teams in the traditional SDLC models usually
work with detailed planning and have a complete forecast of the exact tasks and
features to be delivered in the next few months or during the product life
cycle.
Pros
and Cons
Pros :-
·
Is a
very realistic approach to software development.
·
Promotes
teamwork and cross training.
·
Functionality
can be developed rapidly and demonstrated.
·
Resource
requirements are minimum.
·
Suitable
for fixed or changing requirements
Cons :-
·
Not
suitable for handling complex dependencies.
·
More
risk of sustainability, maintainability and extensibility.
·
An
overall plan, an agile leader and agile PM practice is a must without which it
will not work.
Agile
Methodology
1.Scrum
SCRUM is an agile development method which concentrates
specifically on how to manage tasks within a team-based development
environment. Basically, Scrum is derived from activity that occurs during a
rugby match. Scrum believes in empowering the development team and advocates
working in small teams (say- 7 to 9 members).
2.Crystal Methodologies
Crystal Methodology is
based on three concepts
- Chartering: Various
activities involved in this phase are creating a development team,
performing a preliminary feasibility analysis, developing an initial plan
and fine-tuning the development methodology
- Cyclic delivery: The
main development phase consists of two or more delivery cycles, during
which the
- Team
updates and refines the release plan
- Implements
a subset of the requirements through one or more program test integrate
iterations
- Integrated
product is delivered to real users
- Review
of the project plan and adopted development methodology
- Wrap Up: The
activities performed in this phase are deployment into the user
environment, post- deployment reviews and reflections are performed.
3.Dynamic Software Development Method (DSDM)
DSDM is a Rapid
Application Development (RAD) approach to software development and provides an
agile project delivery framework. The important aspect of DSDM is that the
users are required to be involved actively, and the teams are given the power
to make decisions. Frequent delivery of product becomes the active focus with
DSDM.
The techniques used in
DSDM:
- Time
Boxing
- MoSCoW
Rules
- Prototyping
The DSDM project consists of 7 phases
- Pre-project
- Feasibility
Study
- Business
Study
- Functional
Model Iteration
- Design
and build Iteration
- Implementation
- Post-project
4.Feature Driven
Development (FDD)
This method is focused around "designing &
building" features. Unlike other agile methods, FDD describes very
specific and short phases of work that has to be accomplished separately per
feature. It includes domain walkthrough, design inspection, promote to build,
code inspection and design. FDD develops product keeping following things in
the target
- Domain
object Modeling
- Development
by feature
- Component/
Class Ownership
- Feature
Teams
- Inspections
- Configuration
Management
- Regular
Builds
- Visibility
of progress and results
5.Lean Software
Development
Lean software development method is based on the
principle "Just in time production". It aims at increasing speed of
software development and decreasing cost. Lean development can be summarized in
seven steps.
- Eliminating
Waste
- Amplifying
learning
- Defer
commitment (deciding as late as possible)
- Early
delivery
- Empowering
the team
- Building
Integrity
- Optimize the whole
6.eXtreme Programming (XP)
Extreme Programming
technique is very helpful when there is constantly changing demands or
requirements from the customers or when they are not sure about the functionality
of the system. It advocates frequent "releases" of the product in
short development cycles, which inherently improves the productivity of the
system and also introduces a checkpoint where any customer requirements can be
easily implemented. The XP develops software keeping customer in the target.
REUSE-ORIENTED
MODEL
The system assembled from existing components. May be plan
driven or agile.
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.
Process stages
·
Component analysis;
·
Requirements modification;
·
System design with reuse;
·
Development and integration.
Example
-
Reuse-oriented model used in game development
o Assets of
games are often reused to save development time and cost so that they can focus
their time on more important tasks.
Advantages:
-
Reduces considerably the software to be developed “in-house”
-
Allows faster delivery
-
In principle, more reliable systems, due to using
previously tested components
Disadvantages:
-
Compromises in requirements are needed
-
Less control over the system’s evolution
-
Applicability:
-
When there is a pool of existing components that could
satisfy the requirements of the new product
Comments
Post a Comment