SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
Pittsburgh, PA 15213-3890



                            Best Practices

                                  in

                 Software Architecture

                             Paul Clements
      Software Engineering Institute / Carnegie Mellon University
                                   and
               Indian Institute of Technology - Bombay
                              26 July 2006

Sponsored by the U.S. Department of Defense
© 2006 by Carnegie Mellon University

                                                                    1
Software Engineering Institute
Applied R&D laboratory situated as a college-level unit at
Carnegie Mellon University, Pittsburgh, PA, USA
Established in 1984
Technical staff of 335
Offices in Pittsburgh, Pennsylvania,
Arlington, Virginia, and
Frankfurt, Germany
Purpose: Help others make
measured improvements in their
software engineering practices



© 2005 by Carnegie Mellon University                         2
Product Line Systems Program
One of 5-6 programs at the SEI, with about 30 people.
Our goal is to make improvements in
  • Software product line engineering
  • Predictable assembly of certifiable components
  • Software architecture
        • Creation
        • Documentation
        • Evaluation
        • Use in system-building


© 2005 by Carnegie Mellon University                    3
Software architecture
The rise of software architecture has resulted from two
trends:
  • Recognition of the importance of quality attributes
  • The development of very large and very complex
    systems




© 2005 by Carnegie Mellon University                      4
Building large, complex systems
Large-scale design decisions cannot be
made by programmers.
 • Have limited visibility and short-term
   perspectives
 • Trained in technology solutions to
   specific problems.

Teams can only be coordinated, and QA’s
can only be achieved, by making broad
design decisions that apply to the entire
system – all of its elements.



© 2005 by Carnegie Mellon University        5
Importance of quality attributes
If the only criterion for software was to get the right
answer, we would not need architectures―unstructured,
monolithic systems would suffice.
But other things also matter, such as
  • modifiability
  • time of development (time to market)
  • performance
  • coordination of work teams
These and other system quality attributes are largely
dependent on architectural decisions.
  • All design involves tradeoffs in system qualities.
  • The earlier we reason about tradeoffs, the better.
© 2005 by Carnegie Mellon University                      6
What Is Software Architecture?

Software architecture is the structure or structures of the system,
 which comprise software elements, the externally visible properties
 of these elements, and the relationships among them.

Bass, L.; Clements, P.; & Kazman, R. Software Architecture in Practice, Second Edition. Boston, MA: Addison-Wesley, 2003.




     © 2005 by Carnegie Mellon University                                                                              7
Structures: Plural!
Systems can and do have many structures.
 • No single structure can be the architecture.
 • The set of candidate structures is not fixed or prescribed.
 • Relationships and elements might be runtime related such as
    - “sends data to,” “invokes,” or “signals”
    - processes or tasks
 • Relationships and elements might be nonruntime related such as
    - “is a submodule of,” “inherits from,” or “is allocated to team X
      for implementation”
    - a class or library
 • Representations of structures are views of the architecture
    - All modern approaches to architecture embody the concept of
      multiple views.

© 2005 by Carnegie Mellon University                              8
A Picture of Architecture-Based
Development
Development organizations who use architecture as a
fundamental part of their way of doing business often
define an architecture-based development process.

This talk will illuminate some parts of that process.

One of the early parts is understanding the architecturally
significant requirements.




© 2005 by Carnegie Mellon University                          9
Quality attributes

If we accept the importance of quality attributes, then we need to
understand how to specify and capture them…

 •   Our customer has to tell us what he wants
 •   Our architect and designers must understand it
 •   Our programmers have to achieve it
 •   Our testers have to test for it

…and how to design and build software to achieve them.




     © 2005 by Carnegie Mellon University                    10
QA’s fall into two groups
“Run-time” QA’s
 • We can measure how well a system exhibits these by
   watching the system in operation
 • Performance, security, availability, …

“Non-run-time” QA’s
 • We can measure these by watching a team in operation
 • Maintainability, portability, buildability, time to market…




© 2005 by Carnegie Mellon University                         11
Specifying quality attributes

                                       I want a system that is
                                         highly modifiable!




Conclusion: Just naming a quality attribute doesn’t help very
much.
We can’t build software with just that. We need to be more
specific.
Most people use quality attribute scenarios to capture quality
attributes.

© 2005 by Carnegie Mellon University                             12
Scenarios
A scenario is a little story describing an interaction
   between a stakeholder and a system.

A use case is a kind of scenario. The stakeholder is the
   user. The interaction is a functional use of the system.
    • “The user pushes this button, and this result
      occurs.”

We can generalize the notion of a use case to come up
  with quality attribute scenarios.

A quality attribute scenario is a short description of how a
   system is required to respond to some stimulus.
© 2005 by Carnegie Mellon University                           13
QA Scenarios
        A quality attribute scenario has six parts:
        •   source – an entity that generates a stimulus
        •   stimulus – a condition that affects the system
        •        artifact – the part of that was stimulated by the
                 stimulus
        •        environment – the condition under which the
                 stimulus occurred
        •        response – the activity that results because of the
                 stimulus
        •        response measure – the measure by which the
                 system’s response will be evaluated

© 2005 by Carnegie Mellon University                                 14
A QA Scenario for Availability
•         An unanticipated external message is received by a
          process during normal operation. The process
          informs the operator of the message’s receipt, and
          the system continues to operate with no downtime.

1.        source – external
2.        stimulus – unanticipated message received
3.        artifact – process
4.        environment – during normal operation
5.        response – system continues to operate
6.        response measure – zero downtime

© 2005 by Carnegie Mellon University                           15
A QA Scenario for Modifiability
•     During maintenance, a change is made to the system’s
      rules engine. The change is completed in one day.

1. source – requestor of the change
2. stimulus – a change is made
3. artifact – rules engine
4. environment – during maintenance
5. response – the change is completed
6. response measure – …in one day




© 2005 by Carnegie Mellon University                     16
A QA Scenario for Security
•     During peak operation, an unauthorized intruder tries
      to download prohibited data via the system
      administrator’s interface. The system detects the
      attempt, blocks access, and notifies authorities within
      15 seconds.

1.    source – an unauthorized intruder
2.    stimulus – tries to download prohibited data
3.    artifact – system administrator’s interface
4.    environment – during peak operation
5.    response – the attempt is detected, blocked, reported
6.    response measure – …within 15 seconds


© 2005 by Carnegie Mellon University                            17
More about QAs
There is no standard set of quality attributes
   • People disagree on names:
      Maintainability/modifiability/portability
   • People come up with new ones: “calibrate-ability”
   • There is no standard meaning of what it means to
      be “secure”

Scenarios let us avoid all of these problems!

The QAs are defined by the scenarios!

Who tells us what QA’s are important? Stakeholders!


© 2005 by Carnegie Mellon University                     18
Stakeholders
Stakeholders are people with a vested interest in the
system. They are the people who can tell us what is
needed. They are the people who can tell us if what we
are building is the right thing.




We usually think of the user as telling us what is required,
but there are many kinds of stakeholders.

© 2005 by Carnegie Mellon University                           19
Concerns of System Stakeholders

      Development
      organization’s           Marketing                                Maintenance
                                                      End user                                     Customer
      management              stakeholder                               organization
                                                     stakeholder                                  stakeholder
       stakeholder                                                      stakeholder




     Low cost,                  Neat features,                Behavior,          Modifiability!     Low cost, timely
  keeping people             short time to market,          performance,                          delivery, not changed
employed, leveraging         low cost, parity with             security,                                very often!
 existing corporate          competing products!              reliability,
       assets!                                                usability!

                                                                             Architect


                                                                                              I need a raise!


          © 2005 by Carnegie Mellon University                                                                  20
Stakeholder Involvement
Stakeholders’ quality attribute requirements are seldom
documented, which results in
 • goals not being achieved
 • conflict between stakeholders

Architects must identify and actively engage stakeholders
early in the life cycle to
 • understand the real constraints of the system (many times,
   stakeholders ask for everything!)
 • manage the stakeholders’ expectations (they can’t have
   everything!)
 • negotiate the system’s priorities
 • make tradeoffs

© 2005 by Carnegie Mellon University                      21
SEI Quality Attribute Workshop
(QAW)
The QAW is a facilitated method that engages system
  stakeholders early in the life cycle to discover the
  driving quality attributes of a software-intensive system.
Key points about the QAW are that it is
        • system-centric
        • stakeholder focused
        • used before the software architecture has been
          created




© 2005 by Carnegie Mellon University                       22
QAW Steps
 1. QAW Presentation and Introductions
 2. Business/Mission Presentation
 3. Architectural Plan Presentation
 4. Identification of Architectural Drivers
 5. Scenario Brainstorming
 6. Scenario Consolidation
 7. Scenario Prioritization
 8. Scenario Refinement
                                       Iterate as necessary with broader
                                       stakeholder community
