TEAMWORK
TEAMWORK
REG. NO EB1/66836/23
EXPLANATION OF PHASES
Phases are related groups of development activities. The activities are;
• Initiation – the activities of the project are identified, approved and budgeted.
• Planning – activities to scope the project, plan and schedule the work and identify the
required resources.
• Analysis – this involves gathering and documenting the needs and expectations of
stakeholders. The requirements are analyzed to ensure they are clear complete and
feasible within the project scope.
• Design -designers define and structure the solution system by creating high level and
detailed designs based on the requirements.
• Implementation – developers write code based on the design specifications to build
solutions and database.
• Deployment - activities associated with data conversion, final testing and putting the
system into production.
• Maintenance – ongoing support, updates and enhancements are provided.
DIFFERENT MODELS WITH ADVANTAGES AND DISADVANTAGES
Waterfall Model
The system is divided into sequential phases and organized in linear order i.e. the output of one
phase become the input of the other phase.
Advantages
• Apart from the sequencing of activities, it addresses elements of quality management
through verification and validation, and configuration management by baselining
products at the end of the stage.
It does not have explicit means for exercising management control on a project.
• The linear and sequential nature makes it easy to understand and implement smaller
projects.
• Each phase has clearly defined milestones allowing the stakeholders to track progress and
assess project status easily.
• Since each phase must be completed before moving to the next, it promotes early
detection and resolution of issues reducing risk of major problems surfacing in the later
development process.
Disadvantages
• The problem is that the waterfall model assumes that the only role for users is in
specifying requirements, and that all requirements can be specified in advance
• There are many splash-back between the phase.
• There are high risk of requirement misunderstanding since the entire project’s
requirement are gathered and defined upfront.
• Late testing and feedback since testing is done towards the end of development cycle
after implementation phase therefore any defects may not be identified until late in the
process leading to potential delays.
Prototyping
Based on iterative approach for system development. A prototype of the system is developed.
Advantages
• The model is centered towards users’ involvement in analysis and design phase to
provide satisfactory system which reduces the chances of product rejection.
• Building a prototype helps in refining the requirements by visualizing the proposed
system and identifying the possible gaps in the early process.
• Allows for rapid iteration reducing overall development time and cost.
Disadvantages
• It is comprehensive but does not involve all user’s requirements.
• Rapid prototyping iterations may prioritize speed over code quality and maintainability
leading to technical debt.
• If stakeholders fail to see the value of prototyping there’s risk that the project may be
abandoned after investing time and resources in the prototype development leading to
wastage of efforts.
Waterfall Approach
This is a linear approach that divides the software development process into distinct phases such
as;
Requirement, design, implementation, testing, deployment and maintenance. Each phase usually
produces one or more models which becomes part of the report and states what has been
achieved in this phase and outlines the plan for the next phase.
It centers around planned work and is best suited for projects where requirements are clearly
defined.
Iterative Approach
by definition have an iterative component to the systems development. It allows the developer to
take a small segment of the application and develop it in a fashion that, at each recursion, the
application is improved. Each of the three main sections: requirements definition, system design,
and coding and testing are improved with each cycle through the process.
This approach breaks the development process into smaller cycles or iterations. Each iteration
includes planning, requirement analysis, design, implementation, testing and deployment.
Extreme programming
Extreme Programming Extreme Programming (XP) is an adaptive, Agile development
methodology that was created in the mid-1990s and attempt to take the best practices of software
development and extend them “to the extreme.”
A UP phase can be thought of as a goal or major emphasis for a particular portion of the project.
REFERENCE