®
IBM Software Group
The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK
[email protected]
© 2009 IBM IBM Corporati Corporation on
IBM Software Group | Rational software
Agenda
Introduction Architecture, Architect, Arc Architecting hitecting
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 Isaac15Newton, letter to Robert th February Hooke, 1676
www.booch.com/architecture www.handbookofsoftwarearchitecture.com
4
IBM Software Group | Rational software
Agenda
Introduction Architecture, Architect, Arc Architecting hitecting
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 fundamental organization of a system embodied in its components components,, their relationships to each other, and to the environment the principles guiding its design and evolution. [IEEE 1471] , and the principles
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 elements, relationships among them. [Bass]
[Architecture is] the organizati organizational onal structure and associated behavior of a system. An architecture can be rec recurs ursive ively ly de decom compos ed into intoparts, parts that interact through interfaces, relationships thatposed connect 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 bu t not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. - Gr Grad ady y Bo Booc och h
8
IBM Software Group | Rational software
An architecture has a particular scop scope e
9
IBM Software Group | Rational software
The benefits of architecting
Architecting helps helps manage complexity
Architecting ensures ensures archit architectural ectural integ integrity rity
Architecting provides provides a bas basis is for reuse
Architecting addresses addresses system qualities
Architecting drives drives consensu consensus s
Architecting reduces reduces mainte maintenance nance costs
Architecting supports supports impa impact ct analysis
Architecting supports supports the pl planning anning pro process cess
10
IBM Software Group | Rational software
Agenda
Introduction Architecture, Architect, Arc Architecting hitecting
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 manageme management nt and control process that cuts through complexity to focus on building software to meet business needs. Scrum is superimposed superimpose d on top of and wraps existing engineering practices, development methodologies methodologies and standards. [Schwaber]
15
IBM Software Group | Rational software
Agenda
Introduction Architecture, Architect, Arc Architecting hitecting
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, Arc Architecting hitecting
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, Arc Architecting hitecting
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 Environmen Environmentt
Vision
23
IBM Software Group | Rational software
Types of Requirements
Functional requireme requirements nts Describe
the behaviors (functions or services) services) of th the e [IT] system system that support 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 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 Requirement Requirements s
Reliability Requirements
Performance Requirements
Supportability Requirements
Constraints Business
Constraints
Architecture
Constraints Constraints
Development Physical
Constraints
Constraints
“Brownfield sites are those in which redevelopment or reuse of the site is complicated existing contaminants. contaminants . Greenfield sites areby 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 Driven Design (ADD) Method Developed Quality
at the Software Engineering Institute
attributes drive the derivation of the architecture
Underpinned
by architectural tactics and patterns
Siemens’ Siem ens’ 4 Vi Views ews ((S4V S4V)) me method thod Developed
at Siemens Corporate Research Starts with a global analysis of the t he factors that influence the architecture Iteratively
addresses challenges across four views (conceptual, execution, module and code architecture)
The Rational Unified Process (RUP) Developed Driven
at Rational Software (now IBM Rational)
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 al l In some cases, no logical architecture may be required at all
E.g. The requirements for the system are similar to those t hose of an existing system E.g. We are using a packaged application or integrating i ntegrating with an existing system
Logical Architecture as an Investment A
valuable asset if a technology technology change is anticipated 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 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 Draws Is
across the project lifecycle across
upon proven experience (practices, standards and other assets)
built upon solid engineering principles
43
IBM Software Group | Rational software
44
IBM Software Group | Rational software
45