chapter 2 - system development approaches

Post on 22-Nov-2014

149 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CHAPTER 2: APPROACHES TO SYSTEM DEVELOPMENT

1

Learning Objectives2

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

Explain the differences between predictive SDLC and adaptive SDLC

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

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

The Systems Development Lifecycle

3

SDLC provides overall framework for managing systems 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 variation of SDLC

4

Choosing the Predictive vs. Adaptive Approach to the SDLC

Traditional Predictive Approach to the SDLC

5

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 – construct, test, train users, and install new system

Support – keep system running and improve

6

Information System Development Phases

SDLC and Problem Solving7

Organization recognizes problem (project planning)

Project team investigates, understands problem and solution requirements (analysis)

Solution is specified in detail (design) System that solves problem is built and

installed (implementation) System used, maintained, and enhanced to

continue to provide intended benefits (support)

Waterfall Model8

Waterfall model is an SDLC approach that assumes the various phases of a project can be completed sequentially – one phase leads into the next phase.

9

“Waterfall” Approach to the SDLC

10

Modified Waterfall Approachwith Overlapping Phases

Newer Adaptive Approaches to the SDLC

11

Based on spiral model Project cycles through development activities over and

over until project is complete Prototype created by end of each cycle Focuses on mitigating 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

12

The Spiral Life Cycle Model

Activities of Each SDLC Phase

13

Predictive or adaptive approach use SDLC

Activities of each “phase” are similar Phases are not always sequential Phases can overlap

Activities of Planning Phase of SDLC

14

Define business problem and scope Produce detailed project schedule Confirm project feasibility

Economic, organizational, technical, resource, and schedule

Staff the project (resource management) Launch project official announcement

Activities of Analysis Phase of SDLC

15

Gather information to learn problem domain Define system requirements Build prototypes for discovery of requirements Prioritize requirements Generate and evaluate alternatives Review recommendations with management

Activities of Design Phase of SDLC

16

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 system controls

Activities of Implementation Phase of SDLC

17

Construct software components

Verify and test

Convert data

Train users and document the system

Install the system

Activities of Support Phase of SDLC

18

Maintain system Small patches, repairs, and updates

Enhance system Small upgrades or enhancements to expand

system capabilities Larger enhancements may require separate

development project Support users

Help desk and/or support team

What are Methodologies?19

Comprehensive guidelines to follow for completing every SDLC activity

Collection of models, tools, and techniques

20

Relationships Among Components of a Methodology

What Are Models?21

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

Abstraction used to separate out aspect Diagrams and charts Project planning and budgeting aids

22

Some Models Used in System Development

What Are Tools?23

Software support that helps create models or other required project components

Range from simple drawing programs to complex CASE tools to project management software

24

Some Tools Used in System Development

http://www.sparxsystems.com/products/ea/index.html

What Are Techniques?25

Collection of guidelines that help analysts complete a system development activity or task

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

26

Some Techniques Used in System Development

Two Approaches to System Development

27

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

Structured System Development

28

Structure Programming Top-down Programming Structured Design Structured Analysis

Structured Programming29

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)

30

Three Structured Programming Constructs

Top-Down Programming31

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

32

Top-Down or Modular Programming

Structured Design33

What the set of programs should be What each program should accomplish How the programs should be organized

into a hierarchy

Main Principles of Structured Design

34

Loosely coupled – module is independent of other modules

Highly cohesive – module has one clear task

35

Structure Chart Created Using Structured Design Technique

Structured Analysis36

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 (DFD) and entity

relationship diagrams (ERD) show results of structured analysis

37

Data Flow Diagram (DFD)

38

Entity-Relationship Diagram (ERD)

39

Framework of Structured Development

Information Engineering (IE)40

Refinement to structured development Methodology with strategic planning, data

modeling, automated tools focus More rigorous and complete than SADT Industry merged key concepts from

structured development and information engineering approaches into traditional approach

Object-Oriented Approach41

Completely different approach to 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

Terminologies of O-O Approach

42

Object-oriented analysis (OOA) Object-oriented design (OOD) Object-oriented programming (OOP)

Object-oriented analysis (OOA)

43

Defines types of objects users deal with Shows use cases are required to

complete tasks

Object-oriented design (OOD)

44

Defines object types needed to communicate with people and devices in system

Shows how objects interact to complete tasks

Refines each type of object for implementation with specific language of environment

Object-oriented programming (OOP)

45

Writing statements in programming language to define what each type of object does

46

Class Diagram Created During OO Analysis

Current Trends in Development

47

More adaptive approaches The Unified Process (UP) Extreme Programming (XP) Agile Modeling Scrum

Details on each in Chapter 17

The Unified Process (UP)48

Object-oriented development approach Offered by IBM / Rational

Booch, Rumbaugh, Jacobson Unified Modeling Language (UML) used

primarily for modeling UML can be used with any OO

methodology UP defines four life cycle phases

Inception, elaboration, construction, transition

49

UP Reinforces Six Best Practices

50

Develop iteratively Define and manage system requirements Use component architectures Create visual models Verify quality Control changes

Extreme Programming (XP)51

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

Scrum53

For highly adaptive project needs Respond to situation as rapidly as

possible Scrum refers to rugby’s game

Both are quick, agile, and self-organizing Team retains control over project Values individuals over processes

Tools to Support System Development

55

Case Tools Drawing Tool

Microsoft Visio

56

CASE Tool Repository Contains All System Information

Summary57

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

Summary (continued)58

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

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

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

Summary (continued)59

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

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

CASE tools are designed to help analysts complete system development tasks

top related