See discussions, stats, and author profiles for this publication at: https://www.researchgate.
net/publication/228883029
The Process of Software Architecting
Book · June 2009
CITATIONS READS
37 914
2 authors, including:
Peter Eeles
34 PUBLICATIONS 229 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
The Process of Software Architecting View project
All content following this page was uploaded by Peter Eeles on 18 December 2018.
The user has requested enhancement of the downloaded file.
®
IBM Software Group
The Process of Software Architecting
Peter Eeles
Executive IT Architect
IBM UK
[email protected]
© 2009 IBM Corporation
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
2
IBM Software Group | Rational software
Coming Soon!
3
IBM Software Group | Rational software
Inspiration
“If I have seen further it is only by
standing on the shoulders of Giants”
Sir Isaac Newton, letter to Robert
Hooke, 15th February 1676
www.booch.com/architecture
www.handbookofsoftwarearchitecture.com
4
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
5
IBM Software Group | Rational software
Core Concepts
6
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]
7
IBM Software Group | Rational software
Architecture versus 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
8
IBM Software Group | Rational software
An architecture has a particular scope
9
IBM Software Group | Rational software
The benefits of architecting
Architecting helps manage complexity
Architecting ensures architectural integrity
Architecting provides a basis for reuse
Architecting addresses system qualities
Architecting drives consensus
Architecting reduces maintenance costs
Architecting supports impact analysis
Architecting supports the planning process
10
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
11
IBM Software Group | Rational software
Key Method Concepts
12
IBM Software Group | Rational software
A Waterfall Process
13
IBM Software Group | Rational software
An Iterative Process
14
IBM Software Group | Rational software
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 standards. [Schwaber]
15
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
16
IBM Software Group | Rational software
Views, Diagrams and Models
17
IBM Software Group | Rational software
Basic Views and Cross-Cutting Views
18
IBM Software Group | Rational software
Views, Models and Levels of Realization
19
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
20
IBM Software Group | Rational software
A Metamodel of Architecture Assets
21
IBM Software Group | Rational software
Agenda
Introduction
Architecture, Architect, Architecting
Method fundamentals
Documenting a software architecture
Reusable architecture assets
A day in the life
Summary
22
IBM Software Group | Rational software
Inputs
Business Entity Model
Business Process Model
Business Rules
Existing IT Environment
Vision
23
IBM Software Group | Rational software
Types of Requirements
Functional requirements
Describe the behaviors (functions or services) of the [IT] system that support
user goals, tasks or activities. [Malan]
Non-functional requirements
Non-functional requirements include constraints and qualities. [Malan]
Constraint
A constraint is a restriction on the degree of freedom we have in providing a
solution. [Leffingwell]
Quality
[System] qualities are properties or characteristics of the system that its
stakeholders care about and hence will affect their degree of satisfaction with
the system. [Malan]
24
IBM Software Group | Rational software
Define Requirements
25
IBM Software Group | Rational software
Task: Collect Stakeholder Requests
Pitfall: Treating Requests as Requirements
Pitfall: The Shopping Cart Mentality
Pitfall: The Questions are too Technical
Pitfall: Requests Are Too General
Pitfall: Requests Are Not Measurable
Pitfall: Talking with the Wrong People
Pitfall: All Requests Are Equal
26
IBM Software Group | Rational software
Task: Define System Context
27
IBM Software Group | Rational software
Task: Outline Functional Requirements
28
IBM Software Group | Rational software
Task: Outline Non-Functional Requirements
Usability Requirements
Reliability Requirements
Performance Requirements
Supportability Requirements
Constraints
Business Constraints
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]
29
IBM Software Group | Rational software
Task: Prioritize Requirements
30
IBM Software Group | Rational software
Create Logical Architecture
31
IBM Software Group | Rational software
From Requirements to Solution
32
IBM Software Group | Rational software
Approaches
Attribute Driven Design (ADD) Method
Developed at the Software Engineering Institute
Quality attributes drive the derivation of the architecture
Underpinned by architectural tactics and patterns
Siemens’ 4 Views (S4V) method
Developed at Siemens Corporate Research
Starts with a global analysis of the factors that influence the architecture
Iteratively addresses challenges across four views (conceptual, execution,
module and code architecture)
The Rational Unified Process (RUP)
Developed at Rational Software (now IBM Rational)
Driven by architecturally-significant requirements
Each iteration considers the key architectural elements of the solution, before
realizing the requirements using these solution elements
33
IBM Software Group | Rational software
How Much Logical Architecture?
Minimizing Logical Architecture
The logical architecture is simply a means of getting to a physical architecture
as quickly as possible
In some cases, no logical architecture may be required at all
E.g. The requirements for the system are similar to those of an existing
system
E.g. We are using a packaged application or integrating with an existing
system
Logical Architecture as an Investment
A valuable asset if a technology change is anticipated at some point in the
future
34
IBM Software Group | Rational software
Task: Define Architecture Overview
35
IBM Software Group | Rational software
Task: Outline Functional Elements
Component identification
Business Entity Model
Clustering of related entities
Functional requirements
Boundary, control and entity components
Non-functional requirements
Constraints
Components that address specific technical challenges (e.g. security)
Business rules
Business rules component(s)
Architecture decisions
Use of particular assets (e.g. packages, patterns)
36
IBM Software Group | Rational software
Task: Outline Functional Elements
37
IBM Software Group | Rational software
Task: Outline Functional Elements
38
IBM Software Group | Rational software
Assigning NFRs to Components
39
IBM Software Group | Rational software
Task: Outline Deployment Elements
40
IBM Software Group | Rational software
Task: Outline Deployment Elements
41
IBM Software Group | Rational software
Task: Outline Deployment Elements
42
IBM Software Group | Rational software
Summary
The process of architecting …
Spans software engineering disciplines
Applies across the project lifecycle
Draws upon proven experience (practices, standards and other assets)
Is built upon solid engineering principles
43
IBM Software Group | Rational software
44
IBM Software Group | Rational software
View publication stats
45