0% found this document useful (0 votes)
27 views

TEAMWORK

The document discusses different approaches to system development including predictive, adaptive, waterfall, prototyping, iterative, extreme programming, rapid application development, unified process and incremental models. It explains the phases, advantages and disadvantages of each approach.

Uploaded by

kevinkipkirui89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

TEAMWORK

The document discusses different approaches to system development including predictive, adaptive, waterfall, prototyping, iterative, extreme programming, rapid application development, unified process and incremental models. It explains the phases, advantages and disadvantages of each approach.

Uploaded by

kevinkipkirui89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Course Code: COSC 13O

COURSE NAME: SYSTEM ANALYSIS AND DEVELOPMENT


TOPIC: Approaches to System Development
STUDENT NAME: RYAN KIPKORIR

REG. NO EB1/66836/23

APPROACHES TO SYSTEM DEVELOPMENT


SYSTEM DEVELOPMENT LIFE CYCLE
This refers to the entire process of building, deploying, using and updating an information
system.

The SDLC uses two approaches in the system development namely;


Predictive approach
This approach assumes that the development project is planned in an advanced and the new
information system can be developed according to the plan. It works best for projects with stable
requirements and where changes are costly to implement later in the process.
Adaptive approach This approach assumes that the project must be more flexible and adapt to
changing needs as project progresses.

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.

It allows for feedback and adjustments leading to incremental improvements.

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.”

Extreme programming has these characteristics:

Takes proven industry best practices and focuses on them intensely


Combines those best practices in a new way to produce a result that is greater than the sum of its
parts The four core values of extreme programming- communication, simplicity, feedback,
Courage.

Practices carried out in extreme programming


• Planning which involves two aspects: business issues and technical issues. In XP, the
business issues are decided by the users and clients, whereas technical issues are
decided by the development team.
• Testing – Every new piece of software requires testing, and every methodology
includes testing. XP intensifies testing by requiring that the tests for each story be
written first—before the Systems Analysis and Design in a Changing World.
• Pair Programming – More than any other, this practice is one for which XP is famous.
First, one programmer might focus more on design and double-checking the
algorithms while the other writes the code. Then, they switch roles.
• Continuous integration – This practice embodies XP’s idea of “growing” the
software. Small pieces of code which have passed the unit tests are integrated into the
system daily or even more often.

Rapid Application Development Model (RAD)


• This model focuses on quickly developing prototypes based on the user’s feedback. It
aims to deliver working system in a shorter time frame by prioritizing user involvement,
prototyping and iterative development.
• In the rapid prototyping (sometimes called rapid application development) model, initial
emphasis is on creating a prototype that looks and acts like the desired product in order to
test its usefulness.
• The prototype is an essential part of the requirements determination phase, and may be
created using tools different from those used for the final product. Once the prototype is
approved, it is discarded and the "real" software is written.

The Unified Process (UP)


The Unified Process is an attempt to draw on the best features and characteristics of traditional
software process models, but characterize them in a way that implements many of the best
principles of agile software development.

A UP phase can be thought of as a goal or major emphasis for a particular portion of the project.

• The four phases of the UP-life cycle are;


• Inception – Develop an approximate vision of the system, make the business case, define
the scope, and produce rough estimates for cost and schedule.
• Elaboration – Define the vision, identify and describe all requirements, finalize the scope,
design and implement the core architecture and functions, resolve high risks, and produce
realistic estimates for cost and schedule. Transition Complete the beta test and
deployment so users have a working system and are ready to benefit as expected.
• Construction – Iteratively implement the remaining lower-risk, predictable, and easier
elements and prepare for deployment.
• Transition – Complete the beta test and deployment so users have a working system and
are ready to benefit as expected.
• The four UP phases define the project sequentially by indicating the emphasis of the
project team at any point in time. To make iterative development manageable, the UP
defines disciplines to use within each iteration.

Each iteration usually involves activities from all disciplines.

• The six main UP development disciplines are:


• Business modeling
• Requirements
• Design
• Implementation
• Testing Systems Analysis and Design in a Changing World
• Deployment
Incremental model
The incremental model divides the product into builds, where sections of the project are created
and tested separately.
This approach will likely find errors in user requirements quickly, since user feedback is
solicited for each stage and because code is tested sooner after it's written.
Spiral model
The model is based on a combination of linear and interactive approach for system development.
It focuses on the risk assessment and minimizing system risk by breaking the system into smaller
segments and provide opportunity to evaluate risks and weigh consideration of system
continuation throughout the life cycle.
Concurrent development model
The concurrent model is a method in which multiple phases of software development processes
are performed simultaneously (concurrently). The main goal of the concurrent development
model is to produce a final product that meets the customer's requirements while minimizing the
overall development time and cost.

REFERENCE

INTRODUCTIOON TO SOFTWARE ANALYSIS DESIGN 4TH EDITION

SOFTWARE ANALYSIS AND DESIGN 6TH EDITION

You might also like