software architecting and rup

Upload: yetti-pena

Post on 01-Mar-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Software Architecting and RUP

TRANSCRIPT

  • 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 OMGs 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 architects involvement starts early in the process, during Inception

    Most of the hard core architecting occurs during Elaboration

    The architects role extends through Construction and Transition

  • IBM Software Group | Rational softwareIBM Software Group | Rational software