SlideShare a Scribd company logo

Architecture Haiku

Dr. George Fairbanks presentation on Architecture Haiku to the Denver Open Source Users Group

1 of 33
Download to read 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

Recommended

Beyond SQL: Speeding up Spark with DataFrames
Beyond SQL: Speeding up Spark with DataFramesBeyond SQL: Speeding up Spark with DataFrames
Beyond SQL: Speeding up Spark with DataFramesDatabricks
 
Hot Code is Faster Code - Addressing JVM Warm-up
Hot Code is Faster Code - Addressing JVM Warm-upHot Code is Faster Code - Addressing JVM Warm-up
Hot Code is Faster Code - Addressing JVM Warm-upMark Price
 
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...Spark Summit
 
Apache Spark Fundamentals
Apache Spark FundamentalsApache Spark Fundamentals
Apache Spark FundamentalsZahra Eskandari
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guideJUNHEEKIM27
 
Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學NUTC, imac
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyVMware Tanzu
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDPDaniel T. Lee
 

More Related Content

What's hot

Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in SparkDatabricks
 
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
Spark Operator—Deploy, Manage and Monitor Spark clusters on KubernetesDatabricks
 
Improving Presto performance with Alluxio at TikTok
Improving Presto performance with Alluxio at TikTokImproving Presto performance with Alluxio at TikTok
Improving Presto performance with Alluxio at TikTokAlluxio, Inc.
 
Apache Calcite: One planner fits all
Apache Calcite: One planner fits allApache Calcite: One planner fits all
Apache Calcite: One planner fits allJulian Hyde
 
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Christian Tzolov
 
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
Flink Forward SF 2017: Timo Walther -  Table & SQL API – unified APIs for bat...Flink Forward SF 2017: Timo Walther -  Table & SQL API – unified APIs for bat...
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...Flink Forward
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e GitIgor Steinmacher
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Julian Hyde
 
A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...Holden Karau
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiDatabricks
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumTathastu.ai
 
Introducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceIntroducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceDatabricks
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitColin Su
 
RaptorX: Building a 10X Faster Presto with hierarchical cache
RaptorX: Building a 10X Faster Presto with hierarchical cacheRaptorX: Building a 10X Faster Presto with hierarchical cache
RaptorX: Building a 10X Faster Presto with hierarchical cacheAlluxio, Inc.
 
The automation challenge: Kubernetes Operators vs Helm Charts
The automation challenge: Kubernetes Operators vs Helm ChartsThe automation challenge: Kubernetes Operators vs Helm Charts
The automation challenge: Kubernetes Operators vs Helm ChartsAna-Maria Mihalceanu
 
Data Distribution and Ordering for Efficient Data Source V2
Data Distribution and Ordering for Efficient Data Source V2Data Distribution and Ordering for Efficient Data Source V2
Data Distribution and Ordering for Efficient Data Source V2Databricks
 

What's hot (20)

Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in Spark
 
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
Spark Operator—Deploy, Manage and Monitor Spark clusters on Kubernetes
 
Improving Presto performance with Alluxio at TikTok
Improving Presto performance with Alluxio at TikTokImproving Presto performance with Alluxio at TikTok
Improving Presto performance with Alluxio at TikTok
 
Apache Calcite: One planner fits all
Apache Calcite: One planner fits allApache Calcite: One planner fits all
Apache Calcite: One planner fits all
 
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
 
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
Flink Forward SF 2017: Timo Walther -  Table & SQL API – unified APIs for bat...Flink Forward SF 2017: Timo Walther -  Table & SQL API – unified APIs for bat...
Flink Forward SF 2017: Timo Walther - Table & SQL API – unified APIs for bat...
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
Apache Calcite: A Foundational Framework for Optimized Query Processing Over ...
 
A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and Debezium
 
Introducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceIntroducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data Science
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
RaptorX: Building a 10X Faster Presto with hierarchical cache
RaptorX: Building a 10X Faster Presto with hierarchical cacheRaptorX: Building a 10X Faster Presto with hierarchical cache
RaptorX: Building a 10X Faster Presto with hierarchical cache
 
The automation challenge: Kubernetes Operators vs Helm Charts
The automation challenge: Kubernetes Operators vs Helm ChartsThe automation challenge: Kubernetes Operators vs Helm Charts
The automation challenge: Kubernetes Operators vs Helm Charts
 
Effective CMake
Effective CMakeEffective CMake
Effective CMake
 
Data Distribution and Ordering for Efficient Data Source V2
Data Distribution and Ordering for Efficient Data Source V2Data Distribution and Ordering for Efficient Data Source V2
Data Distribution and Ordering for Efficient Data Source V2
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 

Similar to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptxMaryPotorti1
 
EDL 290F Week 2 - Good Company (2024).pdf
EDL 290F Week 2  - Good Company (2024).pdfEDL 290F Week 2  - Good Company (2024).pdf
EDL 290F Week 2 - Good Company (2024).pdfElizabeth Walsh
 
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Katherine Villaluna
 
Plagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandPlagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandDr. Sarita Anand
 
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in Ghana
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in GhanaDecision on Curriculum Change Path: Towards Standards-Based Curriculum in Ghana
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in GhanaPrince Armah, PhD
 
