SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de JhipsterKokou Gaglo
 
Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka confluent
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBAJeff Smith
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controllerconfluent
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...HostedbyConfluent
 
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...Kai Wähner
 

Mais procurados (6)

Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de Jhipster
 
Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka
 
Oracle SQL Developer for the DBA
Oracle SQL Developer for the DBAOracle SQL Developer for the DBA
Oracle SQL Developer for the DBA
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...
Apache Kafka in Gaming Industry (Games, Mobile, Betting, Gambling, Bookmaker,...
 

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesVijayaLaxmi84
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxAnupam32727
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
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
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17Celine George
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...DhatriParmar
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...Nguyen Thanh Tu Collection
 

Último (20)

4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
Sulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their usesSulphonamides, mechanisms and their uses
Sulphonamides, mechanisms and their uses
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
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
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
 

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