Anda di halaman 1dari 33

Approaches to

System
Development
 System Development Life Cycle
 Approaches to System Development
Waterfall Model
 Prototype Model
 Spiral Model
 Extreme Programming
 Unified Process
 Agile Modeling
 Rapid Application Development
 Joint Application Development
System Development Life Cycle
• conceptual model that describes the phases involved in an
information system development project
• possible to complete some activities in one phase in parallel with
some activities of another phase
• phases are repeated as required until an acceptable system is found

• General steps of an SDLC methodology:


1. The existing system is evaluated.
2. The new system requirements are defined.
3. The proposed system is designed.
4. The new system is developed.
5. The system is put into use.
6. The new system should be evaluated once it is up and running.
System Development Life Cycle
System Development Life Cycle
•Planning Phase
• process of defining clear, discrete activities, and the work
needed to complete each activity within a single project
• primary objectives:
• identify the scope of the new system
• ensure that the project is feasible
• develop a schedule, resource plan, and budget for the remainder of the
project

Activities:
• define the problem
• confirm project feasibility
• produce the project schedule
• staff the project
• launch the project
System Development Life Cycle

•Analysis Phase
• understand and document the business needs
and the processing requirements of the new
system

Activities:
• gather information
• define system requirements
• build prototypes for discovery of requirements
• prioritize requirements
• generate and evaluate alternatives
• review recommendations with management
System Development Life Cycle
•Design Phase
•design the solution system based on the
requirements defined and decisions made during
the analysis phase

Activities:
• design and integrate the network
• design the application architecture
• design the user interfaces
• design the system interfaces
• design and integrate the database
• prototype for design details
• design and integrate the system controls
System Development Life Cycle
•Implementation Phase
•final system is built, tested, and installed
•ensure that the users are all trained and that the
organization is ready to benefit as expected from
use of the system

Activities:
• construct software components
• verify and test
• convert data
• train users and document the system
• install the system
System Development Life Cycle
•Maintenance Phase
•keep the system running productively during
the years following its initial installation

•upgrades or enhancements may be carried


out to expand the system’s capabilities

Activities:
• maintain the system
• enhance the system
• support the users
Approaches to System Development
•Traditional Approach
• also known as structured system development
• Includes three techniques:
• Structured analysis
• Structured design
• Loosely coupled
• Highly cohesive
• Structured programming
• A sequence of program statements
• A decision where one set of statements or another set of statements executes
• A repetition of a set of statements

•Object Oriented Approach


• views an information system as a collection of interacting
objects that work together to accomplish tasks
• system consists of objects
Approaches to System Development
•includes three techniques:
• Object-oriented analysis (OOA)
• defines all of the types of objects
• shows what user interactions are required

• Object-oriented design (OOD)


• defines all of the additional types of objects necessary to
communicate with people and devices in the system
• shows how the objects interact to complete the tasks
• refines the definition of each type of object

• Object-oriented programming (OOP)


• writing of statements using a programming language
Waterfall Model
• describes a development method that is linear and
sequential

• based on the metaphor that when one phase was finished,


the development proceeds to the next phase and there is no
going back

• does not accept the expected changes and revisions that


become necessary with most projects

• some alternatives include joint application development


(JAD), rapid application development (RAD), and spiral
model
Waterfall Model
Prototype Model

•systems development methodology in which


a prototype is built, tested, and then
reworked as necessary until an acceptable
prototype is finally achieved from which the
complete system or product can now be
developed
•an iterative, trial-and-error process that takes
place between developers and end users
Prototype Model
Prototype Model

• Advantages:
May provide the proof of concept necessary to attract funding
Early visibility of the prototype gives users an idea of what the final system
looks like
Encourages active participation among users and producer
Enables a higher output for user
Prototype Model
Cost effective (Development costs reduced)
Increases system development speed
Assists to identify any problems with the efficacy of earlier design,
requirements analysis and coding activities
Helps to refine the potential risks associated with the delivery of the system
being developed

• Disadvantages:
Possibility of causing systems to be left unfinished
Producer might produce a system inadequate for overall organization needs
User can get too involved where as the program can not be to a high
standard
Structure of system can be damaged since many changes could be made
Not suitable for large applications
Spiral Model

• combines the features of the prototyping model and the waterfall


