Modern Systems Analysis
and Design
       Chapter 1
The Systems Development
      Environment
Learning Objectives
   Define information systems analysis and design.
   Describe the information Systems Development Life
    Cycle (SDLC).
   Explain Rapid Application Development (RAD),
    prototyping, Computer Aided Software Engineering
    (CASE), and Service-Oriented Architecture (SOA).
   Describe agile methodologies and eXtreme
    programming.
   Explain Object Oriented Analysis and Design and the
    Rational Unified Process (RUP).
                                                          2
Introduction
   Information Systems Analysis and Design
     Complex  organizational process
     Used to develop and maintain computer-
      based information systems
     Used by a team of business and systems
      professionals
                                               3
Introduction (Cont.)
   FIGURE 1-1 An organizational approach to systems analysis and
   design is driven by methodologies, techniques, and tools
                                                                   4
A Modern Approach to Systems
Analysis and Design
 1950s: focus on efficient automation of
  existing processes
 1960s: advent of 3GL, faster and more
  reliable computers
 1970s: system development becomes
  more like an engineering discipline
                                            5
A Modern Approach to Systems
Analysis and Design (Cont.)
 1980s: major breakthrough with 4GL,
  CASE tools, object oriented methods
 1990s: focus on system integration, GUI
  applications, client/server platforms,
  Internet
 The new century: Web application
  development, wireless PDAs, component-
  based applications
                                            6
A Modern Approach to Systems
Analysis and Design (Cont.)
   Application Software
     Computer   software designed to support
      organizational functions or processes
   Systems Analyst
     Organizational role most responsible for
      analysis and design of information systems
                                                   7
Developing Information Systems
   System Development Methodology is a
    standard process followed in an
    organization to conduct all the steps
    necessary to analyze, design, implement,
    and maintain information systems.
                                               8
Systems Development Life
Cycle (SDLC)
   Traditional methodology used to develop,
    maintain, and replace information systems.
   Phases in SDLC:
     Planning
     Analysis
     Design
     Implementation
     Maintenance
                                                 9
Standard and Evolutionary Views of
SDLC
                                     FIGURE 1-3 Evolutionary model
FIGURE 1-2
The systems development life cycle
                                                                 10
Systems Development Life Cycle
(SDLC) (Cont.)
 Planning – an organization’s total
  information system needs are identified,
  analyzed, prioritized, and arranged
 Analysis – system requirements are
  studied and structured
                                             11
Systems Development Life Cycle
(SDLC) (Cont.)
 Design – a description of the
  recommended solution is converted into
  logical and then physical system
  specifications
 Logical design – all functional features of
  the system chosen for development in
  analysis are described independently of
  any computer platform
                                            12
Systems Development Life Cycle
(SDLC) (Cont.)
   Physical design – the logical
    specifications of the system from logical
    design are transformed into the
    technology-specific details from which all
    programming and system construction can
    be accomplished
                                             13
Systems Development Life Cycle
(SDLC) (Cont.)
 Implementation – the information system
  is coded, tested, installed and supported in
  the organization
 Maintenance – an information system is
  systematically repaired and improved
                                            14
15
The Heart of the Systems Development Process
FIGURE 1-7                                  FIGURE 1-8
The analysis–design–code–test loop          The heart of systems development
       Current practice combines analysis, design, and implementation
       into a single iterative and parallel process of activities.
Traditional Waterfall SDLC
                               One phase begins
                               when another
                               completes, with
                               little backtracking
                               and looping.
FIGURE 1-9
A traditional waterfall SDLC
                                                17
Problems with Waterfall Approach
 System requirements “locked in” after
  being determined (can't change)
 Limited user involvement (only in
  requirements phase)
 Too much focus on milestone deadlines of
  SDLC phases to the detriment of sound
  development practices
                                         18
Different Approaches to Improving
Development
 Prototyping
 CASE   Tools
 Rapid Application Development
  (RAD)
 Agile Methodologies
 eXtreme Programming
                                    19
Prototyping
   Prototyping
     Isa form of Rapid Application Development.
     Building a scaled-down working version of the system
     Advantages:
          Users are involved in design
          Captures requirements in concrete form
                                                         20
Computer-Aided Software
Engineering (CASE) Tools
 Diagramming tools enable graphical
  representation.
 Computer displays and report generators
  help prototype how systems “look and
  feel”.
                                            21
Computer-Aided Software
Engineering (CASE) Tools (Cont.)
 Analysis tools automatically check for
  consistency in diagrams, forms, and
  reports.
 A central repository provides integrated
  storage of diagrams, reports, and project
  management specifications.
                                              22
Computer-Aided Software
Engineering (CASE) Tools (Cont.)
 Documentation generators standardize
  technical and user documentation.
 Code generators enable automatic
  generation of programs and database
  code directly from design documents,
  diagrams, forms, and reports.
                                         23
CASE Tools (Cont.)
                     FIGURE 1-10
                     A class diagram from
                     IBM’s Rational Rose
                     (Source: IBM)
                                      24
CASE Tools (Cont.)
                     25
Rapid Application Development
(RAD)
 Methodology   to radically decrease
  design and implementation time
 Involves: extensive user involvement,
  prototyping, JAD sessions, integrated
  CASE tools, and code generators
                                      26
Rapid Application Development
(RAD) (Cont.)
                  FIGURE 1-11
                  RAD life cycle
                                   27
Service-Oriented Architecture
(SOA)
 An approach to systems development
 based on building complete systems
 through assembling software
 components, each of which model
 generic business functions
                                   28
Service-Oriented Architecture (SOA)
              (Cont.)
             FIGURE 1-12
             Illustration of a service, a credit check,
             used by applications and other services
                                                          29
Agile Methodologies
 Motivated by recognition of software
  development as fluid, unpredictable, and
  dynamic
 Three key principles
     Adaptive rather than predictive
     Emphasize people rather than roles
     Self-adaptive processes
                                             30
The Agile
Methodologies group
argues that software
development
methodologies
adapted from
engineering generally
do not fit with real-
world software
development.
                        31
When to use Agile Methodologies
   If your project involves:
     Unpredictable   or dynamic requirements
     Responsible and motivated developers
     Customers who understand the process and
      will get involved
                                                 32
eXtreme Programming
 Short, incremental development cycles
 Automated tests
 Two-person programming teams
                                          33
eXtreme Programming (Cont.)
 Coding and testing operate together
 Advantages:
     Communication    between developers
     High level of productivity
     High-quality code
                                            34
Object-Oriented Analysis and
Design (OOAD)
 Based   on objects rather than data or
  processes
 Object: a structure encapsulating
  attributes and behaviors of a real-
  world entity
                                           35
Object-Oriented Analysis and
Design (OOAD) (Cont.)
 Object  class: a logical grouping of
  objects sharing the same attributes
  and behaviors
 Inheritance: hierarchical
  arrangement of classes enable
  subclasses to inherit properties of
  superclasses
                                         36
Rational Unified Process (RUP)
 An object-oriented systems development
  methodology
 RUP establishes four phase of
  development: inception, elaboration,
  construction, and transition.
 Each phase is organized into a number of
  separate iterations.
                                             37
FIGURE 1-13
Phases of OOSAD-based development
                                    38
Our Approach to Systems
Development
 The SDLC is an organizing and guiding
  principle in this book.
 We may construct artificial boundaries or
  artificially separate activities and
  processes for learning purposes.
 Our intent is to help you understand all the
  pieces and how to assemble them.
                                             39