system analysis and design 6th edition chapter 14

43
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 14

Upload: matthew-mckenzie

Post on 05-Dec-2014

933 views

Category:

Technology


1 download

DESCRIPTION

System Analysis and Design

TRANSCRIPT

Page 1: System Analysis and Design 6th edition chapter 14

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

Chapter 14

Page 2: System Analysis and Design 6th edition chapter 14

Current Trends in System Development

Systems Analysis and Design in a Changing World 6th Ed

Satzinger, Jackson & Burd

Chapter 14

Page 3: System Analysis and Design 6th edition chapter 14

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

Chapter 14 Outline

Trends in System Development Methodologies

Trends in Technology Infrastructure Trends in Application Software Availability The Web as an Application Platform

Page 4: System Analysis and Design 6th edition chapter 14

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

Learning Objectives Describe the elements of the Unified Process (UP) Compare and contrast the features of Extreme

Programming and Scrum development Describe the major trends in devices, connectivity,

Internet, and telephone technologies List and describe the various methods of deploying

application software List and describe the various elements that enhance

Web applications Describe the various approaches to developing Rich

Internet Applications (RIAs)

Page 5: System Analysis and Design 6th edition chapter 14

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

Overview This book has focused on teaching you the

processes and skills associated with a system development project emphasizing agile, iterative development using UML

Three very specific system development methodologies are described in this chapter: Unified Process (UP), Scrum, and Extreme Programming (XP)

Additionally, three important trends affecting system development are discussed: consumer devices, the distribution of application software, and the continuing movement toward Web-based applications

Page 6: System Analysis and Design 6th edition chapter 14

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

Trends in System Development Methodologies Throughout this text we have emphasized agile,

iterative development We have also emphasized traditional project

management techniques (updated for iterative development) and other widely used and up to date planning, analysis, design, implementation, and deployment concepts and techniques

UML models and modeling techniques have been used throughout

The overall approach used (the book’s methodology) is very current in this regard, but it is generic

Page 7: System Analysis and Design 6th edition chapter 14

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

Three Current Methodologies There are many specific system development

methodologies used in practice, and this chapter covers three influential ones The Unified Process (UP) Extreme Programming (XP) Scrum

These methodologies all use an iterative SDLC The Unified Process uses UML Extreme Programming and Scrum are based on agile

principles, but the Unified Process can also be used in an agile fashion

Many organizations mix and match features of each of these when creating their own methodology

Page 8: System Analysis and Design 6th edition chapter 14

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

The Unified Process (UP) Originally developed by Booch, Rumbaugh, and

Jacobson, who previously developed UML at Rational Software (now part of IBM)

The UP is now widely recognized as a highly influential innovation in software development methodologies for object-oriented development using an adaptive approach

The original version of UP defined an elaborate set of activities and deliverables for every step of the development process

More recent versions are streamlined, with fewer activities and deliverables, simplifying the methodology

Much of the book’s methodology is loosely based on the Unified Process (in an agile form)

Page 9: System Analysis and Design 6th edition chapter 14

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

The Unified ProcessLife Cycle The Unified Process Life Cycle model includes iterations and

phases (the SDLC in this text is very similar, but left out the UP phases for simplicity)

Each UP phase is made up of iterations. The phases are Inception, Elaboration, Construction, and Transition

Page 10: System Analysis and Design 6th edition chapter 14

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

The Unified ProcessDisciplines UP Disciplines – a set of functionally related activities

that combine to enable the development process in a UP project (each like a core development process): Business modeling Requirements Design Implementation Testing Deployment Configuration and change management Project management Environment

Page 11: System Analysis and Design 6th edition chapter 14

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

The Unified ProcessDisciplines in Each Iteration

Page 12: System Analysis and Design 6th edition chapter 14

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

The Unified ProcessComplete UP SDLC Model

Page 13: System Analysis and Design 6th edition chapter 14

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

The Unified ProcessPhilosophies/Practices

Focuses early and often on users Use case driven Model driven – uses UML exclusively Iterative, but provides management structure

by defining phases Focuses on defining an architecture Adaptable to needs of a specific project Can be made highly agile, but originally had

heavy ceremony

Page 14: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP) One of the original agile development methodologies

(perhaps a reaction to the original UP) from Kent Beck “Extreme” often thought to be radical, but really just

focuses intently on industry best practices and combines best practices in new ways

XP is based on core values Communication Simplicity Feedback Courage

XP also defines a set of XP practices

Page 15: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP)Core Values and Practices

Page 16: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP)Core Values Communication—one of the major causes of project

