- Safaa-Dalloul

advertisement
INTRODUCTION
UNIT 1: INTRODUCTION
Introduction
The SDLC
 Planning
 Analysis
 Design
 Implementation
Rapid Application Development
(RAD)
 Phased Development
 Prototyping
 Throwaway Prototyping
Agile Development
Development Methodologies
Extreme Programming
Structured Design
 Waterfall methodology
 Parallel Development
Selecting the appropriate
methodology
Exercises
The systems development
life cycle (SDLC) is the
process of understanding
how an information system
(IS) can support business
needs, designing the system,
building it, and delivering it
to users.
SDLC PHASES
SDLC Phases
Planning
Analysis
Design
Implementation
PHASE ONE: PLANNING
Focus: Why build this system? How to structure the project?
Primary Outputs:
Steps:
•
System Request with Feasibility Study.
 Identify opportunity
•
Project Plan
 Analysis feasibility
 Develop work plan
 Staff Project
 Control and direct project
PHASE TWO: ANALYSIS
Focus: Who, what, where, and when for this system?
Primary Outputs:
•
System proposal
Steps:
Develop analysis strategy
Determine business
requirements
Create use cases
Model processes
Model data
PHASE THREE: DESIGN
Focus: How will system work?
Primary Outputs:
•
System specification
Steps:
Design physical system
Design architecture
Design interface
Design programs
Design database and files
PHASE FOUR: IMPLEMENTATION
Focus: Delivery and support of completed system
Primary Outputs:
•
Installed system
Steps:
Construct System
Install system
Maintain system
Post-implementation
TRUE OR FALSE
System request is a primary output of design (
)
System specification with feasibility study is a primary output of planning (
System proposal is a primary output of analysis (
)
Installed system is a primary output of implementation (
)
)
TRUE OR FALSE
System request with feasibility study is a primary output of design ( F )
System specification is a primary output of planning ( F )
System proposal is a primary output of analysis ( T )
Installed system is a primary output of implementation ( T )
UNIT 1: INTRODUCTION
Introduction
The SDLC
 Planning
 Analysis
 Design
 Implementation
Development Methodologies
Structured Design
 Waterfall methodology
 Parallel Development
Rapid Application Development
(RAD)
 Phased Development
 Prototyping
 Throwaway Prototyping
Agile Development
 Extreme Programming
Selecting the appropriate
methodology
Exercises
A methodology is a formalized
approach to implementing the
SDLC (i.e., it is a list of steps
and deliverables).
The methodology will vary
depending on whether the
emphasis is on businesses
processes or on the data that
supports the business
Process-centered methodologies
focus first on defining the
activities associated with the
system
Data-centered
methodologies
focus first on defining the
contents of the data storage
containers and how the contents
are organized
Object-oriented methodologies
attempt to balance the focus
between processes and data.
Object-oriented methodologies
utilize the Unified Modeling
Language (UML) to describe the
system concept as a collection of
objects incorporating both data
and processes.
EXAMPLE
The open-ended rectangles in
the diagram represent data
storage containers
The rounded rectangles in
the diagram represent
activities performed
STRUCTURED DESIGN
• Structured design methodologies adopt a formal step-by-step
approach to the SDLC that moves logically from one phase to the
next
• Traditional structured design uses one set of diagrams to
represent the processes and a separate set of diagrams to
represent data .
• This category includes two methodologies waterfall and parallel
methodologies.
STRUCTURED DESIGN
Waterfall Methodology
With waterfall development-based methodologies, the analysts and users
proceed sequentially from one phase to the next
STRUCTURED DESIGN
Waterfall Methodology
STRUCTURED DESIGN
Waterfall Methodology
Advantages:
 System requirements are identified long before programming
begins
 Changes to the requirements are minimized as the project
proceeds
STRUCTURED DESIGN
Waterfall Methodology
Disadvantages:
 The design must be completely specified before programming
begins
 A long time elapses between the completion of the system
