SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Architecture Haiku


   George Fairbanks

   3 August 2010

   Rhino Research
   Software Architecture Consulting and Training
   http://RhinoResearch.com
Talk overview

•  Architecture descriptions tend to be verbose
     •  E.g.: Documentation package
     •  Complete, rather than suggestive

•  Problem: We have caviar taste; McDonald’s budget

•  Q: What if we only use one page?
    •  Must use concise language
    •  High power-to-weight ideas

•  A: Architecture Haiku
     •  Tradeoffs, quality attribute priorities, drivers, design rationales,
        constraints, architectural styles

•  Future
     •  Requires shared knowledge: terms, styles
     •  Will Haiku help architecture education?

21 July 2010             George Fairbanks – RhinoResearch.com                  2
Talk outline

•  Introduction
     •  About me, software architecture, documentation packages, agile,
        forces, concision
•  Haiku How-To
•  Haiku Example: Apache
•  Group exercise
•  Future




21 July 2010          George Fairbanks – RhinoResearch.com                3
What is software architecture?

  The software architecture of a computing system is the set of
  structures needed to reason about the system, which comprise
  software elements, relations among them, and properties of both.
  [Clements et al., DSA2, 2010]


•  In loose language:
     •  It’s the macroscopic organization of the system

•  Must keep these ideas separate:
    Χ  The job title/role “architect”
    Χ  The process of architecting/designing (also: when)
     The engineering artifact called the architecture

•  Every system has an architecture
    •  Identify it by looking back (avoids tangling with process & roles)
    •  E.g., “Aha, I see it is a 3-tier architecture”

21 July 2010           George Fairbanks – RhinoResearch.com                 4
Architecture as skeleton

•  An animal’s skeleton:
    •  Provides its overall structure
    •  Influences what it can do

•  Examples
     •  Birds fly better because of wings and light bones
     •  Kangaroos jump because of leg structure
     •  Convergent evolution: Bat skeletons have wings

•  Tradeoffs
     •  4 legs faster vs. 2 legs easier to use tools

•  Software skeleton examples
     •  3-tier: localize changes, concurrent transactions
     •  Cooperating processes: isolate faults
     •  Peer-to-peer: no central point of failure



21 July 2010             George Fairbanks – RhinoResearch.com   5
Architecture influences quality attributes

•  Function: Carrying apples to market
    •  Solution 1: Use humans
    •  Solution 2: Use horses

•  Both solutions work
     •  Yet differ in their quality attributes

•  Quality attributes
    •  A.k.a. extra-functional requirements, the “ities”
    •  E.g., latency, modifiability, usability, testability

•  Architecture influences the system’s quality attributes
     •  E.g., pipe and filter is reconfigurable
     •  E.g., map-reduce is scalable




21 July 2010              George Fairbanks – RhinoResearch.com   6
Architecture orthogonal to functionality

•  Architecture orthogonal to functionality
     •  Can mix-and-match architecture and functionality
     •  Can (mostly) build any system with any architecture

•  Shift in thinking
    •  No: good or bad architectures
    •  Yes: suitable or unsuitable to supporting the functions

•  Architecture can help or hurt you achieve functionality
     •  Help example: use horses to transport apples
     •  Hurt example: use horses to stack apples




21 July 2010           George Fairbanks – RhinoResearch.com      7
Documentation packages

 •  What is a documentation package?
     •  Complete architecture description
     •  See Documenting Software Architectures, 2nd Ed, 2010

 •  But:
     •  Hard to reconcile with Agile processes
     •  Expensive
     •  Not terse examples




Image CC license Indogen Jonesfr

 21 July 2010                      George Fairbanks – RhinoResearch.com   8
Talk outline

•  Introduction
•  Haiku How-To
     •  Tradeoffs, quality attribute priorities, drivers, design decisions,
        constraints, architectural styles
•  Haiku Example: Apache
•  Group exercise
•  Future




21 July 2010             George Fairbanks – RhinoResearch.com                 9
Idea: Architecture Haiku

•  Goal: Best 1-page architecture description

•  What to include?
    •  High power-to-weight items
    •  Items that promote insight, not comprehensiveness

•  Techniques
     •  Concise language (e.g., technical terms)
     •  Document differences
     •  Hints at critical junctions

•  Implications (i.e., who can read the haiku?)
     •  Need shared technical terms
     •  Need shared conceptual model




21 July 2010           George Fairbanks – RhinoResearch.com   10
Haiku Contents

1.    Solution description
2.    Tradeoffs
3.    Quality attribute priorities
4.    Architecture drivers (QA scenarios)
5.    Design rationales
6.    Constraints
7.    Architecture styles
8.    Diagrams




21 July 2010              George Fairbanks – RhinoResearch.com   11
1. Solution description