failure is a lack of open communication among the right players at the right time and at the right level

Simplicity—XP includes techniques to reinforce keeping things simple to make it a standard way of developing systems

Feedback—as with simplicity, getting frequent, meaningful feedback is recognized as a best practice of software development

Courage—developers always need courage to face the harsh choice of doing things right or throwing away bad code and starting over

Page 17: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP)XP Practices Planning—XP planning focuses on making a rough plan

quickly and then refining it as things become clearer. This reflects the Agile development philosophical dictum that change is more important than detailed plans

Testing—XP intensifies testing by requiring that the tests for each use case (story) be written first—before the solution is programmed

Pair Programming—XP practice in which two programmers work together on designing, coding, and testing software

Simple Designs—XP conforms to the principles of Agile Modeling. It accomplishes the desired result with as few classes and methods as possible and that doesn’t duplicate code

Page 18: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP)XP Practices (continued) Refactoring the Code— refactoring is the technique of

improving the code without changing what it does. XP programmers continually refactor their code to achieve a simpler design

Owning the Code Collectively —in XP, everyone is responsible for the code. Collective ownership allows anyone to modify any piece of code.

Continuous Integration —this practice embodies XP’s idea of “growing” the software. Small pieces of code—which have passed the unit tests—are integrated into the system daily or even more often

On-Site Customer —as with all adaptive approaches, XP projects require continual involvement of users who can make business decisions about functionality and scope

Page 19: System Analysis and Design 6th edition chapter 14

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

Extreme Programming (XP)XP Practices (continued) System Metaphor —a system metaphor should be easily

understood and well known to the members of the development team. It can guide members toward a vision and help them understand the system

Small Releases —consistent with the entire philosophy of growing the software, small and frequent releases provide upgraded solutions to the users and keep them involved in the project

Forty-Hour Week — the exact number of hours a developer works isn’t the issue. The issue is that the project shouldn’t be a death march that burns out every member of the team

Coding Standards —developers should follow standards for coding and documentation

Page 20: System Analysis and Design 6th edition chapter 14

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

XP Activities

Project Activities

Release Activities

Iteration Activities

Page 21: System Analysis and Design 6th edition chapter 14

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

Scrum Another influential agile, iterative development

methodology based on ideas from Rugby A Scrum is used to get a ball back into play after a

penalty--it begins quickly, is a very intense effort, involves the entire team, and usually only lasts for a short duration

Scrum philosophy is the complete control a team exerts over its own organization and its work processes. Software is developed incrementally, and controls are imposed empirically—by focusing on things that can be accomplished.

Page 22: System Analysis and Design 6th edition chapter 14

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

Scrum Organization Product backlog – a prioritized list of user requirements

used to choose work to be done in a Scrum project Only a few of the high-priority items are worked on at a time

Product owner – the client stakeholder for whom the system is being built Responsible for project backlog and priorities

Scrum master – the person in charge of a Scrum project—similar to a project manager

Scrum team is usually 5 to 9 people Scrum team sets own goals, organizes self, makes

decisions

Page 23: System Analysis and Design 6th edition chapter 14

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

Scrum Practices Sprint – a time-controlled mini-project that implements

a specific portion of a system Firm 30 day time box with specific goal or deliverable The scope of that sprint is then frozen, and no one can

change it—neither the product owner nor any other users Sprint backlog defines the scope

Daily Scrum – a daily meeting of all members of the team to report progress (15 minutes max)

Sprint final half-day review meeting – scheduled to review and identify changes needed for the following sprints

Page 24: System Analysis and Design 6th edition chapter 14

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

Scrum Development Process

Page 25: System Analysis and Design 6th edition chapter 14

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

Trends in Technology Infrastructure New Client Computing Devices and Applications –

Small, mobile, connected Device-top application – a computer application that is

built to execute on a local device without requiring a client/server connection

Free-standing Internet application –a client/server application that is self-contained and doesn’t require the use of a Web browser

Browser-based application –a client/server application that executes locally within the control of a Web browser

Page 26: System Analysis and Design 6th edition chapter 14

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

Trends in Technology Infrastructure Internet and Telephone Communications

Internet, the telephone, and television are merging Long-distance telephone communication and long-

distance Internet communication have very similar requirements and capability

Internet backbone – the primary data routes between large, strategically interconnected networks and routers on the Internet

Last mile – the final leg that delivers connectivity from the Internet network to the customer

Page 27: System Analysis and Design 6th edition chapter 14

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

Trends in Technology Infrastructure Back-End Computing –the server computers that