© 2005 by Carnegie Mellon University                                 23
QAW Benefits and Next Steps
                                                   Potential Next Steps
                         QAW                       Update Architectural Vision
                     Quality                       Refine Requirements
                     Attribute                     Create Prototypes
                     Scenarios:                    Exercise Simulations
                                           Can be
                     • raw                 used to Create Architecture
                     • prioritized
                     • refined
                                                      Evaluate
Potential Benefits                                   Architecture
• increased stakeholder communication
• clarified quality attribute requirements
• informed basis for architectural decisions

    © 2005 by Carnegie Mellon University                                     24
Creating the architecture
Architects primarily work by using previously-tried
solutions

  • Large scale: Patterns and styles

  • Small scale: Tactics


Styles, patterns, and tactics represent conceptual tools in
the architect’s “tool bag.”

Professional architects always keep their tool bag up to
date.

© 2005 by Carnegie Mellon University                          25
Tactics
An architectural tactic is a fine-grained design approach
used to achieve a quality attribute response.

Tactics are the “building blocks” of design from which
architectural patterns are created.



                                       Tactics to
                                       control
             Stimulus                  response     Response




© 2005 by Carnegie Mellon University                           26
Tactics for Availability



                                       Tactics to
                                       control
       Stimulus:                       Availability   Response:
       Fault occurs                                   Fault masked or
                                                      Repair made




© 2005 by Carnegie Mellon University                                    27
Summary of Availability Tactics
                                               Availability


                                                                               Fault
                                                                               masked
                                 Fault                                         or
        Fault                    Recovery    Fault Recovery      Fault         repair
Fault   Detection                Preparation and                 Prevention    made
                                 and Repair Reintroduction


        • Ping/Echo            • Voting     • Shadow          • Removal
        • Heartbeat            • Active     • State             From Service
        • Exception              Redundancy Resynchronization • Transactions
                               • Passive    • Rollback        • Process
                                 Redundancy                     Monitor
                               • Spare

        © 2005 by Carnegie Mellon University                                   28
Summary of Modifiability Tactics
                                               Modifiability



                Localize                     Prevention          Defer Binding
                Changes                      of Ripple Effect    Time



               Semantic                      Hide information    Runtime         Response:
Stimulus:        coherence                   Maintain existing    registration   Changes
Change         Anticipate                     interface          Configuration
                 expected                    Restrict             files          made,tested,
arrives                                       communication
                 changes                                         Polymorphism    and deployed
               Generalize                     paths              Component
                 module                      Use an               replacement    within time
               Limit possible                 intermediary       Adherence to    and budget
                 options                                          defined
               Abstract common                                    protocols
                 services

      © 2005 by Carnegie Mellon University                                             29
Tactics for Performance
                                               Performance



                Resource                     Resource            Resource
                demand                       management          arbitration



               Increase                      Introduce           Scheduling    Response:
Stimulus:        computation                   concurrency        policy       Response
Events           efficiency                  Maintain
               Reduce                          multiple copies                 generated
arrive                                       Increase
                 computational                                                 within time
                 overhead                      available
               Manage event rate               resources                       constraints
               Control freq. Of
                 sampling




      © 2005 by Carnegie Mellon University                                            30
Tactics for Security
                                              Security



                Resisting                    Detecting   Recovering
                Attacks                      Attacks     from an attack



               Authenticate       Intrusion     Restoration Identification   Response:
Stimulus:        users              detection
                                                                             System
Attack         Authorize users
               Maintain data                                                 detects,
                                                  See         Audit trail
                 confidentiality              “Availability”                 resists, or
               Maintain integrity
               Limit exposure                                                recovers from
               Limit access                                                  attacks



      © 2005 by Carnegie Mellon University                                         31
Tactics for Testability
                                              Testability




                       Manage                               Internal
                       Input/Output                         monitoring

Stimulus:                                                                Response:
Completion           Record/playback                        Built-in
                                                                         Faults
of an                Separate interface                      monitors    detected
                      from implementation
increment            Specialized access
                      routines/interfaces




       © 2005 by Carnegie Mellon University                                    32
Attribute-Driven Design (ADD) Method
ADD is a step-by-step method for systematically producing the
first architectural designs for a system.

ADD results
 • Overall structuring decisions
 • Interconnection and coordination mechanisms
 • Application of patterns and tactics to specific parts of
   architecture
 • Explicit achievement of quality attribute requirements
 • NOT detailed interfaces

ADD requires as input:
 • Quality attribute requirements
 • Functional requirements
 • Constraints


© 2005 by Carnegie Mellon University                            33
Attribute-Driven Design (ADD) Steps
Step 1: Confirm there is sufficient requirements information
Step 2: Choose part of the system to decompose
Step 3: Prioritize requirements and identify architectural drivers
Step 4: Choose design concept – patterns, styles, tactics -- that
    satisfies the architectural drivers associated with the part of
    the system we’ve chosen to decompose.
Step 5: Instantiate architectural elements and allocate
    functionality
Step 6: Merge designs completed thus far
Step 7: Allocate remaining functionality
Step 8: Define interfaces for instantiated elements
Step 9: Verify and refine requirements and make them
    constraints for instantiated elements
Step 10: Repeat steps 2 through 9 for the next part of the system
    you wish to decompose
© 2005 by Carnegie Mellon University                              34
Now what?

How do we know that our architecture is appropriate for its
intended purpose?

In a large development project, an enormous amount of
money may be riding on the architecture.

The company’s future may be at stake.

We need to evaluate the architecture.




© 2005 by Carnegie Mellon University                      35
How can we do this?

 The SEI has developed the Architecture
 Tradeoff Analysis Method (ATAM).

 The purpose of ATAM is: to assess the
 consequences of architectural decisions
 in light of quality attribute requirements and
 business goals.




© 2005 by Carnegie Mellon University              36
ATAM Benefits
 There are a number of benefits from performing
 ATAM evaluations
   • identified risks
   • clarified quality attribute requirements
   • improved architecture documentation
   • documented basis for architectural decisions
   • increased communication among stakeholders


 The results are improved architectures.

© 2005 by Carnegie Mellon University                37
ATAM Steps
1.    Present the ATAM
2.    Present business drivers
3.    Present architecture
4.    Identify architectural approaches         Phase 1

5.    Generate quality attribute utility tree
6.    Analyze architectural approaches
7.    Brainstorm and prioritize scenarios
                                                Phase 2
8.    Analyze architectural approaches
9.    Present results

© 2005 by Carnegie Mellon University                      38
Utility Tree Construction
                                                                (L,M)
                                             Data                       Reduce storage latency on
                 Performance                 Latency                    customer DB to < 200 ms.
                                                                         Deliver video in real time
                                            Transaction         (M,M)
                                            Throughput
                                                                (H,H)
                                                 New products            Add CORBA middleware
                                                                         in < 20 person-months
                 Modifiability                   Change
                                                 COTS           (H,L) Change web user interface
                                                                      in < 4 person-weeks
Utility                                                         (H,H) Power outage at site1 requires traffic
                                           H/W failure                   redirected to site2 in < 3 seconds.
                 Availability                                         Network failure detected and recovered
                                           COTS S/W             (H,H) in < 1.5 minutes
                                           failures
                                                                 (H,M)
                                            Data                         Credit card transactions are secure
                                            confidentiality              99.999% of the time
                  Security
                                            Data                         Customer DB authorization works
                                            integrity                    99.999% of the time
                                                                 (H,L)
          © 2005 by Carnegie Mellon University                                                             39
Conceptual Flow of ATAM
    Business                            Quality
                                                       Scenarios
     Drivers                           Attributes
                                                                           Analysis
  Software                        Architectural       Architectural
 Architecture                     Approaches           Decisions


                                                         Tradeoffs
impacts
                                                      Sensitivity Points

                                          distilled      Non-Risks
                                            into
           Risk Themes                                      Risks

© 2005 by Carnegie Mellon University                                             40
Documenting an architecture

Architecture serves as the blueprint for the system, and
the project that develops it.
 • It defines the work assignments.
 • It is the primary carrier of quality attributes.
 • It is the best artifact for early analysis.
 • It is the key to post-deployment maintenance and
   mining.

Documenting the architecture is the crowning step to
creating it.

Documentation speaks for the architect, today and 20
years from today.

© 2005 by Carnegie Mellon University                       41
What’s the answer?
               “How do you document a software architecture?”

In industry, there seems to be a lack of systematic approaches to
documentation. Instead, the emphasis has been on languages.

In the past, the answer seems to have been:
 • “Use UML.”
 • “Draw boxes and lines.”
 • “What else do I need besides my class diagrams in Rose?”
 • “Not very well.”
 • “How do you document a what?”
Now, however, we have a much better answer.

© 2005 by Carnegie Mellon University                            42
“Views and Beyond” approach to
   architecture documentation
The concept of a “view” gives us our main principle of
architecture documentation:


                          Document the relevant views,
                            and then add information
                       that applies to more than one view,
                          thus tying the views together.