•  Simple text describing the system

•  Good to include:
    •  Most important functions
    •  Goals

•  Challenges
    •  Verbosity

•  Examples
     •  XBMC is a cross-platform music and video player that supports
        every major media format.
     •  LyX is a structured document processor, suitable for technical
        writing, that uses LaTeX to render professional-quality PDFs.




21 July 2010           George Fairbanks – RhinoResearch.com              12
2. Tradeoffs

•  Tradeoff: More of this  less of that

•  Examples

     •  Portability vs. playback efficiency. Platform-specific resources
        (e.g., dedicated hardware) often provide media playback
        benefits, including efficiency, yet using these resources ties the
        software to that platform

     •  Weight vs. speed. The heavier a car is, the slower it
        accelerates.

•  Everything trades off against cost




21 July 2010            George Fairbanks – RhinoResearch.com             13
QA tradeoffs

 •  Domain tradeoffs or system-specific tradeoffs
     •  Arise from domain quirk, or particular design

 •  Generic quality attribute tradeoffs
     •  E.g., generally efficiency trades off against maintainability




Table from Wiegers, Software Requirements, 2003, via Morgan “Implementing System Quality Attributes”, 2007.

 21 July 2010                           George Fairbanks – RhinoResearch.com                                  14
3. Quality attribute priorities

•  Goal: Prioritized list of quality attributes
    •  Some QA's likely not relevant, or very low priority
    •  Some QA's critical to project success

•  For credit card processing:
     •  Security > latency > throughput

•  For an MP3 player:
     •  Usability > audio fidelity > extensibility


•  Make an argument for different prioritizations
•  What factors influence the prioritization?




21 July 2010             George Fairbanks – RhinoResearch.com   15
4. QA scenario structure

 QA Scenario Templates                                                   QA Scenario Examples

 •  Basic template: stimulus and response                                •  Basic scenario: System allows
      •  Stimulus: agent or situation that                                  rapid scanning of book copies.
         triggers scenario
      •  Response: reaction to stimulus


 •  Ideal template: Add source,                                          •  Ideal scenario: Under normal
    environment, response measure                                           conditions, when a librarian
      •  Stimulus: as above                                                 scans a book copy for
      •  Response: as above                                                 checkout, the system updates
      •  Source: Who/what creates stimulus                                  its records and is ready to scan
      •  Environment: mode of the system.                                   the next one within 0.25
         E.g., normal or low demand.                                        seconds.
      •  Response measure: testable
         response (e.g., “happens in 2ms”)


QA scenarios from Bass et al., Software Architecture in Practice, 2003


 21 July 2010                             George Fairbanks – RhinoResearch.com                               16
Architecture drivers

Architecture Drivers                          Examples

•  Each QA scenario can be graded by:         •  S1 (H,H): When a librarian scans a
     •  Importance to stakeholder                book copy for checkout, the system
        (high, medium, low)                      updates its records and is ready to
     •  Difficulty to implement (high,           scan the next one within 0.25
        medium, low)                             seconds.

•  Architecture drivers are                   •  S2 (M,H): When librarian station
     •  QA scenarios                             cannot contact the main system,
     •  or functional scenarios (eg use          librarians can continue to check
        cases)                                   books in and out.
     •  that are rated (H,H)
                                              •  S3 (H,M): The system can be
                                                 modified to use a different source of
                                                 borrower entitlements within 1
                                                 programmer week of effort.




21 July 2010               George Fairbanks – RhinoResearch.com                     17
5. Design rationales

•  Design rationales explain why
•  They should align with your quality attribute priorities

     <x> is a priority, so we chose design <y>, accepting downside <z>.

•  An example:

     •  Since avoiding vendor lock-in is a high priority, we choose to use
        a standard industry framework with multiple vendor
        implementations, even though using vendor-specific extensions
        would give us greater performance.

•  But: Good intentions can go awry
    •  E.g., performance optimization hindering modifiability




21 July 2010            George Fairbanks – RhinoResearch.com             18
6. Constraints (Guiderails)

•  Developers voluntarily constrain systems
    •  Counter-intuitive
    •  Ensures what a system does not do
    •  I.e., guiderails

•  Constraints help ensure outcomes
    •  E.g., ensure quality attributes are met
    •  No constraints = no analysis

•  Examples
     •  Plugins must use cross-platform API to read files  portability
     •  EJBeans must not start own threads  manageability
     •  EJBeans must not write local files  distribution




21 July 2010            George Fairbanks – RhinoResearch.com              19
7. Architectural styles

•  Examples                                                      See more architectural styles in
     •  Big ball of mud                                          my book (of course) or wikipedia
     •  Client-server
     •  Pipe-and-filter
     •  Map-reduce
     •  N-tier
     •  Layered
     •  …

