SlideShare ist ein Scribd-Unternehmen logo
1 von 63
What is (the point of)
software architecture?
Mark van Harmelen             Chris F. Carroll




         xp-manchester 2013
In the beginning ...
                                                  ...
                                                  there
                                                  were
                                                  Algorithms
                                                  and
                                                  Data
 In the beginning ... there were Turing machine
 designs and a lambda calculus and then
 programmable computers and algorithms and
                                                  Structures
 data structures ...
 By the 1960s, computers were so big that they
 could hold more than one algorithm or program
 in memory at a time.
 It became apparent that ....
... size matters ...




               ā€œ... beyond the algorithms and data structures of the
               computation; designing and specifying the overall
               system structure emerges as a new kind of problem.
               Structural issues include gross organization and
               global control structure; protocols for
               communication, synchronization, and data access;
               assignment of functionality to design elements;
               physical distribution; composition of design
               elements; scaling and performance; and selection
               among design alternatives.
               This is the software architecture level of design.ā€
                                                         Garlan & Shaw 1993
Some rough-cut definitions of architecture:




       ā€œā€¦ the high level structures or organisation of
       your codeā€ (At design-time? run-time? both?)
       ā€œā€¦ all the rules & design decisions you have
       get right up-front, because they are too
       expensive to change later.ā€

the architecture of a system is ?   rough cut deļ¬nitions
Architects talk about stakeholders.
This expands on having a customer ā€“ the main stakeholder mentioned in the
agile manifesto ā€“ and includes end-users and all others with a stake in the
system. For instance, the help desk team; the application support developer
two years later; yourselves as the development team; the companyā€™s CFO,
data protection officer, security manager ...
Architecture claims in general to be able to analyse a software system in
such a way as to make it possible to methodically address their various
concerns.




                  ā™£ Stakeholders & their Concerns
                      about a software-intensive systems
                  ā™£ (especially quality attributes)
                  ā™£ by designing, communicating, calculating,
                   understanding the systemā€™s fundamental elements,
                   relationships, properties and principles


                       Key Ideas                                what does ā€œfundamentalā€ mean?
Software
              Quality
             Attributes
                             Calculate
                             Everything
 Views &
Viewpoints   ARCHITECTURALLY
               SIGNIFICANT
              REQUIREMENTS




                                 MANAGE
                               DEPENDENCIES
     Re-usable                   WITH AN
     Architecture                IRON FIST
Software
                       Quality
                      Attributes
                                                 Calculate
                                                 Everything
 Views &                ARCHITECTURALLY
                            SIGNIFICANT
Viewpoints                   REQUIREMENTS
      This overview of software architecture is skewed towards things you
      donā€™t always learn as a developer. In order of importance from top to
      bottom:
      Quality attributes: such as security, reliability, performance ...
      Architecturally signiļ¬cant requirements: Some requirements demand
      signiļ¬cant design effort or priority and others donā€™t.
      Views and viewpoints: such as how the system look at runtime versus
      design time
      Calculate everything: estimates, budgets, quality attributes, risks ...
      Managing dependencies: relationships between elements usually mean
      one element will break if the other isnā€™t in place
      Re-usable architecture: well-known patterns or tactics
                                                          MANAGE
                                                        DEPENDENCIES
     Re-usable                                            WITH AN
     Architecture                                         IRON FIST
you canā€™t communicate
                      You are not the Borg                                        telepathically
You must communicate your architecture if you want anyone else to work with it.
Software Quality Attributes




                                                                                                   performance availability reliability
                                                                                                   usability eļ¬ƒciency scalability
                                                                                                   security fault-tolerance
Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity,   recoverability compliance
Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability,
Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance        operability ease of use learnability
efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte-       conļ¬dentiality integrity
grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace-
ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability,     accountability authenticity
Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ...
                                                                                                   compatibility replaceability
Software Quality Attributes



     This is the biggest topic in software architecture textbooks.

     The claim is that we can get a handle on things like
     performance, reliability, modiļ¬ability which are otherwise
     quite intangible and hard to pin down. Even vast areas like
     security can be analysed.

     Software Architecture provides a way in that can give you
     conļ¬dence that you are addressing the problem well.




                                                                                                   performance availability reliability
                                                                                                   usability eļ¬ƒciency scalability
                                                                                                   security fault-tolerance
Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity,   recoverability compliance
Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability,
Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance        operability ease of use learnability
efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte-       conļ¬dentiality integrity
grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace-
ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability,     accountability authenticity
Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ...
                                                                                                   compatibility replaceability
Which view do you need?   Iā€™d like to design a boiler-room
Views and viewpoints. Any software intensive system ā€“ even a really small one ā€“
is so complicated that no single way of looking at it can tell you everything, or
help you understand all you need to know.

When code builds on one machine but not another, thinking about classes and
methods will rarely resolve the issue; another way of seeing is required.

When on a running system, communication with an external service starts
failing, you might start by looking at the communication channels, ļ¬rewall rules
and so on. So you need a view of the system which ā€˜seesā€™ this kind information ā€“
which a class diagram doesnā€™t.

These pictures of the titanic answer some questions you might have about the
boiler room but donā€™t tell you what would happen if an iceberg scraped the side
of the ship.




   Which view do you need?                                      Iā€™d like to design a boiler-room
}
estimate
measure
risk-evaluate
account for
cost-beneļ¬t-analyse     everything
calculate
quantify
validate
budget

            know everything   if you donā€™t, who will?
You cannot get investors interested in your business plan unless you have




                                         }
               the numbers at your ļ¬ngertips. This you may learn from watching Dragonsā€™
               Den.

estimate planning doesnā€™t answer everything. If you hire a company to build a
        Sprint
        motorway from Lancashire to Yorkshire, you donā€™t want a bid that can only
measure you that the ļ¬rst knowout ofgetting over the Pennines will have Not least
        tell
        because you already
                                mile
                                      that
                                             Manchester will cost a Ā£1 million.
                                                                                   a quite

