17 systems analysis and design in a changing world, fifth edition

55
17 Systems Analysis and Design in a Changing World, Fifth Edition

Upload: morris-reed

Post on 19-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17Systems Analysis and Design in a Changing World, Fifth Edition

Page 2: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 2

Learning Objectives Explain the foundations for the adaptive development

methodologies

List and describe the features of the Unified Process system development methodology

List and describe the features of Agile Modeling

Compare and contrast the features of Extreme Programming and Scrum development

Explain the importance of Model-Driven Architecture on enterprise-level development

Describe frameworks and components, the process by which they are developed, and their impact on system development

Page 3: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 3

Overview

The IS discipline is dynamic and always changing More complex system requirements have

necessitated a whole new set of tools The Unified Process (UP) Radical, adaptive approaches, including Agile

Development, Extreme Programming, and Scrum Model-Driven Architecture for enterprise-level systems Object frameworks and components to increase

productivity and quality

Page 4: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 4

Software Principles and Practices

Ubiquitous computing is the current trend in our society

Using computer technology in every aspect of our lives

The effort to develop current solutions is demanding

Current trends in modeling and development processes use five important principles

Page 5: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 5

Five Software Principles and Practices Abstraction

Process of extracting core principles from a set of facts or statement

Models and modelling An abstraction of something in the real world, representing a particular

set of properties

Patterns Standard solutions to a given problem or templates that can be applied

to a problem

Reuse Building standard solutions and components that can be used over and

over again

Methodologies A process—including the rules, guidelines, and techniques—that defines

how systems are built

Page 6: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 6

Adaptive Approaches to Development

Opposite end of spectrum from predictive approaches (recall Chapter 2)

Allow for uncertainty

Use empirical controls, not predictive controls Describe processes that are variable and unpredictable

Monitor progress and make corrections on the fly

Page 7: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 7

Adaptive Approaches to Development— Characteristics

Less emphasis on up-front analysis, design, and documentation

More focus on incremental development

More user involvement in project teams

Reduced detailed planning Used for near-term work phases only

Tightly control schedules by fitting work into discrete time boxes

More use of small work teams that are self-organizing

Page 8: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 8

The Unified Process (UP)

Object-oriented system development methodology (system development process)

Offered by Rational/IBM, UP developed by Booch, Rumbaugh, and Jacobson

UP should be tailored to organizational and project needs

Highly iterative life cycle

Project will be use-case driven and modeled using UML

Page 9: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 9

The Unified Process Life Cycle

UP life cycle Includes four phases which consist of iterations

Iterations are “mini-projects”

Inception – develop and refine system vision

Elaboration – define requirements and design and implement core architecture

Construction – continue design and implementation of routine, less risky parts

Transition – move the system into operational mode

Page 10: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 10

The Unified Process Life Cycle

Figure 17-1

Page 11: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 11

UP Phases and Objectives

Figure 17-2

Page 12: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 12

The UP Disciplines

UP defines disciplines used within each phase

Discipline – set of functionally related development activities

Each iteration includes activities from all disciplines

Activities in each discipline produce artifacts – models, documents, source code, and executables

Learning CIS/MIS means learning techniques from these disciplines

Page 13: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 13

The UP Disciplines (continued)

Six main UP development disciplines

Business modeling, requirements, design, implementation, testing, and deployment

Three additional support disciplines

Project management, configuration and change management, and environment

Page 14: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 14

UP Disciplines Used in Varying Amounts in Each Iteration

Figure 17-3

Page 15: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 15

UP Life Cycle Model Showing Phases, Iterations, and Disciplines

Figure 17-4

Page 16: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 16

The Agile Development Philosophy and Modeling

Agile Development Principles

A philosophy and set of guidelines for developing software in an unknown, rapidly changing environment

Requires agility – being able to change direction rapidly, even in the middle of a project

Agile Modeling Principles

A philosophy about how to build models, some of which are formal and detailed and others are sketchy and minimal

Page 17: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 17

Adaptive Methodologies Using Agile Modeling

Figure 17-5

Page 18: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 18

The Agile Development Philosophy and Values

Responding to change over following a plan

An agile project is chaordic – both chaotic and ordered

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Page 19: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 19

Agile Modeling Principles

AM is about doing the right kind of modeling at the right level of detail for the right purposes

