Transcript Chapter 16
Systems Analysis and Design in a
Changing World, Fourth Edition
16
16
Learning Objectives
Explain
the foundations for the adaptive
methodologies to development
List
and describe the features of the Unified
Process system development methodology
List
and describe the features of Agile Modeling
Systems Analysis and Design in a Changing World, 4th Edition
2
16
Learning Objectives (continued)
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
Systems Analysis and Design in a Changing World, 4th Edition
3
16
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
Systems Analysis and Design in a Changing World, 4th Edition
4
16
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
Systems Analysis and Design in a Changing World, 4th Edition
5
16
Software Principles and Practices (continued)
Abstraction
Process of extracting core principles from a set of
facts or statement
Example: Metamodels describe the characteristics
of another model
Models
and modeling
An abstraction of something in the real world,
representing a particular set of properties
Systems Analysis and Design in a Changing World, 4th Edition
6
16
Software Principles and Practices (continued)
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
Systems Analysis and Design in a Changing World, 4th Edition
7
16
Adaptive Approaches to Development
Opposite
end of spectrum from predictive
approaches (recall Chapter 2)
Allow
Use
for uncertainty
empirical controls, not predictive controls
Describe processes that are variable and
unpredictable
Monitor progress and make corrections on the fly
Systems Analysis and Design in a Changing World, 4th Edition
8
Adaptive Approaches to Development—
Characteristics
16
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 selforganizing
Systems Analysis and Design in a Changing World, 4th Edition
9
16
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
Systems Analysis and Design in a Changing World, 4th Edition
10
16
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
– define requirements and design
and implement core architecture
Elaboration
– continue design and
implementation of routine, less risky parts
Construction
Transition
– move the system into operational
mode
Systems Analysis and Design in a Changing World, 4th Edition
11
16
The Unified Process Life Cycle (Figure 16-1)
Systems Analysis and Design in a Changing World, 4th Edition
12
16
UP Phases and Objectives (Figure 16-2)
Systems Analysis and Design in a Changing World, 4th Edition
13
16
The UP Disciplines
UP
defines disciplines used within each phase
– set of functionally related
development activities
Discipline
Each
iteration includes activities from all
disciplines
in each discipline produce artifacts –
models, documents, source code, and
executables
Activities
Learning
CIS/MIS means learning techniques
from these disciplines
Systems Analysis and Design in a Changing World, 4th Edition
14
16
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
Systems Analysis and Design in a Changing World, 4th Edition
15
UP Disciplines Used in Varying Amounts in 16
Each Iteration (Figure 16-3)
Systems Analysis and Design in a Changing World, 4th Edition
16
UP Life Cycle Model
16
Showing Phases, Iterations, and Disciplines (Figure 16-4)
Systems Analysis and Design in a Changing World, 4th Edition
17
The Agile Development Philosophy and
Modeling
Agile
16
Development
A philosophy and set of guidelines for developing
software in an unknown, rapidly changing
environment
agility – being able to change direction
rapidly, even in the middle of a project
Requires
Agile
Modeling
A philosophy about how to build models, some of
which are formal and detailed and others are
sketchy and minimal
Systems Analysis and Design in a Changing World, 4th Edition
18
The Agile Development Philosophy and
Values
Responding
16
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
Systems Analysis and Design in a Changing World, 4th Edition
19
Adaptive Methodologies Using Agile
Modeling (Figure 16-5)
Systems Analysis and Design in a Changing World, 4th Edition
16
20
16
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
Systems Analysis and Design in a Changing World, 4th Edition
21
Agile Modeling Principles (Figure 16-6)
Systems Analysis and Design in a Changing World, 4th Edition
16
22
16
Agile
Modeling
Practices
(Figure 16-7)
Systems Analysis and Design in a Changing World, 4th Edition
23
16
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
Systems Analysis and Design in a Changing World, 4th Edition
24
16
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
Systems Analysis and Design in a Changing World, 4th Edition
25
16
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
Systems Analysis and Design in a Changing World, 4th Edition
26
16
Some XP Practices (continued)
Refactoring
Improving code without changing what it does
Owning
the code collectively
Anyone can modify any piece of code
Continuous
Small pieces of code are integrated into the
system daily or more often
System
integration
metaphor
Guides members towards a vision of the system
Systems Analysis and Design in a Changing World, 4th Edition
27
16
Some XP Practices (continued)
On-site
Intensive user/customer interaction required
Small
customer
releases
Produce small and frequent releases to
user/customer
Forty-hour
Project should be managed to avoid burnout
Coding
work week
standards
Follow coding standards to ensure flexibility
Systems Analysis and Design in a Changing World, 4th Edition
28
16
XP Core Values and Practices (Figure 16-8)
Systems Analysis and Design in a Changing World, 4th Edition
29
16
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
Systems Analysis and Design in a Changing World, 4th Edition
30
16
XP
Development
Approach
(Figure 16-9)
Systems Analysis and Design in a Changing World, 4th Edition
31
16
Scrum
A quick,
adaptive, and self-organizing
development methodology
Named after rugby’s system for getting an out-ofplay ball into play
Responds to a current situation as rapidly and
positively as possible
A truly empirical process control approach to
developing software
Systems Analysis and Design in a Changing World, 4th Edition
32
16
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
Systems Analysis and Design in a Changing World, 4th Edition
33
Scrum Organization
Product
16
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
Systems Analysis and Design in a Changing World, 4th Edition
34
16
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
Systems Analysis and Design in a Changing World, 4th Edition
35
16
Scrum Software Development Process
(Figure 16-10)
Systems Analysis and Design in a Changing World, 4th Edition
36
Project Management and Adaptive
Methodologies
Project
time management
Smaller scope and focused on each iteration
Realistic work schedules
Project
16
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
Systems Analysis and Design in a Changing World, 4th Edition
37
Project Management and Adaptive
Methodologies (continued)
Project
quality management
Continual testing and refactoring must be
scheduled
Project
communication management
Critical because of open verbal communication
and collaborative work
Project
16
risk management
High-risk aspects addressed in early iterations
Systems Analysis and Design in a Changing World, 4th Edition
38
Project Management and Adaptive
Methodologies (continued)
Project
16
human resource management
Teams organize themselves
Project
procurement management
Integrating purchased elements into the overall
project
Verifying quality of components
Satisfying contractual commitments
Systems Analysis and Design in a Changing World, 4th Edition
39
Model-Driven Architecture—Generalizing
Solutions
16
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)
Systems Analysis and Design in a Changing World, 4th Edition
40
16
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
Systems Analysis and Design in a Changing World, 4th Edition
41
16
Software
Development
and MDA
(Figure 16-11)
Systems Analysis and Design in a Changing World, 4th Edition
42
Metamodels and Transitions between PIM,
PSM, and Code (Figure 16-12)
Systems Analysis and Design in a Changing World, 4th Edition
16
43
16
Partial Metamodel of UML Class Diagram
(Figure 16-13)
Systems Analysis and Design in a Changing World, 4th Edition
44
16
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
Systems Analysis and Design in a Changing World, 4th Edition
45
16
Object Framework Types
User-interface
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
classes
specific to an application area
For use in a specific industry or application type
Systems Analysis and Design in a Changing World, 4th Edition
46
16
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
Systems Analysis and Design in a Changing World, 4th Edition
47
16
Components
Software modules that are fully assembled and ready to
use
Have well-defined interfaces to connect them to clients or
other components
Reusable packages of executable code
Public interfaces and encapsulated implementation
Standardized and interchangeable
Updating a single component does not require relinking,
recompiling, and redistributing an entire application
Systems Analysis and Design in a Changing World, 4th Edition
48
16
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
Systems Analysis and Design in a Changing World, 4th Edition
49
16
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
Systems Analysis and Design in a Changing World, 4th Edition
50
16
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
Systems Analysis and Design in a Changing World, 4th Edition
51
16
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
Systems Analysis and Design in a Changing World, 4th Edition
52
Using Purchased Components—
Implications
16
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
Systems Analysis and Design in a Changing World, 4th Edition
53
16
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
Systems Analysis and Design in a Changing World, 4th Edition
54
16
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
Systems Analysis and Design in a Changing World, 4th Edition
55
16
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
Systems Analysis and Design in a Changing World, 4th Edition
56
16
Component Communication Using SOAP
(Figure 16-14)
Systems Analysis and Design in a Changing World, 4th Edition
57
16
Summary
Adaptive
development methodologies
Unified Process (UP)
Agile Modeling and Agile Development
Flexibility
Extreme Programming (XP)
Tests
in an unpredictable business world
are written first; programmers work in pairs
Scrum
Defines
a specific goal that can be completed within
four weeks
Systems Analysis and Design in a Changing World, 4th Edition
58
16
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
Systems Analysis and Design in a Changing World, 4th Edition
59