Software Architecting and RUP

advertisement
®
IBM Software Group
Software Architecting and RUP
Peter Eeles
peter.eeles@uk.ibm.com
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Process precedents
Rational Unified Process
GS-Method
RUP and Architecting
Requirements
Analysis and design
Implementation
Test
Project management
Configuration and change management
Environment
Summary
IBM Software Group | Rational software
Architecture, Architect, Architecting
IBM Software Group | Rational software
Architecture
Architecture is the fundamental organization of a system embodied in
its components, their relationships to each other, and to the
environment, and the principles guiding its design and evolution.
[IEEE 1471]
The software architecture of a program or computing system is the
structure or structures of the system, which comprise software
elements, the externally visible properties of those elements, and the
relationships among them. [Bass]
[Architecture is] the organizational structure and associated behavior
of a system. An architecture can be recursively decomposed into
parts that interact through interfaces, relationships that connect parts,
and constraints for assembling parts. Parts that interact through
interfaces include classes, components and subsystems. [UML 1.5]
IBM Software Group | Rational software
An architecture defines structure
IBM Software Group | Rational software
An architecture defines behaviour
IBM Software Group | Rational software
An architecture is concerned with significant elements
The element relates to some critical functionality of the
system
E.g. monetary transactions
The element relates to some critical property of the system
E.g. reliability
The element relates to a particular architectural challenge
E.g. external system integration
The element is associated with a particular technical risk
The element relates to a capability that is considered to be
unstable
The element relates to some key element of the solution
E.g. login mechanism
IBM Software Group | Rational software
An architecture meets stakeholder needs
The end user is concerned with intuitive and correct behavior,
performance, reliability, usability, availability and security
The system administrator is concerned with intuitive behavior,
administration and tools to aid monitoring
The marketer is concerned with competitive features, time to market,
positioning with other products, and cost
The customer is concerned with cost, stability and schedule
The developer is concerned with clear requirements, and a simple and
consistent design approach
The project manager is concerned with predictability in the tracking of the
project, schedule, productive use of resources and cost
The maintainer is concerned with a comprehensible, consistent and
documented design approach, and the ease with which modifications can
be made
IBM Software Group | Rational software
An architecture comes in many forms
Enterprise Architecture
System Architecture
Software
Architecture
Application
Architecture
Technical
Architecture
Hardware
Architecture
Organizational
Architecture
IBM Software Group | Rational software
And …
An architecture is part of a broader system
An architecture embodies decisions based on rationale
An architecture conforms to an architectural style
An architecture is influenced by its environment
An architecture influences organizational structure
An architecture is present in every system
IBM Software Group | Rational software
Architect
The architect is a technical leader
The architect understands the software development process
The architect has knowledge of the business domain
The architect has technology knowledge
The architect has design skills
“The life of a software
architect is a long and
The architect has programming skills
rapid succession of
The architect is a good communicator
suboptimal design
decisions taken partly in
The architect makes decisions
the dark.” [Kruchten]
The architect is a mentor
The architect is aware of organizational politics
The architect is a negotiator
The architect role may be fulfilled by a team
IBM Software Group | Rational software
Architecting
IBM Software Group | Rational software
Architecting
Architecting is a science
Architecting is an art
Architecting spans many disciplines
Architecting involves many stakeholders
Architecting is involved in tradeoffs
Architecting considers reusable assets
Architecting is both top-down and bottom-up
Architecting changes emphasis over time
IBM Software Group | Rational software
The benefits of architecting
Architecting addresses system qualities
Architecting drives consensus
Architecting ensures architectural integrity
Architecting helps manage complexity
Architecting provides a basis for reuse
Architecting reduces maintenance costs
Architecting supports impact analysis
Architecting supports the planning process
IBM Software Group | Rational software
Documenting a software architecture
IBM Software Group | Rational software
Architecture description – Kruchten 4+1 views
IBM Software Group | Rational software
Architecture description – GS-Method
Component modeling
Operational modeling
IBM Software Group | Rational software
Architecture description – Siemens
Conceptual
View
Module
View
Code
View
Execution
View
IBM Software Group | Rational software
Architecture description – RM-ODP
Information
Viewpoint
Enterprise
Viewpoint
Computational
Viewpoint
Engineering
Viewpoint
Technical
Viewpoint
IBM Software Group | Rational software
Architecture description – Zachman framework
Abstractions
Perspectives
Scope
Planner
contextual
Enterprise Model
Owner
conceptual
System Model
Designer
logical
Technology
Constrained Model
Builder
physical
Detailed
Representations
Subcontractor
out-of-context
Functioning
Enterprise
Data
Function
Network
People
Time
Motivation
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Process precedents
Rational Unified Process
GS-Method
RUP and Architecting
Requirements
Analysis and design
Implementation
Test
Project management
Configuration and change management
Environment
Summary
IBM Software Group | Rational software
Process precedents
Rational Unified Process
A commercially-available offering (a product)
GS-Method
Used by IGS consultants
Much commonality
Deployed as web sites
Fundamental concepts align as defined by the OMG’s Software
Process Engineering Metamodel (SPEM)
Engagement models / configurations for different classes of system
• Custom development, packaged applications, EAI
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Process precedents
Rational Unified Process
GS-Method
RUP and Architecting
Requirements
Analysis and design
Implementation
Test
Project management
Configuration and change management
Environment
Summary
IBM Software Group | Rational software
Top Ten Architectural Concerns
1. When is the architect first involved in a project?
2. What is the relationship of the architect to other project
roles?
3. What is the architect's role with respect to requirements?
4. What is the scope of an architecture?
5. How is an architecture described?
6. When and how does the architect come up with a first-cut
architecture?
7. How does the architect refine the architecture?
8. How and when does the architect consider reuse?
9. How does the architect enforce architecture integrity?
10. How does the architect know that the architecture is
stable?
IBM Software Group | Rational software
RUP Key Concepts: Disciplines
IBM Software Group | Rational software
RUP Key Concepts: Overview
IBM Software Group | Rational software
RUP Key Concepts: Iterations
IBM Software Group | Rational software
UML Models
Model
“A model is a complete description of a system from a particular
perspective” [RUP]
IBM Software Group | Rational software
RUP Disciplines
IBM Software Group | Rational software
Discipline: Requirements
IBM Software Group | Rational software
Workflow Detail: Manage the Scope of the System
IBM Software Group | Rational software
Use-Case Model
IBM Software Group | Rational software
Use Cases – Prioritised
1.
2.
3.
4.
5.
6.
7.
8.
Create Auction
Place Bid
Close Auction
Browse Auction Catalog
Create Account
Sign In
Manage Account
Sign Out
IBM Software Group | Rational software
Requirements: Architectural Concerns Addressed
IBM Software Group | Rational software
RUP Disciplines
IBM Software Group | Rational software
Discipline: Analysis and Design
Analysis
Design
IBM Software Group | Rational software
Workflow Detail: Perform Architectural Synthesis
IBM Software Group | Rational software
Workflow Detail: Define a Candidate Architecture
IBM Software Group | Rational software
Architectural Analysis – Key Abstractions
IBM Software Group | Rational software
Architectural Analysis – Analysis Mechanisms
IBM Software Group | Rational software
Architectural Analysis – Layers
IBM Software Group | Rational software
Analysis: Architectural Concerns Addressed
IBM Software Group | Rational software
Workflow Detail: Refine the Architecture
IBM Software Group | Rational software
Identify Design Mechanisms
IBM Software Group | Rational software
Identify Design Elements
IBM Software Group | Rational software
Identify Design Elements
IBM Software Group | Rational software
Describe Run-Time Architecture
IBM Software Group | Rational software
Describe Distribution
IBM Software Group | Rational software
Design: Architectural Concerns Addressed
IBM Software Group | Rational software
RUP Disciplines
IBM Software Group | Rational software
Discipline: Implementation
IBM Software Group | Rational software
Workflow Detail: Structure the Implementation Model
IBM Software Group | Rational software
Structure the Implementation Model
IBM Software Group | Rational software
Implementation: Architectural Concerns Addressed
IBM Software Group | Rational software
RUP Disciplines
IBM Software Group | Rational software
Discipline: Environment
IBM Software Group | Rational software
Workflow Detail: Prepare Guidelines for an Iteration
IBM Software Group | Rational software
Environment: Architectural Concerns Addressed
IBM Software Group | Rational software
RUP Disciplines
IBM Software Group | Rational software
Discipline: Test
IBM Software Group | Rational software
Discipline: Deployment
IBM Software Group | Rational software
Discipline: Configuration and Change Management
IBM Software Group | Rational software
Discipline: Project Management
IBM Software Group | Rational software
Summary
Architectural concerns are addressed by activities from all
disciplines
Architectural concerns are addressed throughout the project
lifecycle
The architect’s involvement starts early in the process, during Inception
Most of the “hard core” architecting occurs during Elaboration
The architect’s role extends through Construction and Transition
IBM Software Group | Rational software
Download