model
• shows the life cycle as a spiral, starting in the center and works its
way around, over and over again, until the project is complete
• intended for large, expensive, and complicated projects
Spiral Model
Spiral Model
•General steps of Spiral Model:
1. The new system requirements are defined in details.
2. An initial design is created for the new system.
3. A first prototype of the new system is constructed from
the initial design.
4. A second prototype is evolved by a fourfold procedure:
(1) evaluating the first prototype in terms of its
strengths, weaknesses, and risks; (2) defining the
requirements of the second prototype; (3) planning
and designing the second prototype; (4) constructing
and testing the second prototype.
5. At the customer's option, the entire project can be
aborted if the risk is deemed too great.
Spiral Model
6. The existing prototype is evaluated in the same
manner as was the previous prototype, and, if
necessary, another prototype is developed from
it according to the fourfold procedure outlined
above.
7. The preceding steps are iterated until the
customer is satisfied that the refined prototype
represents the final product desired.
8. The final system is constructed based on the
refined prototype.
9. The final system is completely evaluated and
tested.
Spiral Model
• Advantages
Estimates of the budget and schedule become more
realistic as work progresses because of the questions that
have been raised
Easier to cope with the changes inherent to software
development
Software engineers can start working on the project
earlier rather than wading through a lengthy early design
process

• Disadvantages
A drawback of a spiral model is that estimates of budget
and time are harder to judge at the beginning of the
project since the requirements evolve through the
process.
Extreme Programming

• discipline of system development that follows a


specific structure that is designed to simplify and
expedite the process of developing new software
• developed by Kent Beck to be used with small
teams of developers who need to develop software
quickly in an environment of rapidly-changing
requirements
• emphases on its use of two-person programming
teams and having a customer on-site during the
development process
Extreme Programming
• Relevant parts of XP that relate to design specifications:
1. How planning, analysis, design, and construction are all fused
into a single phase of activity, and
2. Its unique way of capturing and presenting system requirements
and design specifications.

• In XP, coding and testing are related parts of the same


process, which means the programmers who write the code
can also develop the tests.
• The overall philosophy of XP is that code will be integrated
into the system it is being developed for and tested within a
few hours after it has been written.
Extreme Programming
•Advantages of pair programming practice:
More and better communication among developers
Higher levels of productivity
Higher-quality code
Reinforcement of the other practices in XP, such as the
code-and-test discipline

•Disadvantages:
Problems with unstable requirements
No documented compromises of user conflicts
Lack of an overall design specification or document
Unified Process
• object-oriented system development methodology offered
by Rational Software

• uses UML (a standard modeling notation for OO approach)


for system models

• designed to reinforce six “best practices” for system


development that are common to many system
development methodologies
• Develop iteratively
• Define and manage system requirements
• Use component architectures
• Create visual models
• Verify quality
• Control changes
Unified Process

•Four Phases
•Inception
•Elaboration
•Construction
•Transition

•defines disciplines within each phase to make


iterative development manageable

•defines roles played by developers and models


created during the project
Agile Modeling
•popularized by Scott Ambler
•practice-based methodology for modeling and
documentation of software-based systems
•proposed to be a collection of values, principles, and
practices for modeling software that can be applied
on software development project in a more flexible
manner
Core practices:
• Iterative and Incremental Modeling
• Teamwork
• Simplicity
• Validation
Agile Modeling
•Typical Agile modeling process would go like:
• Listen for user stories from the customer.
• Draw a logical workflow model to gain an appreciation for
the business decisions represented in the user story.
• Create new user stories based on the logical model.
• Develop some display prototypes. In doing so, show the
customer what sort of interface they will have.
• Using feedback from the prototypes and the logical
workflow diagrams, develop the system until you create a
physical data model.
Rapid Application Development

•emphasizes speed of development through


extensive user involvement in the rapid,
iterative, and incremental construction of a
series of functioning prototypes of a system
that eventually evolves into the final system
(or a version)
Rapid Application Development
Rapid Application Development
•Consider using RAD when:
• The team includes programmers and analysts who are
experienced with it
• There are pressing business reasons for speeding up a
portion of an application development
• Working with a novel ecommerce application and the
development team believes that the business can
sufficiently benefit over their competitors from being an
innovator if this application is among the first to appear
on the Web
• Users are sophisticated and highly engaged with the
organizational goals of the company
Rapid Application Development
• Advantages:
It is useful for projects in which the user requirements are uncertain or
imprecise.
It encourages active user and management participation, which increases end-
user enthusiasm for the project.
Projects have higher visibility and support because of the extensive user
involvement throughout the process.
Errors and omissions tend to be detected earlier in prototypes than in system
models.
The iterative approach is a more “natural” process because change is an
expected factor during development.

• Disadvantages:
RAD prototypes can easily solve the wrong problems since problem analysis is
abbreviated or ignored.
A RAD-based prototype may discourage analysts from considering other, more
useful technical alternatives.
The emphasis on speed can adversely impact quality because of ill-advised
shortcuts through the methodology.
Joint Application Development
• involves the client or end users in the design and
development of an application, through a succession of
collaborative workshops called JAD sessions
• developed in the late 1970s by Chuck Morris and Tony
Crawford
• thought to lead to faster development times and greater
client satisfaction
• a variation on JAD is the RAD which attempts to create an
application more quickly through strategies that include
fewer formal methodologies and reusing software
components
• allows for the simultaneous gathering and consolidating of
large amounts of information
• it opens up a lot of scope of inter-personal conflict

Anda mungkin juga menyukai