SlideShare une entreprise Scribd logo
1  sur  91
Software Architecture
    and the UML
      Grady Booch
Architecting a dog house




                     Can be built by one person
                     Requires
                        Minimal modeling
                        Simple process
                        Simple tools
Architecting a house




Built most efficiently and timely by a team
Requires
     Modeling
     Well-defined process
     Power tools
Architecting a high rise
Early architecture

                     Progress
                     - Limited knowledge of theory
Modern architecture

                      Progress
                      - Advances in materials
                      - Advances in analysis


                      Scale
                      - 5 times the span of the Pantheon
                      - 3 times the height of Cheops
Modeling a house
Movements in civil architecture
 Bronze age/Egyptian (Imhotep)
 Grecian/Roman (Vitruvius)     Progress
                                  - Imitation of previous efforts
 Byzantine/Romanesque            - Learning from failure
                                  - Integration of other forces
                                  - Experimentation

 Gothic
 Mannerism (Michelangelo, Palladio)
 Baroque
 Engineering/Rational/National/Romantic
 Art noveau
 Modern movement (Wright, LeCorbusier)
Neufert Architect’s Data
                                              The Handbook of Building Types

Kinds of civil architecture
 Community
   ­ houses, flats and apartments, gardens,
     education, hospitals, religion
 Commerce
   ­ shops and stores, restaurants, hotels, office
     buildings, banks, airports
 Industry
   ­ industrial buildings, laboratories, farm buildings

 Leisure
   ­ sport, theaters and cinemas, museums
Forces in civil architecture



                Load
                                                     Kinds of loads
                                                      - Dead loads
                                                      - Live loads
                                                      - Dynamic loads
Compression                 Tension                  Avoiding failure
                                                      - Safety factors
                                                      - Redundancy
                                                      - Equilibrium


                                    Load



Any time you depart from established practice, make ten times the
effort, ten times the investigation. Especially on a very large project.
 - LeMessuier
Brand, How Buildings Learn


Shearing layers of change



 Space plan


   Services
                             Stuff
  Structure

       Skin

       Site
Walker Royce


Dimensions of software complexity
                           Higher technical complexity
                               - Embedded, real-time, distributed, fault-tolerant
                               - Custom, unprecedented, architecture reengineering
                               - High performance
An average software project:
 - 5-10 people                                                                         Defense
- 10-15 month duration                                                Telecom       Weapon System
- 3-5 external interfaces                                              Switch
- Some unknowns & risks                                                                      National Air Traffic
                                               Commercial                                     Control System
                                    Embedded Compiler
                                    Automotive
                                     Software                          Large-Scale
Lower                                          CASE Tool            Organization/Entity
                                                                       Simulation
                                                                                                  Higher
management                                                                                        management
complexity                      Small Scientific                                                  complexity
- Small scale                     Simulation                                                        - Large scale
- Informal                                IS Application
                                                                                 Defense            - Contractual
                                       Distributed Objects   Enterprise IS
- Single stakeholder                                         (Family of IS      MIS System          - Many stake holders
                                           (Order Entry)
- “Products”                                                 Applications)                          - “Projects”
                                          IS Application
                                             GUI/RDB
                                           (Order Entry)
                        Business
                       Spreadsheet

                      Lower technical complexity
                       - Mostly 4GL, or component-based
                       - Application reengineering
                       - Interactive performance
Forces in Software
                                                    Functionality
                                  Cost                                Compatibility


                   Capacity                                             Fail safe


         Availability                                                        Fault tolerance


              Performance                                                Throughput

                     Technology churn                           Resilience
   The challenge over the next 20 years will not be speed or cost or performance;
   it will be a question of complexity.
   Bill Raduchel, Chief Strategy Officer, Sun Microsystems

   Our enemy is complexity, and it’s our goal to kill it.
   Jan Baan
Wojtek Kozaczynski


   The domain of architecting
   The “what”                                                             The “why”
                 Architecture                                                 System
                                   Satisfies                                 Features
                  Qualities
                                                                  S/W
Architecture
                                   Constrain                  Requirements
                 Architecture
                Representation                                                System
                                                                         Quality Attributes


                  Produces                Technology          Defines
   The “who”                                                              The “how”
                                     Follows
                 Architect                                               Process

                                 Skills
                                               Defines role
                                                                        Organization
               Stakeholders
Philippe Kruchten


We all know that ...
Architecture and design are the same thing
Architecture and infrastructure are the same thing
<my favorite technology> is the architecture
A good architecture is the work of a single architect
Architecture is flat, one blueprint is enough
Architecture is just structure
System architecture precedes software architecture
Architecture cannot be measured and validated
Architecture is a Science
Architecture is an Art
Merriam Webster’s Collegiate Dictionary
                                                                 10th edition

Architecture defined (again)
Architecture n (1555) 1: the art of science of
  building, specifically, the art or practice of
  designing and building structures and esp.
  habitable ones 2 a: formation or
  construction as or as if as the result of
  conscious act <the ~ of the garden> b: a
  unifying or coherent form or structure <the
  novel lacks ~>
Mary Shaw, CMU
                                                           Grady Booch,

Architecture defined (yet again)                     Philippe Kruchten,
                                                           Rich Reitman
                                                   Kurt Bittner, Rational



 Software architecture encompasses the set
  of significant decisions about the
  organization of a software system
   ­ selection of the structural elements and their
     interfaces by which a system is composed
   ­ behavior as specified in collaborations among
     those elements
   ­ composition of these structural and behavioral
     elements into larger subsystem
   ­ architectural style that guides this organization
Mary Shaw, CMU
                                                       Grady Booch,

Architecture defined (continued)                 Philippe Kruchten,
                                                       Rich Reitman
                                               Kurt Bittner, Rational



 Software architecture also involves
   ­ usage
   ­ functionality
   ­ performance
   ­ resilience
   ­ reuse
   ­ comprehensibility
   ­ economic and technology constraints and
     tradeoffs
   ­ aesthetic concerns
Mary Shaw, CMU


Architectural style
 An architecture style defines a family of
  systems in terms of a pattern of structural
  organization.
 An architectural style defines
   ­ a vocabulary of components and connector
     types
   ­ a set of constraints on how they can be
     combined
   ­ one or more semantic models that specify how
     a system’s overall properties can be
     determined from the properties of its parts
