1 2011/12 object oriented technology 1 topic 1: approaches to system development reference: ch.2...

53
1 2011/12 Object Oriented Technology 1 Topic 1 : Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis & Design in a Changing World, 4 th Edition)

Upload: brittany-rich

Post on 12-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 1

Topic 1:Approaches to

System Development

Reference:

Ch.2 Approaches to System Development (Satzinger: Systems Analysis & Design in a

Changing World, 4th Edition)

Page 2: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 2

Learning Objectives

1. Explain the purpose and various phases of the systems development life cycle (SDLC)

2. Explain when to use an adaptive approach to the SDLC in place of a more predictive traditional SDLC

3. Explain the differences between a model, a tool, a technique, and a methodology

4. Describe the two overall approaches used to develop information systems: the traditional method and the object-oriented method

5. Know the current trends in system development: the Unified Process (UP), eXtreme Programming (XP), and Agile Modeling

Page 3: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 3

Overview

Systems development project

Planned undertaking with fixed beginning and end

Produces desired result or product

Can be a large job of thousands of hours of effort or a small one month project

Successful development project:

Provides a detailed plan to follow

Organized sequence of tasks and activities

Produces reliable, robust(考慮周全 ), and efficient system

Page 4: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 4

1. Systems Development Life Cycle (SDLC)

Systems development life cycle (SDLC)

Provides overall framework for managing system development process

Two main approaches to SDLC

Predictive approach – assumes project can be planned out in advance

Adaptive approach – more flexible, assumes project cannot be planned out in advance

All projects use some variations of SDLC

Page 5: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 5

1.1 Phases (or Stages) of the Systems Development Life Cycle (SDLC)

Page 6: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1Variations of SDLC

2011/12 Object Oriented Technology 6

Page 7: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 7

1.1.1 Phases of the Systems Development Life Cycle (SDLC)

Project Planning: initiate, ensure feasibility(可行性 ), plan schedule, obtain approval for project

Analysis: understand business needs and processing requirements

Design: define solution system based on requirements and analysis decisions

Implementation: construction, testing, user training, and installation of new system

Support: keep system running and improve

Page 8: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 8

1.1.2 The SDLC stages and deliverables

Stage Issues addressed DeliverablesProject Planning

What are the objectives & scope of the proposed system?What are the problems, needs and wishes of clients & users?What are the major risks involved?

List of requirements that can be used as a starting point for development.List of problem areas that fall within the scope of the proposed system.Assessment of risk factors.

Analysis What does the system look like from the perspective of the clients and users?

A set of models, each taking a different view of the system, which together give a complete picture. The models may be text, diagrams or early prototypes.

Page 9: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 9

1.1.2 The SDLC stages and deliverables (cont.)

Stage Issues addressed DeliverablesDesign How can the system

be constructed , so as to satisfy the requirements?

Models from the analysis stage, refined to illustrate the underlying architecture of the system. These models take account of technological considerations and constraints arising from the implementation environment.

Implementation How can the models be translated into code?

A fully test suite of programs.

Support What is needed to support clients and users so that they can use the new system effectively?

User manual, technical documentation, user training. Conversion from current system to new system.

Page 10: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 10

1.2 Choosing the Predictive vs. Adaptive Approach to the SDLC (Figure 2-1)

Page 11: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 11

1.2.1 Traditional Predictive Approaches to the SDLC

Waterfall Approach

Each phase falls into next phase

Once go over the waterfall for each phase, do not go back

Modified Waterfall Approach with Overlapping phases

More efficient

Page 12: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 12

1.2.1.1 “Waterfall” Approach to the SDLC

Page 13: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 13

1.2.1.2 Modified Waterfall Approachwith Overlapping Phases (Figure 2-5)

Page 14: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 14

1.2.2 Newer Adaptive Approaches to the SDLC Based on spiral(螺旋形 ) model

Project cycles through development activities over and over until project is complete