risk-evaluate on every team!
        different cost base. The Poppendiecks, in their Lean book, suggest an
        accountant

account forSo predict thealso giveyou may be conļ¬dent that youā€™ll probably be
        When you
        wrong.     you must
                                 future,
                                          some account of what risks and assumptions
cost-beneļ¬t-analyse
        are involved.
                                                      everything a key trick
calculate often be, ļ¬ndof availability. Itā€™s not the whole story about availability, but
        Dealing with software qualities like performance and reliability,
        will               something you can measure. Up-time (ā€œļ¬ve ninesā€) is a
        familiar measure
quantifythat tangible; and it istoone ofout what is the MTBF of cares about. Toyou use
        it is
              you might need       ļ¬nd
                                         the things a customer
                                                                  a hard drive. If
                                                                                    calculate


validatewhen a replacement disk is being synchronised.
        RAID you might need to ļ¬nd out what performance degradation you will get


budget yourgeneral point: Details andhas to get into the details and measure it to the
        The
              business then someone
                                           precision matter. If, say, availability matters to

               level detail that will answer the question.



                            know everything                         if you donā€™t, who will?
Architecturally Signiļ¬cant Requirements




    Architecturally Signiļ¬cant
                                 what matters ļ¬rst?
               Requirements
Architecturally Signiļ¬cant Requirements


       Can you build a car, and then put go faster things on it to make it go
       faster? Or do you have to address ā€˜gofasternessā€™ right from the start?

       If you have a set of user stories at the start of a new sprint, are they all
       equally risky or do some stand out with a little ļ¬‚ashing light in your head
       that says, ā€œooh thatā€™s a problem?ā€

       A kind of triage is needed: identifying requirements you have to deal with
       sooner otherwise you wonā€™t be able to deal with it at all.

       Continuous delivery is an example highlighted in agile: If you donā€™t get
       your CI pipeline going early on, it gets harder and harder and costs you
       more and more.




    Architecturally Signiļ¬cant
                                                             what matters ļ¬rst?
               Requirements
Manage dependencies before they manage you




 Picture: Nature Reviews Neuroscience



dependency <=> relationship <=> communication            dependency : Itā€™s complicated
Manage dependencies before they mis-manage you




                       Components depend on each other in different ways.

                       Sometimes, it works on the CI machine but bombs out in live.

                       Or a version upgrade of one component breaks another one.

                       A component expects measurements in centimetres but gets
                       inches, so your $125 million Mars Orbiter crashes after years
                       of work ...

                       Manage dependencies before they mis-manage you.




 Picture: Nature Reviews Neuroscience



dependency <=> relationship <=> communication                               dependency : Itā€™s complicated
Re-usable architecture




fulfils the ā€œhello worldā€ requirement
Re-usable architecture



  You do not need to re-invent REST architecture; someone
  already invented it for you. As with design patterns, there are
  architecture patterns which can be re-used and which might
  even be bundled as a wizard in your IDE.

  The risk with ā€œcookie-cutter architectureā€ is that though you
  may know how to use it well within areas you are familiar
  with, you may misunderstand how to use it well when in
  unfamiliar territory.

  You still need the principles that will serve you when you
  address a new unfamiliar area for which you have no ā€˜off the
  shelfā€™ solution.




fulfils the ā€œhello worldā€ requirement
Software
              Quality
             Attributes
                             Calculate
                             Everything
 Views &
Viewpoints   ARCHITECTURALLY
               SIGNIFICANT
              REQUIREMENTS




                                 MANAGE
                               DEPENDENCIES
     Re-usable                   WITH AN
     Architecture                IRON FIST
Case Study ā€“ Vertical Search Internet Startup

A restless executive at an internet hotel booking
 business has decided to set up a rival company,
 and you've been headhunted to be the technical
 leads, analysts and architects.
The business plan is of course ā€œdo what the
 competition do!ā€ So it's going to be a website on
 which someone types a destination and gets a
 list of places to stay. Fortunately we've got a
 vertical search partner with a lot of hotel data on
 a web service, so we ļ¬rst need to build the
 website.

     Case Study Scenario          A vertical search start-up
Case Study ā€“ Vertical Search Internet Startup


The key business process: a customer comes to our
 website and ļ¬nds a place to stay; then does one of:
ā™£
 books it via our booking system. We get average 25%
 commission (if the commercial manager negotiates well).
ā™£
 clicks a CPA aļ¬ƒliate link. We get average 15%
 commission (if the aļ¬ƒliate network manager negotiates
 well)
ā™£
 clicks a CPC aļ¬ƒliate link. We get average 10p per click.
We expect 10,000 visitors per day after 4 months, rising to
 30,000 per day after a year and growing 33% per year for
 3 years thereafter. Average visitors views 4 pages and
 does 1.2 searches
Also, we want to send everyone a text message linking to
 our website so they can download the app version too.

          Case Study Detail                   A vertical search start-up
Case Study ā€“ Vertical Search Internet Startup
In teams of 3-5. You have been appointed (as a group) as the CTO of this
  start-up. You are responsible for all things IT.
Your challenge: Do a presentation in about 10 minutes time. You are
  presenting to the whole company - the board, the development team ā€“
  and a couple of investors too.
Your task is give everyone the calm assurance that you have everything in
  hand, that you know what youā€™re doing and you know how the IT
  department will deliver a working system within a few months and be
  able to expand it thereafter.
Some Thoughts
ā€¢You might describe the system youā€™re going to build?
ā€¢Youā€™ll want your developers and infrastructure guys to be nodding
  reassuringly. Puzzled and frowny staļ¬€ do not give the CEO a nice warm
  feeling.
ā€¢The board : CEO, CFO, Commercial Manager, Sales Manager. The
  investor used to be on the board of a competitor. The sales manager is
  all excited by Web3.0 or something.
ā€¢Your developers are good but they donā€™t have your experience with
  webby stuļ¬€. Or services. Or databases...


         Case Study Exercise                    A vertical search start-up