Use models as a means to an end instead of building models as end deliverables

Does not dictate which models to build or how formal to make those models

Has basic principles to express the attitude that developers should have as they develop software

Page 20: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 20

Agile Modeling Principles

Figure 17-6

Page 21: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 21

Agile Modeling Practices

Figure 17-7

Page 22: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 22

Extreme Programming (XP)

An adaptive, agile development methodology created in the mid-1990s

Takes proven industry best practices and focuses on them intensely

Combines those best practices (in their intense form) in a new way to produce a result that is greater than the sum of the parts

Page 23: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 23

XP Core Values Communication

In open, frequent verbal discussions

Simplicity

In designing and implementing solutions

Feedback

On functionality, requirements, designs, and code

Courage

In facing choices such as throwing away bad code or standing up to a too-tight schedule

Page 24: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 24

Some XP Practices

Planning Users develop a set of stories to describe what the

system needs to do Testing

Tests are written before solutions are implemented Pair programming

Two programmers work together on designing, coding, and testing

Simple designs “KISS” and design continuously

Page 25: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 25

Some XP Practices (continued)

Refactoring

Improving code without changing what it does

Owning the code collectively

Anyone can modify any piece of code

Continuous integration

Small pieces of code are integrated into the system daily or more often

System metaphor

Guides members towards a vision of the system

Page 26: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 26

Some XP Practices (continued)

On-site customer

Intensive user/customer interaction required

Small releases

Produce small and frequent releases to user/customer

Forty-hour work week

Project should be managed to avoid burnout

Coding standards

Follow coding standards to ensure flexibility

Page 27: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 27

XP Core Values and Practices

Figure 17-8

Page 28: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 28

XP Project Activities

System-level activities Occur once during each development project

Involve creating user stories to planning releases

Release-level activities Cycle multiple times – once for each release

Are developed and tested in a period of no more than a few weeks or months

Iteration-level activities Code and test a specific functional subset in a few days or

weeks

Page 29: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 29

XP Development

Approach

Figure 17-9

Page 30: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 30

Scrum

A quick, adaptive, and self-organizing development methodology

Named after rugby’s system for getting an out-of-play ball into play

Responds to a current situation as rapidly and positively as possible

A truly empirical process control approach to developing software

Page 31: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 31

Scrum Philosophy

Responsive to a highly changing, dynamic environment

Focuses primarily on the team level

Team exerts total control over its own organization and work processes

Uses a product backlog as the basic control mechanism

Prioritized list of user requirements used to choose work to be done during a Scrum project

Page 32: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 32

Scrum Organization

Product owner

The client stakeholder for whom a system is being built

Maintains the product backlog list

Scrum master

Person in charge of a Scrum project

Scrum team or teams

Small group of developers

Set their own goals and distribute work among themselves

Page 33: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 33

Scrum Practices

Sprint

The basic work process in Scrum

A time-controlled mini-project

Firm 30-day time box with a specific goal or deliverable

Parts of a sprint

Begins with a one-day planning session

A short daily Scrum meeting to report progress

Ends with a final half-day review

Page 34: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 34

Scrum Software Development Process

Figure 17-10

Page 35: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 35

Project Management and Adaptive Methodologies

Project time management

Smaller scope and focused on each iteration

Realistic work schedules

Project scope management

Users and clients are responsible for the scope

Scope control consists of controlling the number of iterations

Project cost management

More difficult to predict because of unknowns

Page 36: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 36

Project Management and Adaptive Methodologies (continued)

Project communication management Critical because of open verbal communication and

collaborative work

Project quality management Continual testing and refactoring must be scheduled

Project risk management High-risk aspects addressed in early iterations

Page 37: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 37

Project Management and Adaptive Methodologies (continued)

Project human resource management

Teams organize themselves

Project procurement management

Integrating purchased elements into the overall project

Verifying quality of components

Satisfying contractual commitments

Page 38: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 38

Model-Driven Architecture

Model-Driven Architecture (MDA) is an OMG (Object Management Group) initiative

Built on the principles of abstraction, modeling, reuse, and patterns

Provides companies with a framework to identify and classify all system development work being done in an enterprise

MDA extracts current systems features and information and combines them into a platform independent model (PIM)

Page 39: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 39

Model-Driven Architecture (continued)