Prototype(Base line / reference point) created by end of each cycle

Focuses on lessening risk

Iteration – Work activities are repeated

Each iteration refines previous result

Approach assumes no one gets it right the first time

There are a series of mini projects for each iteration

Page 15: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 15

1.2.2.1 The Spiral Life Cycle Model (Figure 2-6)

Page 16: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 16

1.2.2.2Iteration of System Development Activities(Figure 2-7)

Page 17: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 17

2. Methodologies, Models, Tools and Techniques

1. Methodologies

Comprehensive guidelines to follow for completing every SDLC activity

Collection of models, tools, and techniques

2. Models

Representation of an important aspect of real world, but not same as real thing

Diagrams and charts

Project planning

Refer Figure 2-8

Page 18: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 18

Some Models Used in System Development

Page 19: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 19

2. Methodologies, Models, Tools and Techniques

3. Tools (Refer Fig 2-9)

Software support that helps create models or other required system components

Range from simple drawing programs to complex CASE tools

4. Techniques (Refer Fig 2-10)

Collection of guidelines that help analyst complete system development activity or task

Can be step-by-step instructions or just general advice

Page 20: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 20

Some Tools Used in System Development

Page 21: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 21

Some Techniques Used in System Development

Page 22: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 22

2.1 Relationships Among Components of a Methodology

Page 23: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 23

3. Two Approaches to System Development

Traditional approach

Also called structured system development

Structured analysis and design technique (SADT)

Includes information engineering (IE)

Object-oriented approach

Also called OOA, OOD, and OOP

Views information system as collection of interacting objects that work together to accomplish tasks

Page 24: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 24

3.1 Traditional Approach

Structured system development includes Structured programming Structured design Structured analysis

Page 25: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 25

3.1.1 Structured Programming Improves computer program quality Allows other programmers to easily read and

modify code Each program module has one beginning and

one ending Three programming constructs (sequence,

decision, repetition)

Page 26: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 26

Three Structured Programming Constructs

Page 27: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 27

3.1.2 Top-Down Programming

Divides complex programs into hierarchy of modules

The module at top controls execution by “calling” lower level modules

Modular programming

Similar to top-down programming

One program calls other programs to work together as single system

Page 28: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 28

Top-Down or Modular Programming

Page 29: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 29

3.1.3 Structured Design

Technique developed to provide design guidelines What set of programs should be What program should accomplish How programs should be organized into a

hierarchy

Modules are shown with structure chart Main principle of program modules

Loosely coupled – module is independent of other modules

Highly cohesive – module has one clear task

Page 30: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 30

Structure Chart Created Using Structured Design Technique

Page 31: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 31

3.1.4 Structured Analysis

Define what system needs to do (processing requirements)

Define data system needs to store and use (data requirements)

Define inputs and outputs

Define how functions work together to accomplish tasks

Data flow diagrams and entity relationship diagrams show results of structured analysis

Page 32: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 32

Data Flow Diagram (DFD) Created Using Structured Analysis Technique (Figure 2-15)

External entity

Data flow

Data store

process

Page 33: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 33

Entity-Relationship Diagram (ERD) Created Using Structured Analysis

Technique

Page 34: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 34

Structured Analysis Leads to Structured Design and Structured Programming (Figure 2-17)

Page 35: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 35

3.2 Object-Oriented Approach

Completely different approach to develop information systems

Views information system as collection of interacting objects that work together to accomplish tasks

Objects - things in computer system that can respond to messages

Conceptually, NO processes, programs, data entities, or files are defined – just objects

OO languages: Java, C++, C# .NET, VB .NET

Page 36: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 36

Object-Oriented Approach to Systems

Page 37: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 37

3.2 Object-Oriented Approach

Object-oriented analysis (OOA)

Object-oriented design (OOD)

Object-oriented programming (OOP)

Page 38: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 38

3.2.1 Object-Oriented Analysis