After the teams have done their presentation, try to analyse with the
    wisdom of hindsight what did each team seem to think were the
    important concerns to address?

   Examples
   Team Aā€™s presentation emphasises speed to market ā€“ suggesting an
     initial throw-away static website ā€“ as even higher priority than the
     functional requirement of doing search.
   Team B presented a plan using a load-balancer and web-farm to address
     scalability
   Team C pointed out where the system was extendable to add
     functionality later.

  These concerns form the prioritised ā€˜architecturally signiļ¬cant
    requirementsā€™. The list might look like this:
  1. Speed to Market
  2. Implement Search Functionality
  3. Scalability
  4. Extendibility


Architecturally Signiļ¬cant Requirements              Case Study Review
Calculate Everything ā€“ Cost Beneļ¬t Analysis

   Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™
   1. Speed to Market
   2. Implement Search Functionality
   3. Scalability
   4. Extendibility

   Letā€™s look at the ļ¬rst one ļ¬rst. ā€˜Speed to Marketā€™ might be done by ļ¬rst
     doing a throwaway static website; or by delivering a minimal non-
     throwaway system.
   Choosing between the two would require some kind of cost-beneļ¬t
     analysis:
   ā€¢How much revenue would they generate and when?
   ā€¢How much would we learn that would help us later on?
   ā€¢... and so on.


Calculate Everything ā€“ Cost Beneļ¬t Analysis              Case Study Review
Manage Dependencies with an Iron Fist
 Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™
 1. Speed to Market
 2. Implement Search Functionality
 3. Scalability
 4. Extendibility

Look at the second and third requirements. If you ļ¬rst deliver the
 functionality, could you then ā€˜addā€™ scalability to it afterwards? Or do you
 need to address scalability ļ¬rst even though itā€™s not as high a priority as
 getting the functionality done?




 Manage Dependencies with an Iron Fist                Case Study Review
Software Qualities ā€“ ā€œExtendabilityā€
Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™
1. Speed to Market
2. Implement Search Functionality
3. Scalability
4. Extendibility

Consider the extendibility requirement. What constraints would you apply
  to your design or your developers to ease the addition of new
  functionality could be added to the site months or years later?
(Of course, as an experienced OO/Agile developer you may feel that this
  is the question on which youā€™re an expert. You may be right).




  Extendability aka Modiļ¬ability                     Case Study Review
Software
              Quality
             Attributes
                             Calculate
                             Everything
 Views &
Viewpoints   ARCHITECTURALLY
               SIGNIFICANT
              REQUIREMENTS




                                 MANAGE
                               DEPENDENCIES
     Re-usable                   WITH AN
     Architecture                IRON FIST
Views and Viewpoints
Which view do you need?   Iā€™d like to design a boiler-room
4+1 (Kruchten, 1995)   IBM developerworks
4+1, Updated
Information View                             System Context
Entities, Relationships, Aggregate Roots
Lifecycle, Ownership / Relationships




Operational View


                                           X +1   the more the merrier?
Software Quality Attributes




                                                                                                   performance availability reliability
                                                                                                   usability eļ¬ƒciency scalability
                                                                                                   security fault-tolerance
Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity,   recoverability compliance
Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability,
Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance        operability ease of use learnability
efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte-       conļ¬dentiality integrity
grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace-
ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability,     accountability authenticity
Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ...
                                                                                                   compatibility replaceability
ā™£ Youā€™re phoned by a friend. A primary school teacher:
Who asks, ā€œplease send me an example of a hello world
 application that I can show to a primary school classā€

ā™£ Name twenty diļ¬€erent ways you could fulļ¬l this
 requirement




                   Quick Quiz
ā™£ Youā€™re phoned by a friend. A primary school teacher:
Who asks, ā€œplease send me an example of a hello world
 application that I can show to a primary school class.ā€

ā™£ One week later, the friend calls back,
  ā€œThat was great! Iā€™d also like ā€¦ā€
	
o ā€¦ the kids to be able to go home and show it to their
  parents
o ā€¦ each kid to be able to modify it to do it in a diļ¬€erent
  language for their world culturalglobalmultilingualness day




              Quick Quiz ā€” 2
ā™£ The functional requirements do not dictate the
      architecture

        (the requirement can be met in many ways by many
      architectures)

     ā™£ The architecture does constrain the non-functional
      qualities : the quality attributes




quality attributes vs functionality       architecture is ... ?
How can we work out which architecture will deliver ...   performance availability reliability
                                                          usability scalability security fault-
                                                          tolerance compliance operability
                                                          ease of use learnability
                                                          conļ¬dentiality integrity ...
    Software Quality Attributes
ā™£ Invent the meaning of a quality attribute by
describing scenarios and deļ¬ning measures
  Consider proxy measures
ā™£
 Research, agree and then mandate the tactics
you will use to achieve the quality


Software Quality Attributes   ļ¬rst, deļ¬ne your terms
ā™£    Performance
    o Usually about timing:
    ā€œWhen X happens, Y must happen within N secondsā€

ā™£    The Case Study
    o How fast must the web server be able to serve
      1) Search results
      2) Other pages

ā™£    What tactics achieve performance?




                  Performance            quality attributes : deļ¬ne it
ā™£    Availability / Resilience
    o Uptime
    o Simple BAU scenarios
    ā€œWhen X fails, Y should happen and the system should
     continue operating as normalā€
     (possibly within N seconds or hours)

    o Attack Scenarios:
    ā€œWhen attack X happens, Y should happen and the
     system should continue operating as normalā€

ā™£    What tactics achieve availability?



     Availability & Resilience            quality attributes : deļ¬ne it
ā™£    Modiļ¬ability / Maintainability / Evolution
    o Could be measured as (estimated) cost or speed

ā™£    Are these reasonable measures of modiļ¬ability:
    o ā€œIt should take no more than 30 seconds of eļ¬€ort to
     correct a spelling error on the websiteā€
    o ā€œSprint velocity in months 12 to 24 of development
     should be as good as in months 3 to 12ā€




              Modiļ¬ability is ...      quality attributes : measure it