Platform-independent model (PIM)

Describes system characteristics that are not specific to any deployment diagram

Uses UML

Platform-specific model (PSM)

Describes system characteristics that include deployment platform requirements

A set of standard transformations by the OMG move a PSM to a PIM

Page 40: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 40

Software Development

and MDA

Figure 17-11

Page 41: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 41

Object Frameworks

A set of classes that are designed to be reused in a variety of programs

The classes within an object framework are called foundation classes

Can be organized into one or more inheritance hierarchies

Application-specific classes can be derived from existing foundation classes

Page 42: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 42

Object Framework Types

User-interface classes Commonly used objects within a GUI

Generic data structure classes Linked lists, binary trees, and so on, and related processing

operations

Relational database interface classes Classes to create and perform operations on tables

Classes specific to an application area For use in a specific industry or application type

Page 43: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 43

Impact on Design and Implementation

Frameworks must be chosen early in the project

Systems design must conform to specific assumptions about application program structure and operation that the framework imposes

Design and development personnel must be trained to use a framework effectively

Multiple frameworks might be required, necessitating early compatibility and integration testing

Page 44: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 44

Components

Software modules that are fully assembled and ready to use

Reusable packages of executable code

Have well-defined interfaces to connect them to clients or other components

Public interfaces and encapsulated implementation

Standardized and interchangeable

Updating a single component does not require relinking, recompiling, and redistributing an entire application

Page 45: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 45

Component Standards and Infrastructure

Interoperability of components requires standards to be developed and readily available

Components might also require standard support infrastructure

Software components have more flexibility when they can rely on standard infrastructure services to find other components

Networking standards are required for components in different locations

Page 46: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 46

CORBA and COM+

CORBA (Common Object Request Broker Architecture) is a standard for software component connection and interaction developed by the OMG

An object request broker (ORB) provides component directory and communication services

The Internet Inter-ORB Protocol (IIOP) is used to communicate among objects and ORBs

Component Object Model Plus (COM+) is a standard for software component connection and interaction developed by Microsoft

Page 47: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 47

Enterprise JavaBeans

Part of the Java programming language’s extensive object framework (JDK)

A JavaBean can execute on a server and communicate with clients and other components using CORBA

A JavaBean implements the required component methods and follows the required naming conventions of the JavaBean standard

Platform independent

Page 48: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 48

Components and the Development Life Cycle

Component purchase and reuse is a viable approach to speeding completion of a system

Purchased components can form all or part of a newly developed or re-implemented system

Components can be designed in-house and deployed in a newly developed or re-implemented system

Page 49: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 49

Using Purchased Components— Implications

Standards and support software of purchased components must become part of the technical requirements definition

A component’s technical support requirements restrict the options considered during software architectural design

Page 50: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 50

Monitoring System Performance

Examine component-based designs to estimate network traffic patterns and demands on computer hardware

Examine existing server capacity and network infrastructure to determine their ability to accommodate communication among components

Upgrade network and server capacity prior to development and testing

Page 51: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 51

Monitoring System Performance (continued)

Test system performance during development and make any necessary adjustments

Continuously monitor system performance after deployment to detect emerging problems

Redeploy components, upgrade server capacity, and upgrade network capacity to reflect changing conditions

Page 52: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 52

Services

New method of software reuse enabled by Internet—external services identified and used for applications

Called Web services and service-oriented architecture (SOA)

Microsoft .NET is service standard based on SOAP

Java 2 Web Services (J2WS) is service standard for services in Java

Page 53: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 53

Component Communication Using SOAP

Figure 17-14

Page 54: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 54

Summary Adaptive development methodologies

Unified Process (UP)

Agile Modeling and Agile Development

Flexibility in an unpredictable business world

Extreme Programming (XP)

Tests are written first; programmers work in pairs

Scrum

Defines a specific goal that can be completed within four weeks

Page 55: 17 Systems Analysis and Design in a Changing World, Fifth Edition

17

Systems Analysis and Design in a Changing World, 5th Edition 55

Summary (continued) Model-Driven Architecture (MDA)

Provides techniques for large organizations to integrate all software and all software development across the entire enterprise

Software reuse is a fundamental approach to rapid development

Object frameworks provide a means of reusing existing software through inheritance

Components are units of reusable executable code that behave as distributed objects