software architecture masterclass -
TRANSCRIPT
IBM Rational Software Conference 2009Software Architecture Masterclass
© 2009 IBM Corporation
Software Architecture Masterclass
Software Architecture Masterclass
Peter EelesExecutive IT Architect, [email protected]
Contributions from Grady Booch, Dave Brown, Peter Cripps, Jim Densmore, Celso Gonzalez
Software Architecture Masterclass
© 2009 IBM Corporation
IBM Rational Software Conference 2009
Introductions
� Name, organization, role?
� What are you looking for from the masterclass?
Software Architecture Masterclass 2
IBM Rational Software Conference 2009
Software-Intensive Systems
� A system in which software is the dominant, essential, and indispensable element
�E-commerce system
� IT (business) system
�Telephone switch
�Flight control system
�Real-time control system (e.g. industrial robot)
Software Architecture Masterclass 4
robot)
�Sophisticated weapons system
�Software development tools
�System software (e.g. operating systems or compilers)
4
IBM Rational Software Conference 2009
10 Keys to Success
Successful Architects … For example, they …
1 Understand end-to-end development Follow a repeatable process
2 Understand their role Understand what an architecture is
Understand what an architect does
Understand the benefits of architecting
3 Manage risk and manage change Derive their architectures iteratively
4 Communicate with stakeholders Document their architectures
Software Architecture Masterclass 5
4 Communicate with stakeholders Document their architectures
5 Reuse assets Embrace different types of assets
6 Right-size their involvement Select relevant viewpoints
7 Influence the requirements Ensure tradeoffs are negotiated
8 Derive solutions from business needs Produce business-driven architectures
9 Refine solutions based on technology Realize architectures in available technology
10 Appreciate the broader context Align their work with the “bigger picture”
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 6
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Where does architecting fit in a software
Software Architecture Masterclass 7
fit in a software development process?
IBM Rational Software Conference 2009
OpenUP Disciplines
Requirements
Requirements Solution
Architecture Development Test
Software Architecture Masterclass 8
Design
All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.
- Grady Booch
[A discipline is a] primary categorization mechanism for organizing tasks that define a major 'area of concern' and/or cooperation of work effort. [OpenUP]
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 9
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
What are the characteristics of a
Software Architecture Masterclass 10
characteristics of a software architecture?
IBM Rational Software Conference 2009
Software Architecture Defined
� 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]
� The software architecture of a system or a collection of systems consists of all
Software Architecture Masterclass 11
� The software architecture of a system or a collection of systems consists of all
the important design decisions about the software structures and the
interactions between those structures that comprise the systems. The design
decisions support a desired set of qualities that the system should support to
be successful. The design decisions provide a conceptual basis for system
development, support, and maintenance. (McGovern 2004)
IBM Rational Software Conference 2009
Characteristics of a Software Architecture
� An architecture defines structure
� An architecture defines behaviour
� An architecture meets stakeholder needs
� An architecture is influenced by its environment
� An architecture is concerned with significant elements
� An architecture conforms to an architectural style
Structure
Software Architecture Masterclass 12
� An architecture influences organizational structure
� An architecture is present in every system
� An architecture embodies decisions based on rationale
The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.
- Philippe Kruchten
Behavior
IBM Rational Software Conference 2009
An Architecture has a Particular Scope
Software Architecture Masterclass 13
[A system is] a set of resources that provide services that are used by an enterprise to carry out a business purpose or mission. System components typically consist of hardware, software, data, and workers. [Cantor]
IBM Rational Software Conference 2009
What are the characteristics of a
Software Architecture Masterclass 14
characteristics of a software architect?
IBM Rational Software Conference 2009
Characteristics of an 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 architect has programming skills
Software Architecture Masterclass 15
� The architect is a good communicator
� The architect makes decisions
� The architect is aware of organizational politics
� The architect is a negotiator
� The architect role may be fulfilled by a team
IBM Rational Software Conference 2009
What are the benefits of architecting?
Software Architecture Masterclass 16
architecting?
IBM Rational Software Conference 2009
Benefits of Architecting
� Architecting reduces unnecessary creativity
� Architecting helps manage complexity
� Architecting ensures architectural integrity
� Architecting addresses system qualities
� Architecting reduces maintenance costs
� Architecting drives consensus
Software Architecture Masterclass 17
� Architecting provides a basis for reuse
� Architecting supports impact analysis
� Architecting supports the planning process
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 18
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Waterfall and Iterative Lifecycles
Software Architecture Masterclass 19
IBM Rational Software Conference 2009
Iteration Focus Changes over Time
Discovery Invention Implementation
Software Architecture Masterclass 2020
Drawn on a napkin by Bran Selic for Philippe Kruchten
IBM Rational Software Conference 2009
Formalizing the Change in Focus
Software Architecture Masterclass 21
OpenUP disciplines shown
IBM Rational Software Conference 2009
Architecture Stability
Software Architecture Masterclass 22
%Resources derived from information in “Software Project Management – A Unified Framework” [Royce]
IBM Rational Software Conference 2009
What about Agile?
� Agile Manifesto
� Individuals and interactions over processes and tools.
�Working software over comprehensive documentation.
�Customer collaboration over contract negotiation.
�Responding to change over following a plan.
� Scrum is a management and control process that cuts through complexity to
focus on building software to meet business needs. Scrum is superimposed on
top of and wraps existing engineering practices, development methodologies and
Software Architecture Masterclass 23
top of and wraps existing engineering practices, development methodologies and
standards. [Schwaber]
There seems to be a fear in the agile community that if we use terms such as “model” or “document” that suddenly the “evil bureaucrats” will dig their claws into our projects and force us to write detailed, big requirements specifications or to take a big-design-up-front approach ... the strange thing is that agilists are, in fact, modeling on a regular basis, even though they're not directly talking about it. [Ambler]
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 24
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Who are the stakeholders in your architecture?
Software Architecture Masterclass 25
in your architecture?
What are their concerns?
IBM Rational Software Conference 2009
Documenting a Software Architecture
� Core concepts
�Stakeholder - Who is the description for?
�Viewpoint - Defines stakeholder concerns, notations and techniques
�Model - Created to populate the various views
�View - Conforms to a viewpoint, a particular perspective on the architecture
Software Architecture Masterclass 26
Concepts defined in “The IEEE Recommended Practice for Architectural Description of Software-Intensive Systems” [IEEE 1471]
IBM Rational Software Conference 2009
Views, Diagrams and Models
Software Architecture Masterclass 27
IBM Rational Software Conference 2009
What viewpoints might you use to document your
Software Architecture Masterclass 28
you use to document your architecture?
IBM Rational Software Conference 2009
Architecture Description Frameworks
� Software Architecture
�The 4 + 1 View Model of Software Architecture [Kruchten]
�Rozanski and Woods [Rozanski]
�Siemens
�RM-ODP
� Systems Engineering
�Model-Driven Systems Development (MDSD) [MDSD]. Formerly RUP for Systems
Software Architecture Masterclass 29
�Model-Driven Systems Development (MDSD) [MDSD]. Formerly RUP for Systems
Engineering (RUP-SE)
� Enterprise Architecture
�The Open Group Architecture Framework (ToGAF)
�The Zachman Framework [Zachman]
� Domain-Specific
�Department of Defense Architecture Framework (DoDAF)
�Ministry of Defence Architecture Framework (MoDAF)
IBM Rational Software Conference 2009
Examples of Architecture Description Frameworks4 + 1 View Model of Software Architecture [Kruchten]
Rozanski and Woods [Rozanski]
Software Architecture Masterclass 30
The Zachman Framework [Zachman]
IBM Rational Software Conference 2009
Basic and Cross-Cutting Viewpoints
Software Architecture Masterclass 31
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 32
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
What types of assets might you apply in your
Software Architecture Masterclass 33
might you apply in your architecture?
IBM Rational Software Conference 2009
A Metamodel of Architecture Assets
Software Architecture Masterclass 34
One thing expert designers know not to do is to solve every problem from first principles. Rather, they reuse solutions that have worked for them in the past. When they find a good solution, they use it again and again. Such experience is part of what makes them experts. [Gamma]
IBM Rational Software Conference 2009
IBM Patterns for e-business
Examplesuser-to-businessuser-to-useruser-to-data
ExampleDirectly Integrated Single Channel
Software Architecture Masterclass 36
ExampleDirectly Integrated Single Channel
www.ibm.com/developerworks/patterns/
Also see extensive patterns catalog at:
http://www.handbookofsoftwarearchitecture.com/index.jsp?page=Patterns
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 37
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Architects Right-Size their Involvement
Small Project Large Project
Role • A single person is assigned to play
the roles of Lead Architect,
Application Architect, Infrastructure
Architect and Data Architect.
• Different individuals are assigned to each
of the architecture roles of Lead Architect,
Application Architect, Infrastructure
Architect and Data Architect. In addition,
the team also includes a Security Architect.
Task • An Architecture Overview is created
as a sketch on a whiteboard and then
photographed (it is not kept up to
date).
• An Architecture Overview is created as a
formal work product that is maintained.
Software Architecture Masterclass 39
date).
Work product • An Architecture Proof-of-Concept is
created on paper only (no executable
software needs to be built).
• Requirements, Functional,
Deployment and Performance
viewpoints are used to document the
architecture.
• An Architecture Proof-of-Concept is
created as executable software.
• Requirements, Functional, Deployment,
Validation, Performance and Security
viewpoints are used to document the
architecture. An Information Viewpoint is
added to emphasize this particular aspect
of the architecture.
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 40
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
The “YourTour” Case Study
Software Architecture Masterclass 41
IBM Rational Software Conference 2009
What forces influence the architect’s work?
Software Architecture Masterclass 42
architect’s work?
IBM Rational Software Conference 2009
Making Tradeoffs addresses Opposing Forces
ScheduleResources
Stakeholder input
ScalabilityPerformance
Software Architecture Masterclass 43
DistributionPlatforms
MaintainabilityPortability
IBM Rational Software Conference 2009
What is the architect’s role with respect to
Software Architecture Masterclass 44
role with respect to requirements?
IBM Rational Software Conference 2009
Task: Define System Context
Software Architecture Masterclass 46
IBM Rational Software Conference 2009
Task: Outline Functional Requirements
Software Architecture Masterclass 47
IBM Rational Software Conference 2009
Task: Outline Non-Functional Requirements
� Usability Requirements
� Reliability Requirements
� Performance Requirements
� Supportability Requirements
� Constraints
�Business Constraints
�Architecture Constraints
Software Architecture Masterclass 48
�Architecture Constraints
�Development Constraints
�Physical Constraints
“Brownfield sites are those in which redevelopment or reuse of the site is complicated by existing contaminants. Greenfield sites are clean, previously undeveloped land”. [Hopkins]
IBM Rational Software Conference 2009
Task: Prioritize Requirements
� Which use cases should drive the remainder of the iteration?
Software Architecture Masterclass 49
IBM Rational Software Conference 2009
Task: Prioritize Requirements
� We may select particular flows through the use case
Software Architecture Masterclass 50
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 51
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
How much logical architecting should be
Software Architecture Masterclass 53
architecting should be performed?
* “Logical” = Technology-independent
IBM Rational Software Conference 2009
How Much Logical Architecture?
� Minimizing Logical Architecture
� None. The requirements for the system are similar
to those of an existing system and moving from
requirements to physical architecture is trivial.
� Just Enough. We can demonstrate that we
understand the current set of requirements and that
those requirements have been appropriately
allocated to parts of the solution.
� Logical Architecture as an Investment
Software Architecture Masterclass 54
� Logical Architecture as an Investment
� Some. A technology change is anticipated and the
logical architecture provides a good starting point
when we make that change.
� Comprehensive. The system is large and complex
and its development will run over a long period of
time and over several releases. We therefore
expect to maintain / enhance the system and want
to evolve the architecture rather than reinventing (or
ignoring) it.
IBM Rational Software Conference 2009
Terminology
� Component
�A component represents a modular part of a system that encapsulates its contents and
whose manifestation is replaceable within its environment. A component defines its
behavior in terms of provided and required interfaces. As such, a component serves as a
type whose conformance is defined by these provided and required interfaces
(encompassing both their static as well as dynamic semantics). One component may
therefore be substituted by another only if the two are type conformant. [UML 2.2]
� Subsystem
Software Architecture Masterclass 55
�A set of related components.
IBM Rational Software Conference 2009
Task: Define Architecture Overview
Software Architecture Masterclass 56
IBM Rational Software Conference 2009
Task: Outline Functional Elements
Software Architecture Masterclass 57
IBM Rational Software Conference 2009
From Requirements to Solution
Attribute Driven
Design (ADD)
Method
�Developed at the Software Engineering Institute
�Quality attributes drive the architecture
�Underpinned by architectural tactics and patterns
Siemens’ 4 Views
(S4V) method
�Developed at Siemens Corporate Research
�An analysis of global factors drive the architecture
�Iteratively addresses challenges across four views (conceptual,
Software Architecture Masterclass 58
�Iteratively addresses challenges across four views (conceptual,
execution, module and code architecture)
The Rational Unified
Process (RUP)
�Developed at Rational Software (now IBM Rational)
�Architecturally-significant requirements drive the architecture
�Each iteration considers the key architectural elements of the
solution, before realizing the requirements across them
IBM Rational Software Conference 2009
Task: Outline Functional Elements
� Boundary (or presentation) components
�Support the boundary between the system and items outside the system with which the
system interacts, such as end users or external systems
� Control (or execution) components
�Support the control logic of the system as well as the business rules and other logic
required to satisfy the functional requirements
� Entity (or data) components
Software Architecture Masterclass 59
�These components support the representation of persistent information
IBM Rational Software Conference 2009
Task: Outline Functional Elements
Software Architecture Masterclass 60
Book Tour use case realization
IBM Rational Software Conference 2009
Task: Outline Functional Elements
Software Architecture Masterclass 61
Book Tour use case realization
IBM Rational Software Conference 2009
Assigning NFRs to Components
Requirement Component Operation Budgeted
Requirement
Booking a tour must take less
than 10 seconds, from the time
the request is submitted, to the
Tour Booking Manager provide payment details() 1 second
Payment Engine Boundary process payment() 3 seconds
Software Architecture Masterclass 62
confirmation of the booking
being presented to the user Reservation System Boundary make reservations() 6 seconds
IBM Rational Software Conference 2009
Task: Detail Functional Elements
Software Architecture Masterclass 63
IBM Rational Software Conference 2009
Task: Detail Functional Elements
Software Architecture Masterclass 64
IBM Rational Software Conference 2009
Task: Outline Deployment Elements
Software Architecture Masterclass 65
IBM Rational Software Conference 2009
Task: Outline Deployment Elements
Software Architecture Masterclass 66
IBM Rational Software Conference 2009
Task: Detail Deployment Elements
Software Architecture Masterclass 67
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 68
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Agenda
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 72
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
You’ve been assigned as the architect of a new
system.
Software Architecture Masterclass 74
system.
What’s your worst nightmare? ☺
IBM Rational Software Conference 2009
Challenges of Complex Systems
Software Architecture Masterclass 75
IBM Rational Software Conference 2009
Summary
� Architects understand end-to-end development
� Architects understand their role
� Architects manage risk and manage change
� Architects communicate with stakeholders
� Architects reuse assets
� Architects right-size their involvement
Software Architecture Masterclass 77
� Architects influence the requirements
� Architects derive solutions from business needs
� Architects refine solutions based on technology
� Architects appreciate the broader context
IBM Rational Software Conference 2009
Primary References
Software Architecture Masterclass 78
www.handbookofsoftwarearchitecture.com
www2.computer.org/portal/web/computingnow/onarchitecture
www.processofsoftwarearchitecting.com
IBM Rational Software Conference 2009
Other ReferencesReference Description
Ambler 2008 Agile Model-Driven Development. Scott Ambler and Celso Gonzalez.
www.stickyminds.com/BetterSoftware/magazine.asp?fn=cifea&ac=367. 2008
Bass 2003 Software Architecture in Practice. Second edition. Len Bass, Paul Clements and Rick Kazman. Addison Wesley. ISBN 0-321-
15495-9. 2003
Cantor 2003 Rational Unified Process for Systems Engineering. Murray Cantor. Article from The Rational Edge. www.therationaledge.com.
August 2003
Hopkins 2008 Eating the IT Elephant - Moving from Greenfield Development to Brownfield. Richard Hopkins and Kevin Jenkins. IBM Press.
ISBN 0-13-713012-0. 2008
IEEE 1471 2000 Recommended practice for architectural description of software-intensive systems. IEEE Std 1471-2000. IEEE Computer
Society. 2000
Kruchten 1995 The “4+1” View Model of Architecture. Philippe Kruchten. Paper published in IEEE Software vol. 12, no. 6. November 1995, pp.
Software Architecture Masterclass 79
Kruchten 1995 The “4+1” View Model of Architecture. Philippe Kruchten. Paper published in IEEE Software vol. 12, no. 6. November 1995, pp.
42-50
McGovern 2004 A Practical Guide to Enterprise Architecture. James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn, Vikas Sharan
and Elias K. Jo. Prentice Hall. ISBN 0-13-141275-2. 2004
MDSD 2008 Model Driven Systems Development with Rational Products. IBM Redbooks. ISBN 0738485683. 2008.
www.redbooks.ibm.com/abstracts/sg247368.html
OpenUP 2008 Open Unified Process. Version 1.5.0.1. epf.eclipse.org/wikis/openup. 2008
Royce 1998 Software Project Management – A Unified Framework. Walker Royce. Addison Wesley. ISBN 0-201-30958-0. 1998
Rozanski 2005 Software Systems Architecture – Working with Stakeholders using Viewpoints and Perspectives. Nick Rozanski and Eoin
Woods. Addison Wesley. ISBN 0-321-11229-6. 2005
Schwaber 2002 Agile Software Development with Scrum. Ken Schwaber and Mike Beedle. Prentice Hall. ISBN 0-13-067634-9. 2002
UML 2.2 2009 UML 2.2 Superstructure Specification. Object Management. Group, Inc. Document number 09-02-02, February 2009.
www.omg.org/docs/formal/09-02-02.pdf. 2009
Zachman 1987 A Framework for Information Systems Architecture. John Zachman. IBM Systems Journal. Vol.26, No.3. 1987
IBM Rational Software Conference 2009
Software Architecture Masterclass 81
© Copyright IBM Corporation 2009. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.