Testability

ā™£    Is this a reasonable measure:
    o ā€œThe percentage chance that a defect is discovered
     on the ļ¬rst test run after the defect is introducedā€




                Testability is ...     quality attributes : measure it
ā™£    Testability
    o ā€œThe percentage chance that a defect is discovered
     on the ļ¬rst test run after the defect is introducedā€

ā™£    If itā€™s too hard to measure, use a proxy measure:
    o Test Coverage Percentage
    o Cost/Time to do a complete test run
    o ...




      Using Proxy Measures              quality attributes : measure it
ā™£ What tactics achieve modiļ¬ability, maintainability,
 testability?

ā™£    Do they give rise to any useful proxy measures?
    o Measures for complexity, cohesion, coupling,
     dependencies, ...




    Modiļ¬ability & Testability          quality attributes : tactics
ā€œAssetsā€




Securityā€”itā€™s a process.
                           Rozanski & Wood
                           Software Systems Architecture, 2011
ā™£ Conļ¬dentiality
 o Data is accessible only by those authorised
ā™£ Integrity
 o Protection from unauthorised modiļ¬cation
ā™£ Availability
 o You can get to it when you need it
 _____________________________________

ā™£ Non-repudiation
 o Actions can be proven to have taken place
ā™£ Accountability
 o Actions can be traced to who did them
ā™£ Authenticity
 o Identity can be proved to be the one claimed

        ISO 27001 & 27002            Security : deļ¬ne it
ā™£    Describe scenarios
                         ā™£    Deļ¬ne measures
                         ā™£    Research tactics
                         ā™£    Mandate the approach

Software Quality Attributes   the bridge fulļ¬lled the   functional requirement
Deļ¬nitions of architecture
ISO/IEC/IEEE 42010:2011
ā€œThe fundamental concepts or properties of a
system in its environment embodied in its
elements, relationships, and in the principles of
its design and evolutionā€


      Architecture is ...   what does fundamental mean?
SEI
The structure or structures of the system, which
comprise software elements, the externally
visible properties of those elements, and the
relationships among them.


      Architecture is ...   Bass, Clements, Kazman, 1997-2012
Kruchten 2009: The signiļ¬cant decisions about
ā™£
 the organization of a software system,
ā™£
 the selection of the structural elements and their interfaces by which
the system is composed together with their behavio[u]r as speciļ¬ed in
the collaboration among those elements,
ā™£
 the composition of these elements into progressively larger
subsystems,
the architectural style that guides this organization, these elements and
their interfaces, their collaborations, and their composition



          Architecture is ...          Kruchten, updated 2009
Architecturally Signiļ¬cant Requirements
Architecturally Signiļ¬cant Requirements

ā™£ Most quality attributes are architecturally
 signiļ¬cant if they matter at all
ā™£ Functionality? If it changes the design; or
 costs a lot
ā™£ Yagni or Niagni?




    Architecturally Signiļ¬cant
                                         what matters, when?
               Requirements
Re-usable architecture




fulfils the ā€œhello worldā€ requirement
standard patterns   the re-usable kitteh pattern
think out of inside the box   letā€™s not re-invent the wheel
Manage Dependencies with an Iron First
Manage dependencies before they manage you




dependency === relationship === communication   dependency : Itā€™s complicated
There are LOADS of kinds of dependency ...

ā™£    Design Time vs Build Time vs Runtime vs Operational
ā™£    One-way vs. Mutual vs. Transitive or Indirect

ā™£    X gets information from Y
ā™£    X needs functionality or service from Y
ā™£    X sends information to and therefore needs the definition of Y

ā™£ Syntax, semantic, sequence, location, id, existence,
 QoS, resource usage


    Dependency <=> Relationship <=> Communication



     Manage Dependencies                         I need you in so many ways
}
estimate
measure
risk-evaluate
account for
cost-beneļ¬t-analyse     everything
calculate
quantify
validate
budget

            know everything   if you donā€™t, who will?
Software
             Quality
             Attributes
                                  MANAGE
                                DEPENDENCIES
                                  WITH AN
 Views &                          IRON FIST
Viewpoints    ARCHITECTURALLY
                SIGNIFICANT
               REQUIREMENTS




                              Calculate
                              Everything
     Re-usable
     Architecture

Weitere Ƥhnliche Inhalte

Was ist angesagt?

SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORK
SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORKSOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORK
SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORKArul Nambi
Ā 
Limewood Event - VMware
Limewood Event - VMware Limewood Event - VMware
Limewood Event - VMware BlueChipICT
Ā 
RKVLatestResume2015
RKVLatestResume2015RKVLatestResume2015
RKVLatestResume2015Keith Vescovo
Ā 
Modern Software Infrastructures Revisited
Modern Software Infrastructures RevisitedModern Software Infrastructures Revisited
Modern Software Infrastructures Revisitedibogicevic
Ā 
Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011RNeches
Ā 

Was ist angesagt? (6)

SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORK
SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORKSOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORK
SOFTWARE PRODUCT DEVELOPMENT GOVERNANCE FRAMEWORK
Ā 
SSBSE 2012 Keynote
SSBSE 2012 KeynoteSSBSE 2012 Keynote
SSBSE 2012 Keynote
Ā 
Limewood Event - VMware
Limewood Event - VMware Limewood Event - VMware
Limewood Event - VMware
Ā 
RKVLatestResume2015
RKVLatestResume2015RKVLatestResume2015
RKVLatestResume2015
Ā 
Modern Software Infrastructures Revisited
Modern Software Infrastructures RevisitedModern Software Infrastructures Revisited
Modern Software Infrastructures Revisited
Ā 
Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011Engineered Resilient Systems, overview and status, 31 october 2011
Engineered Resilient Systems, overview and status, 31 october 2011
Ā 