proposal in the analysis phase and the delivery of the system
STRUCTURED DESIGN
Parallel Methodology
STRUCTURED DESIGN
Parallel Methodology
This methodology attempts to address the long time interval between the
analysis phase and the delivery of the system
A general design for the entire system is performed and then the project is
divided into a series of distinct subprojects.
RAPID APPLICATION DEVELOPMENT (RAD)
• RAD-based methodologies adjust the SDLC phases to get some
part of the system developed quickly and into the hands of the
users.
• Most RAD-based methodologies recommend that analysts use
computer tools to speed up the analysis, design, and
implementation phases, such as CASE (computer-aided software
engineering) tools.
RAPID APPLICATION DEVELOPMENT (RAD)
• One possible subtle problem with RAD-based methodologies is
managing user expectations
• In this category we will study three different methodologies
Phased development, Prototyping development and Throwaway
development methodologies
RAPID APPLICATION DEVELOPMENT (RAD)
Phased Development
The phased development-based methodologies break the overall system
into a series of versions that are developed sequentially
Phased development-based methodologies have the advantage of quickly
getting a useful system into the hands of the users
The major drawback to phased development is that users begin to work with
systems that are intentionally incomplete
RAPID APPLICATION DEVELOPMENT (RAD)
Phased Development
RAPID APPLICATION DEVELOPMENT (RAD)
Prototyping
Prototyping-based methodologies perform the analysis, design and
implementation phases concurrently.
All three phases are performed repeatedly in a cycle until the system is
completed.
A prototype is a smaller version of the system with a minimal amount of
features
RAPID APPLICATION DEVELOPMENT (RAD)
Prototyping
RAPID APPLICATION DEVELOPMENT (RAD)
Prototyping
Advantage: Provides a system for the users to
interact with, even if it is not initially ready for use.
Disadvantage: Often the prototype undergoes such
significant changes that many initial design
decisions prove to be poor ones.
RAPID APPLICATION DEVELOPMENT (RAD)
Throwaway Prototyping
Throwaway prototyping methodologies are similar to prototyping based
methodologies.
The main difference is that throwaway prototyping IS completed during a
different point in the SDLC.
Has relatively thorough analysis phase.
RAPID APPLICATION DEVELOPMENT (RAD)
Throwaway Prototyping
AGILE DEVELOPMENT
• This category focuses on streamlining the SDLC by eliminating
much of the modeling and documentation overhead and the time
spent on those tasks.
• Projects emphasize simple, iterative application development.
• This category uses extreme programming, which is described
next
AGILE DEVELOPMENT
Extreme Programming
Is founded on four core values: communication, simplicity, feedback, and
courage.
Key principles of XP include:
 Continuous testing
 Simple coding
 Close interaction with the end users to build systems very quickly
AGILE DEVELOPMENT
Extreme Programming
UNIT 1: INTRODUCTION
Introduction
The SDLC
 Planning
 Analysis
 Design
 Implementation
Development Methodologies
Structured Design
 Waterfall methodology
 Parallel Development
Rapid Application Development
(RAD)
 Phased Development
 Prototyping
 Throwaway Prototyping
Agile Development
 Extreme Programming
Selecting the appropriate
methodology
Exercises
Selecting a methodology is not
simple, as no one
methodology is always best.
Many organizations have their
own standards.
The next figure summarizes
some important methodology
selection criteria
Structured Methodologies
Agile
RAD Methodologies
Methodologies
Ability to Develop systems
Waterfall
Parallel
Phased
Prototyping
Throwaway Prototyping
XP
With Unclear User Requirements
Poor
Poor
Good
Excellent
Excellent
Excellent
With Unfamiliar Technology
Poor
Poor
Good
Poor
Excellent
Poor
That are Complex
Good
Good
Good
Poor
Excellent
Poor
That are reliable
Good
Good
Good
Poor
Excellent
Good
With a short Time Schedule
Poor
Good
Excellent
Excellent
Good
Excellent
With Schedule Visibility
Poor
Poor
Excellent
excellent
Good
Good
EXERCISES
☺ Suppose you are a project manager using the waterfall
development methodology on a large and complex project. Your
manager has just read the latest article in Computerworld that
advocates replacing the waterfall methodology with prototyping
and comes to your office requesting you to switch What do you
say?
☺ Think about your ideal analyst position. Write a newspaper ad to
hire someone for that position. What requirements would the
job have? What skills and experience would be required? How
would applicants demonstrate that they have the appropriate
skills and experience?
Download