ACTIVIDAD DE CLASE No 1 sopa de letras.docx
ACTIVIDAD DE CLASE No 1 sopa de letras.docxACTIVIDAD DE CLASE No 1 sopa de letras.docx
ACTIVIDAD DE CLASE No 1 sopa de letras.docxMaria Lucia Céspedes
 
Understanding the New PCHF Analysis Guidance
Understanding the New PCHF Analysis GuidanceUnderstanding the New PCHF Analysis Guidance
Understanding the New PCHF Analysis GuidanceSafetyChain Software
 
New Features in the Odoo 17 Sales Module
New Features in  the Odoo 17 Sales ModuleNew Features in  the Odoo 17 Sales Module
New Features in the Odoo 17 Sales ModuleCeline George
 
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdfAynouraHamidova
 
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...Rabiya Husain
 
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTS
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTSA TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTS
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTSDr.M.Geethavani
 
Digital Footprints to Career Pathways - Building a Strong Professional Online...
Digital Footprints to Career Pathways - Building a Strong Professional Online...Digital Footprints to Career Pathways - Building a Strong Professional Online...
Digital Footprints to Career Pathways - Building a Strong Professional Online...Sue Beckingham
 
Capitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitolTechU
 
Kartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentKartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentInMediaRes1
 
Biology 152 - Topic Statement - Boolean Search
Biology 152 - Topic Statement - Boolean SearchBiology 152 - Topic Statement - Boolean Search
Biology 152 - Topic Statement - Boolean SearchRobert Tomaszewski
 
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...AKSHAYMAGAR17
 
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdfAynouraHamidova
 
Organic Synthesis and Estimation of Functional Groups
Organic Synthesis and Estimation of Functional GroupsOrganic Synthesis and Estimation of Functional Groups
Organic Synthesis and Estimation of Functional GroupsDr.M.Geethavani
 
spring_bee_bot_creations_erd primary.pdf
spring_bee_bot_creations_erd primary.pdfspring_bee_bot_creations_erd primary.pdf
spring_bee_bot_creations_erd primary.pdfKonstantina Koutsodimou
 

Recently uploaded (20)

2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx
 
EDL 290F Week 2 - Good Company (2024).pdf
EDL 290F Week 2  - Good Company (2024).pdfEDL 290F Week 2  - Good Company (2024).pdf
EDL 290F Week 2 - Good Company (2024).pdf
 
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
 
Plagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandPlagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita Anand
 
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in Ghana
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in GhanaDecision on Curriculum Change Path: Towards Standards-Based Curriculum in Ghana
Decision on Curriculum Change Path: Towards Standards-Based Curriculum in Ghana
 
ACTIVIDAD DE CLASE No 1 sopa de letras.docx
ACTIVIDAD DE CLASE No 1 sopa de letras.docxACTIVIDAD DE CLASE No 1 sopa de letras.docx
ACTIVIDAD DE CLASE No 1 sopa de letras.docx
 
Understanding the New PCHF Analysis Guidance
Understanding the New PCHF Analysis GuidanceUnderstanding the New PCHF Analysis Guidance
Understanding the New PCHF Analysis Guidance
 
New Features in the Odoo 17 Sales Module
New Features in  the Odoo 17 Sales ModuleNew Features in  the Odoo 17 Sales Module
New Features in the Odoo 17 Sales Module
 
CLUBE PERLINGUAS .
CLUBE PERLINGUAS                        .CLUBE PERLINGUAS                        .
CLUBE PERLINGUAS .
 
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 1-2023-Aynura-Hamidova.pdf
 
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...
Barrow Motor Ability Test - TEST, MEASUREMENT AND EVALUATION IN PHYSICAL EDUC...
 
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTS
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTSA TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTS
A TEXTBOOK OF INTELLECTUAL ROPERTY RIGHTS
 
Digital Footprints to Career Pathways - Building a Strong Professional Online...
Digital Footprints to Career Pathways - Building a Strong Professional Online...Digital Footprints to Career Pathways - Building a Strong Professional Online...
Digital Footprints to Career Pathways - Building a Strong Professional Online...
 
Capitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptx
 
Kartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentKartik Nair In Media Res Media Component
Kartik Nair In Media Res Media Component
 
Biology 152 - Topic Statement - Boolean Search
Biology 152 - Topic Statement - Boolean SearchBiology 152 - Topic Statement - Boolean Search
Biology 152 - Topic Statement - Boolean Search
 
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...
Genetics, Heredity, Variation, history, its roles, Scope, Importance, and Bra...
 
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf
11 CI SINIF SINAQLARI - 10-2023-Aynura-Hamidova.pdf
 
Organic Synthesis and Estimation of Functional Groups
Organic Synthesis and Estimation of Functional GroupsOrganic Synthesis and Estimation of Functional Groups
Organic Synthesis and Estimation of Functional Groups
 
spring_bee_bot_creations_erd primary.pdf
spring_bee_bot_creations_erd primary.pdfspring_bee_bot_creations_erd primary.pdf
spring_bee_bot_creations_erd primary.pdf
 

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