Académique Documents
Professionnel Documents
Culture Documents
Waterfall model is the earliest, best-known and most commonly used methodology. It is a sequential
life cycle that is simple to understand and use. Each phase has to be completely finished before another
start which means no overlapping is allowed. The output of each phase serves as the input for the next
stage.
2. Design:
With the Business Case Documentation in hand prepared in Requirement Phase, Business Analysts
evaluate and start on the logical design the software by making use of the information and requirements
that are collected by the Project Managers. Based on the high-level design which has fulfilled all the
user requirements, System Analysts transform the high-level design to the physical design which put
hardware and software technology into consideration. System architecture is defined at Design Phase as
well.
3. Implementation:
Implementation Phase is where the actual code is written. Programmers develop the software according
to the instructions recorded on the documents prepared in Requirement and Design phases. Their
output is the Functional Specification which files all the details of the functions that are implemented.
4. Testing:
With the inputs from the Implementation Phase, testers in Testing Phase will draft the Test Plans based
of the Functional Specification. Programmers prepare the Test Plan in a check list to examine if every
function are executable as expected. Business Analysts prepare the Test Plan for the users which
focuses on meeting the user requirements. Finally, Quality Control (QC) experts gather all the
documentations from all previous phases and do an overall test on every aspect on a deeper level that
are documented including system architecture, technology used, etc.
5. Deployment:
After receiving a “PASS” from the Testing Phase, the product is said to be ready to release. Software or
Application will either be deployed to production servers or release for users to install on their own
machine.
6. Maintenance:
In reality, it is inevitable there are some defects or issues come up. In addition, the world keeps
changing every day and as a result enhancements are necessary from time to time. Maintenance Phase
is for catering such situation and deliver changes to the users again. Within Maintenance Phase, a
subset of SDLC Waterfall Model is involved.
Documentations for Waterfall Approach:
1. Requirement • Business Case Documentation
2. Design • Software Requirement Specification • Design Documentation Specification
3. Implementation • Functional Specification
4. Testing • Test Plans
5. Deployment • Deployment Plan • Contingency Plan
Applications of model:
Appropriate situations for using Waterfall Model in the SDLC:
- Limited amount of ambiguous or unconfirmed requirements
- A software that needs w ell-documented documentations
- Use of mature technologies and not dynamic
- Management can provide enough resources and experts to pick up the role at each phase
- Simple and small project
Disadvantages
- Cannot have scope change or requirement change
- Cannot preview the product until the deployment phase
- Not flexible to handle unexpected risks
- Limited communication with users as bounded to be done at the beginning and the end of the project
- More resources are needed and some of the teammates might be idle for a long duration
- Poor model for long or ongoing projects as the projects will probably never come to the end and reach
the last phase
Model 2: Iterative:
Iterative Model works on the simplified requirements which are the subset of the software or
application requirements. The “product” is iteratively enhanced and evolved to the final product for
deployment. It is called as a “build” for each iteration. So at each build, design amendments and new
functionalities are added to the product. With iterative model, the software is implemented by small
portions at a time.
3. Implementation:
Programmers develop the software according to the subset of design passed from Design Phase.
Functional Specification will be prepared for each subset of implementation.
4. Testing:
Programmers, business users and QC experts will all be involved for each subset of testing. However,
business users will only focus on the limited scope that is covered in the currently build but
programmer and QC experts have to cover all the implemented functions every time. In addition, for
the last build before going to the Deployment Phase, the three parties not only have to do the subset of
testing, they have to conduct the testing as a full system test as well.
5. Deployment:
With no difference from Waterfall Model, everything should be ready by this phase and a Deployment
Plan for release.
6. Maintenance:
Again, like Waterfall Model, it is inevitable that every software needs to be maintenance. Therefore, a
subset of SDLC Iterative Model is going to take part in Maintenance Phase.
Applications of model:
Appropriate situations for using Iterative Model in the SDLC:
- Major requirements are defined but the minor details might evolve when time goes
- New technologies are being used and there is a learning curve for the programmers to learn
- Resources are limited to do a huge project as if a small project or teammates are in contract rather
than permanent
- Very high risk as the goal of the project might change from time to time
Advantages and Disadvantages:
Advantages
- Easier to start on a complex project
- Preview the project periodically
- Parallel implementation is allowed
- Project can still be managed like waterfall Model with clear schedule and milestones
- Easier testing and troubleshooting at each build
- Support and less costly for scope or requirement change
- Suitable for huge and core projects
- Better communication with business users as feedback can be gather at each build
Disadvantages
- High risk due to system architecture and designs keep changing
- Issues might occur for integration of each build
- More management work to do to ensure each build can meet the standard
- Overlapping implementation could be chaotic
- Need more involvement of business users
- Easier but more time is needed for each testing as each testing have to cover all the previous works
Model 3: Agile:
Agile Model extends the advantages of Iterative Model and aims on user satisfaction and product
adaptability by rapid delivering of product. From Requirement phase to Deployment Phase, Agile
Model breaks the product into small builds. Instead of going back to Design Phase like Iterative Model
after each subset of testing, Agile Model goes to Deployment Phase and release the product. Thus, each
build contains of some new features and for the very last build it contains all the required features of
the software.
2. Design:
Very limited amount of time will be put on designing the software as a whole due to the uncertainty.
Designers mainly focus on the build that is working on but the goal of all the builds will still follow the
scope that is defined in the Business Case Documentation. Software Requirement Specification and
Design Specification Documentation are expected to be short and simple listing out what is covered in
the current build.
3. Implementation:
Programmers tend to have more “freedom” in Agile Model implementation due to the brief
documentation s provided. However, they are still required to follow strictly on the coding standard.
Functional Specification usually covers the core functions and skipping the details.
4. Testing:
A very high responsibility falls on the testers due to limited information found in the documentations
especially for the QC experts. Business users tend to test on a very high level or not even includes
business users in the Testing Phase.
5. Deployment:
Usually product release to users two – three (2-3) weeks after the requirements have been placed.
Deployment Plan tends to focus on how to deliver the product but with limited information of the
contingency plan because another build will be coming up tightly and the issue can be fixed there.
Applications of model:
- No detail information is provided from business users
- Features driven project
- Product requirements change dynamically
- Have resources on testing
- Close collaboration within the team
- Close relationship with business users
Disadvantages
- Very high risks for maintenance and extendability
- Not suitability for complex and core projects
- Project Managers have to foll ow closely at all time to check if the builds still following the scope that
is defined
- Depends heavily on business users’ feedback which could delay the projects and deliver wrong
product if business users are not sure what they actually want
- Too much individual dependency as not much documentation to follow
- Transfer of knowledge to new joiners could be hard due to lack of documentations
2. Data Modeling:
With the inputs of Business Modeling Phase, all the necessary information should have been identified.
At Data Modeling Phase, the identified information is transformed to certain data sets or data objects
which will be further evaluated and defined their relationships in relevance to the Business Model.
3. Process Modeling:
The defined data set passed from Data Modeling Phase will be further processed by adding business
information fl ow to achieve the business objectives that are identified at Business Modeling Phase.
Any changes or enhancements on the data sets will be done at Process Modeling Phase. Operation of
create, retrieve, update or delete (CRUD) of a data object should be defined at this phase as well.
4. Application Generation:
Automated tools will be used to convert all the Process Models into program code and pull them
together as a prototype.
Application of model:
- Business users tend to change their requirements from time to time due to the dynamic business
environment
- Software that is feasible to be modularized
- Software that is acceptable to be delivered part by part
- Designers who have the business knowledge and know the relationship between prototypes
- For companies that have enough budget to own automated code generator
Disadvantages
- Depending too much on the automated code generating tools
- Could have performance or technically issues with automation
- Costly automation tools
- Required skillful designers who have the business knowledge and the technical skills
- Limited to modularization available software
- Too much dependency on business users’ feedback and they have to be involved at the whole SDLC
RAD process
- Requirements could be too dynamic
- Not much documentations
- Highly depends on the Business Analysis Report