0% found this document useful (0 votes)
116 views46 pages

The Process of Software Architecting

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
116 views46 pages

The Process of Software Architecting

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

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

You might also like