Object-oriented analysis (OOA)

Defines all of types of objects that do the work in the system

Shows what use cases are required for users to complete tasks

Page 39: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 39

3.2.2 Object-Oriented Design

Object-oriented design (OOD)

Defines all of types of objects needed to communicate with people and devices in system

Shows how objects interact to complete tasks

Refines each type of object so it can be implemented with a specific language or environment

Page 40: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 40

3.2.3 Object-Oriented Programming

Object-oriented programming (OOP)

Writing statements in programming language to define what each type of object does, including the messages that the objects send to each other

Page 41: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 41

Class Diagram Created During OO Analysis

Page 42: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 42

Benefits of Object-Oriented Approach

Naturalness

Objects are more natural since people usually think about their world in terms of objects, that is, people tend to talk about their work and discuss system requirements in terms of classes of objects

Reuse

Classes and objects can be invented once and used many times.

Page 43: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 43

4. SDLC Variations

Many variations of SDLC in practice Based on variation of names for phases

No matter which one, activities/tasks are similar

Page 44: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 44

Life Cycles with Different Names for Phases (Figure 2-20)

Page 45: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 45

5. Current Trends in System Development

1. The Unified Process (UP)

2. eXtreme Programming (XP)

3. Agile Modeling

Page 46: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 46

5.1 The Unified Process (UP) Object-oriented development approach

Views IS as collection of objects that work together to accomplish tasks

Is an iterative, evolutionary and adaptive method

Offered by IBM / Rational

Booch, Rumbaugh, Jacobson

Unified Modeling Language (UML) used primarily for modeling in UP

UP defines 4 life cycle phases

Inception(起始 ), Elaboration(演繹 ), Construction(製作 ), Transition(轉變 )

Page 47: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 47

Iterative and Evolutionary

One iteration

Requirements

Design

Implementation &Test & Integration

& More Design

Final Integration & System Test

Requirements

Design

3 weeks (for example)The system grows incrementally.

Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.

Iterations are fixed in length, or timeboxed.

Time

Implementation &Test & Integration

& More Design

Final Integration & System Test

Page 48: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 48

5.1 The Unified Process (UP) (continued)

UP reinforces 6 best practices

Develop iteratively

Define and manage system requirements

Use component architectures

Create visual models

Verify quality

Control changes

UP will be discussed in detail in Topic 2 **

Page 49: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 49

5.2 eXtreme Programming (XP)

Aim: Improve software quality

Recent, lightweight, development approach to keep process simple and efficient

Describes system support needed and required system functionality through informal user stories

Has users describe acceptance tests to demonstrate defined outcomes

Relies on continuous testing and integration, heavy user involvement, programming done by small teams

Page 50: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

15.2 eXtreme Programming (XP) (continued)

2011/12 Object Oriented Technology 50

Page 51: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 51

5.3 Agile Modeling

Hybrid of XP and UP, has more models than XP, less documents than UP

Deliver working software frequently

Teamwork: Business people and developers must work together daily throughout the project

Simplicity: use simple content

Validation: prove model is right with code

Page 52: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 52

Summary

System development projects are organized around the systems development life cycle (SDLC)

Some projects use a predictive approach to the SDLC, and others use a more adaptive approach to the SDLC

SDLC phases include project planning, analysis, design, implementation, and support

In practice, phases overlap, and projects contain many iterations of analysis, design, and implementation

Page 53: 1 2011/12 Object Oriented Technology 1 Topic 1: Approaches to System Development Reference: Ch.2 Approaches to System Development (Satzinger: Systems Analysis

1

2011/12 Object Oriented Technology 53

Summary (continued)

Models, techniques, and tools make up a system development methodology

System development methodology provides guidelines to complete every activity in the SDLC

System development methodologies are based on traditional approach or object-oriented approach

Current trends include: Unified Process (UP), Extreme Programming (XP) and Agile Modeling