© 2005 by Carnegie Mellon University                         43
Summary: Documenting a View


                                       Section 1:
                                       Primary presentation




                                       Sections 2-6:
                                       Supporting documentation




© 2005 by Carnegie Mellon University                          44
Summary: Documentation Beyond
              Views
A template for putting Documentation Beyond Views in a volume
of its own:


                                 Template for Documentation Beyond Views

                  How the documentation is organized
                           Section 1. Documentation roadmap
                           Section 2. View template

                  What the architecture is:
                           Section 3. System overview
                           Section 4. Mapping between views
                           Section 5. Directory
                           Section 6. Glossary and acronym list

                  Why the architecture is the way it is:
                            Section 7. Background, design constraints, and rationale



    © 2005 by Carnegie Mellon University                                               45
A Picture of Architecture-Based Dev.
                                                                                                                                                                           “Sketches” of
                  Patterns and tactics                                                                                                                                    candidate views,
   QAW                                                         C lie nt
                                                              T elle r 1
                                                                                                                                                                       determined by patterns                                                       Chosen, combined
                                         A c c o u nt                            Ac c ou n t
                                       Se r v e r- M a in                   S e rv er - Ba c k u p




                        K EY   C o m p on e n t T yp e s:
                                                              Ac c ou n t
                                                            D a ta ba s e
                                                                                                       A STER
                                                                                                       Gateway

                                                                                                      A dm in is tr a tiv e




                                                                                              A tt ac h m en t
                                                                                                                                V0
                                                                                                                              Gateway


                                                                                                                                                                                              <<layer>> A
                                                                                                                                                                                                                                                    views plus doc’n.
                                                                                                                                        Maintena nce




                                                                                                                                                                                                                                                      beyond views
                                            C lie n t
                                                                               C on n e ct o r Ty p es :                                    Tool
                                            S er v er                                       P ub lis h -S us c rib e

                                            D at ab as e                                      C lien t- S e rv e r
                                                                                              R e qu es t /R ep ly                                                                                       <<layer>> A
                                                                                                                                                                                            <<allowed to use>>
                                            D at ab as e                                      D a tab as e A c c e s s
                                            A pp lic a tion



                                                                                                                               DS                                            <<layer>> B
                                                                                                         SY BASE
                                                                                                                                                                                                                   <<layer>> A
                                                                                                                                                                                           <<allowed to<<allowed to use>>
                                                                                                                                                                                                        use>>

                                                                                                                                                                                     <<layer>> B
                                                                                                                                                                             <<segment>> <<segment>> <<segment>>
                                                                     KEY                             Repo sitor y                Componen t            SQL                        B1           B2<<allowed to<<allowed to use>>
                                                                                                                                                                                                             B3
                                                                                                                                                                                                              use>>
                                                                                                     RPC                         E xpo sed RPC         Expo sed SQ L
                                                                                                                                 Interface             Interface
                                                                                                                                                                                        <<allowed to use>>
                                                                                                                                                                                                <<layer>> B
                                                                                                                                                                                       <<segment>> <<segment>> <<segment>>
                                                                                                                                                                                            B1            B2<<allowed to B3
                                                                                                                                                                                                                         use>>

                                                                                                                                                                                                    <<allowed to use>>
                                                                                                                                                                                                   <<segment>> <<segment>> <<segment>>
                                                                                                                                                                                                       B1
                                                                                                                                                                                             <<layer>> C             B2        B3


                                                                                                                                                                                                               <<allowed to use>>
                                                                                                                                                                                                       <<layer>> C



                                                                                                                                                                                                                 <<layer>> C




                                                                                                                                        ADD

 Prioritized
QA scenarios                                                                                                                                                                                            VaB
                                                                                                                                                                                                                                                           ATAM
                                                                                                                                                                                                               Architect’s Influences
                                                                                                                                                                                                          Stakeholders
                    Requirements,                                                                                                                                                                         Development
                                                                                                                                                                                                                       Requirements
                                                                                                                                                                                                                                 Ar
                                                                                                                                                                                                                                  c
                                                                                                                                                                                                                                         Architecture
                                                                                                                                                                                                          organization           hi
                     constraints                                                                                                                                                                          Technical
                                                                                                                                                                                                          environment
                                                                                                                                                                                                          Architect’s
                                                                                                                                                                                                                                 te
                                                                                                                                                                                                                                 ct
                                                                                                                                                                                                                                 (s
                                                                                                                                                                                                                                         System


                                                                                                                                                                                                          experience              )


Stakeholders                                                                                                                                                                   Arch. Business Cycle
   © 2005 by Carnegie Mellon University                                                                                                                                                                                                                          46
E-mail: clements@sei.cmu.edu

   Source of material




 Software Architecture in                   Evaluating Software     Documenting Software
       in Practice,                       Architectures: Methods  Architectures: Views and
Len Bass, Paul Clements,                     and Case Studies,       Beyond, P. Clements,
      Rick Kazman,                            Paul Clements,        F. Bachmann, L. Bass,
  Addison Wesley 2003                          Rick Kazman,           D. Garlan, J. Ivers,
                                                Mark Klein,      R. Little, R. Nord, J. Stafford,
                                           Addison Wesley 2001       Addison Wesley 2002
   © 2005 by Carnegie Mellon University                                                     47
New project: Improving Software
Architecture Competence

Architectures are created by architects.
 • How can we help them do their best work?
 • What does it mean for an architect to be
   competent?
 • How can an architect improve his/her
   competence?

Architects work in organizations.
 • How can we help an organization help their architects do their
   best work?
 • What does it mean for an organization that produces
   architectures to be competent?
 • How can an organization improve its competence in
   architecture?

© 2005 by Carnegie Mellon University                            48
What do architects do?
To understand how to help architects do what they do, we
need to understand what they do.
 • What are their duties?
 • What skills and knowledge made them “capable of
   performing their allotted or required function?”


Philippe Kruchten writes that he requires
architects working for him to spend 50%
of their time on the architecture.

What do they do with the other 50%?


© 2005 by Carnegie Mellon University                       49
We can survey the “community”
Sources of information
 • “Broadcast” sources: Information written by self-styled
   experts for mass anonymous consumptions
    - Web sites: e.g., Bredemeyer, SEI, HP, IBM (16)
    - Blogs and essays (16)
    - “Duties” list on SEI web site
    - Books on software architecture (25 top-sellers)
 • Education and training sources:
    - University courses in software architecture (29)
    - Industrial/non-university public courses (22)
    - Certificate and certification programs in architecture;
      e.g., SEI, Open Group, Microsoft (7)
 • “Architecture for a living” sources
    - Position descriptions for software architects (60)
    - Résumés of software architects
© 2005 by Carnegie Mellon University                            50
Survey results to date
This is a work in progress.

To date, we have surveyed over 200 sources.

We have cataloged

  • 201 duties

  • 85 skills

  • 96 knowledge areas



© 2005 by Carnegie Mellon University          51
Example duties
  <snip>
    Duties related to documentation
            Thoroughly understand and document the areas
              (domains) for which the system will be built
            Prepare architectural documents and presentations
            Document software interfaces
            Produce a comprehensive documentation package
              for architecture useful to stakeholders
            Keeping reader’s point of view in mind while
              documentation
            Creating, standardizing and using architectural
              descriptions
            Use a certain documentation standard
            Document variability and dynamism
            Create conceptual architectural view
  <snip>
© 2005 by Carnegie Mellon University                            52
Example skills
                    <snip>
                       Inspire creative collaboration
                       Interpersonal skills
                       Interviewing
                       Investigative
                       Leadership
                       Learning
                       Listening skills
                       Maintains constructive working relationships
                       Mentoring
                       Negotiation skills
                       Observation power
                       Open minded
                       Oral and written communication skills
                       Organizational and workflow skills
                       Patient
                       Planning skills
                       Political sagacity
                    <snip>
© 2005 by Carnegie Mellon University                                  53
Example knowledge
             <snip>
                Software Architecture concepts
                UML diagrams and UML analysis modeling
                Basic knowledge of Software Engineering
                Specialized knowledge of software engineering
                Knowledge about IT industry future directions
                Understanding of web-based applications
                Experience with Web Services Technologies
                Business re-engineering principles and processes
                Knowledge of industry’s best practices
                Experience in testing
                Knowledge of testing/debugging tools
                Experience with Real-time systems, Video systems
                Security domain Experience
             <snip>


© 2005 by Carnegie Mellon University                               54
Architecture Duties (categories)
  50.0%
  45.0%                                                                                                     Overall for Training & Educational
  40.0%                                                                                                     Overall for Architecting For Living
  35.0%                                                                                                     Overall for Broadcasted
  30.0%                                                                                                     OVERALL
  25.0%
  20.0%
  15.0%
  10.0%
   5.0%
   0.0%




                                                                                     Interacting with the




                                                                                                                                                    Leadership & team building
                  Architecting




                                                                                                                          Organization & Business
                                                                                                             Management
                                 Life cycle phases other than




                                                                Technology related




                                                                                        stakeholders
                                          architecture




                                                                                                                                  related