•  Each predefines
     •  Elements (e.g., pipes, map functions)
     •  Constraints, …

•  Benefits
     •  Known tradeoffs
     •  Known suitability
     •  Compact term for communication


21 July 2010              George Fairbanks – RhinoResearch.com                                      20
8. Diagrams

               Viewtype    Contents
               Module      Modules, Dependencies, Layers
               Runtime     Components, Connectors, Ports
               Allocation Servers, Communication channels


•  Three primary viewtypes: Module, Runtime, Allocation
    •  Many views within a viewtype
    •  View suitability

•  Challenge
    •  Remember: Just one page!
    •  Small diagrams only




21 July 2010              George Fairbanks – RhinoResearch.com   21
Talk outline

•    Introduction
•    Haiku How-To
•    Haiku Example: Apache
•    Group exercise
•    Future




21 July 2010         George Fairbanks – RhinoResearch.com   22
The Apache Web Server

•  History
     •  Evolved from UIUC NCSA server

•  Users
     •  From Hosting providers to mom-and-pop

•  Notable characteristics
    •  Cross-platform (via Apache Portable Runtime layer)
    •  Extensible (via pluggable modules)
    •  Configurable (via text files)
    •  Interoperable (e.g., with app servers)




21 July 2010          George Fairbanks – RhinoResearch.com   23
Apache as a Haiku

1.  Description
     •  The Apache HTTP Server serves web pages/requests, is
        extensible by third parties, and integrates with procedural code
        (e.g. CGI scripts, app servers)

2.  Tradeoffs
     •  Textual over GUI config: ssh access; scriptability
     •  Configurability over usability: for professional sysadmins;
        expert over casual use
     •  Extensibility over performance: distributed OSS creation of new
        modules

3.  Top 3 quality attributes, prioritized
     •  Extensibility > Configurability > Performance

4.  Architecture drivers
     •  Third party writes a new extension module in 1 week
     •  ISP configures new virtual host via script
     •  Server ported to new operating system in 1 month

21 July 2010           George Fairbanks – RhinoResearch.com                24
Apache as a Haiku

5.  Design rationales
     •  Since extensibility is more important than performance, modules
        are dynamically configured to process requests, potentially
        increasing latency

7.  Constraints (guide rails)
     •  All OS calls must go through Apache Portable Runtime layer

8.  Architectural styles
     •  Client-server: Browsers to main web server
     •  Pipe-and-filter: Requests and responses processed through
        network of filter modules (e.g., URL rewrite, compress)

9.  Diagrams
     •  Next pages




21 July 2010          George Fairbanks – RhinoResearch.com           25
Client-server diagram

•  Apache, with clients and
   administration
•  Runtime viewtype

•  Diagram not surprising
   enough to include




Diagram from: Apache Modeling Project:
      Bernhard Gröne, Andreas Knöpfel, Rudolf Kugel, Oliver Schmidt
      http://www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_Project.html

21 July 2010                         George Fairbanks – RhinoResearch.com                     26
Pipe-and-filter diagram

•  Request processing
•  Apache (dynamically) processes requests
    •  Input pipeline
    •  Output pipeline

•  Note: Runtime viewtype

•  Perhaps worthy to include




Diagram from: Apache Modeling Project:
      Bernhard Gröne, Andreas Knöpfel, Rudolf Kugel, Oliver Schmidt
      http://www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_Project.html

21 July 2010                         George Fairbanks – RhinoResearch.com                     27
Talk outline

•  Introduction
•  Haiku How-To
•  Haiku Example: Apache
•  Group exercise
     •  Airport screening
•  Future




21 July 2010          George Fairbanks – RhinoResearch.com   28
Airport screening exercise

•  Choose your descriptions from            •  Tips
   this list:

1. Solution description                     •  Incomplete descriptions
2. Tradeoffs                                •  Suggestive, not comprehensive
3. Quality attribute priorities             •  Hints at critical junctions
4. Architecture drivers (QA
  scenarios)
5. Design rationales
6. Constraints (guide rails)
7. Architecture styles
8. Diagrams




21 July 2010             George Fairbanks – RhinoResearch.com              29
Talk outline

•    Introduction
•    Haiku How-To
•    Haiku Example: Apache
•    Group exercise
•    Future
       •  Role of architecture, terminology, learn from (Haiku) examples,




21 July 2010              George Fairbanks – RhinoResearch.com              30
Implications & future

•  Role of architecture
    •  Acts as skeleton
    •  Makes QA’s easy or hard to achieve
    •  Today, often ignored

•  Assumed architectural knowledge
     •  Terminology (style names, components, connectors, …)
     •  Deltas

