65
IBM Software Group ® IBM Software Group ® Software Architecting and RUP Peter Eeles [email protected]

Software Architecting and RUP.pdf

  • Upload
    ngonga

  • View
    230

  • Download
    2

Embed Size (px)

Citation preview

IBM Software Group

®

IBM Software Group

®

Software Architecting and RUP

Peter [email protected]

IBM Software Group | Rational softwareIBM 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 softwareIBM Software Group | Rational software

Architecture, Architect, Architecting

IBM Software Group | Rational softwareIBM 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 softwareIBM Software Group | Rational software

An architecture defines structure

IBM Software Group | Rational softwareIBM Software Group | Rational software

An architecture defines behaviour

IBM Software Group | Rational softwareIBM 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 softwareIBM 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 softwareIBM 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 softwareIBM 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 softwareIBM 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 architect has programming skills

� The architect is a good communicator

� The architect makes decisions

� 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

“The life of a software

architect is a long and

rapid succession of

suboptimal design

decisions taken partly in

the dark.” [Kruchten]

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecting

IBM Software Group | Rational softwareIBM 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 softwareIBM 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 softwareIBM Software Group | Rational software

Documenting a software architecture

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecture description – Kruchten 4+1 views

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecture description – GS-Method

� Component modeling

� Operational modeling

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecture description – Siemens

Conceptual

View

Module

View

Execution

View

Code

View

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecture description – RM-ODP

Enterprise

Viewpoint

Information

Viewpoint

Computational

ViewpointEngineering

Viewpoint

Technical

Viewpoint

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architecture description – Zachman framework

Data Function NetworkPerspectives

Abstractions

ScopePlanner

contextual

Enterprise ModelOwner

conceptual

System ModelDesigner

logical

People Time Motivation

Technology

Constrained ModelBuilder

physical

Detailed

RepresentationsSubcontractor

out-of-context

Functioning

Enterprise

IBM Software Group | Rational softwareIBM 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 softwareIBM 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 softwareIBM 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 softwareIBM 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 softwareIBM Software Group | Rational software

RUP Key Concepts: Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Key Concepts: Overview

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Key Concepts: Iterations

IBM Software Group | Rational softwareIBM 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 softwareIBM Software Group | Rational software

RUP Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Requirements

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Manage the Scope of the System

IBM Software Group | Rational softwareIBM Software Group | Rational software

Use-Case Model

IBM Software Group | Rational softwareIBM Software Group | Rational software

Use Cases – Prioritised

1. Create Auction

2. Place Bid

3. Close Auction

4. Browse Auction Catalog

5. Create Account

6. Sign In

7. Manage Account

8. Sign Out

IBM Software Group | Rational softwareIBM Software Group | Rational software

Requirements: Architectural Concerns Addressed

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Analysis and Design

AnalysisAnalysisAnalysis

DesignDesignDesign

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Perform Architectural Synthesis

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Define a Candidate Architecture

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architectural Analysis – Key Abstractions

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architectural Analysis – Analysis Mechanisms

IBM Software Group | Rational softwareIBM Software Group | Rational software

Architectural Analysis – Layers

IBM Software Group | Rational softwareIBM Software Group | Rational software

Analysis: Architectural Concerns Addressed

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Refine the Architecture

IBM Software Group | Rational softwareIBM Software Group | Rational software

Identify Design Mechanisms

IBM Software Group | Rational softwareIBM Software Group | Rational software

Identify Design Elements

IBM Software Group | Rational softwareIBM Software Group | Rational software

Identify Design Elements

IBM Software Group | Rational softwareIBM Software Group | Rational software

Describe Run-Time Architecture

IBM Software Group | Rational softwareIBM Software Group | Rational software

Describe Distribution

IBM Software Group | Rational softwareIBM Software Group | Rational software

Design: Architectural Concerns Addressed

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Implementation

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Structure the Implementation Model

IBM Software Group | Rational softwareIBM Software Group | Rational software

Structure the Implementation Model

IBM Software Group | Rational softwareIBM Software Group | Rational software

Implementation: Architectural Concerns Addressed

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Environment

IBM Software Group | Rational softwareIBM Software Group | Rational software

Workflow Detail: Prepare Guidelines for an Iteration

IBM Software Group | Rational softwareIBM Software Group | Rational software

Environment: Architectural Concerns Addressed

IBM Software Group | Rational softwareIBM Software Group | Rational software

RUP Disciplines

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Test

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Deployment

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Configuration and Change Management

IBM Software Group | Rational softwareIBM Software Group | Rational software

Discipline: Project Management

IBM Software Group | Rational softwareIBM 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 softwareIBM Software Group | Rational software