© 2005 by Carnegie Mellon University                                                                                                                                             55
0.00%
                                                                                     2.00%
                                                                                     4.00%
                                                                                             6.00%
                                                                                             8.00%
                                                                                                     10.00%
                                                                                                              12.00%
                                                                                                              14.00%
                                                                                                                        16.00%
                                                                                                                        18.00%
                                                                                                                                             20.00%
                                                     Creating architecture

                                       Architecture Evaluation and Analysis

                                                           Documentation

                                        Existing systemand transformation

                                                                   Overall




© 2005 by Carnegie Mellon University
                                                            Requirements

                                                  Coding and development

                                                                   Testing

                                                       Future technologies

                                            Tools and technology selection

                                                                   Overall

                                                                   Clients

                                                               Developers

                                                      Project management

                                                      People management
                                                                                                                   OVERALL




                                                  Support for management

                                                              Organization

                                                                 Business
                                                                                                                   Overall for Broadcasted




                                                     Technical Leadership

                                                            TeamBuilding
                                                                                                                                                         Architecture Duties (sub-categories)




56
                                                                                                                   Overall for Architecting For Living
                                                                                                                   Overall for Training & Educational
Architecture Skills (categories)
  45.00%
  40.00%
  35.00%
  30.00%
  25.00%
  20.00%
  15.00%
                                                                        Overall for Training & Educational
  10.00%                                                                Overall for Architecting For Living
                                                                        Overall for Broadcasted
   5.00%
                                                                        OVERALL

   0.00%
                         Communication




                                                                                            Personal skills
                                         Inter-Personal




                                                          Work skills
                                              skills




© 2005 by Carnegie Mellon University                                                                          57
0.00%
                                                                       5.00%
                                                                               10.00%
                                                                                        15.00%
                                                                                                  20.00%
                                         C m
                                          om unication(Out)                                                                  25.00%



                                        C m
                                         om unication(Both)



                                          C m
                                           om unication(In)


                                             Inter-personal
                                            skills(within team)




© 2005 by Carnegie Mellon University
                                           Inter-personal
                                       skills(w other people)
                                               ith


                                             Leadership skills


                                         Effectively Managing
                                              Workload

                                          Skills to Excel in
                                       corporate environment

                                            Skills for handling
                                               Information


                                           Personal Qualities


                                           Skills for Handling
                                                Unknown
                                                                                                 Overall Skills
                                                                                                 Broadcasted




                                           Skills for Handling
                                              Unexpected
                                                                                                 Architecting for a living
                                                                                                 Educational and training




                                                    Learning
                                                                                                                                      Architecture Skills (sub-categories)




58
Architecture Knowledge (categories)
90.0%
                                                        Overall for Training & Educational
80.0%
                                                        Overall for Architecting For Living
70.0%                                                   Overall for Broadcasted
                                                        OVERALL
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%

                                        and platforms




                                                                organization’s
                                        Knowledge of
                     Knowledge




                                                                management
                                        technologies
                     Computer




                                                                 context and
                                                                 Knowledge
                                                                 about your
                      Science




 © 2005 by Carnegie Mellon University                                                         59
0.00%
                                                                             5.00%
                                                                                     10.00%
                                                                                              15.00%
                                                                                                       20.00%
                                                                                                                25.00%
                                                                                                                         30.00%
                                                                                                                                  35.00%
                                                                                                                                                       40.00%
                                                                                                                                                                                                             45.00%
                                                                                                                                                                                                                                                    50.00%
                                         Knowledge of architecture
                                                 concepts

                                            Knowledge of software
                                                 engineering


                                                Design Knowledge




© 2005 by Carnegie Mellon University
                                          Programm Knowledge
                                                  ing


                                         Specific (technologies and
                                                platforms)


                                                         Platforms


                                         General (technologies and
                                                 platforms)


                                               Dom Knowledge
                                                  ain
                                                                                                                                   OVERALL




                                               Industry Knowledge



                                             Enterprise Knowledge
                                                                                                                                             Overall for Broadcasted




                                       Leadership and management
                                                                                                                                                                       Overall for Architecting For Living
                                                                                                                                                                                                               Overall for Training & Educational
                                                                                                                                                                                                                                                             Architecture Knowledge (sub-cat’s)




60
Duties/Skills/Knowledge
This work lets us propose a
“duties/skills/knowledge” model
of competence.

Knowledge and skills support
carrying out the duties.

Competence is
 • Carrying out the duties
 • Having the skills
 • Knowing the knowledge




© 2005 by Carnegie Mellon University   61
Duties/Skills/Knowledge
Advantages
 • It applies equally well to individuals,
   teams, and organizations.

  • It straightforwardly suggests an assessment instrument.

  • It straightforwardly suggests an improvement strategy
      - Improve your duties
      - Improve your skills
      - Improve your knowledge




© 2005 by Carnegie Mellon University                        62
Future work (1): Grow this body of work

Survey communities of practicing architects
 • E.g., WWISA, IASA, architects within a
   company
 • First questionnaire: 15-minute survey of
   duties, skills, and knowledge and
   organizational duties.

Tie specific skills and knowledge to duties
 • If knowledge or a skill doesn’t support a
   duty, does it matter?

Survey more sources
 • especially more position descriptions



© 2005 by Carnegie Mellon University           63
Future work (2): Apply model to
organizations
Case studies and surveys
 • organizational excellence in architecture
 • organizational improvement in architecture
 • surveys of organizational practices
Surveys of practicing architects
 • E.g., WWISA, IASA, architects within a
   company
 • First questionnaire: 15-minute survey of
   duties, skills, and knowledge and
   organizational duties.
Investigation of team practices
Assessment of past performance to find
targeted areas of improvement


© 2005 by Carnegie Mellon University            64
What are an organization’s
duties, skills, and knowledge?
List may include:
 • Hire talented architects
 • Establish a career track for software architects
 • Make the position of architect highly regarded through visibility, reward,
    and prestige
 • Establish a clear statement of duties, responsibilities, and authority for
    software architects
 • Establish a mentoring program for architects
 • Start an architecture training and education program
 • Track how architects spend their time
 • Establish an architect certification program
 • Measure architects’ performance
 • Provide a forum for architects to communicate, and share information
    and experience
 • Put in a place organization-wide development practices centered
    around architecture
 • Establish and empower an architecture review board
 • Measure quality of architectures produced
 • Initiate software process improvement or software quality improvement
    practices
© 2005 by Carnegie Mellon University                                      65
Future work (3): Tie duties, skills, and
knowledge to architecture quality
Case studies of successful and failed
architectures, relating cause to effect.

Pilot assessment instruments

Pilot improvement strategies

Other models of competence
 • Organizations as architectures: They have
   elements and relations and behaviors.
   Perhaps we can “evaluate” them as we
   evaluate architectures.
 • Design for Six Sigma techniques

           Research collaborators wanted!


© 2005 by Carnegie Mellon University           66
Trends in Software Architecture
Predictions are risky, and usually worth less than what you
   paid for them.

“Basic building blocks” of software
 • Will continue becoming more sophisticated, complex,
    domain-specific, interoperable, and stand-alone
    (continuing a 40-year-old trend)
 • “Service” is the current form of this, but will be
    replaced by something else in five years
 • SLAs will be come more sophisticated, generalized,
    and dependable. “Credentials” will be the watchword,
    especially in services. Watch for an ebay-like model
    where consumers leave feedback, especially in
    ubiquitous computing environments.

© 2005 by Carnegie Mellon University                      67
Trends in Software Architecture
Process of architecting
 • Will be come more standardized, more repeatable, more
   teachable, more methodical – less “magic”
 • Evaluation of architectures will continue becoming a
   widespread practice
 • Stakeholder-based documentation will become the norm
 • Gaps in the conceptual representations (e.g., between
   ADLs and downstream design languages such as UML,
   or between business goals and architecture) will be
   bridged
 • More automated traceability, from business
   processes/goals to architecture to design to code to
   testing, possibly by automated design assistants and
   tooling, possibly by better language support

© 2005 by Carnegie Mellon University                  68
Trends in Software Architecture
Architecture as a practice
 • We can view the history of software engineering as producing simpler
   ways to specify much more complex software. Our languages to
   describe solutions have become steadily more sophisticated.
     - 1960 atoms: + - / * SQRT, simply-structured reports
     - 2006 atoms: shopping cart, GUI, rules engine, workflow, auction…
 • When our languages achieve a “new plateau” of expressiveness, the
   programs we write suddenly become very simple, even though the
   software systems are much more complex. The complexity is carried in
   the language.
 • The need for architecture is not as great when the programs are very
   short and simple.
 • But we always learn to exploit our new capabilities to the fullest. Our
   programs quickly become more and more complex. Soon, we cannot
   understand them, nor can we understand how they will deliver the ever-
   higher quality attributes we require.
 • And that is the point where architecture steps in to help us structure the
   solutions and lend understandability and buildability.