•  Learning from (Haiku) examples
     •  Imagine a book of Haiku examples
     •  OSS rarely documents architecture
     •  Let’s build a catalog (email me)

•  Candidate agile technical practice




21 July 2010           George Fairbanks – RhinoResearch.com    31
Conclusion

•  3 distinct ideas:
     •  The job title/role “architect”
     •  The process of architecting/designing
     •  The engineering artifact called the architecture

•  Architecture Haiku: 1-page description
    •  Incomplete, document deltas, hints at critical junctions
    •  High power-to-weight items that yield insight

•  Contents
    •  Tradeoffs, QA priorities, drivers, rationales, constraints, styles,
       and maybe diagrams


                            Parts of this talk are excerpted from my book
               Just Enough Software Architecture: A Risk-Driven Approach
                                             http://RhinoResearch.com


21 July 2010              George Fairbanks – RhinoResearch.com               32
Shameless plugging

•  E-book available now $25
     •  One price, 3 formats
     •  PDF, ePub, Mobi
     •  No DRM
     •  http://RhinoResearch.com

•  Hardback in ~5 weeks
    •  Amazon.com
    •  About $40 street price




21 July 2010           George Fairbanks – RhinoResearch.com   33

Más contenido relacionado

La actualidad más candente

V model (software engineering)
V model (software engineering)V model (software engineering)
V model (software engineering)MuhammadTalha436
 
Innovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintInnovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintEryk Korfel
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de softwareisisparada
 
Shift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreShift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreAugusto Evangelisti
 
Software Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringSoftware Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringPurvik Rana
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
le guide swebok
le guide swebokle guide swebok
le guide sweboksammiiaa
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaEdureka!
 
Software Quality Gate.pptx
Software Quality Gate.pptxSoftware Quality Gate.pptx
Software Quality Gate.pptxssuser702665
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Lars Thorup
 
Azure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
Azure Pipeline Tutorial | Azure DevOps Tutorial | EdurekaAzure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
Azure Pipeline Tutorial | Azure DevOps Tutorial | EdurekaEdureka!
 
Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Tathagat Varma
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasJuank Grifin
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesTrisha Gee
 

La actualidad más candente (20)

V model (software engineering)
V model (software engineering)V model (software engineering)
V model (software engineering)
 
Innovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintInnovations Accelerated - Design Sprint
Innovations Accelerated - Design Sprint
 
ICONIX
ICONIXICONIX
ICONIX
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de software
 
Shift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centreShift Left, Shift Right and improve the centre
Shift Left, Shift Right and improve the centre
 
Code Review
Code ReviewCode Review
Code Review
 
Software Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringSoftware Quality Assurance - Software Engineering
Software Quality Assurance - Software Engineering
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
le guide swebok
le guide swebokle guide swebok
le guide swebok
 
Behavior Driven Development Testing (BDD)
Behavior Driven Development Testing (BDD)Behavior Driven Development Testing (BDD)
Behavior Driven Development Testing (BDD)
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | Edureka
 
Software Quality Gate.pptx
Software Quality Gate.pptxSoftware Quality Gate.pptx
Software Quality Gate.pptx
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Azure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
Azure Pipeline Tutorial | Azure DevOps Tutorial | EdurekaAzure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
Azure Pipeline Tutorial | Azure DevOps Tutorial | Edureka
 
Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
CQRS
CQRSCQRS
CQRS
 
Calidad De Software Diapositivas
Calidad De Software DiapositivasCalidad De Software Diapositivas
Calidad De Software Diapositivas
 

Similar a Architecture Haiku

naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agileNaveed Kamran
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting examplecorehard_by
 
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Lucidworks
 
Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015loydbakerjr
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014NoSQLmatters
 
Moving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMoving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMark Sigler
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624Vu Hung Nguyen
 
Intern Project Showcase.pptx
Intern Project Showcase.pptxIntern Project Showcase.pptx
Intern Project Showcase.pptxritikgarg48
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overviewravclarke
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017XavierDevroey
 
Webinar: Question Answering and Virtual Assistants with Deep Learning
Webinar: Question Answering and Virtual Assistants with Deep LearningWebinar: Question Answering and Virtual Assistants with Deep Learning
Webinar: Question Answering and Virtual Assistants with Deep LearningLucidworks
 
SPLive Orlando - 10 Things I Like in SharePoint 2013 Search
SPLive Orlando - 10 Things I Like in SharePoint 2013 SearchSPLive Orlando - 10 Things I Like in SharePoint 2013 Search
SPLive Orlando - 10 Things I Like in SharePoint 2013 SearchAgnes Molnar
 
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...LogeekNightUkraine
 