Ƅhnlich wie XP-Manchester 2013 Software Architecture for Agile Developers Intro

Software Architecture Intro
Software Architecture IntroSoftware Architecture Intro
Software Architecture IntroSadhana Ghalsasi
Ā 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?Chris F Carroll
Ā 
020170482 x
020170482 x020170482 x
020170482 xraghuinfo
Ā 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
Ā 
What is Usability
What is UsabilityWhat is Usability
What is UsabilityTed Tschopp
Ā 
N-Tier Application Architecture
N-Tier Application ArchitectureN-Tier Application Architecture
N-Tier Application ArchitectureManoj Kumar
Ā 
User Experience 2: Talk@Stabilo
User Experience 2: Talk@StabiloUser Experience 2: Talk@Stabilo
User Experience 2: Talk@StabiloHarald Felgner, PhD
Ā 
Get more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisGet more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisIBM India Smarter Computing
Ā 
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptAinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptFan Robbin
Ā 
Agile.usability
Agile.usabilityAgile.usability
Agile.usabilityNika Stuard
Ā 
The Cloud according to VMware
The Cloud according to VMwareThe Cloud according to VMware
The Cloud according to VMwareOpSource
Ā 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software ArchitectureChris F Carroll
Ā 
Pervasive Computing Reference Architecture from a Software Engineering Perspe...
Pervasive Computing Reference Architecture from a Software Engineering Perspe...Pervasive Computing Reference Architecture from a Software Engineering Perspe...
Pervasive Computing Reference Architecture from a Software Engineering Perspe...Osama M. Khaled
Ā 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
Ā 

Ƅhnlich wie XP-Manchester 2013 Software Architecture for Agile Developers Intro (20)

Software Architecture Intro
Software Architecture IntroSoftware Architecture Intro
Software Architecture Intro
Ā 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?
Ā 
020170482 x
020170482 x020170482 x
020170482 x
Ā 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
Ā 
5 Quality
5 Quality5 Quality
5 Quality
Ā 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
Ā 
What is Usability
What is UsabilityWhat is Usability
What is Usability
Ā 
N-Tier Application Architecture
N-Tier Application ArchitectureN-Tier Application Architecture
N-Tier Application Architecture
Ā 
User Experience 2: Talk@Stabilo
User Experience 2: Talk@StabiloUser Experience 2: Talk@Stabilo
User Experience 2: Talk@Stabilo
Ā 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
Ā 
Ch09
Ch09Ch09
Ch09
Ā 
Ch09
Ch09Ch09
Ch09
Ā 
Get more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisGet more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysis
Ā 
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.pptAinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
AinoVongeCorry_AnIntroductionToArchitectureQuality.ppt
Ā 
Agile.usability
Agile.usabilityAgile.usability
Agile.usability
Ā 
Sqa material
Sqa materialSqa material
Sqa material
Ā 
The Cloud according to VMware
The Cloud according to VMwareThe Cloud according to VMware
The Cloud according to VMware
Ā 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
Ā 
Pervasive Computing Reference Architecture from a Software Engineering Perspe...
Pervasive Computing Reference Architecture from a Software Engineering Perspe...Pervasive Computing Reference Architecture from a Software Engineering Perspe...
Pervasive Computing Reference Architecture from a Software Engineering Perspe...
Ā 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
Ā 

KĆ¼rzlich hochgeladen

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
Ā 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
Ā 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĆŗjo
Ā 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
Ā 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜RTylerCroy
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024The Digital Insurer
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
Ā 