© 2005 by Carnegie Mellon University                                      69
Trends in Software Architecture
Architecture as a practice (continued)
 • Right now there seem to be two kinds of organizations.
 • One kind designs extensive architectures.
    - These are application builders solving unprecedented
      problems, or in domains without large “platform” vendors
      (they may be the platform vendors) or standardized solutions
    - They perform extensive architectural design
 • The other kind makes major architectural decisions by the
   process of selecting a platform vendor.
    - Here, “architecture” means putting big vendor-supplied
      pieces together. “Design” is de-emphasized.
    - The “space” of what they can specify is not that large.
    - You can view the things they get to choose as a specification
      language.
    - They’ve just arrived at the latest “new plateau”
    - They don’t view architecture design as that important.
    - Last prediction: They will!


© 2005 by Carnegie Mellon University                            70
Questions―Now or Later
Linda Northrop                         Paul Clements
Director                               Email: clements@sei.cmu.edu
Product Line Systems Program
Telephone: 412-268-7638
Email: lmn@sei.cmu.edu                 A Microsoft Word template for a
                                       software architecture document
U.S. Mail:                             based on the Views and Beyond
Software Engineering Institute         approach is available at
Carnegie Mellon University
4500 Fifth Avenue                      http://www.sei.cmu.edu/architecture/
Pittsburgh, PA 15213-3890              arch_doc.html
                                                        or
World Wide Web:
http://www.sei.cmu.edu/                http://www.sei.cmu.edu/architecture
architecture                           Click on documentation
                                       Click on download
SEI Fax: 412-268-5758



© 2005 by Carnegie Mellon University                                     71

Weitere ähnliche Inhalte

Was ist angesagt?

A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guideTriet Ho
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architectureHimanshu
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Software Engineering chapter 19
Software Engineering chapter 19Software Engineering chapter 19
Software Engineering chapter 19Liz Tee
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 
Software design principles for evolving architectures
Software design principles for evolving architecturesSoftware design principles for evolving architectures
Software design principles for evolving architecturesFirat Atagun
 
Chapter 08
Chapter 08Chapter 08
Chapter 08guru3188
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsJose Emilio Labra Gayo
 
Unit iii(part b - architectural design)
Unit   iii(part b - architectural design)Unit   iii(part b - architectural design)
Unit iii(part b - architectural design)BALAJI A
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineeringMohesh Chandran
 

Was ist angesagt? (20)

A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architecture
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
software architecture
software architecturesoftware architecture
software architecture
 
Software Engineering chapter 19
Software Engineering chapter 19Software Engineering chapter 19
Software Engineering chapter 19
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
Software design principles for evolving architectures
Software design principles for evolving architecturesSoftware design principles for evolving architectures
Software design principles for evolving architectures
 
Course summary
Course summaryCourse summary
Course summary
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & Connectors
 
Slides chapter 12
Slides chapter 12Slides chapter 12
Slides chapter 12
 
Unit iii(part b - architectural design)
Unit   iii(part b - architectural design)Unit   iii(part b - architectural design)
Unit iii(part b - architectural design)
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Sda 2
Sda   2Sda   2
Sda 2
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineering
 

Ähnlich wie Best practices for software architecture scenarios and quality attributes

Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
The Values and Principles of Agile Software Development
The Values and Principles of Agile Software DevelopmentThe Values and Principles of Agile Software Development
The Values and Principles of Agile Software DevelopmentBrad Appleton
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factorsAalia Barbe
 
Softwarearchitecture in practice unit1 2
Softwarearchitecture in practice unit1 2Softwarearchitecture in practice unit1 2
Softwarearchitecture in practice unit1 2sush-sushma
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Dhivyaa C.R
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Agile India
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptRedHeart11
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?OSSCube
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software qualityBabak Khorrami
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
Анализ атрибутов качества
Анализ атрибутов качестваАнализ атрибутов качества
Анализ атрибутов качестваSQALab
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?Denys Zaiats
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05Luktalja
 
Top 10 Best Maintenance Practices For Your CMMS
Top 10 Best Maintenance Practices For Your CMMSTop 10 Best Maintenance Practices For Your CMMS
Top 10 Best Maintenance Practices For Your CMMSeMaint Enterprises
 

Ähnlich wie Best practices for software architecture scenarios and quality attributes (20)

Software quality
Software qualitySoftware quality
Software quality
 
STQA 1.pptx
STQA 1.pptxSTQA 1.pptx
STQA 1.pptx
 
The Values and Principles of Agile Software Development
The Values and Principles of Agile Software DevelopmentThe Values and Principles of Agile Software Development
The Values and Principles of Agile Software Development
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factors
 
Softwarearchitecture in practice unit1 2
Softwarearchitecture in practice unit1 2Softwarearchitecture in practice unit1 2
Softwarearchitecture in practice unit1 2
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Rup
RupRup
Rup
 
Non functional requirements. do we really care…?
Non functional requirements. do we really care…?Non functional requirements. do we really care…?
Non functional requirements. do we really care…?
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
Agile case studies
Agile case studiesAgile case studies
Agile case studies
 
Анализ атрибутов качества
Анализ атрибутов качестваАнализ атрибутов качества
Анализ атрибутов качества
 
Are you Agile enough?
Are you Agile enough?Are you Agile enough?
Are you Agile enough?
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05
 
Top 10 Best Maintenance Practices For Your CMMS
Top 10 Best Maintenance Practices For Your CMMSTop 10 Best Maintenance Practices For Your CMMS
Top 10 Best Maintenance Practices For Your CMMS
 
software engineering
software engineering software engineering
software engineering
 

Kürzlich hochgeladen

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxruthvilladarez
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptshraddhaparab530
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 

Kürzlich hochgeladen (20)

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.ppt
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 

