Introduction To Systems Analysis and Design:: An Agile, Iterative Approach

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 43

INTRODUCTION TO

SYSTEMS ANALYSIS AND


DESIGN:
AN AGILE, ITERATIVE APPROACH

SATZINGER | JACKSON | BURD

Chapter 14

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


Current Trends in System
Development
Chapter 14
Introduction to Systems
Analysis and Design:
An Agile, Iteractive Approach
6th Ed

Satzinger, Jackson & Burd


Chapter 14 Outline

 Trends in System Development


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

3
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)
4
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
5
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
6
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

7
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)
8
The Unified Process
Life 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

9
The Unified Process
Disciplines
 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

10
The Unified Process
Disciplines in Each Iteration

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


The Unified Process
Complete UP SDLC Model

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


The Unified Process
Philosophies/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
13
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

14
Extreme Programming (XP)
Core Values and Practices

15
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
16
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
17
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
18
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
19
XP Activities

Project Activities

Release Activities

Iteration Activities

20
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.

21
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
22
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

23
Scrum Development Process

24
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

25
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
26
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
27
Data and programs are off the PC and
back in massive data centers

28
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

29
Owning Software vs. SAAS

30
Open
Source
Software
Applications

31
The Web as an Application
Platform – The Evolution

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


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
33
Sample Plug-ins
for WordPress Blog

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


Sample Google Web Page Gadgets

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


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 36
Mashup of Several APIs to Create a
Dashboard Page

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


Rich Internet Application (RIA)

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


Rich Internet Application (RIA)

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


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
40
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
41
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),

42
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

43

You might also like