KĆ¼rzlich hochgeladen (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Ā 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Ā 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Ā 

XP-Manchester 2013 Software Architecture for Agile Developers Intro

  • 1. What is (the point of) software architecture? Mark van Harmelen Chris F. Carroll xp-manchester 2013
  • 2. In the beginning ... ... there were Algorithms and Data In the beginning ... there were Turing machine designs and a lambda calculus and then programmable computers and algorithms and Structures data structures ... By the 1960s, computers were so big that they could hold more than one algorithm or program in memory at a time. It became apparent that ....
  • 3. ... size matters ... ā€œ... beyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives. This is the software architecture level of design.ā€ Garlan & Shaw 1993
  • 4. Some rough-cut definitions of architecture: ā€œā€¦ the high level structures or organisation of your codeā€ (At design-time? run-time? both?) ā€œā€¦ all the rules & design decisions you have get right up-front, because they are too expensive to change later.ā€ the architecture of a system is ? rough cut deļ¬nitions
  • 5. Architects talk about stakeholders. This expands on having a customer ā€“ the main stakeholder mentioned in the agile manifesto ā€“ and includes end-users and all others with a stake in the system. For instance, the help desk team; the application support developer two years later; yourselves as the development team; the companyā€™s CFO, data protection officer, security manager ... Architecture claims in general to be able to analyse a software system in such a way as to make it possible to methodically address their various concerns. ā™£ Stakeholders & their Concerns about a software-intensive systems ā™£ (especially quality attributes) ā™£ by designing, communicating, calculating, understanding the systemā€™s fundamental elements, relationships, properties and principles Key Ideas what does ā€œfundamentalā€ mean?
  • 6. Software Quality Attributes Calculate Everything Views & Viewpoints ARCHITECTURALLY SIGNIFICANT REQUIREMENTS MANAGE DEPENDENCIES Re-usable WITH AN Architecture IRON FIST
  • 7. Software Quality Attributes Calculate Everything Views & ARCHITECTURALLY SIGNIFICANT Viewpoints REQUIREMENTS This overview of software architecture is skewed towards things you donā€™t always learn as a developer. In order of importance from top to bottom: Quality attributes: such as security, reliability, performance ... Architecturally signiļ¬cant requirements: Some requirements demand signiļ¬cant design effort or priority and others donā€™t. Views and viewpoints: such as how the system look at runtime versus design time Calculate everything: estimates, budgets, quality attributes, risks ... Managing dependencies: relationships between elements usually mean one element will break if the other isnā€™t in place Re-usable architecture: well-known patterns or tactics MANAGE DEPENDENCIES Re-usable WITH AN Architecture IRON FIST
  • 8. you canā€™t communicate You are not the Borg telepathically You must communicate your architecture if you want anyone else to work with it.
  • 9. Software Quality Attributes performance availability reliability usability eļ¬ƒciency scalability security fault-tolerance Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity, recoverability compliance Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability, Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance operability ease of use learnability efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte- conļ¬dentiality integrity grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace- ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability, accountability authenticity Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ... compatibility replaceability
  • 10. Software Quality Attributes This is the biggest topic in software architecture textbooks. The claim is that we can get a handle on things like performance, reliability, modiļ¬ability which are otherwise quite intangible and hard to pin down. Even vast areas like security can be analysed. Software Architecture provides a way in that can give you conļ¬dence that you are addressing the problem well. performance availability reliability usability eļ¬ƒciency scalability security fault-tolerance Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity, recoverability compliance Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability, Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance operability ease of use learnability efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte- conļ¬dentiality integrity grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace- ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability, accountability authenticity Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ... compatibility replaceability
  • 11. Which view do you need? Iā€™d like to design a boiler-room
  • 12. Views and viewpoints. Any software intensive system ā€“ even a really small one ā€“ is so complicated that no single way of looking at it can tell you everything, or help you understand all you need to know. When code builds on one machine but not another, thinking about classes and methods will rarely resolve the issue; another way of seeing is required. When on a running system, communication with an external service starts failing, you might start by looking at the communication channels, ļ¬rewall rules and so on. So you need a view of the system which ā€˜seesā€™ this kind information ā€“ which a class diagram doesnā€™t. These pictures of the titanic answer some questions you might have about the boiler room but donā€™t tell you what would happen if an iceberg scraped the side of the ship. Which view do you need? Iā€™d like to design a boiler-room
  • 13. } estimate measure risk-evaluate account for cost-beneļ¬t-analyse everything calculate quantify validate budget know everything if you donā€™t, who will?
  • 14. You cannot get investors interested in your business plan unless you have } the numbers at your ļ¬ngertips. This you may learn from watching Dragonsā€™ Den. estimate planning doesnā€™t answer everything. If you hire a company to build a Sprint motorway from Lancashire to Yorkshire, you donā€™t want a bid that can only measure you that the ļ¬rst knowout ofgetting over the Pennines will have Not least tell because you already mile that Manchester will cost a Ā£1 million. a quite risk-evaluate on every team! different cost base. The Poppendiecks, in their Lean book, suggest an accountant account forSo predict thealso giveyou may be conļ¬dent that youā€™ll probably be When you wrong. you must future, some account of what risks and assumptions cost-beneļ¬t-analyse are involved. everything a key trick calculate often be, ļ¬ndof availability. Itā€™s not the whole story about availability, but Dealing with software qualities like performance and reliability, will something you can measure. Up-time (ā€œļ¬ve ninesā€) is a familiar measure quantifythat tangible; and it istoone ofout what is the MTBF of cares about. Toyou use it is you might need ļ¬nd the things a customer a hard drive. If calculate validatewhen a replacement disk is being synchronised. RAID you might need to ļ¬nd out what performance degradation you will get budget yourgeneral point: Details andhas to get into the details and measure it to the The business then someone precision matter. If, say, availability matters to level detail that will answer the question. know everything if you donā€™t, who will?
  • 15. Architecturally Signiļ¬cant Requirements Architecturally Signiļ¬cant what matters ļ¬rst? Requirements
  • 16. Architecturally Signiļ¬cant Requirements Can you build a car, and then put go faster things on it to make it go faster? Or do you have to address ā€˜gofasternessā€™ right from the start? If you have a set of user stories at the start of a new sprint, are they all equally risky or do some stand out with a little ļ¬‚ashing light in your head that says, ā€œooh thatā€™s a problem?ā€ A kind of triage is needed: identifying requirements you have to deal with sooner otherwise you wonā€™t be able to deal with it at all. Continuous delivery is an example highlighted in agile: If you donā€™t get your CI pipeline going early on, it gets harder and harder and costs you more and more. Architecturally Signiļ¬cant what matters ļ¬rst? Requirements
  • 17. Manage dependencies before they manage you Picture: Nature Reviews Neuroscience dependency <=> relationship <=> communication dependency : Itā€™s complicated
  • 18. Manage dependencies before they mis-manage you Components depend on each other in different ways. Sometimes, it works on the CI machine but bombs out in live. Or a version upgrade of one component breaks another one. A component expects measurements in centimetres but gets inches, so your $125 million Mars Orbiter crashes after years of work ... Manage dependencies before they mis-manage you. Picture: Nature Reviews Neuroscience dependency <=> relationship <=> communication dependency : Itā€™s complicated
  • 19. Re-usable architecture fulfils the ā€œhello worldā€ requirement
  • 20. Re-usable architecture You do not need to re-invent REST architecture; someone already invented it for you. As with design patterns, there are architecture patterns which can be re-used and which might even be bundled as a wizard in your IDE. The risk with ā€œcookie-cutter architectureā€ is that though you may know how to use it well within areas you are familiar with, you may misunderstand how to use it well when in unfamiliar territory. You still need the principles that will serve you when you address a new unfamiliar area for which you have no ā€˜off the shelfā€™ solution. fulfils the ā€œhello worldā€ requirement
  • 21. Software Quality Attributes Calculate Everything Views & Viewpoints ARCHITECTURALLY SIGNIFICANT REQUIREMENTS MANAGE DEPENDENCIES Re-usable WITH AN Architecture IRON FIST
  • 22. Case Study ā€“ Vertical Search Internet Startup A restless executive at an internet hotel booking business has decided to set up a rival company, and you've been headhunted to be the technical leads, analysts and architects. The business plan is of course ā€œdo what the competition do!ā€ So it's going to be a website on which someone types a destination and gets a list of places to stay. Fortunately we've got a vertical search partner with a lot of hotel data on a web service, so we ļ¬rst need to build the website. Case Study Scenario A vertical search start-up
  • 23. Case Study ā€“ Vertical Search Internet Startup The key business process: a customer comes to our website and ļ¬nds a place to stay; then does one of: ā™£ books it via our booking system. We get average 25% commission (if the commercial manager negotiates well). ā™£ clicks a CPA aļ¬ƒliate link. We get average 15% commission (if the aļ¬ƒliate network manager negotiates well) ā™£ clicks a CPC aļ¬ƒliate link. We get average 10p per click. We expect 10,000 visitors per day after 4 months, rising to 30,000 per day after a year and growing 33% per year for 3 years thereafter. Average visitors views 4 pages and does 1.2 searches Also, we want to send everyone a text message linking to our website so they can download the app version too. Case Study Detail A vertical search start-up
  • 24. Case Study ā€“ Vertical Search Internet Startup In teams of 3-5. You have been appointed (as a group) as the CTO of this start-up. You are responsible for all things IT. Your challenge: Do a presentation in about 10 minutes time. You are presenting to the whole company - the board, the development team ā€“ and a couple of investors too. Your task is give everyone the calm assurance that you have everything in hand, that you know what youā€™re doing and you know how the IT department will deliver a working system within a few months and be able to expand it thereafter. Some Thoughts ā€¢You might describe the system youā€™re going to build? ā€¢Youā€™ll want your developers and infrastructure guys to be nodding reassuringly. Puzzled and frowny staļ¬€ do not give the CEO a nice warm feeling. ā€¢The board : CEO, CFO, Commercial Manager, Sales Manager. The investor used to be on the board of a competitor. The sales manager is all excited by Web3.0 or something. ā€¢Your developers are good but they donā€™t have your experience with webby stuļ¬€. Or services. Or databases... Case Study Exercise A vertical search start-up
  • 25. After the teams have done their presentation, try to analyse with the wisdom of hindsight what did each team seem to think were the important concerns to address? Examples Team Aā€™s presentation emphasises speed to market ā€“ suggesting an initial throw-away static website ā€“ as even higher priority than the functional requirement of doing search. Team B presented a plan using a load-balancer and web-farm to address scalability Team C pointed out where the system was extendable to add functionality later. These concerns form the prioritised ā€˜architecturally signiļ¬cant requirementsā€™. The list might look like this: 1. Speed to Market 2. Implement Search Functionality 3. Scalability 4. Extendibility Architecturally Signiļ¬cant Requirements Case Study Review
  • 26. Calculate Everything ā€“ Cost Beneļ¬t Analysis Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™ 1. Speed to Market 2. Implement Search Functionality 3. Scalability 4. Extendibility Letā€™s look at the ļ¬rst one ļ¬rst. ā€˜Speed to Marketā€™ might be done by ļ¬rst doing a throwaway static website; or by delivering a minimal non- throwaway system. Choosing between the two would require some kind of cost-beneļ¬t analysis: ā€¢How much revenue would they generate and when? ā€¢How much would we learn that would help us later on? ā€¢... and so on. Calculate Everything ā€“ Cost Beneļ¬t Analysis Case Study Review
  • 27. Manage Dependencies with an Iron Fist Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™ 1. Speed to Market 2. Implement Search Functionality 3. Scalability 4. Extendibility Look at the second and third requirements. If you ļ¬rst deliver the functionality, could you then ā€˜addā€™ scalability to it afterwards? Or do you need to address scalability ļ¬rst even though itā€™s not as high a priority as getting the functionality done? Manage Dependencies with an Iron Fist Case Study Review
  • 28. Software Qualities ā€“ ā€œExtendabilityā€ Given this prioritised list of ā€˜architecturally signiļ¬cant requirementsā€™ 1. Speed to Market 2. Implement Search Functionality 3. Scalability 4. Extendibility Consider the extendibility requirement. What constraints would you apply to your design or your developers to ease the addition of new functionality could be added to the site months or years later? (Of course, as an experienced OO/Agile developer you may feel that this is the question on which youā€™re an expert. You may be right). Extendability aka Modiļ¬ability Case Study Review
  • 29. Software Quality Attributes Calculate Everything Views & Viewpoints ARCHITECTURALLY SIGNIFICANT REQUIREMENTS MANAGE DEPENDENCIES Re-usable WITH AN Architecture IRON FIST
  • 31. Which view do you need? Iā€™d like to design a boiler-room
  • 32. 4+1 (Kruchten, 1995) IBM developerworks
  • 34. Information View System Context Entities, Relationships, Aggregate Roots Lifecycle, Ownership / Relationships Operational View X +1 the more the merrier?
  • 35. Software Quality Attributes performance availability reliability usability eļ¬ƒciency scalability security fault-tolerance Functional Suitability, Accuracy, Interoperability, Security, Compliance, Reliability, Maturity, recoverability compliance Fault Tolerance, Recoverability, Compliance, Operability, Appropriateness, Recognisability, Ease of use, Learnability, Attractiveness, Technical accessibility, Compliance, Performance operability ease of use learnability efļ¬ciency, Time Behaviour, Resource Utilisation, Compliance, Security, Conļ¬dentiality, Inte- conļ¬dentiality integrity grity, Non-repudiation, Accountability, Authenticity, Compliance, Compatibility, Replace- ability, Co-existence, Interoperability, Compliance, Maintainability, Modularity, Reusability, accountability authenticity Analysability, Changeability, Modiļ¬cation stability, Testability, Compliance, Portability, ... compatibility replaceability
  • 36. ā™£ Youā€™re phoned by a friend. A primary school teacher: Who asks, ā€œplease send me an example of a hello world application that I can show to a primary school classā€ ā™£ Name twenty diļ¬€erent ways you could fulļ¬l this requirement Quick Quiz
  • 37. ā™£ Youā€™re phoned by a friend. A primary school teacher: Who asks, ā€œplease send me an example of a hello world application that I can show to a primary school class.ā€ ā™£ One week later, the friend calls back, ā€œThat was great! Iā€™d also like ā€¦ā€ o ā€¦ the kids to be able to go home and show it to their parents o ā€¦ each kid to be able to modify it to do it in a diļ¬€erent language for their world culturalglobalmultilingualness day Quick Quiz ā€” 2
  • 38. ā™£ The functional requirements do not dictate the architecture (the requirement can be met in many ways by many architectures) ā™£ The architecture does constrain the non-functional qualities : the quality attributes quality attributes vs functionality architecture is ... ?
  • 39. How can we work out which architecture will deliver ... performance availability reliability usability scalability security fault- tolerance compliance operability ease of use learnability conļ¬dentiality integrity ... Software Quality Attributes
  • 40. ā™£ Invent the meaning of a quality attribute by describing scenarios and deļ¬ning measures Consider proxy measures ā™£ Research, agree and then mandate the tactics you will use to achieve the quality Software Quality Attributes ļ¬rst, deļ¬ne your terms
  • 41. ā™£ Performance o Usually about timing: ā€œWhen X happens, Y must happen within N secondsā€ ā™£ The Case Study o How fast must the web server be able to serve 1) Search results 2) Other pages ā™£ What tactics achieve performance? Performance quality attributes : deļ¬ne it
  • 42. ā™£ Availability / Resilience o Uptime o Simple BAU scenarios ā€œWhen X fails, Y should happen and the system should continue operating as normalā€ (possibly within N seconds or hours) o Attack Scenarios: ā€œWhen attack X happens, Y should happen and the system should continue operating as normalā€ ā™£ What tactics achieve availability? Availability & Resilience quality attributes : deļ¬ne it
  • 43. ā™£ Modiļ¬ability / Maintainability / Evolution o Could be measured as (estimated) cost or speed ā™£ Are these reasonable measures of modiļ¬ability: o ā€œIt should take no more than 30 seconds of eļ¬€ort to correct a spelling error on the websiteā€ o ā€œSprint velocity in months 12 to 24 of development should be as good as in months 3 to 12ā€ Modiļ¬ability is ... quality attributes : measure it
  • 44. Testability ā™£ Is this a reasonable measure: o ā€œThe percentage chance that a defect is discovered on the ļ¬rst test run after the defect is introducedā€ Testability is ... quality attributes : measure it
  • 45. ā™£ Testability o ā€œThe percentage chance that a defect is discovered on the ļ¬rst test run after the defect is introducedā€ ā™£ If itā€™s too hard to measure, use a proxy measure: o Test Coverage Percentage o Cost/Time to do a complete test run o ... Using Proxy Measures quality attributes : measure it
  • 46. ā™£ What tactics achieve modiļ¬ability, maintainability, testability? ā™£ Do they give rise to any useful proxy measures? o Measures for complexity, cohesion, coupling, dependencies, ... Modiļ¬ability & Testability quality attributes : tactics
  • 47. ā€œAssetsā€ Securityā€”itā€™s a process. Rozanski & Wood Software Systems Architecture, 2011
  • 48. ā™£ Conļ¬dentiality o Data is accessible only by those authorised ā™£ Integrity o Protection from unauthorised modiļ¬cation ā™£ Availability o You can get to it when you need it _____________________________________ ā™£ Non-repudiation o Actions can be proven to have taken place ā™£ Accountability o Actions can be traced to who did them ā™£ Authenticity o Identity can be proved to be the one claimed ISO 27001 & 27002 Security : deļ¬ne it
  • 49. ā™£ Describe scenarios ā™£ Deļ¬ne measures ā™£ Research tactics ā™£ Mandate the approach Software Quality Attributes the bridge fulļ¬lled the functional requirement
  • 51. ISO/IEC/IEEE 42010:2011 ā€œThe fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolutionā€ Architecture is ... what does fundamental mean?
  • 52. SEI The structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is ... Bass, Clements, Kazman, 1997-2012
  • 53. Kruchten 2009: The signiļ¬cant decisions about ā™£ the organization of a software system, ā™£ the selection of the structural elements and their interfaces by which the system is composed together with their behavio[u]r as speciļ¬ed in the collaboration among those elements, ā™£ the composition of these elements into progressively larger subsystems, the architectural style that guides this organization, these elements and their interfaces, their collaborations, and their composition Architecture is ... Kruchten, updated 2009
  • 55. Architecturally Signiļ¬cant Requirements ā™£ Most quality attributes are architecturally signiļ¬cant if they matter at all ā™£ Functionality? If it changes the design; or costs a lot ā™£ Yagni or Niagni? Architecturally Signiļ¬cant what matters, when? Requirements
  • 56. Re-usable architecture fulfils the ā€œhello worldā€ requirement
  • 57. standard patterns the re-usable kitteh pattern
  • 58. think out of inside the box letā€™s not re-invent the wheel
  • 59. Manage Dependencies with an Iron First
  • 60. Manage dependencies before they manage you dependency === relationship === communication dependency : Itā€™s complicated
  • 61. There are LOADS of kinds of dependency ... ā™£ Design Time vs Build Time vs Runtime vs Operational ā™£ One-way vs. Mutual vs. Transitive or Indirect ā™£ X gets information from Y ā™£ X needs functionality or service from Y ā™£ X sends information to and therefore needs the definition of Y ā™£ Syntax, semantic, sequence, location, id, existence, QoS, resource usage Dependency <=> Relationship <=> Communication Manage Dependencies I need you in so many ways
  • 62. } estimate measure risk-evaluate account for cost-beneļ¬t-analyse everything calculate quantify validate budget know everything if you donā€™t, who will?
  • 63. Software Quality Attributes MANAGE DEPENDENCIES WITH AN Views & IRON FIST Viewpoints ARCHITECTURALLY SIGNIFICANT REQUIREMENTS Calculate Everything Re-usable Architecture