Architecture metamodel
                                                Software                                  Software
                                               Archite cture                              Architects
                            is part
                            of                                                              are actors in
           System
                                               is represe nte d by
         architecture
                                                                                           Architecture
                                                                                          D esign Process

                                                  Softwa re                produces
                                                 Architecture                                  Logical view
                          has                    D escription

                                                                                                  P rocess
                                                  is ma de of
                                                                                                     view
      relates to
                                     Architecture                                  is a         Imple men-
                                      S tyle guide                                              tation view
                                                               Architectural                   D eployment
                                                                    view                            view
                             has
                                                                                                 U se case
                Architectural style                                  is made of                     view
                                        ha s
                                                                               constrains


                                        is a         Form             Connection
                                                                                                depicts
                   Architectural
                      P attern
                                                     Compone nt         Constraints


                             satisfies
                                                                                            Archite ctura l
                                                          constrains                          Blue print
                   R equire me nts
Models
 Models are the language of designer, in
  many disciplines
 Models are representations of the system
  to­be­built or as­built
 Models are vehicle for communications
  with various stakeholders
 Visual models, blueprints
 Scale
 Models allow reasoning about some
  characteristic of the real system
Many stakeholders, many views
 Architecture is many things to many different
  interested parties
   ­   end­user
   ­   customer
   ­   project manager
   ­   system engineer
   ­   developer
   ­   architect
   ­   maintainer
   ­   other developers
 Multidimensional reality
 Multiple stakeholders
           multiple views, multiple blueprints
Architectural view
 An architectural view is a simplified
  description (an abstraction) of a system
  from a particular perspective or vantage
  point, covering particular concerns, and
  omitting entities that are not relevant to this
  perspective
Architecturally significant elements
 Not all design is architecture


 Main “business” classes
 Important mechanisms
 Processors and processes
 Layers and subsystems


 Architectural views = slices through
  models
Characteristics of a Good Architecture
 Resilient
 Simple
 Approachable
 Clear separation of concerns
 Balanced distribution of responsibilities
 Balances economic and technology
  constraints
Representing System Architecture


                      Logical View            Implementation View


    End-user                                                        Programmers
    Functionality                                           Software management


                                     Use Case View

                      Process View            Deployment View
   System integrators                                        System engineering
   Performance                                                 System topology
   Scalability                                               Delivery, installation
   Throughput                                                    Communication

                    Conceptual                           Physical
Relation Between Views

  Logical view       Component view



                 α




                                            Process view
                                      β

                                          Deployment view
How many views?

 Simplified models to fit the context

 Not all systems require all views:
   ­ Single processor: drop deployment view
   ­ Single process: drop process view
   ­ Very Small program: drop implementation view

 Adding views:
   ­ Data view, security view
The Value of the UML
 Is an open standard
 Supports the entire software development
  lifecycle
 Supports diverse applications areas
 Is based on experience and needs of the
  user community
 Supported by many tools
Creating the UML

                                                                            UML 1.3
                OMG Acceptance, Nov 1997
                Final submission to OMG, Sep ‘97                       UML 1.1
   public       First submission to OMG, Jan ´97
feedback
            UML partners                                       UML 1.0

                Web - June ´96                      UML 0.9

                OOPSLA ´95                Unified Method 0.8




    Other methods            Booch method                        OMT         OOSE
UML Partners
 Rational Software Corporation
 Hewlett­Packard
 I­Logix
 IBM
 ICON Computing
 Intellicorp
 MCI Systemhouse
 Microsoft
 ObjecTime
 Oracle
 Platinum Technology
 Taskon
 Texas Instruments/Sterling Software
 Unisys
Contributions to the UML
                                                 Harel
                       Meyer                                      Gamma, et al
                                               Statecharts
                   Before and after                           Frameworks and patterns,
                      conditions
                                                                                      HP Fusion
             Booch
                                                                              Operation descriptions and
    Booch method                                                              message numbering

                                                                                        Embley
  Rumbaugh
                                                                                   Singleton classes and
     OMT
                                                                                   high-level view

           Jacobson                                                             Wirfs-Brock
              OOSE
                                                                                Responsibilities

                                  Shlaer - Mellor               Odell

                                      Object lifecycles      Classification
Overview of the UML
 The UML is a language for
   ­   visualizing
   ­   specifying
   ­   constructing
   ­   documenting

  the artifacts of a software­intensive system
Overview of the UML
 Modeling elements
 Relationships
 Extensibility Mechanisms
 Diagrams
Modeling Elements
 Structural elements
   ­ class, interface, collaboration, use case,
     active class, component, node

 Behavioral elements
   ­ interaction, state machine

 Grouping elements
   ­ package, subsystem

 Other elements
   ­ note
Relationships
 Dependency
 Association
 Generalization
 Realization
Extensibility Mechanisms
 Stereotype
 Tagged value
 Constraint
Models, Views, and Diagrams
A model is a complete
description of a system
from a particular
                                                      State
perspective                                             State
                                                    Diagrams
                                                         Class
                                                     Diagrams
                                 Use Case              Diagrams
                                  Use Case
                                 Diagrams                                        State
             Use Case               Use Case
                                  Diagrams                                         State
                                                                               Diagrams
              Use Case              Diagrams                                        Object
                                                                                Diagrams
             Diagrams
                Sequence                                                          Diagrams
              Diagrams
                Diagrams


         Scenario                                                                State
           Scenario
         Diagrams                                                                  State
                                                                               Diagrams
          Collaboration
          Diagrams                             Models                            Component
                                                                                Diagrams
            Diagrams                                                              Diagrams


                 Scenario                                         Component
                   Scenario
                 Diagrams
                                                                    Component
                                                                   Diagrams
                                                                    Deployment
                    Statechart
                  Diagrams                                           Diagrams
                    Diagrams                                        Diagrams
                                            Activity
                                           Diagrams
Diagrams
 A diagram is a view into a model
   ­ Presented from the aspect of a particular
     stakeholder
   ­ Provides a partial representation of the system
   ­ Is semantically consistent with other views

 In the UML, there are nine standard
  diagrams
   ­ Static views: use case, class, object,
     component, deployment
   ­ Dynamic views: sequence, collaboration,
     statechart, activity
Use Case Diagram
 Captures system functionality as seen by
  users
Use Case Diagram
 Captures system functionality as seen by
  users
 Built in early stages of development
 Purpose
   ­   Specify the context of a system
   ­   Capture the requirements of a system
   ­   Validate a system’s architecture
   ­   Drive implementation and generate test cases
 Developed by analysts and domain experts
Class Diagram
 Captures the vocabulary of a system
Class Diagram
 Captures the vocabulary of a system
 Built and refined throughout development
 Purpose
   ­ Name and model concepts in the system
   ­ Specify collaborations
   ­ Specify logical database schemas

 Developed by analysts, designers, and
  implementers
Object Diagram
 Captures instances and links
Object Diagram
 Shows instances and links
 Built during analysis and design
 Purpose
   ­ Illustrate data/object structures
   ­ Specify snapshots

 Developed by analysts, designers, and
  implementers
Component Diagram
 Captures the physical structure of the
  implementation