Best practices for software architecture scenarios and quality attributes

  • 1. Pittsburgh, PA 15213-3890 Best Practices in Software Architecture Paul Clements Software Engineering Institute / Carnegie Mellon University and Indian Institute of Technology - Bombay 26 July 2006 Sponsored by the U.S. Department of Defense © 2006 by Carnegie Mellon University 1
  • 2. Software Engineering Institute Applied R&D laboratory situated as a college-level unit at Carnegie Mellon University, Pittsburgh, PA, USA Established in 1984 Technical staff of 335 Offices in Pittsburgh, Pennsylvania, Arlington, Virginia, and Frankfurt, Germany Purpose: Help others make measured improvements in their software engineering practices © 2005 by Carnegie Mellon University 2
  • 3. Product Line Systems Program One of 5-6 programs at the SEI, with about 30 people. Our goal is to make improvements in • Software product line engineering • Predictable assembly of certifiable components • Software architecture • Creation • Documentation • Evaluation • Use in system-building © 2005 by Carnegie Mellon University 3
  • 4. Software architecture The rise of software architecture has resulted from two trends: • Recognition of the importance of quality attributes • The development of very large and very complex systems © 2005 by Carnegie Mellon University 4
  • 5. Building large, complex systems Large-scale design decisions cannot be made by programmers. • Have limited visibility and short-term perspectives • Trained in technology solutions to specific problems. Teams can only be coordinated, and QA’s can only be achieved, by making broad design decisions that apply to the entire system – all of its elements. © 2005 by Carnegie Mellon University 5
  • 6. Importance of quality attributes If the only criterion for software was to get the right answer, we would not need architectures―unstructured, monolithic systems would suffice. But other things also matter, such as • modifiability • time of development (time to market) • performance • coordination of work teams These and other system quality attributes are largely dependent on architectural decisions. • All design involves tradeoffs in system qualities. • The earlier we reason about tradeoffs, the better. © 2005 by Carnegie Mellon University 6
  • 7. What Is Software Architecture? Software architecture is the structure or structures of the system, which comprise software elements, the externally visible properties of these elements, and the relationships among them. Bass, L.; Clements, P.; & Kazman, R. Software Architecture in Practice, Second Edition. Boston, MA: Addison-Wesley, 2003. © 2005 by Carnegie Mellon University 7
  • 8. Structures: Plural! Systems can and do have many structures. • No single structure can be the architecture. • The set of candidate structures is not fixed or prescribed. • Relationships and elements might be runtime related such as - “sends data to,” “invokes,” or “signals” - processes or tasks • Relationships and elements might be nonruntime related such as - “is a submodule of,” “inherits from,” or “is allocated to team X for implementation” - a class or library • Representations of structures are views of the architecture - All modern approaches to architecture embody the concept of multiple views. © 2005 by Carnegie Mellon University 8
  • 9. A Picture of Architecture-Based Development Development organizations who use architecture as a fundamental part of their way of doing business often define an architecture-based development process. This talk will illuminate some parts of that process. One of the early parts is understanding the architecturally significant requirements. © 2005 by Carnegie Mellon University 9
  • 10. Quality attributes If we accept the importance of quality attributes, then we need to understand how to specify and capture them… • Our customer has to tell us what he wants • Our architect and designers must understand it • Our programmers have to achieve it • Our testers have to test for it …and how to design and build software to achieve them. © 2005 by Carnegie Mellon University 10
  • 11. QA’s fall into two groups “Run-time” QA’s • We can measure how well a system exhibits these by watching the system in operation • Performance, security, availability, … “Non-run-time” QA’s • We can measure these by watching a team in operation • Maintainability, portability, buildability, time to market… © 2005 by Carnegie Mellon University 11
  • 12. Specifying quality attributes I want a system that is highly modifiable! Conclusion: Just naming a quality attribute doesn’t help very much. We can’t build software with just that. We need to be more specific. Most people use quality attribute scenarios to capture quality attributes. © 2005 by Carnegie Mellon University 12
  • 13. Scenarios A scenario is a little story describing an interaction between a stakeholder and a system. A use case is a kind of scenario. The stakeholder is the user. The interaction is a functional use of the system. • “The user pushes this button, and this result occurs.” We can generalize the notion of a use case to come up with quality attribute scenarios. A quality attribute scenario is a short description of how a system is required to respond to some stimulus. © 2005 by Carnegie Mellon University 13
  • 14. QA Scenarios A quality attribute scenario has six parts: • source – an entity that generates a stimulus • stimulus – a condition that affects the system • artifact – the part of that was stimulated by the stimulus • environment – the condition under which the stimulus occurred • response – the activity that results because of the stimulus • response measure – the measure by which the system’s response will be evaluated © 2005 by Carnegie Mellon University 14
  • 15. A QA Scenario for Availability • An unanticipated external message is received by a process during normal operation. The process informs the operator of the message’s receipt, and the system continues to operate with no downtime. 1. source – external 2. stimulus – unanticipated message received 3. artifact – process 4. environment – during normal operation 5. response – system continues to operate 6. response measure – zero downtime © 2005 by Carnegie Mellon University 15
  • 16. A QA Scenario for Modifiability • During maintenance, a change is made to the system’s rules engine. The change is completed in one day. 1. source – requestor of the change 2. stimulus – a change is made 3. artifact – rules engine 4. environment – during maintenance 5. response – the change is completed 6. response measure – …in one day © 2005 by Carnegie Mellon University 16
  • 17. A QA Scenario for Security • During peak operation, an unauthorized intruder tries to download prohibited data via the system administrator’s interface. The system detects the attempt, blocks access, and notifies authorities within 15 seconds. 1. source – an unauthorized intruder 2. stimulus – tries to download prohibited data 3. artifact – system administrator’s interface 4. environment – during peak operation 5. response – the attempt is detected, blocked, reported 6. response measure – …within 15 seconds © 2005 by Carnegie Mellon University 17
  • 18. More about QAs There is no standard set of quality attributes • People disagree on names: Maintainability/modifiability/portability • People come up with new ones: “calibrate-ability” • There is no standard meaning of what it means to be “secure” Scenarios let us avoid all of these problems! The QAs are defined by the scenarios! Who tells us what QA’s are important? Stakeholders! © 2005 by Carnegie Mellon University 18
  • 19. Stakeholders Stakeholders are people with a vested interest in the system. They are the people who can tell us what is needed. They are the people who can tell us if what we are building is the right thing. We usually think of the user as telling us what is required, but there are many kinds of stakeholders. © 2005 by Carnegie Mellon University 19
  • 20. Concerns of System Stakeholders Development organization’s Marketing Maintenance End user Customer management stakeholder organization stakeholder stakeholder stakeholder stakeholder Low cost, Neat features, Behavior, Modifiability! Low cost, timely keeping people short time to market, performance, delivery, not changed employed, leveraging low cost, parity with security, very often! existing corporate competing products! reliability, assets! usability! Architect I need a raise! © 2005 by Carnegie Mellon University 20
  • 21. Stakeholder Involvement Stakeholders’ quality attribute requirements are seldom documented, which results in • goals not being achieved • conflict between stakeholders Architects must identify and actively engage stakeholders early in the life cycle to • understand the real constraints of the system (many times, stakeholders ask for everything!) • manage the stakeholders’ expectations (they can’t have everything!) • negotiate the system’s priorities • make tradeoffs © 2005 by Carnegie Mellon University 21
  • 22. SEI Quality Attribute Workshop (QAW) The QAW is a facilitated method that engages system stakeholders early in the life cycle to discover the driving quality attributes of a software-intensive system. Key points about the QAW are that it is • system-centric • stakeholder focused • used before the software architecture has been created © 2005 by Carnegie Mellon University 22
  • 23. QAW Steps 1. QAW Presentation and Introductions 2. Business/Mission Presentation 3. Architectural Plan Presentation 4. Identification of Architectural Drivers 5. Scenario Brainstorming 6. Scenario Consolidation 7. Scenario Prioritization 8. Scenario Refinement Iterate as necessary with broader stakeholder community © 2005 by Carnegie Mellon University 23
  • 24. QAW Benefits and Next Steps Potential Next Steps QAW Update Architectural Vision Quality Refine Requirements Attribute Create Prototypes Scenarios: Exercise Simulations Can be • raw used to Create Architecture • prioritized • refined Evaluate Potential Benefits Architecture • increased stakeholder communication • clarified quality attribute requirements • informed basis for architectural decisions © 2005 by Carnegie Mellon University 24
  • 25. Creating the architecture Architects primarily work by using previously-tried solutions • Large scale: Patterns and styles • Small scale: Tactics Styles, patterns, and tactics represent conceptual tools in the architect’s “tool bag.” Professional architects always keep their tool bag up to date. © 2005 by Carnegie Mellon University 25
  • 26. Tactics An architectural tactic is a fine-grained design approach used to achieve a quality attribute response. Tactics are the “building blocks” of design from which architectural patterns are created. Tactics to control Stimulus response Response © 2005 by Carnegie Mellon University 26
  • 27. Tactics for Availability Tactics to control Stimulus: Availability Response: Fault occurs Fault masked or Repair made © 2005 by Carnegie Mellon University 27
  • 28. Summary of Availability Tactics Availability Fault masked Fault or Fault Recovery Fault Recovery Fault repair Fault Detection Preparation and Prevention made and Repair Reintroduction • Ping/Echo • Voting • Shadow • Removal • Heartbeat • Active • State From Service • Exception Redundancy Resynchronization • Transactions • Passive • Rollback • Process Redundancy Monitor • Spare © 2005 by Carnegie Mellon University 28
  • 29. Summary of Modifiability Tactics Modifiability Localize Prevention Defer Binding Changes of Ripple Effect Time Semantic Hide information Runtime Response: Stimulus: coherence Maintain existing registration Changes Change Anticipate interface Configuration expected Restrict files made,tested, arrives communication changes Polymorphism and deployed Generalize paths Component module Use an replacement within time Limit possible intermediary Adherence to and budget options defined Abstract common protocols services © 2005 by Carnegie Mellon University 29
  • 30. Tactics for Performance Performance Resource Resource Resource demand management arbitration Increase Introduce Scheduling Response: Stimulus: computation concurrency policy Response Events efficiency Maintain Reduce multiple copies generated arrive Increase computational within time overhead available Manage event rate resources constraints Control freq. Of sampling © 2005 by Carnegie Mellon University 30
  • 31. Tactics for Security Security Resisting Detecting Recovering Attacks Attacks from an attack Authenticate Intrusion Restoration Identification Response: Stimulus: users detection System Attack Authorize users Maintain data detects, See Audit trail confidentiality “Availability” resists, or Maintain integrity Limit exposure recovers from Limit access attacks © 2005 by Carnegie Mellon University 31
  • 32. Tactics for Testability Testability Manage Internal Input/Output monitoring Stimulus: Response: Completion Record/playback Built-in Faults of an Separate interface monitors detected from implementation increment Specialized access routines/interfaces © 2005 by Carnegie Mellon University 32
  • 33. Attribute-Driven Design (ADD) Method ADD is a step-by-step method for systematically producing the first architectural designs for a system. ADD results • Overall structuring decisions • Interconnection and coordination mechanisms • Application of patterns and tactics to specific parts of architecture • Explicit achievement of quality attribute requirements • NOT detailed interfaces ADD requires as input: • Quality attribute requirements • Functional requirements • Constraints © 2005 by Carnegie Mellon University 33
  • 34. Attribute-Driven Design (ADD) Steps Step 1: Confirm there is sufficient requirements information Step 2: Choose part of the system to decompose Step 3: Prioritize requirements and identify architectural drivers Step 4: Choose design concept – patterns, styles, tactics -- that satisfies the architectural drivers associated with the part of the system we’ve chosen to decompose. Step 5: Instantiate architectural elements and allocate functionality Step 6: Merge designs completed thus far Step 7: Allocate remaining functionality Step 8: Define interfaces for instantiated elements Step 9: Verify and refine requirements and make them constraints for instantiated elements Step 10: Repeat steps 2 through 9 for the next part of the system you wish to decompose © 2005 by Carnegie Mellon University 34
  • 35. Now what? How do we know that our architecture is appropriate for its intended purpose? In a large development project, an enormous amount of money may be riding on the architecture. The company’s future may be at stake. We need to evaluate the architecture. © 2005 by Carnegie Mellon University 35
  • 36. How can we do this? The SEI has developed the Architecture Tradeoff Analysis Method (ATAM). The purpose of ATAM is: to assess the consequences of architectural decisions in light of quality attribute requirements and business goals. © 2005 by Carnegie Mellon University 36
  • 37. ATAM Benefits There are a number of benefits from performing ATAM evaluations • identified risks • clarified quality attribute requirements • improved architecture documentation • documented basis for architectural decisions • increased communication among stakeholders The results are improved architectures. © 2005 by Carnegie Mellon University 37
  • 38. ATAM Steps 1. Present the ATAM 2. Present business drivers 3. Present architecture 4. Identify architectural approaches Phase 1 5. Generate quality attribute utility tree 6. Analyze architectural approaches 7. Brainstorm and prioritize scenarios Phase 2 8. Analyze architectural approaches 9. Present results © 2005 by Carnegie Mellon University 38
  • 39. Utility Tree Construction (L,M) Data Reduce storage latency on Performance Latency customer DB to < 200 ms. Deliver video in real time Transaction (M,M) Throughput (H,H) New products Add CORBA middleware in < 20 person-months Modifiability Change COTS (H,L) Change web user interface in < 4 person-weeks Utility (H,H) Power outage at site1 requires traffic H/W failure redirected to site2 in < 3 seconds. Availability Network failure detected and recovered COTS S/W (H,H) in < 1.5 minutes failures (H,M) Data Credit card transactions are secure confidentiality 99.999% of the time Security Data Customer DB authorization works integrity 99.999% of the time (H,L) © 2005 by Carnegie Mellon University 39
  • 40. Conceptual Flow of ATAM Business Quality Scenarios Drivers Attributes Analysis Software Architectural Architectural Architecture Approaches Decisions Tradeoffs impacts Sensitivity Points distilled Non-Risks into Risk Themes Risks © 2005 by Carnegie Mellon University 40
  • 41. Documenting an architecture Architecture serves as the blueprint for the system, and the project that develops it. • It defines the work assignments. • It is the primary carrier of quality attributes. • It is the best artifact for early analysis. • It is the key to post-deployment maintenance and mining. Documenting the architecture is the crowning step to creating it. Documentation speaks for the architect, today and 20 years from today. © 2005 by Carnegie Mellon University 41
  • 42. What’s the answer? “How do you document a software architecture?” In industry, there seems to be a lack of systematic approaches to documentation. Instead, the emphasis has been on languages. In the past, the answer seems to have been: • “Use UML.” • “Draw boxes and lines.” • “What else do I need besides my class diagrams in Rose?” • “Not very well.” • “How do you document a what?” Now, however, we have a much better answer. © 2005 by Carnegie Mellon University 42
  • 43. “Views and Beyond” approach to architecture documentation The concept of a “view” gives us our main principle of architecture documentation: Document the relevant views, and then add information that applies to more than one view, thus tying the views together. © 2005 by Carnegie Mellon University 43
  • 44. Summary: Documenting a View Section 1: Primary presentation Sections 2-6: Supporting documentation © 2005 by Carnegie Mellon University 44
  • 45. Summary: Documentation Beyond Views A template for putting Documentation Beyond Views in a volume of its own: Template for Documentation Beyond Views How the documentation is organized Section 1. Documentation roadmap Section 2. View template What the architecture is: Section 3. System overview Section 4. Mapping between views Section 5. Directory Section 6. Glossary and acronym list Why the architecture is the way it is: Section 7. Background, design constraints, and rationale © 2005 by Carnegie Mellon University 45
  • 46. A Picture of Architecture-Based Dev. “Sketches” of Patterns and tactics candidate views, QAW C lie nt T elle r 1 determined by patterns Chosen, combined A c c o u nt Ac c ou n t Se r v e r- M a in S e rv er - Ba c k u p K EY C o m p on e n t T yp e s: Ac c ou n t D a ta ba s e A STER Gateway A dm in is tr a tiv e A tt ac h m en t V0 Gateway <<layer>> A views plus doc’n. Maintena nce beyond views C lie n t C on n e ct o r Ty p es : Tool S er v er P ub lis h -S us c rib e D at ab as e C lien t- S e rv e r R e qu es t /R ep ly <<layer>> A <<allowed to use>> D at ab as e D a tab as e A c c e s s A pp lic a tion DS <<layer>> B SY BASE <<layer>> A <<allowed to<<allowed to use>> use>> <<layer>> B <<segment>> <<segment>> <<segment>> KEY Repo sitor y Componen t SQL B1 B2<<allowed to<<allowed to use>> B3 use>> RPC E xpo sed RPC Expo sed SQ L Interface Interface <<allowed to use>> <<layer>> B <<segment>> <<segment>> <<segment>> B1 B2<<allowed to B3 use>> <<allowed to use>> <<segment>> <<segment>> <<segment>> B1 <<layer>> C B2 B3 <<allowed to use>> <<layer>> C <<layer>> C ADD Prioritized QA scenarios VaB ATAM Architect’s Influences Stakeholders Requirements, Development Requirements Ar c Architecture organization hi constraints Technical environment Architect’s te ct (s System experience ) Stakeholders Arch. Business Cycle © 2005 by Carnegie Mellon University 46
  • 47. E-mail: clements@sei.cmu.edu Source of material Software Architecture in Evaluating Software Documenting Software in Practice, Architectures: Methods Architectures: Views and Len Bass, Paul Clements, and Case Studies, Beyond, P. Clements, Rick Kazman, Paul Clements, F. Bachmann, L. Bass, Addison Wesley 2003 Rick Kazman, D. Garlan, J. Ivers, Mark Klein, R. Little, R. Nord, J. Stafford, Addison Wesley 2001 Addison Wesley 2002 © 2005 by Carnegie Mellon University 47
  • 48. New project: Improving Software Architecture Competence Architectures are created by architects. • How can we help them do their best work? • What does it mean for an architect to be competent? • How can an architect improve his/her competence? Architects work in organizations. • How can we help an organization help their architects do their best work? • What does it mean for an organization that produces architectures to be competent? • How can an organization improve its competence in architecture? © 2005 by Carnegie Mellon University 48
  • 49. What do architects do? To understand how to help architects do what they do, we need to understand what they do. • What are their duties? • What skills and knowledge made them “capable of performing their allotted or required function?” Philippe Kruchten writes that he requires architects working for him to spend 50% of their time on the architecture. What do they do with the other 50%? © 2005 by Carnegie Mellon University 49
  • 50. We can survey the “community” Sources of information • “Broadcast” sources: Information written by self-styled experts for mass anonymous consumptions - Web sites: e.g., Bredemeyer, SEI, HP, IBM (16) - Blogs and essays (16) - “Duties” list on SEI web site - Books on software architecture (25 top-sellers) • Education and training sources: - University courses in software architecture (29) - Industrial/non-university public courses (22) - Certificate and certification programs in architecture; e.g., SEI, Open Group, Microsoft (7) • “Architecture for a living” sources - Position descriptions for software architects (60) - Résumés of software architects © 2005 by Carnegie Mellon University 50
  • 51. Survey results to date This is a work in progress. To date, we have surveyed over 200 sources. We have cataloged • 201 duties • 85 skills • 96 knowledge areas © 2005 by Carnegie Mellon University 51
  • 52. Example duties <snip> Duties related to documentation Thoroughly understand and document the areas (domains) for which the system will be built Prepare architectural documents and presentations Document software interfaces Produce a comprehensive documentation package for architecture useful to stakeholders Keeping reader’s point of view in mind while documentation Creating, standardizing and using architectural descriptions Use a certain documentation standard Document variability and dynamism Create conceptual architectural view <snip> © 2005 by Carnegie Mellon University 52
  • 53. Example skills <snip> Inspire creative collaboration Interpersonal skills Interviewing Investigative Leadership Learning Listening skills Maintains constructive working relationships Mentoring Negotiation skills Observation power Open minded Oral and written communication skills Organizational and workflow skills Patient Planning skills Political sagacity <snip> © 2005 by Carnegie Mellon University 53
  • 54. Example knowledge <snip> Software Architecture concepts UML diagrams and UML analysis modeling Basic knowledge of Software Engineering Specialized knowledge of software engineering Knowledge about IT industry future directions Understanding of web-based applications Experience with Web Services Technologies Business re-engineering principles and processes Knowledge of industry’s best practices Experience in testing Knowledge of testing/debugging tools Experience with Real-time systems, Video systems Security domain Experience <snip> © 2005 by Carnegie Mellon University 54
  • 55. Architecture Duties (categories) 50.0% 45.0% Overall for Training & Educational 40.0% Overall for Architecting For Living 35.0% Overall for Broadcasted 30.0% OVERALL 25.0% 20.0% 15.0% 10.0% 5.0% 0.0% Interacting with the Leadership & team building Architecting Organization & Business Management Life cycle phases other than Technology related stakeholders architecture related © 2005 by Carnegie Mellon University 55
  • 56. 0.00% 2.00% 4.00% 6.00% 8.00% 10.00% 12.00% 14.00% 16.00% 18.00% 20.00% Creating architecture Architecture Evaluation and Analysis Documentation Existing systemand transformation Overall © 2005 by Carnegie Mellon University Requirements Coding and development Testing Future technologies Tools and technology selection Overall Clients Developers Project management People management OVERALL Support for management Organization Business Overall for Broadcasted Technical Leadership TeamBuilding Architecture Duties (sub-categories) 56 Overall for Architecting For Living Overall for Training & Educational
  • 57. Architecture Skills (categories) 45.00% 40.00% 35.00% 30.00% 25.00% 20.00% 15.00% Overall for Training & Educational 10.00% Overall for Architecting For Living Overall for Broadcasted 5.00% OVERALL 0.00% Communication Personal skills Inter-Personal Work skills skills © 2005 by Carnegie Mellon University 57
  • 58. 0.00% 5.00% 10.00% 15.00% 20.00% C m om unication(Out) 25.00% C m om unication(Both) C m om unication(In) Inter-personal skills(within team) © 2005 by Carnegie Mellon University Inter-personal skills(w other people) ith Leadership skills Effectively Managing Workload Skills to Excel in corporate environment Skills for handling Information Personal Qualities Skills for Handling Unknown Overall Skills Broadcasted Skills for Handling Unexpected Architecting for a living Educational and training Learning Architecture Skills (sub-categories) 58
  • 59. Architecture Knowledge (categories) 90.0% Overall for Training & Educational 80.0% Overall for Architecting For Living 70.0% Overall for Broadcasted OVERALL 60.0% 50.0% 40.0% 30.0% 20.0% 10.0% 0.0% and platforms organization’s Knowledge of Knowledge management technologies Computer context and Knowledge about your Science © 2005 by Carnegie Mellon University 59
  • 60. 0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% 35.00% 40.00% 45.00% 50.00% Knowledge of architecture concepts Knowledge of software engineering Design Knowledge © 2005 by Carnegie Mellon University Programm Knowledge ing Specific (technologies and platforms) Platforms General (technologies and platforms) Dom Knowledge ain OVERALL Industry Knowledge Enterprise Knowledge Overall for Broadcasted Leadership and management Overall for Architecting For Living Overall for Training & Educational Architecture Knowledge (sub-cat’s) 60
  • 61. Duties/Skills/Knowledge This work lets us propose a “duties/skills/knowledge” model of competence. Knowledge and skills support carrying out the duties. Competence is • Carrying out the duties • Having the skills • Knowing the knowledge © 2005 by Carnegie Mellon University 61
  • 62. Duties/Skills/Knowledge Advantages • It applies equally well to individuals, teams, and organizations. • It straightforwardly suggests an assessment instrument. • It straightforwardly suggests an improvement strategy - Improve your duties - Improve your skills - Improve your knowledge © 2005 by Carnegie Mellon University 62
  • 63. Future work (1): Grow this body of work Survey communities of practicing architects • E.g., WWISA, IASA, architects within a company • First questionnaire: 15-minute survey of duties, skills, and knowledge and organizational duties. Tie specific skills and knowledge to duties • If knowledge or a skill doesn’t support a duty, does it matter? Survey more sources • especially more position descriptions © 2005 by Carnegie Mellon University 63
  • 64. Future work (2): Apply model to organizations Case studies and surveys • organizational excellence in architecture • organizational improvement in architecture • surveys of organizational practices Surveys of practicing architects • E.g., WWISA, IASA, architects within a company • First questionnaire: 15-minute survey of duties, skills, and knowledge and organizational duties. Investigation of team practices Assessment of past performance to find targeted areas of improvement © 2005 by Carnegie Mellon University 64
  • 65. What are an organization’s duties, skills, and knowledge? List may include: • Hire talented architects • Establish a career track for software architects • Make the position of architect highly regarded through visibility, reward, and prestige • Establish a clear statement of duties, responsibilities, and authority for software architects • Establish a mentoring program for architects • Start an architecture training and education program • Track how architects spend their time • Establish an architect certification program • Measure architects’ performance • Provide a forum for architects to communicate, and share information and experience • Put in a place organization-wide development practices centered around architecture • Establish and empower an architecture review board • Measure quality of architectures produced • Initiate software process improvement or software quality improvement practices © 2005 by Carnegie Mellon University 65
  • 66. Future work (3): Tie duties, skills, and knowledge to architecture quality Case studies of successful and failed architectures, relating cause to effect. Pilot assessment instruments Pilot improvement strategies Other models of competence • Organizations as architectures: They have elements and relations and behaviors. Perhaps we can “evaluate” them as we evaluate architectures. • Design for Six Sigma techniques Research collaborators wanted! © 2005 by Carnegie Mellon University 66
  • 67. Trends in Software Architecture Predictions are risky, and usually worth less than what you paid for them. “Basic building blocks” of software • Will continue becoming more sophisticated, complex, domain-specific, interoperable, and stand-alone (continuing a 40-year-old trend) • “Service” is the current form of this, but will be replaced by something else in five years • SLAs will be come more sophisticated, generalized, and dependable. “Credentials” will be the watchword, especially in services. Watch for an ebay-like model where consumers leave feedback, especially in ubiquitous computing environments. © 2005 by Carnegie Mellon University 67
  • 68. Trends in Software Architecture Process of architecting • Will be come more standardized, more repeatable, more teachable, more methodical – less “magic” • Evaluation of architectures will continue becoming a widespread practice • Stakeholder-based documentation will become the norm • Gaps in the conceptual representations (e.g., between ADLs and downstream design languages such as UML, or between business goals and architecture) will be bridged • More automated traceability, from business processes/goals to architecture to design to code to testing, possibly by automated design assistants and tooling, possibly by better language support © 2005 by Carnegie Mellon University 68
  • 69. Trends in Software Architecture Architecture as a practice • We can view the history of software engineering as producing simpler ways to specify much more complex software. Our languages to describe solutions have become steadily more sophisticated. - 1960 atoms: + - / * SQRT, simply-structured reports - 2006 atoms: shopping cart, GUI, rules engine, workflow, auction… • When our languages achieve a “new plateau” of expressiveness, the programs we write suddenly become very simple, even though the software systems are much more complex. The complexity is carried in the language. • The need for architecture is not as great when the programs are very short and simple. • But we always learn to exploit our new capabilities to the fullest. Our programs quickly become more and more complex. Soon, we cannot understand them, nor can we understand how they will deliver the ever- higher quality attributes we require. • And that is the point where architecture steps in to help us structure the solutions and lend understandability and buildability. © 2005 by Carnegie Mellon University 69
  • 70. Trends in Software Architecture Architecture as a practice (continued) • Right now there seem to be two kinds of organizations. • One kind designs extensive architectures. - These are application builders solving unprecedented problems, or in domains without large “platform” vendors (they may be the platform vendors) or standardized solutions - They perform extensive architectural design • The other kind makes major architectural decisions by the process of selecting a platform vendor. - Here, “architecture” means putting big vendor-supplied pieces together. “Design” is de-emphasized. - The “space” of what they can specify is not that large. - You can view the things they get to choose as a specification language. - They’ve just arrived at the latest “new plateau” - They don’t view architecture design as that important. - Last prediction: They will! © 2005 by Carnegie Mellon University 70
  • 71. Questions―Now or Later Linda Northrop Paul Clements Director Email: clements@sei.cmu.edu Product Line Systems Program Telephone: 412-268-7638 Email: lmn@sei.cmu.edu A Microsoft Word template for a software architecture document U.S. Mail: based on the Views and Beyond Software Engineering Institute approach is available at Carnegie Mellon University 4500 Fifth Avenue http://www.sei.cmu.edu/architecture/ Pittsburgh, PA 15213-3890 arch_doc.html or World Wide Web: http://www.sei.cmu.edu/ http://www.sei.cmu.edu/architecture architecture Click on documentation Click on download SEI Fax: 412-268-5758 © 2005 by Carnegie Mellon University 71