Improved Search With Lucene 4.0 - NOVA Lucene/Solr Meetup
Improved Search With Lucene 4.0 - NOVA Lucene/Solr MeetupImproved Search With Lucene 4.0 - NOVA Lucene/Solr Meetup
Improved Search With Lucene 4.0 - NOVA Lucene/Solr Meetuprcmuir
 

Similar a Architecture Haiku (20)

naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agile
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
Enriching Solr with Deep Learning for a Question Answering System - Sanket Sh...
 
Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
142 wendy shank
142 wendy shank142 wendy shank
142 wendy shank
 
Case study
Case studyCase study
Case study
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
Moving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating ArchitecturesMoving To The Cloud, Evaluating Architectures
Moving To The Cloud, Evaluating Architectures
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624
 
Software Design
Software DesignSoftware Design
Software Design
 
Intern Project Showcase.pptx
Intern Project Showcase.pptxIntern Project Showcase.pptx
Intern Project Showcase.pptx
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overview
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017
 
Webinar: Question Answering and Virtual Assistants with Deep Learning
Webinar: Question Answering and Virtual Assistants with Deep LearningWebinar: Question Answering and Virtual Assistants with Deep Learning
Webinar: Question Answering and Virtual Assistants with Deep Learning
 
SPLive Orlando - 10 Things I Like in SharePoint 2013 Search
SPLive Orlando - 10 Things I Like in SharePoint 2013 SearchSPLive Orlando - 10 Things I Like in SharePoint 2013 Search
SPLive Orlando - 10 Things I Like in SharePoint 2013 Search
 
5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt
 
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...
Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hi...
 
Improved Search With Lucene 4.0 - NOVA Lucene/Solr Meetup
Improved Search With Lucene 4.0 - NOVA Lucene/Solr MeetupImproved Search With Lucene 4.0 - NOVA Lucene/Solr Meetup
Improved Search With Lucene 4.0 - NOVA Lucene/Solr Meetup
 

Más de Matthew McCullough

Using Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge InteractiveUsing Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge InteractiveMatthew McCullough
 
All About GitHub Pull Requests
All About GitHub Pull RequestsAll About GitHub Pull Requests
All About GitHub Pull RequestsMatthew McCullough
 
Git Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh MyGit Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh MyMatthew McCullough
 
Git and GitHub at the San Francisco JUG
 Git and GitHub at the San Francisco JUG Git and GitHub at the San Francisco JUG
Git and GitHub at the San Francisco JUGMatthew McCullough
 
Migrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHubMigrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHubMatthew McCullough
 
Build Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGBuild Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGMatthew McCullough
 
Git Going for the Transylvania JUG
Git Going for the Transylvania JUGGit Going for the Transylvania JUG
Git Going for the Transylvania JUGMatthew McCullough
 
Transylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting AnnouncementsTransylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting AnnouncementsMatthew McCullough
 
Game Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUGGame Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUGMatthew McCullough
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGMatthew McCullough
 

Más de Matthew McCullough (20)

Using Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge InteractiveUsing Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge Interactive
 
All About GitHub Pull Requests
All About GitHub Pull RequestsAll About GitHub Pull Requests
All About GitHub Pull Requests
 
Adam Smith Builds an App
Adam Smith Builds an AppAdam Smith Builds an App
Adam Smith Builds an App
 
Git's Filter Branch Command
Git's Filter Branch CommandGit's Filter Branch Command
Git's Filter Branch Command
 
Git Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh MyGit Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh My
 
Git and GitHub at the San Francisco JUG
 Git and GitHub at the San Francisco JUG Git and GitHub at the San Francisco JUG
Git and GitHub at the San Francisco JUG
 
Finding Things in Git
Finding Things in GitFinding Things in Git
Finding Things in Git
 
Git and GitHub for RallyOn
Git and GitHub for RallyOnGit and GitHub for RallyOn
Git and GitHub for RallyOn
 
Migrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHubMigrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHub
 
Git Notes and GitHub
Git Notes and GitHubGit Notes and GitHub
Git Notes and GitHub
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Build Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGBuild Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUG
 
Git Going for the Transylvania JUG
Git Going for the Transylvania JUGGit Going for the Transylvania JUG
Git Going for the Transylvania JUG
 
Transylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting AnnouncementsTransylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting Announcements
 
Game Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUGGame Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUG
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
 
JQuery Mobile
JQuery MobileJQuery Mobile
JQuery Mobile
 
R Data Analysis Software
R Data Analysis SoftwareR Data Analysis Software
R Data Analysis Software
 
Please, Stop Using Git
Please, Stop Using GitPlease, Stop Using Git
Please, Stop Using Git
 
Dr. Strangedev
Dr. StrangedevDr. Strangedev
Dr. Strangedev
 

Último

Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 

Último (20)

Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 