Component Diagram
 Captures the physical structure of the
  implementation
 Built as part of architectural specification
 Purpose
   ­ Organize source code
   ­ Construct an executable release
   ­ Specify a physical database

 Developed by architects and programmers
Deployment Diagram
 Captures the topology of a system’s
  hardware
Deployment Diagram
 Captures the topology of a system’s
  hardware
 Built as part of architectural specification
 Purpose
   ­ Specify the distribution of components
   ­ Identify performance bottlenecks

 Developed by architects, networking
  engineers, and system engineers
Sequence Diagram
 Captures dynamic behavior (time­oriented)
Sequence Diagram
 Captures dynamic behavior (time­oriented)
 Purpose
   ­ Model flow of control
   ­ Illustrate typical scenarios
Collaboration Diagram
  Captures dynamic behavior (message­
   oriented)
Collaboration Diagram
  Captures dynamic behavior (message­
   oriented)
  Purpose
    ­ Model flow of control
    ­ Illustrate coordination of object structure and
      control
Statechart Diagram
 Captures dynamic behavior (event­
  oriented)
Statechart Diagram
 Captures dynamic behavior (event­
  oriented)
 Purpose
   ­ Model object lifecycle
   ­ Model reactive objects (user interfaces,
     devices, etc.)
Activity Diagram
 Captures dynamic behavior (activity­oriented)
Activity Diagram
 Captures dynamic behavior (activity­oriented)
 Purpose
   ­ Model business workflows
   ­ Model operations
Architecture and the UML


                     Design View                Implementation View


  Classes, interfaces,
  collaborations                                                      Components
                               Use cases

                                       Use Case View

                     Process View               Deployment View


  Active classes                                                           Nodes

                         Organization            Dynamics
                         Package, subsystem      Interaction
                                                 State machine
Software engineering process
A set of partially ordered steps intended to
   reach a goal. In software engineering the
   goal is to build a software product or to
   enhance an existing one.


 Architectural process
   ­ Sequence of activities that lead to the
     production of architectural artifacts:
        A software architecture description
        An architectural prototype
Rational Unified Process
 Iterative
 Architecture­centric
 Use­case driven
 Risk confronting
Focus over time

         Discovery   Invention   Implementation




 Focus
Key concepts
                               When does
 Phase, Iterations       architecture happen?

 Process Workflows           What does
   ­ Activity, steps          happen?



 Artifacts                    What is
                             produced?
   ­ models
   ­ reports, documents
                              Who does
 Worker: Architect             it?
Lifecycle Phases

   Inception    Elaboration      Construction       Transition


   time

 Inception         Define the scope of the project and
                    develop business case
 Elaboration       Plan project, specify features, and
                    baseline the architecture
 Construction Build the product
 Transition   Transition the product to its users
Major Milestones

 Inception            Elaboration             Construction                Transition


 time



             Vision             Baseline                       Initial                 Product
                               Architecture                  Capability                Release
Phases and Iterations

 Inception             Elaboration                     Construction                        Transition


 Prelim     ...     Arch            ...          Dev         Dev           ...          Trans           ...
Iteration         Iteration                    Iteration   Iteration                  Iteration




             Release      Release         Release    Release     Release         Release     Release          Release



 An iteration is a sequence of activities with an established plan and
 evaluation criteria, resulting in an executable release
Architecture-Centric

 Models are vehicles for visualizing, specifying,
  constructing, and documenting architecture
 The Unified Process prescribes the
  successive refinement of an executable
  architecture
 Inception   Elaboration       Construction   Transition


 time
                           Architecture
Unified Process structure
                                                             Phases
  Process Workflows           Inception Elaboration            Construction          Transition

         Business Modeling
             Requirements
         Analysis & Design
            Implementation
                      Test
               Deployment
  Supporting Workflows
         Configuration Mgmt
               Management
               Environment
                              Preliminary    Iter.   Iter.    Iter.    Iter. Iter.   Iter.    Iter.
                              Iteration(s)    #1      #2       #n     #n+1 #n+2      #m      #m+1

                                                         Iterations
Architecture and Iterations




  Use case   Design   Implementation   Deployment   Test
   Model     Model        Model          Model      Model




                       Content
Architectural design
 Identify, select, and validate
     “architecturally significant” elements
 Not everything is architecture
   ­   Main “business” classes
   ­   Important mechanisms
   ­   Processors and processes
   ­   Layers and subsystems
   ­   Interfaces
 Produce a Software Architecture Documen
Architectural design workflow
 Select scenarios: criticality and risk    Use case view


 Identify main classes and their
  responsibility                            Logical view

 Distribute behavior on classes
 Structure in subsystems, layers, Implementation view
  define interfaces                  Deployment view
 Define distribution and concurrency Process view
 Implement architectural prototype
 Derive tests from use cases
 Evaluate architecture
   Iterate
Sources of architecture


             Method                       Method

Theft                 Intuition   Theft            Intuition




        Classical system           Unprecedented system
Patterns
 A pattern is a solution to a problem in a
  context
 A pattern codifies specific knowledge
  collected from experience in a domain
 All well­structured systems are full of
  patterns
   ­ Idioms
   ­ Design patterns
   ­ Architectural patterns
daVinci


Mechanisms
   Screws                       • Brakes
   Keys                         • Pipes
   Rivets                       • Valves
   Bearings                     • Springs
   Pins, axles, shafts          • Cranks and rods
   Couplings                    • Cams
   Ropes, belts, and chains     • Pulleys
   Friction wheels              • Engaging gears
   Toothed wheels
   Flywheels
   Levers and connecting rods
   Click wheels and gears
   Ratchets
Design Patterns
                                             Gamma et al

Design patterns
 Creational patterns
   ­ Abstract factory
   ­ Prototype
 Structural patterns
   ­ Adapter
   ­ Bridge
   ­ Proxy
 Behavioral patterns
   ­ Chain of responsibility
   ­ Mediator
   ­ Visitor
 Mechanisms are the soul of an architecture
Modeling a design pattern
Modeling a design pattern (cont.)
Modeling a design pattern (cont.)
Software Architecture
                                             Shaw and Garlan

Architectural patterns                        Buschmann et al
                                         A System of Patterns
                                               Buschman et al
                                                        Booch

 Distributed          •   Layered
 Event­driven         •   MVC
 Frame­based          •   IR­centric
 Batch                •   Subsumption
 Pipes and filters    •   Disposable
 Repository­centric
 Blackboard
 Interpreter
 Rule­based
Real-Life Object-oriented Systems
                                                                                                             Soren Lauesen