provide the content—dynamic and static—for all applications that access servers through the Internet As more and more client computers try to access a particular

application, the workloads on the servers becomes incredibly heavy

Several factors are driving the need for large back-end computing services Trend toward continuous connectivity to the Internet Massive amount of data stored—many applications in the world of

commerce keep a history of all the transactions that occur The consolidation of processing in central locations

Page 28: System Analysis and Design 6th edition chapter 14

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

Data and programs are off the PC and back in massive data centers

Page 29: System Analysis and Design 6th edition chapter 14

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

Trends in Application Software Availability Software as a service (SAAS) – a software delivery

model similar to a utility, in which the application and its associated data are accessed via the Internet without locally installed programs

Open-source software – a method of developing, delivering, and licensing software that makes the application source code freely available to any interested developer or client

Page 30: System Analysis and Design 6th edition chapter 14

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

Owning Software vs. SAAS

Page 31: System Analysis and Design 6th edition chapter 14

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

Open Source Software Applications

Page 32: System Analysis and Design 6th edition chapter 14

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

The Web as an Application Platform – The Evolution

Page 33: System Analysis and Design 6th edition chapter 14

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

The Web as an Application Platform Web 2.0 – a loosely defined, nonstandard term used to

refer to Web sites that permit user-generated content and user interaction, such as social networking sites

Plug-ins – a software component that adds specific capabilities to a larger software application

Widget – a type of plug-in that focuses on enhancing the user interface with additional capability (also called gadget)

Theme – a type of add-on to an application that allows the look and feel, such as colors and layout, to be changed

Page 34: System Analysis and Design 6th edition chapter 14

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

Sample Plug-ins for WordPress Blog

Page 35: System Analysis and Design 6th edition chapter 14

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

Sample Google Web Page Gadgets

Page 36: System Analysis and Design 6th edition chapter 14

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

The Web as an Application Platform (continued) Toolbar – a type of add-on usually comprised of iconic

menu items that access the capabilities of the application or plug-ins in a user-friendly fashion

Web mini-app – a software application that provides a complete set of functions but that must be executed within the confines of another application

Mashup – a type of Web site that combines the functionality of several other Web sites through the use of predefined APIs

Rich Internet Applications (RIAs) –a type of Web site that provides active user interaction as well as delivers rich multimedia

Page 37: System Analysis and Design 6th edition chapter 14

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

Mashup of Several APIs to Create a Dashboard Page

Page 38: System Analysis and Design 6th edition chapter 14

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

Rich Internet Application (RIA)

Page 39: System Analysis and Design 6th edition chapter 14

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

Rich Internet Application (RIA)

Page 40: System Analysis and Design 6th edition chapter 14

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

Rich Internet Applications (RIAs) JavaScript and Ajax Libraries

De facto standard for adding desktop-like computing within browsers

ICEFaces and JavaFX Open-source framework that provides Java language APIs to build

and deploy server-based RIAs

Adobe Flash Platform Best known as a multimedia platform for animation and interactivity

Microsoft Silverlight Microsoft’s Windows Communication Foundation (WCF) .NET RIA

Services to support the development and deployment of RIAs

HTML5 New HTML specification that standardizes RIA specifications for

built-in browser delivery

Page 41: System Analysis and Design 6th edition chapter 14

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

Summary One of the most active trends in software

development is adaptive development methodologies that use iterative SDLCs

The most formal adaptive methodology is the Unified Process (UP) – one of the first to be formalized with specific definitions for iterations and processes, but it can also be agile

Other more radical adaptive methodologies are now being promoted and used, such as Extreme Programming and Scrum

Major trends in technology include mobile computing devices, software availability, and Web access

Page 42: System Analysis and Design 6th edition chapter 14

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

Summary (continued)

The number of computers will soon be surpassed by the number of mobile devices, such as smart phones and tablet computing devices

These devices have become so pervasive because of the expanded availability of Internet access through wireless and telephone connections

The availability of so many connected computing devices has necessitated the growth of large-scale data centers with very large server farms

There is a trend toward sharing software applications among many users and organizations called Software as a Service (SAAS),

Page 43: System Analysis and Design 6th edition chapter 14

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

Summary (continued)

Another trend is providing software applications free of charge as open-source software

A final—and extremely important—trend is the use of the Web as an application platform

Web-based software applications provide APIs so Web-based applications can share functionality and even be combined to provide new uses of Web-based software

Rich Internet Applications (RIAs) allow a Web-based application to function much like a desktop application, with multimedia and active user interactions