Architecture Haiku

  • 1. Architecture Haiku George Fairbanks 3 August 2010 Rhino Research Software Architecture Consulting and Training http://RhinoResearch.com
  • 2. Talk overview •  Architecture descriptions tend to be verbose •  E.g.: Documentation package •  Complete, rather than suggestive •  Problem: We have caviar taste; McDonald’s budget •  Q: What if we only use one page? •  Must use concise language •  High power-to-weight ideas •  A: Architecture Haiku •  Tradeoffs, quality attribute priorities, drivers, design rationales, constraints, architectural styles •  Future •  Requires shared knowledge: terms, styles •  Will Haiku help architecture education? 21 July 2010 George Fairbanks – RhinoResearch.com 2
  • 3. Talk outline •  Introduction •  About me, software architecture, documentation packages, agile, forces, concision •  Haiku How-To •  Haiku Example: Apache •  Group exercise •  Future 21 July 2010 George Fairbanks – RhinoResearch.com 3
  • 4. What is software architecture? The software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. [Clements et al., DSA2, 2010] •  In loose language: •  It’s the macroscopic organization of the system •  Must keep these ideas separate: Χ  The job title/role “architect” Χ  The process of architecting/designing (also: when)  The engineering artifact called the architecture •  Every system has an architecture •  Identify it by looking back (avoids tangling with process & roles) •  E.g., “Aha, I see it is a 3-tier architecture” 21 July 2010 George Fairbanks – RhinoResearch.com 4
  • 5. Architecture as skeleton •  An animal’s skeleton: •  Provides its overall structure •  Influences what it can do •  Examples •  Birds fly better because of wings and light bones •  Kangaroos jump because of leg structure •  Convergent evolution: Bat skeletons have wings •  Tradeoffs •  4 legs faster vs. 2 legs easier to use tools •  Software skeleton examples •  3-tier: localize changes, concurrent transactions •  Cooperating processes: isolate faults •  Peer-to-peer: no central point of failure 21 July 2010 George Fairbanks – RhinoResearch.com 5
  • 6. Architecture influences quality attributes •  Function: Carrying apples to market •  Solution 1: Use humans •  Solution 2: Use horses •  Both solutions work •  Yet differ in their quality attributes •  Quality attributes •  A.k.a. extra-functional requirements, the “ities” •  E.g., latency, modifiability, usability, testability •  Architecture influences the system’s quality attributes •  E.g., pipe and filter is reconfigurable •  E.g., map-reduce is scalable 21 July 2010 George Fairbanks – RhinoResearch.com 6
  • 7. Architecture orthogonal to functionality •  Architecture orthogonal to functionality •  Can mix-and-match architecture and functionality •  Can (mostly) build any system with any architecture •  Shift in thinking •  No: good or bad architectures •  Yes: suitable or unsuitable to supporting the functions •  Architecture can help or hurt you achieve functionality •  Help example: use horses to transport apples •  Hurt example: use horses to stack apples 21 July 2010 George Fairbanks – RhinoResearch.com 7
  • 8. Documentation packages •  What is a documentation package? •  Complete architecture description •  See Documenting Software Architectures, 2nd Ed, 2010 •  But: •  Hard to reconcile with Agile processes •  Expensive •  Not terse examples Image CC license Indogen Jonesfr 21 July 2010 George Fairbanks – RhinoResearch.com 8
  • 9. Talk outline •  Introduction •  Haiku How-To •  Tradeoffs, quality attribute priorities, drivers, design decisions, constraints, architectural styles •  Haiku Example: Apache •  Group exercise •  Future 21 July 2010 George Fairbanks – RhinoResearch.com 9
  • 10. Idea: Architecture Haiku •  Goal: Best 1-page architecture description •  What to include? •  High power-to-weight items •  Items that promote insight, not comprehensiveness •  Techniques •  Concise language (e.g., technical terms) •  Document differences •  Hints at critical junctions •  Implications (i.e., who can read the haiku?) •  Need shared technical terms •  Need shared conceptual model 21 July 2010 George Fairbanks – RhinoResearch.com 10
  • 11. Haiku Contents 1.  Solution description 2.  Tradeoffs 3.  Quality attribute priorities 4.  Architecture drivers (QA scenarios) 5.  Design rationales 6.  Constraints 7.  Architecture styles 8.  Diagrams 21 July 2010 George Fairbanks – RhinoResearch.com 11
  • 12. 1. Solution description •  Simple text describing the system •  Good to include: •  Most important functions •  Goals •  Challenges •  Verbosity •  Examples •  XBMC is a cross-platform music and video player that supports every major media format. •  LyX is a structured document processor, suitable for technical writing, that uses LaTeX to render professional-quality PDFs. 21 July 2010 George Fairbanks – RhinoResearch.com 12
  • 13. 2. Tradeoffs •  Tradeoff: More of this  less of that •  Examples •  Portability vs. playback efficiency. Platform-specific resources (e.g., dedicated hardware) often provide media playback benefits, including efficiency, yet using these resources ties the software to that platform •  Weight vs. speed. The heavier a car is, the slower it accelerates. •  Everything trades off against cost 21 July 2010 George Fairbanks – RhinoResearch.com 13
  • 14. QA tradeoffs •  Domain tradeoffs or system-specific tradeoffs •  Arise from domain quirk, or particular design •  Generic quality attribute tradeoffs •  E.g., generally efficiency trades off against maintainability Table from Wiegers, Software Requirements, 2003, via Morgan “Implementing System Quality Attributes”, 2007. 21 July 2010 George Fairbanks – RhinoResearch.com 14
  • 15. 3. Quality attribute priorities •  Goal: Prioritized list of quality attributes •  Some QA's likely not relevant, or very low priority •  Some QA's critical to project success •  For credit card processing: •  Security > latency > throughput •  For an MP3 player: •  Usability > audio fidelity > extensibility •  Make an argument for different prioritizations •  What factors influence the prioritization? 21 July 2010 George Fairbanks – RhinoResearch.com 15
  • 16. 4. QA scenario structure QA Scenario Templates QA Scenario Examples •  Basic template: stimulus and response •  Basic scenario: System allows •  Stimulus: agent or situation that rapid scanning of book copies. triggers scenario •  Response: reaction to stimulus •  Ideal template: Add source, •  Ideal scenario: Under normal environment, response measure conditions, when a librarian •  Stimulus: as above scans a book copy for •  Response: as above checkout, the system updates •  Source: Who/what creates stimulus its records and is ready to scan •  Environment: mode of the system. the next one within 0.25 E.g., normal or low demand. seconds. •  Response measure: testable response (e.g., “happens in 2ms”) QA scenarios from Bass et al., Software Architecture in Practice, 2003 21 July 2010 George Fairbanks – RhinoResearch.com 16
  • 17. Architecture drivers Architecture Drivers Examples •  Each QA scenario can be graded by: •  S1 (H,H): When a librarian scans a •  Importance to stakeholder book copy for checkout, the system (high, medium, low) updates its records and is ready to •  Difficulty to implement (high, scan the next one within 0.25 medium, low) seconds. •  Architecture drivers are •  S2 (M,H): When librarian station •  QA scenarios cannot contact the main system, •  or functional scenarios (eg use librarians can continue to check cases) books in and out. •  that are rated (H,H) •  S3 (H,M): The system can be modified to use a different source of borrower entitlements within 1 programmer week of effort. 21 July 2010 George Fairbanks – RhinoResearch.com 17
  • 18. 5. Design rationales •  Design rationales explain why •  They should align with your quality attribute priorities <x> is a priority, so we chose design <y>, accepting downside <z>. •  An example: •  Since avoiding vendor lock-in is a high priority, we choose to use a standard industry framework with multiple vendor implementations, even though using vendor-specific extensions would give us greater performance. •  But: Good intentions can go awry •  E.g., performance optimization hindering modifiability 21 July 2010 George Fairbanks – RhinoResearch.com 18
  • 19. 6. Constraints (Guiderails) •  Developers voluntarily constrain systems •  Counter-intuitive •  Ensures what a system does not do •  I.e., guiderails •  Constraints help ensure outcomes •  E.g., ensure quality attributes are met •  No constraints = no analysis •  Examples •  Plugins must use cross-platform API to read files  portability •  EJBeans must not start own threads  manageability •  EJBeans must not write local files  distribution 21 July 2010 George Fairbanks – RhinoResearch.com 19
  • 20. 7. Architectural styles •  Examples See more architectural styles in •  Big ball of mud my book (of course) or wikipedia •  Client-server •  Pipe-and-filter •  Map-reduce •  N-tier •  Layered •  … •  Each predefines •  Elements (e.g., pipes, map functions) •  Constraints, … •  Benefits •  Known tradeoffs •  Known suitability •  Compact term for communication 21 July 2010 George Fairbanks – RhinoResearch.com 20
  • 21. 8. Diagrams Viewtype Contents Module Modules, Dependencies, Layers Runtime Components, Connectors, Ports Allocation Servers, Communication channels •  Three primary viewtypes: Module, Runtime, Allocation •  Many views within a viewtype •  View suitability •  Challenge •  Remember: Just one page! •  Small diagrams only 21 July 2010 George Fairbanks – RhinoResearch.com 21
  • 22. Talk outline •  Introduction •  Haiku How-To •  Haiku Example: Apache •  Group exercise •  Future 21 July 2010 George Fairbanks – RhinoResearch.com 22
  • 23. The Apache Web Server •  History •  Evolved from UIUC NCSA server •  Users •  From Hosting providers to mom-and-pop •  Notable characteristics •  Cross-platform (via Apache Portable Runtime layer) •  Extensible (via pluggable modules) •  Configurable (via text files) •  Interoperable (e.g., with app servers) 21 July 2010 George Fairbanks – RhinoResearch.com 23
  • 24. Apache as a Haiku 1.  Description •  The Apache HTTP Server serves web pages/requests, is extensible by third parties, and integrates with procedural code (e.g. CGI scripts, app servers) 2.  Tradeoffs •  Textual over GUI config: ssh access; scriptability •  Configurability over usability: for professional sysadmins; expert over casual use •  Extensibility over performance: distributed OSS creation of new modules 3.  Top 3 quality attributes, prioritized •  Extensibility > Configurability > Performance 4.  Architecture drivers •  Third party writes a new extension module in 1 week •  ISP configures new virtual host via script •  Server ported to new operating system in 1 month 21 July 2010 George Fairbanks – RhinoResearch.com 24
  • 25. Apache as a Haiku 5.  Design rationales •  Since extensibility is more important than performance, modules are dynamically configured to process requests, potentially increasing latency 7.  Constraints (guide rails) •  All OS calls must go through Apache Portable Runtime layer 8.  Architectural styles •  Client-server: Browsers to main web server •  Pipe-and-filter: Requests and responses processed through network of filter modules (e.g., URL rewrite, compress) 9.  Diagrams •  Next pages 21 July 2010 George Fairbanks – RhinoResearch.com 25
  • 26. Client-server diagram •  Apache, with clients and administration •  Runtime viewtype •  Diagram not surprising enough to include Diagram from: Apache Modeling Project: Bernhard Gröne, Andreas Knöpfel, Rudolf Kugel, Oliver Schmidt http://www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_Project.html 21 July 2010 George Fairbanks – RhinoResearch.com 26
  • 27. Pipe-and-filter diagram •  Request processing •  Apache (dynamically) processes requests •  Input pipeline •  Output pipeline •  Note: Runtime viewtype •  Perhaps worthy to include Diagram from: Apache Modeling Project: Bernhard Gröne, Andreas Knöpfel, Rudolf Kugel, Oliver Schmidt http://www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_Project.html 21 July 2010 George Fairbanks – RhinoResearch.com 27
  • 28. Talk outline •  Introduction •  Haiku How-To •  Haiku Example: Apache •  Group exercise •  Airport screening •  Future 21 July 2010 George Fairbanks – RhinoResearch.com 28
  • 29. Airport screening exercise •  Choose your descriptions from •  Tips this list: 1. Solution description •  Incomplete descriptions 2. Tradeoffs •  Suggestive, not comprehensive 3. Quality attribute priorities •  Hints at critical junctions 4. Architecture drivers (QA scenarios) 5. Design rationales 6. Constraints (guide rails) 7. Architecture styles 8. Diagrams 21 July 2010 George Fairbanks – RhinoResearch.com 29
  • 30. Talk outline •  Introduction •  Haiku How-To •  Haiku Example: Apache •  Group exercise •  Future •  Role of architecture, terminology, learn from (Haiku) examples, 21 July 2010 George Fairbanks – RhinoResearch.com 30
  • 31. Implications & future •  Role of architecture •  Acts as skeleton •  Makes QA’s easy or hard to achieve •  Today, often ignored •  Assumed architectural knowledge •  Terminology (style names, components, connectors, …) •  Deltas •  Learning from (Haiku) examples •  Imagine a book of Haiku examples •  OSS rarely documents architecture •  Let’s build a catalog (email me) •  Candidate agile technical practice 21 July 2010 George Fairbanks – RhinoResearch.com 31
  • 32. Conclusion •  3 distinct ideas: •  The job title/role “architect” •  The process of architecting/designing •  The engineering artifact called the architecture •  Architecture Haiku: 1-page description •  Incomplete, document deltas, hints at critical junctions •  High power-to-weight items that yield insight •  Contents •  Tradeoffs, QA priorities, drivers, rationales, constraints, styles, and maybe diagrams Parts of this talk are excerpted from my book Just Enough Software Architecture: A Risk-Driven Approach http://RhinoResearch.com 21 July 2010 George Fairbanks – RhinoResearch.com 32
  • 33. Shameless plugging •  E-book available now $25 •  One price, 3 formats •  PDF, ePub, Mobi •  No DRM •  http://RhinoResearch.com •  Hardback in ~5 weeks •  Amazon.com •  About $40 street price 21 July 2010 George Fairbanks – RhinoResearch.com 33