Complex business system
          Customer
        name : String                                               Sales
                                         Order                                      GUI layer
        Address : String                                        product : Product
                                        date : Date
        save()




                 ServiceAgent                             Observer

      purchase(customer, product, items)                   update()


                                                                                    Middle layer


     Customer                        Order Line                     Product
   name : String                   items : Product               name : String
   Address : String                                              price : Currency
                                   getName()
   save()                          updateName()                  getName()
   getName()                                                     updateName()
   updateName()




            Customer                    Order Line                    Product       SQL Database
                                    *                 *
Logical application architecture


    Graphical       Graphical      Graphical
    User            User           User
    Interface       Interface      Interface


    Relational        Business     Business
    Database          Object       Object
                      Model        Model



                   Relational
                   Database
                                   Relational
                                   Database
Physical application architecture
                                      Thinner client, thicker server


 Client A                         Client B                             Client C
                Application                          Application                      WWW Browser


              Business Object                DCOM
                                                   CORBA Beans
                 Services                    ADO/R


              Business Object
                  Engine                                                 Web
                                                                               HTML
                                   Business    COM          Beans       Server CGI      ASP     Java
                                 Object Server MTS          ETS

                                                 Business Object                  Business Object
                                                    Services                         Services

                                                 Business Object                  Business Object
                                                     Engine                           Engine




      Relational Database Server(s)
The Second Wave
                                                                                   Paul Dreyfus, Netscape

Complex Internet system

                                   Dynamic HTML, JavaScript, Java
                  Client
                                   plug-ins, source code enhancements




                                                 Java, C, C++, JavaScript, CGI
                                  Server




                                              Application      Java, C, C++, JavaBeans, CORBA, DCOM
                                                Server




    Fulfillment            Financial            Inventory               RDBMS      Native languages
     System                 System               System                 Server
Who are the architects?
 Experience
   ­ software development
   ­ domain

 Pro­active, goal oriented
 Leadership, authority
 Architecture team
   ­ balance
Architect
 Not just a top level designer
        Need to ensure feasibility

 Not the project manager
        But “joined at the hip”

 Not a technology expert
        Purpose of the system, “fit”,

 Not a lone scientist
        Communicator
Software architecture team charter
 Defining the architecture of the software
 Maintaining the architectural integrity of the
  software
 Assessing technical risks related to the
  software design
 Proposing the order and contents of the
  successive iterations
 Consulting services
 Assisting marketing for future product
  definition
 Facilitating communications between
  project teams
Architecture is making decisions



   The life of a software architect is a long (and
   sometimes painful) succession of suboptimal
   decisions made partly in the dark.
Futures
 ADL: Architecture Description Languages
   ­ UML, UniCon, LILEAnna, P++, LEAP, Wright,
     µRapid
 Standardization of concepts
   ­ IEEE Working Group on Architecture
   ­ INCOSE Working Group on System
     Architecture
 Systematic capture of architectural patterns
References (Architecture)
 Len Bass, Paul Clements & Rick Kazman, Software Architecture in
  Practice, Addison-Wesley, 1998.
 Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad,
  and Michael Stahl, Pattern-Oriented Software Architecture - A System
  of Patterns, Wiley and Sons, 1996.
 Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software
  Architecture, Addison-Wesley 1999.
 Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design
  Patterns, Addison-Wesley 1995.
 Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE
  Software, 12 (6), November 1995, IEEE.
    ­   http://www.rational.com/support/techpapers/ieee/

 Eberhardt Rechtin, Systems Architecting: Creating and Building
  Complex Systems, Englewood Cliffs NJ, Prentice-Hall, 1991.
References (Architecture)
   Eberhardt Rechtin & Mark Maier, The Art of System
    Architecting, CRC Press, 1997.
   Recommended Practice for Architectural Description, Draft 2.0 of
    IEEE P1471, May 1998
     ­   http://www.pithecanthropus.com/~awg/

   Mary Shaw, and David Garlan, Software Architecture—
    Perspectives on an Emerging Discipline, Upper Saddle River,
    NJ, Prentice-Hall, 1996.
   Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software
    Architecture and Design—Principles, Models, and Methods,
    New York NY, Van Nostrand Reinhold, 1995.
   The World-wide Institute of Software Architects
     ­   http://www.wwisa.org
References (UML)
   Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified
    Modeling Language User Guide, Addison-Wesley, 1999.
References (Process)
   Barry Boehm, “A spiral model of software development and
    enhancement,” IEEE Computer, May 1998.
   Barry Boehm, “Anchoring the software process,” IEEE
    Software, July 1996.
   Grady Booch, Object Solutions, Addison-Wesley, 1995.
   Philippe Kruchten, “A Rational Development Process,”
    CrossTalk, July 1996.
     ­   http://www.rational.com/support/techpapers/devprcs/

   Philippe Kruchten, The Rational Unified Process - An
    Introduction, Addison-Wesley, 1999.
   Rational Unified Process 5.0, Rational, Cupertino, CA, 1998
   Walker Royce, Software Project Management: a Unified
    Framework, Addison-Wesley, 1998
   The Software Program Manager’s Network
     ­   http://www.spmn.com

Contenu connexe

Tendances

IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are Opened
IBM’s zEnterprise Really Stretches Its Boundaries  — New Windows Are OpenedIBM’s zEnterprise Really Stretches Its Boundaries  — New Windows Are Opened
IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are OpenedIBM India Smarter Computing
 
Modeling for Fun and Profit
Modeling for Fun and ProfitModeling for Fun and Profit
Modeling for Fun and ProfitDavid Sciamma
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application ManagementCAST
 
Accelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border ControllersAccelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border ControllersAcmePacket
 
Wind River Simics
Wind River SimicsWind River Simics
Wind River Simicskylefacchin
 
ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"Aberla
 
User Experience Monitoring presented at CA World 2011
User Experience Monitoring   presented at CA World 2011User Experience Monitoring   presented at CA World 2011
User Experience Monitoring presented at CA World 2011CA Nimsoft
 
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell
 
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Ken Wong
 
Whitepaper multipoint video_conferencing_june2012_wr
Whitepaper multipoint video_conferencing_june2012_wrWhitepaper multipoint video_conferencing_june2012_wr
Whitepaper multipoint video_conferencing_june2012_wrJohn Shim
 
Trying to understand the intersection between Business & Technology
Trying to understand the intersection between Business & TechnologyTrying to understand the intersection between Business & Technology
Trying to understand the intersection between Business & TechnologyJean-François Caenen
 

Tendances (17)

IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are Opened
IBM’s zEnterprise Really Stretches Its Boundaries  — New Windows Are OpenedIBM’s zEnterprise Really Stretches Its Boundaries  — New Windows Are Opened
IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are Opened
 
Modeling for Fun and Profit
Modeling for Fun and ProfitModeling for Fun and Profit
Modeling for Fun and Profit
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application Management
 
Over The Cloud
Over The CloudOver The Cloud
Over The Cloud
 
Accelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border ControllersAccelerate Microsoft Lync Deployments with Session Border Controllers
Accelerate Microsoft Lync Deployments with Session Border Controllers
 
Wind River Simics
Wind River SimicsWind River Simics
Wind River Simics
 
ADempiere erp-brochure_v0.4eng
ADempiere erp-brochure_v0.4engADempiere erp-brochure_v0.4eng
ADempiere erp-brochure_v0.4eng
 
ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"ESEconf2011 - Buschmann Frank: "What architects need to know"
ESEconf2011 - Buschmann Frank: "What architects need to know"
 
EMC & Techno Vision
EMC & Techno VisionEMC & Techno Vision
EMC & Techno Vision
 
User Experience Monitoring presented at CA World 2011
User Experience Monitoring   presented at CA World 2011User Experience Monitoring   presented at CA World 2011
User Experience Monitoring presented at CA World 2011
 
Bim Newsletter January2012
Bim Newsletter January2012Bim Newsletter January2012
Bim Newsletter January2012
 
Lifecycle
LifecycleLifecycle
Lifecycle
 
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback OpportunityNovell Support Revealed! An Insider's Peek and Feedback Opportunity
Novell Support Revealed! An Insider's Peek and Feedback Opportunity
 
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...Agility With Care: Managing Requirements Change with Agility In A Regulated P...
Agility With Care: Managing Requirements Change with Agility In A Regulated P...
 
Whitepaper multipoint video_conferencing_june2012_wr
Whitepaper multipoint video_conferencing_june2012_wrWhitepaper multipoint video_conferencing_june2012_wr
Whitepaper multipoint video_conferencing_june2012_wr
 
Trying to understand the intersection between Business & Technology
Trying to understand the intersection between Business & TechnologyTrying to understand the intersection between Business & Technology
Trying to understand the intersection between Business & Technology
 
Automotive Services from Calsoftlabs
Automotive Services from CalsoftlabsAutomotive Services from Calsoftlabs
Automotive Services from Calsoftlabs
 

Similaire à Architecture

Cloud Architectures for Alpha Dogs!
Cloud Architectures for Alpha Dogs!Cloud Architectures for Alpha Dogs!
Cloud Architectures for Alpha Dogs!Vikas Gupta
 
Monitoring Principles & z/VSE Monitoring Options
Monitoring Principles & z/VSE Monitoring OptionsMonitoring Principles & z/VSE Monitoring Options
Monitoring Principles & z/VSE Monitoring OptionsIBM India Smarter Computing
 
INFOSEC LANDSCAPE AND RESEARCH TRENDS
INFOSEC LANDSCAPE AND RESEARCH TRENDSINFOSEC LANDSCAPE AND RESEARCH TRENDS
INFOSEC LANDSCAPE AND RESEARCH TRENDSgopikurup
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010Gerardo Pardo-Castellote
 
NGSoft General Overview
NGSoft General OverviewNGSoft General Overview
NGSoft General OverviewMichael Starr
 
FewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumFewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumTom Crombez
 
Scalability and Availability - Without Compromise
Scalability and Availability - Without CompromiseScalability and Availability - Without Compromise
Scalability and Availability - Without CompromiseBjorn Andersson
 
Wind River For Medical
Wind River For MedicalWind River For Medical
Wind River For Medicalsheilamia
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems Engineering - a smarter way
Systems Engineering - a smarter wayMark Borowski
 
Embracing Failure - AzureDay Rome
Embracing Failure - AzureDay RomeEmbracing Failure - AzureDay Rome
Embracing Failure - AzureDay RomeAlberto Acerbis
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Don't be Hadooped when looking for Big Data ROI
Don't be Hadooped when looking for Big Data ROIDon't be Hadooped when looking for Big Data ROI
Don't be Hadooped when looking for Big Data ROIDataWorks Summit
 
Vincent Desveronnieres, Oracle
Vincent Desveronnieres,  OracleVincent Desveronnieres,  Oracle
Vincent Desveronnieres, OracleEwa Stepien
 
Smart Clouds for Smart Companies
Smart Clouds for Smart CompaniesSmart Clouds for Smart Companies
Smart Clouds for Smart CompaniesPeter Coffee
 
Yves caseau@md day2011
Yves caseau@md day2011Yves caseau@md day2011
Yves caseau@md day2011MDDAY11
 

Similaire à Architecture (20)

Sa002 abc
Sa002 abcSa002 abc
Sa002 abc
 
Day 3 p2 - security
Day 3   p2 - securityDay 3   p2 - security
Day 3 p2 - security
 
Day 3 p2 - security
Day 3   p2 - securityDay 3   p2 - security
Day 3 p2 - security
 
Cloud Architectures for Alpha Dogs!
Cloud Architectures for Alpha Dogs!Cloud Architectures for Alpha Dogs!
Cloud Architectures for Alpha Dogs!
 
Monitoring Principles & z/VSE Monitoring Options
Monitoring Principles & z/VSE Monitoring OptionsMonitoring Principles & z/VSE Monitoring Options
Monitoring Principles & z/VSE Monitoring Options
 
INFOSEC LANDSCAPE AND RESEARCH TRENDS
INFOSEC LANDSCAPE AND RESEARCH TRENDSINFOSEC LANDSCAPE AND RESEARCH TRENDS
INFOSEC LANDSCAPE AND RESEARCH TRENDS
 
RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010RTI Data-Distribution Service (DDS) Master Class - 2010
RTI Data-Distribution Service (DDS) Master Class - 2010
 
NGSoft General Overview
NGSoft General OverviewNGSoft General Overview
NGSoft General Overview
 
FewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuumFewebPlus @ microsoft 19 april 2010 cloud continuum
FewebPlus @ microsoft 19 april 2010 cloud continuum
 
Scalability and Availability - Without Compromise
Scalability and Availability - Without CompromiseScalability and Availability - Without Compromise
Scalability and Availability - Without Compromise
 
Wind River For Medical
Wind River For MedicalWind River For Medical
Wind River For Medical
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems Engineering - a smarter way
Systems Engineering - a smarter way
 
Embracing Failure - AzureDay Rome
Embracing Failure - AzureDay RomeEmbracing Failure - AzureDay Rome
Embracing Failure - AzureDay Rome
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Electric Cloud
Electric CloudElectric Cloud
Electric Cloud
 
Don't be Hadooped when looking for Big Data ROI
Don't be Hadooped when looking for Big Data ROIDon't be Hadooped when looking for Big Data ROI
Don't be Hadooped when looking for Big Data ROI
 
Vincent Desveronnieres, Oracle
Vincent Desveronnieres,  OracleVincent Desveronnieres,  Oracle
Vincent Desveronnieres, Oracle
 
Smart Clouds for Smart Companies
Smart Clouds for Smart CompaniesSmart Clouds for Smart Companies
Smart Clouds for Smart Companies
 
SmartConnect-Mobility
SmartConnect-MobilitySmartConnect-Mobility
SmartConnect-Mobility
 
Yves caseau@md day2011
Yves caseau@md day2011Yves caseau@md day2011
Yves caseau@md day2011
 

Plus de Julio Pari

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Julio Pari
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCJulio Pari
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic EnterpriseJulio Pari
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioJulio Pari
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoJulio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISIJulio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIJulio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasJulio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIJulio Pari
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaJulio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialJulio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialJulio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuarioJulio Pari
 

Plus de Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 

Architecture

  • 1. Software Architecture and the UML Grady Booch
  • 2. Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools
  • 3. Architecting a house Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools
  • 5. Early architecture Progress - Limited knowledge of theory
  • 6. Modern architecture Progress - Advances in materials - Advances in analysis Scale - 5 times the span of the Pantheon - 3 times the height of Cheops
  • 8. Movements in civil architecture  Bronze age/Egyptian (Imhotep)  Grecian/Roman (Vitruvius) Progress - Imitation of previous efforts  Byzantine/Romanesque - Learning from failure - Integration of other forces - Experimentation  Gothic  Mannerism (Michelangelo, Palladio)  Baroque  Engineering/Rational/National/Romantic  Art noveau  Modern movement (Wright, LeCorbusier)
  • 9. Neufert Architect’s Data The Handbook of Building Types Kinds of civil architecture  Community ­ houses, flats and apartments, gardens, education, hospitals, religion  Commerce ­ shops and stores, restaurants, hotels, office buildings, banks, airports  Industry ­ industrial buildings, laboratories, farm buildings  Leisure ­ sport, theaters and cinemas, museums
  • 10. Forces in civil architecture Load Kinds of loads - Dead loads - Live loads - Dynamic loads Compression Tension Avoiding failure - Safety factors - Redundancy - Equilibrium Load Any time you depart from established practice, make ten times the effort, ten times the investigation. Especially on a very large project. - LeMessuier
  • 11. Brand, How Buildings Learn Shearing layers of change Space plan Services Stuff Structure Skin Site
  • 12. Walker Royce Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance An average software project: - 5-10 people Defense - 10-15 month duration Telecom Weapon System - 3-5 external interfaces Switch - Some unknowns & risks National Air Traffic Commercial Control System Embedded Compiler Automotive Software Large-Scale Lower CASE Tool Organization/Entity Simulation Higher management management complexity Small Scientific complexity - Small scale Simulation - Large scale - Informal IS Application Defense - Contractual Distributed Objects Enterprise IS - Single stakeholder (Family of IS MIS System - Many stake holders (Order Entry) - “Products” Applications) - “Projects” IS Application GUI/RDB (Order Entry) Business Spreadsheet Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance
  • 13. Forces in Software Functionality Cost Compatibility Capacity Fail safe Availability Fault tolerance Performance Throughput Technology churn Resilience The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity. Bill Raduchel, Chief Strategy Officer, Sun Microsystems Our enemy is complexity, and it’s our goal to kill it. Jan Baan
  • 14. Wojtek Kozaczynski The domain of architecting The “what” The “why” Architecture System Satisfies Features Qualities S/W Architecture Constrain Requirements Architecture Representation System Quality Attributes Produces Technology Defines The “who” The “how” Follows Architect Process Skills Defines role Organization Stakeholders
  • 15. Philippe Kruchten We all know that ... Architecture and design are the same thing Architecture and infrastructure are the same thing <my favorite technology> is the architecture A good architecture is the work of a single architect Architecture is flat, one blueprint is enough Architecture is just structure System architecture precedes software architecture Architecture cannot be measured and validated Architecture is a Science Architecture is an Art
  • 16. Merriam Webster’s Collegiate Dictionary 10th edition Architecture defined (again) Architecture n (1555) 1: the art of science of building, specifically, the art or practice of designing and building structures and esp. habitable ones 2 a: formation or construction as or as if as the result of conscious act <the ~ of the garden> b: a unifying or coherent form or structure <the novel lacks ~>
  • 17. Mary Shaw, CMU Grady Booch, Architecture defined (yet again) Philippe Kruchten, Rich Reitman Kurt Bittner, Rational  Software architecture encompasses the set of significant decisions about the organization of a software system ­ selection of the structural elements and their interfaces by which a system is composed ­ behavior as specified in collaborations among those elements ­ composition of these structural and behavioral elements into larger subsystem ­ architectural style that guides this organization
  • 18. Mary Shaw, CMU Grady Booch, Architecture defined (continued) Philippe Kruchten, Rich Reitman Kurt Bittner, Rational  Software architecture also involves ­ usage ­ functionality ­ performance ­ resilience ­ reuse ­ comprehensibility ­ economic and technology constraints and tradeoffs ­ aesthetic concerns
  • 19. Mary Shaw, CMU Architectural style  An architecture style defines a family of systems in terms of a pattern of structural organization.  An architectural style defines ­ a vocabulary of components and connector types ­ a set of constraints on how they can be combined ­ one or more semantic models that specify how a system’s overall properties can be determined from the properties of its parts
  • 20. Architecture metamodel Software Software Archite cture Architects is part of are actors in System is represe nte d by architecture Architecture D esign Process Softwa re produces Architecture Logical view has D escription P rocess is ma de of view relates to Architecture is a Imple men- S tyle guide tation view Architectural D eployment view view has U se case Architectural style is made of view ha s constrains is a Form Connection depicts Architectural P attern Compone nt Constraints satisfies Archite ctura l constrains Blue print R equire me nts
  • 21. Models  Models are the language of designer, in many disciplines  Models are representations of the system to­be­built or as­built  Models are vehicle for communications with various stakeholders  Visual models, blueprints  Scale  Models allow reasoning about some characteristic of the real system
  • 22. Many stakeholders, many views  Architecture is many things to many different interested parties ­ end­user ­ customer ­ project manager ­ system engineer ­ developer ­ architect ­ maintainer ­ other developers  Multidimensional reality  Multiple stakeholders multiple views, multiple blueprints
  • 23. Architectural view  An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective
  • 24. Architecturally significant elements  Not all design is architecture  Main “business” classes  Important mechanisms  Processors and processes  Layers and subsystems  Architectural views = slices through models
  • 25. Characteristics of a Good Architecture  Resilient  Simple  Approachable  Clear separation of concerns  Balanced distribution of responsibilities  Balances economic and technology constraints
  • 26. Representing System Architecture Logical View Implementation View End-user Programmers Functionality Software management Use Case View Process View Deployment View System integrators System engineering Performance System topology Scalability Delivery, installation Throughput Communication Conceptual Physical
  • 27. Relation Between Views Logical view Component view α Process view β Deployment view
  • 28. How many views?  Simplified models to fit the context  Not all systems require all views: ­ Single processor: drop deployment view ­ Single process: drop process view ­ Very Small program: drop implementation view  Adding views: ­ Data view, security view
  • 29. The Value of the UML  Is an open standard  Supports the entire software development lifecycle  Supports diverse applications areas  Is based on experience and needs of the user community  Supported by many tools
  • 30. Creating the UML UML 1.3 OMG Acceptance, Nov 1997 Final submission to OMG, Sep ‘97 UML 1.1 public First submission to OMG, Jan ´97 feedback UML partners UML 1.0 Web - June ´96 UML 0.9 OOPSLA ´95 Unified Method 0.8 Other methods Booch method OMT OOSE
  • 31. UML Partners  Rational Software Corporation  Hewlett­Packard  I­Logix  IBM  ICON Computing  Intellicorp  MCI Systemhouse  Microsoft  ObjecTime  Oracle  Platinum Technology  Taskon  Texas Instruments/Sterling Software  Unisys
  • 32. Contributions to the UML Harel Meyer Gamma, et al Statecharts Before and after Frameworks and patterns, conditions HP Fusion Booch Operation descriptions and Booch method message numbering Embley Rumbaugh Singleton classes and OMT high-level view Jacobson Wirfs-Brock OOSE Responsibilities Shlaer - Mellor Odell Object lifecycles Classification
  • 33. Overview of the UML  The UML is a language for ­ visualizing ­ specifying ­ constructing ­ documenting the artifacts of a software­intensive system
  • 34. Overview of the UML  Modeling elements  Relationships  Extensibility Mechanisms  Diagrams
  • 35. Modeling Elements  Structural elements ­ class, interface, collaboration, use case, active class, component, node  Behavioral elements ­ interaction, state machine  Grouping elements ­ package, subsystem  Other elements ­ note
  • 36. Relationships  Dependency  Association  Generalization  Realization
  • 37. Extensibility Mechanisms  Stereotype  Tagged value  Constraint
  • 38. Models, Views, and Diagrams A model is a complete description of a system from a particular State perspective State Diagrams Class Diagrams Use Case Diagrams Use Case Diagrams State Use Case Use Case Diagrams State Diagrams Use Case Diagrams Object Diagrams Diagrams Sequence Diagrams Diagrams Diagrams Scenario State Scenario Diagrams State Diagrams Collaboration Diagrams Models Component Diagrams Diagrams Diagrams Scenario Component Scenario Diagrams Component Diagrams Deployment Statechart Diagrams Diagrams Diagrams Diagrams Activity Diagrams
  • 39. Diagrams  A diagram is a view into a model ­ Presented from the aspect of a particular stakeholder ­ Provides a partial representation of the system ­ Is semantically consistent with other views  In the UML, there are nine standard diagrams ­ Static views: use case, class, object, component, deployment ­ Dynamic views: sequence, collaboration, statechart, activity
  • 40. Use Case Diagram  Captures system functionality as seen by users
  • 41. Use Case Diagram  Captures system functionality as seen by users  Built in early stages of development  Purpose ­ Specify the context of a system ­ Capture the requirements of a system ­ Validate a system’s architecture ­ Drive implementation and generate test cases  Developed by analysts and domain experts
  • 42. Class Diagram  Captures the vocabulary of a system
  • 43. Class Diagram  Captures the vocabulary of a system  Built and refined throughout development  Purpose ­ Name and model concepts in the system ­ Specify collaborations ­ Specify logical database schemas  Developed by analysts, designers, and implementers
  • 44. Object Diagram  Captures instances and links
  • 45. Object Diagram  Shows instances and links  Built during analysis and design  Purpose ­ Illustrate data/object structures ­ Specify snapshots  Developed by analysts, designers, and implementers
  • 46. Component Diagram  Captures the physical structure of the implementation
  • 47. Component Diagram  Captures the physical structure of the implementation  Built as part of architectural specification  Purpose ­ Organize source code ­ Construct an executable release ­ Specify a physical database  Developed by architects and programmers
  • 48. Deployment Diagram  Captures the topology of a system’s hardware
  • 49. Deployment Diagram  Captures the topology of a system’s hardware  Built as part of architectural specification  Purpose ­ Specify the distribution of components ­ Identify performance bottlenecks  Developed by architects, networking engineers, and system engineers
  • 50. Sequence Diagram  Captures dynamic behavior (time­oriented)
  • 51. Sequence Diagram  Captures dynamic behavior (time­oriented)  Purpose ­ Model flow of control ­ Illustrate typical scenarios
  • 52. Collaboration Diagram  Captures dynamic behavior (message­ oriented)
  • 53. Collaboration Diagram  Captures dynamic behavior (message­ oriented)  Purpose ­ Model flow of control ­ Illustrate coordination of object structure and control
  • 54. Statechart Diagram  Captures dynamic behavior (event­ oriented)
  • 55. Statechart Diagram  Captures dynamic behavior (event­ oriented)  Purpose ­ Model object lifecycle ­ Model reactive objects (user interfaces, devices, etc.)
  • 56. Activity Diagram  Captures dynamic behavior (activity­oriented)
  • 57. Activity Diagram  Captures dynamic behavior (activity­oriented)  Purpose ­ Model business workflows ­ Model operations
  • 58. Architecture and the UML Design View Implementation View Classes, interfaces, collaborations Components Use cases Use Case View Process View Deployment View Active classes Nodes Organization Dynamics Package, subsystem Interaction State machine
  • 59. Software engineering process A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a software product or to enhance an existing one.  Architectural process ­ Sequence of activities that lead to the production of architectural artifacts:  A software architecture description  An architectural prototype
  • 60. Rational Unified Process  Iterative  Architecture­centric  Use­case driven  Risk confronting
  • 61. Focus over time Discovery Invention Implementation Focus
  • 62. Key concepts When does  Phase, Iterations architecture happen?  Process Workflows What does ­ Activity, steps happen?  Artifacts What is produced? ­ models ­ reports, documents Who does  Worker: Architect it?
  • 63. Lifecycle Phases Inception Elaboration Construction Transition time  Inception Define the scope of the project and develop business case  Elaboration Plan project, specify features, and baseline the architecture  Construction Build the product  Transition Transition the product to its users
  • 64. Major Milestones Inception Elaboration Construction Transition time Vision Baseline Initial Product Architecture Capability Release
  • 65. Phases and Iterations Inception Elaboration Construction Transition Prelim ... Arch ... Dev Dev ... Trans ... Iteration Iteration Iteration Iteration Iteration Release Release Release Release Release Release Release Release An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release
  • 66. Architecture-Centric  Models are vehicles for visualizing, specifying, constructing, and documenting architecture  The Unified Process prescribes the successive refinement of an executable architecture Inception Elaboration Construction Transition time Architecture
  • 67. Unified Process structure Phases Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Management Environment Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter. Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1 Iterations
  • 68. Architecture and Iterations Use case Design Implementation Deployment Test Model Model Model Model Model Content
  • 69. Architectural design  Identify, select, and validate “architecturally significant” elements  Not everything is architecture ­ Main “business” classes ­ Important mechanisms ­ Processors and processes ­ Layers and subsystems ­ Interfaces  Produce a Software Architecture Documen
  • 70. Architectural design workflow  Select scenarios: criticality and risk Use case view  Identify main classes and their responsibility Logical view  Distribute behavior on classes  Structure in subsystems, layers, Implementation view define interfaces Deployment view  Define distribution and concurrency Process view  Implement architectural prototype  Derive tests from use cases  Evaluate architecture Iterate
  • 71. Sources of architecture Method Method Theft Intuition Theft Intuition Classical system Unprecedented system
  • 72. Patterns  A pattern is a solution to a problem in a context  A pattern codifies specific knowledge collected from experience in a domain  All well­structured systems are full of patterns ­ Idioms ­ Design patterns ­ Architectural patterns
  • 73. daVinci Mechanisms  Screws • Brakes  Keys • Pipes  Rivets • Valves  Bearings • Springs  Pins, axles, shafts • Cranks and rods  Couplings • Cams  Ropes, belts, and chains • Pulleys  Friction wheels • Engaging gears  Toothed wheels  Flywheels  Levers and connecting rods  Click wheels and gears  Ratchets
  • 74. Design Patterns Gamma et al Design patterns  Creational patterns ­ Abstract factory ­ Prototype  Structural patterns ­ Adapter ­ Bridge ­ Proxy  Behavioral patterns ­ Chain of responsibility ­ Mediator ­ Visitor  Mechanisms are the soul of an architecture
  • 75. Modeling a design pattern
  • 76. Modeling a design pattern (cont.)
  • 77. Modeling a design pattern (cont.)
  • 78. Software Architecture Shaw and Garlan Architectural patterns Buschmann et al A System of Patterns Buschman et al Booch  Distributed • Layered  Event­driven • MVC  Frame­based • IR­centric  Batch • Subsumption  Pipes and filters • Disposable  Repository­centric  Blackboard  Interpreter  Rule­based
  • 79. Real-Life Object-oriented Systems Soren Lauesen Complex business system Customer name : String Sales Order GUI layer Address : String product : Product date : Date save() ServiceAgent Observer purchase(customer, product, items) update() Middle layer Customer Order Line Product name : String items : Product name : String Address : String price : Currency getName() save() updateName() getName() getName() updateName() updateName() Customer Order Line Product SQL Database * *
  • 80. Logical application architecture Graphical Graphical Graphical User User User Interface Interface Interface Relational Business Business Database Object Object Model Model Relational Database Relational Database
  • 81. Physical application architecture Thinner client, thicker server Client A Client B Client C Application Application WWW Browser Business Object DCOM CORBA Beans Services ADO/R Business Object Engine Web HTML Business COM Beans Server CGI ASP Java Object Server MTS ETS Business Object Business Object Services Services Business Object Business Object Engine Engine Relational Database Server(s)
  • 82. The Second Wave Paul Dreyfus, Netscape Complex Internet system Dynamic HTML, JavaScript, Java Client plug-ins, source code enhancements Java, C, C++, JavaScript, CGI Server Application Java, C, C++, JavaBeans, CORBA, DCOM Server Fulfillment Financial Inventory RDBMS Native languages System System System Server
  • 83. Who are the architects?  Experience ­ software development ­ domain  Pro­active, goal oriented  Leadership, authority  Architecture team ­ balance
  • 84. Architect  Not just a top level designer  Need to ensure feasibility  Not the project manager  But “joined at the hip”  Not a technology expert  Purpose of the system, “fit”,  Not a lone scientist  Communicator
  • 85. Software architecture team charter  Defining the architecture of the software  Maintaining the architectural integrity of the software  Assessing technical risks related to the software design  Proposing the order and contents of the successive iterations  Consulting services  Assisting marketing for future product definition  Facilitating communications between project teams
  • 86. Architecture is making decisions The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partly in the dark.
  • 87. Futures  ADL: Architecture Description Languages ­ UML, UniCon, LILEAnna, P++, LEAP, Wright, µRapid  Standardization of concepts ­ IEEE Working Group on Architecture ­ INCOSE Working Group on System Architecture  Systematic capture of architectural patterns
  • 88. References (Architecture)  Len Bass, Paul Clements & Rick Kazman, Software Architecture in Practice, Addison-Wesley, 1998.  Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stahl, Pattern-Oriented Software Architecture - A System of Patterns, Wiley and Sons, 1996.  Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, Addison-Wesley 1999.  Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns, Addison-Wesley 1995.  Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, 12 (6), November 1995, IEEE. ­ http://www.rational.com/support/techpapers/ieee/  Eberhardt Rechtin, Systems Architecting: Creating and Building Complex Systems, Englewood Cliffs NJ, Prentice-Hall, 1991.
  • 89. References (Architecture)  Eberhardt Rechtin & Mark Maier, The Art of System Architecting, CRC Press, 1997.  Recommended Practice for Architectural Description, Draft 2.0 of IEEE P1471, May 1998 ­ http://www.pithecanthropus.com/~awg/  Mary Shaw, and David Garlan, Software Architecture— Perspectives on an Emerging Discipline, Upper Saddle River, NJ, Prentice-Hall, 1996.  Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software Architecture and Design—Principles, Models, and Methods, New York NY, Van Nostrand Reinhold, 1995.  The World-wide Institute of Software Architects ­ http://www.wwisa.org
  • 90. References (UML)  Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999.
  • 91. References (Process)  Barry Boehm, “A spiral model of software development and enhancement,” IEEE Computer, May 1998.  Barry Boehm, “Anchoring the software process,” IEEE Software, July 1996.  Grady Booch, Object Solutions, Addison-Wesley, 1995.  Philippe Kruchten, “A Rational Development Process,” CrossTalk, July 1996. ­ http://www.rational.com/support/techpapers/devprcs/  Philippe Kruchten, The Rational Unified Process - An Introduction, Addison-Wesley, 1999.  Rational Unified Process 5.0, Rational, Cupertino, CA, 1998  Walker Royce, Software Project Management: a Unified Framework, Addison-Wesley, 1998  The Software Program Manager’s Network ­ http://www.spmn.com