SlideShare a Scribd company logo
1 of 72
Download to read offline
s
                                                                                 re for developer
                                                            Softwar e architectu



What is software    What is therole    of   How do you define         How do you share        How do you  deliver
  architecture?     a software architect?   software architecture?   software architecture?    software architecture?




                   Where do you start?
simon.brown@codingthearchitecture.com
    @simonbrown on Twitter
Software Architecture for Developers (.com)

                                               What is software
                                                   architecture?




                                               What is the role   of
                                               a software architect?




                                              How do you  define
                                              software architecture?




                                               How do you  share
                                              software architecture?




                                              How do you  deliver
                                               software architecture?
What is software   What is therole    of   How do you define         How do you share        How do you  deliver
  architecture?    a software architect?   software architecture?   software architecture?    software architecture?




                   How do you take a system vision
                    through to a software design?
What is software
  architecture?
What is architecture?


                 Requirements




                     Architecture




Structure   Design             Framework   Foundations
Application architecture
                                                                 ecture
                                                          r chit
                                                  ti on a         ware
                                         Ap plica        he  soft     elive
                                                                            r
                                                       t          to d
                                                ides            d
                                           prov          n eede
                                               ati ons         value
                                        f ound         iness
                                                  bus
                       Requirements




                       An application



 Classes &
             Design Patterns     Frameworks                Libraries
Components
System architecture
                                                                      vides
                                                              r e pro e
                                                     hitectu       r dwar
                                              m  arc       n d ha
                                       S yste      tw are a        elive
                                                                        r
                                               sof          to d
                                          the       ation
                                                          s
                                              fo und           value
                                                   bus iness
                        Requirements




                          A system



Services &   Interoperability
                                     Software              Hardware
Subsystems    & Integration
Enterprise Architecture
   Technology and business strategy across organisations and organisational units.




                     {
                                                               System Architecture
                                                          Software and infrastructure architecture
                                                                 for an end-to-end system.



                                                                          Application
                                                                          Architecture
                                                                   Software architecture for an
 We call this                                                       application, sub-system or
                                                                           component.
  software
architecture
                                                               /// <summary>
                                                               /// Represents the behaviour behind the ...
                                                               /// </summary>
                                                               public class SomeWizard : AbstractWizard
                                                               {
                                                                   private DomainObject _object;
                                                                   private WizardPage _page;
                                                                   private WizardController _controller;

                                                                    public SomeWizard()
                                                                    {
                                                                    }

                                                                    ...

                                                               }
Software architecture introduces
structure and guidelines
 into a software system, leading to
consistency and clarity
What is the role of a
 software architect?
The role of a software architect

Management of                     Ownership of
                   Architecture
non-functional                     the bigger        Leadership
                    definition
 requirements                        picture


 Technology        Architecture   Coaching and         Quality
  selection         evaluation     mentoring          assurance


                                              Design,
         Architecture
                                           development
         collaboration
                                            and testing

     Architecture Definition           Architecture Delivery
http://www.infoq.com/articles/brown-are-you-a-software-architect
How do you define
software architecture?
Every system has an
architecture, but not every
  architecture is defined

                                            bout
                                    h ink a
                             ople t          on’t
                                                  !
                       e pe           o me d
                   Som          re, s
                        it ectu
                   arch
Goal
What drives architecture?




                                                                                                     Options

                                                                  s
                                                             nt
                                                           ai
                                                         tr
                                                       ns
                                                 l   Co
                                          u   ra
                                       ct
                                 ite
                              ch
                            Ar                                                               e   s
                                                                                           pl
                                                                                         ci
                                                                                      in
                                                                                l   Pr
                                                                         u   ra
                                                                      ct
                                                                ite
                                                             ch
                                                           Ar
                                                                                               s
                                                                                        n - nt
                                                                                     n o me
                                                                                  l & ire
                                                                               n a qu
                                                                            tio re
                                                                         n c al




                                                                                                               Reality
                                                                       Fu ion
                                                                          n   ct
                                                                       fu
Functional
    requirements can influence
         the architecture
(understand and challenge them if necessary)
                                               ally is
                                         il re
                                Th e dev     e tail!
                                   in t he d
How many   elephants did
           you see at the zoo?


  How many      non-elephants?

Kevlin Henney
Non-functional requirements


    What non-functional requirements
  (e.g. “-ilities”) have you encountered
        in software development?
Performance         Flexibility
✓
Scalability         Extensibility
✓
Availability        Maintainability
Security            ✓
                    Interoperability
Disaster Recovery   Legal
Accessibility       ✓
                    Regulatory
Monitoring          Compliance
Management          i18n
✓
Auditability        L10n
...                 ...
     Runtime            Non-runtime
Performance is about how

  fast something is
Response    Latency                  and


  time     throughput




                                    a pps,
                             web
                      le to            ems,
                licab         g  syst
            App       s sagin
               s , me         e tc...
            UI           As,
                    SO
Scalability is about

doing more
  (more requests, more data,
 more users, more messages, ...)
                                               ently
                                         inher
                                  lity is rrency
                         Sc alabi      oncu
                                     c
                            ab out
Vertical        Horizontal
 scalability      scalability
   (scale-up)       (scale-out)




                                       s
                               o nent
                          omp
                   A ll c          e ntly;
                             iffer
                   sc  ale d          easy
                           -  up is
                    s cale
Availability is about

  uptime
                                 9 .99%,
                         . 9%, 9
                99 %, 99        x  7, ..
                                         .
                         %, 24
                 9 9.999
Low                        High
 availability                availability
(single points of failure)        (redundancy)




                                                     s
                                            o  nent
                                     c omp            abilit
                                                             y
                                 All         t  avail
                                      f eren           s
                             have dif          r istic
                                         acte
                                  char
Understand how to

capture them
                                  tions e
                             ques
                      your          u dienc
               Vary          your a
                         n
                    ing o
            de pend
Understand how to

refine them
                              ific,
                         Spec          ,
                  RT:            vable
             SMA          A chie
                sur able,      imely
            Mea              T
                       nt &
               R eleva
Understand how to

challenge them
                                   u
                          sur e yo
                      u
              Ar e yo

                   eed
                                  ?
                             that
                 n
Understand how they

 influence
 your architecture                     l
                                  tiona
                       o n- func      plex
                                          !
               Some n           e com
                         t s ar
                  r emen
             requi
Learn about and understand
     the non-functional
 requirements in order to
build sufficient foundations
Software lives in the real world,
     and the real world has


constraints
Constraints

   What constraints might
affect software architecture?

What constraints have you seen in your
         own organisations?
    Are all constraints negative?
Scope
                 Cheap + Quickly = Feature-light



                Feature-rich + Quickly = Expensive




 Cost           Time




Time & budget
Technology
(e.g. approved technology lists, existing
        licenses, interoperability,
 product maturity, common protocols,
   local standards, public standards,
     open source policies/licenses,
      vendor “relationships”, etc)
Resources
       skills
          &
  (e.g. team size, lead time, future
availability, training, specialists, etc)
Other
(e.g. legal/compliance, tactical vs
   strategic imperatives, existing
  systems, company politics, past
    failures, internal intellectual
                                           s ...
                                      tacle
            property, etc) will be obs e them!
                                                m
                             T here       v erco
                                    u st o
                             yo u m
Beware that constraints can
drive the architecture more
   than the requirements
Understand what the
constraints are, why they are
imposed, how they affect the
architecture and how you will
       work with them
Architectural


 principles
are the things you want to adopt
                                                 duce
                                            intro
                                  e lp to         larit
                                                       y
                         Th ey h        y   and c
                                 s tenc
                          c onsi
Principles

   What architectural principles have
     you seen applied to software
        development projects?

What principles have you seen in your own projects?
          Were the principles beneficial?
       What impact did the principles have?
Principles are great,
  but make sure they’re
realistic and don’t have a
massive negative impact!
Goal
How do you get to the goal?




                                                                                                       Options

                                                                    s
                                                               nt
                                                             ai
                                                           tr
                                                         ns
                                                   l   Co
                                            u   ra
                                         ct
                                   ite
                                ch
                              Ar                                                               e   s
                                                                                             pl
                                                                                           ci
                                                                                        in
                                                                                  l   Pr
                                                                           u   ra
                                                                        ct
                                                                  ite
                                                               ch
                                                             Ar
                                                                                                 s
                                                                                          n - nt
                                                                                       n o me
                                                                                    l & ire
                                                                                 n a qu
                                                                              tio re
                                                                           n c al




                                                                                                                 Reality
                                                                         Fu ion
                                                                            n   ct
                                                                         fu
Start   analysing
         coding
  or start                 ?
                         para
                              ly sis &
                                      r
                      s
                alysi            acto
             An         r distr
              ref acto      h ba
                                   d
                           t
                   ar e bo
Bo xes                     &     l ines
                                                          is
                                  Object or iented analys
                      n
Break the  problem dow              and de sign (OOAD
                                                        )

    into components
       and services
                                                          ty
                                       Class Responsibili
                                                           )
                                       Collaboration (CRC

                       ices
 What comp onents/serv
                      ?
   do we need to do X                                                ware
                                                              a  soft       is
                                                         sing          nts
                                                  omp
                                                       o          pone
                                             Dec            com       ating
                     talk                             i nto
        H ow do they                         sys tem            estim
                                                         l for
         to each oth
                     er?                         u sefu
ems)    Standard (
                         (syst                   containers
                                                            )
                   angle
              Wide

                                                                       ld
                                                                s hou
Start with the
                                                      pict ure           t
                                               Eve ry            n t par
big picture                          Mac                    fere
                                          ro          a dif          tory
                                                t l
                                               (cella e same s
                                                  ofsses)
                                                      th
                 Telephoto (components)
UML
                           eed a          e
                     on’t n        e ctur
              Y ou d        r chit
                       do a
              to ol to      desig
                                  n
                       and

Whiteboard?     UML tool?
Systems

                         Internet Banking System        Administration System
                        Allows customers to interact
                                                       Allows call centre staff to
                        securely via the web.
                                                       undertake administrative actions.




           s
 New System



             tems
Existing Sys


                          Banking System

                    Single point of truth for all
                    customer data.
                    Contains all core banking logic.
Containers               External web server
                             Web server
                        Allows customers to interact
                                                                              Internal web server
                        securely via the web.                                Allows call centre staff to
                        Allow call centre staff to                           undertake administrative actions.
                        undertake administrative actions.
                                                     IIS
                                                                                                          IIS
                                  mmunication
                       Windows Co
                             Foundation


                                              Application server
                                            Orchestrates user interaction
                                            across big legacy system.



                                                                       IIS



                                                                            rotocol
                                                                  XML/TCP p
                                               SQL
               Database
                                                                                                     e app,
      Stores customer information                                   Banking system andalon
                                                                                      er,  st          b ase,
                                                                                  ervfor all ice, data
      related to Internet Banking.
      Retains audit logs.
                                                                           eb s
                                                               Single point of truth
                                                                       Wdata.              erv         i n, ...
      Stores help text, banners and                            customer
                                                               Contains all indo
                                                                                  ws S SB, plug
      other commentary.
                                                                        Wcore banking er, E
                                                                                        logic.
                                                                                  serv
                            SQL Server
                                                                           app            UNIX
mponents
                                                      Web server
Co
                   r
Appli cation serve
                                                                    Authentication Service

                                                                   Login.
                              Banking Service                      Authorise transaction.
                                                                   Logout.
                      Get accounts.                                Reset credentials.
                      Get statement.                               Lock account.      WCF service
                      Get/create/edit/delete
                      recipients.
                      Make payments.     WCF service

              r
 Service Laye



  Data Layer


                                                                               Audit Service
                   Banking System Facade                                Write audit log entry.
                                                                        Get audit log entries for
                  Single point of truth for all
                                                                        customer.
                  customer data.
                  Contains all core banking logic.
                                                                                                    C#

                                                 C#




                                                                                  Database
                         Banking System
Classes
                      e
Banking S ystem Facad


                  BankingSystemFacade
                                                                        <<abstract>>
               Get accounts.                                             Transaction
               Get statement.                     Creates         Execute transaction.
               Get/create/edit/delete                             Audit transaction.
               recipients.
               Make payments.




                                                                                   of
                                Uses                                    Is made up



                                                                                         <abstract>
                                                <abstract>
         BankingSystemInterface                                                           Response
                                                 Request                      Parse XML response into domain
                                        Convert request to XML.               object(s).
         Initiate connection.
         Execute transaction.
                                                                                        e
                                                                                   d us
         Close transaction.
                                                                                 l
                                                                             cou          ,
                                                                        You           ards
                                                                                RC c ...
                                                                        UM L, C         ,
                                                                                   oard
                                                                         a w hiteb

               Banking system
In terfaces

            External web server
           to Application server
         Technology, format & protocol          Internal web server
         Service-level agreements
                                               to Application server
         Ownership
                                            Technology, format & protocol
         Release cycle & versioning
                                            Service-level agreements
         etc...
                                            Ownership
                                            Release cycle & versioning
                                            etc...




              Application server
                to Database
         Technology, format & protocol
         Service-level agreements            Application server
         Ownership                           to Banking System
         Release cycle & versioning      Technology, format & protocol
         etc...                          Service-level agreements
                                                                          ically
                                                                  r e typ         y
                                                              es a
                                         Ownership
                                                         a c              o  f an
                                                    terf            arts
                                         Release cycle & versioning
                                                  In              p              e
                                                             est            ctur
                                         etc...
                                                           ki            e
                                                  th e ris         r chit
                                                          w  are a
                                                    soft
Use stories/use cases to

walkthrough
and test your design
Your experience should

guide you rather than
 constrain you
                                            ,
                                   re great
                          a s es a         o  use
                     atab            eed t
                   D
                            do n’t n    l utio
                                               n
                         u          y so
                 bu t yo          r
                           o r eve
                    o ne f
Don’t blindly focus on the
code; always ask what the
  major forces are on the
   system and how your
architecture resolves them
                                         e
                                   ee th
                             to s
                        back
                   Step               e
                        big   pi ctur
How do you share
software architecture?
Current Development Team   Business Sponsors           Future Development Team




                           Your system

 Database Administrators                                Operations/Support Staff


                                                                          e
                                                                    ectur
                                                             r chit
                                                    w are a           for
                                               Soft     pla  tfor
                                                                   m
                                                                        ocia
                                                                            l!
                                                  is a          .. be s
                                                         t ion .
                                                    ersa
                                               conv
      Other Teams           Security Team                 Compliance and Audit
It looks like there are multiple architectural layers.




 There are many libraries in the middle-tier; are they components?




        There’s a web application.
                                                  Lots of C# code!




There are some WCF service references.
Process View                    Non-functional View
          Context                        Functional View                       Does the system implement
                                                                                                                     Are there any significant non-
     What is this all about?             What does the system do?                                                 functional requirements influencing
                                                                                  business processes?
                                                                                                                           the architecture?




     Architectural                         Architectural
                                                                                  Logical View                         Interface View
      Constraints                            Principles                     What does the big picture look like     Are there internal or external
    Are there any constraints        Are there any principles influencing   and how is the system structured?             system interfaces?
  influencing the architecture?               the architecture?




      Design View                     Infrastructure View                     Deployment View                        Operational View
                                                                            How will the system components be
Is it clear how system components     What does the target deployment                                                How will people operate and
                                                                                deployed onto the target
       should be implemented?              environment look like?                                                       support the system?
                                                                                      infrastructure?




                                                                                                                         Architecture
     Security View                            Data View                     Technology Selection
How is security handled across all    How is data managed, archived,         What led to the selection of the            Justification
              tiers?                          backed-up, etc?                     technologies in use?               Does the chosen architecture
                                                                                                                               “work”?
Abstract
        Whiteboard



    Software       Review      Wiki
   Ar          C   Cstandards
     chitecture oding onversation   /*
    D        t
      ocumenDesign conformance       * Pair
          v0.2                        Test coverage                  * Programming
                                      Thread safety                  */
                           n
De    l egatio                              Security
                   /**                        Logging
 /// Represents the behaviour behind the user tion handling chitecture e(!a
                       * Reference Ar
 /// <summary>

 /// </summary>
                                  Excepregistration page.           whil    ngry) {
 public class RegistrationWizard : AbstractWizard nsibility
 {                                       hote Yo
                                         Ex r
                       * @autstrationCandidate; u                     pair(you);
                       */
     private RegistrationCandidate _regi
     privat                             Under;standing
           e RegistrationWizardPage _page;
                                                                   }
                                                Morale
     private RegistrationWizardController _controller




                                Specific
How do you deliver
software architecture?
How much architecture
            do you need to do?

                This much?




Waterfall                RUP                Agile



                               This much?
You need to define

“just enough”
     architecture
What is architecturally

     significant?
C ostly to cha
               nge
                     Complex and risky   New
Does your architecture

                          work?
                                                                 ng
   Satisfies th
                 e
                           Fou ndations for   Platform for solvi
                   vers                                        blem
arch itectural dri             the code       the business pro
Concrete
                  experiments




Requirements




  A system
                                         /
                                    type
                              p roto
                      wa way       pt o
                                       r
                 thro         once
Foundations    A
                     of  of c     code
                  pro       ction
                     p rodu
Let’s wrap up...
What is software   What is therole    of   How do you define         How do you share        How do you  deliver
  architecture?    a software architect?   software architecture?   software architecture?    software architecture?




                           nts
   Requiremen ts, constrai
      and principles drive                                           ose the pro
                                                                                blem
                        ures                                  Decomp
    softwa re architect



                How dosyou take a system visionshould
            ms, containe
                         r ,
       Syste                                          ure
                  through
                        sse s to a software very pict
                                          E design?
       com ponents, cla                         a different p
                                                              art
                                           tell
          and interfaces                                        y
                                             of th e same stor


                                       t
                   Write  code and tes
                    your  architecture
                                    ible
                   as e arly as poss
simon.brown@codingthearchitecture.com
    @simonbrown on Twitter


                                                    !
                                            Th anks




   http://www.codingthearchitecture.com
                                               s
                              re for developer
         Softwar e architectu

More Related Content

What's hot

Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsJose Emilio Labra Gayo
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)siouxhotornot
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Henry Muccini
 
Software Architecture Taxonomies - modularity
Software Architecture Taxonomies - modularitySoftware Architecture Taxonomies - modularity
Software Architecture Taxonomies - modularityJose Emilio Labra Gayo
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 

What's hot (20)

Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & Connectors
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
Software Architecture Taxonomies - modularity
Software Architecture Taxonomies - modularitySoftware Architecture Taxonomies - modularity
Software Architecture Taxonomies - modularity
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Uml3
Uml3Uml3
Uml3
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
L02 What is Software Architecture?
L02 What is Software Architecture?L02 What is Software Architecture?
L02 What is Software Architecture?
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
6
66
6
 

Similar to Architecture: where do you start?

Good code-isnt-enough
Good code-isnt-enoughGood code-isnt-enough
Good code-isnt-enoughSkills Matter
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)Steve Lange
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture modelEmmanuel Fuchs
 
Ow2 Open World Forum09 Trustie Project
Ow2 Open World Forum09 Trustie ProjectOw2 Open World Forum09 Trustie Project
Ow2 Open World Forum09 Trustie ProjectOW2
 
Hack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile divideHack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile dividePaul Blundell
 
Software Design_Se lect16 btech
Software Design_Se lect16 btechSoftware Design_Se lect16 btech
Software Design_Se lect16 btechIIITA
 
Trustie Forge Solutions Linux Ow2
Trustie Forge Solutions Linux Ow2Trustie Forge Solutions Linux Ow2
Trustie Forge Solutions Linux Ow2OW2
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overviewelliando dias
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation pptkuldeep khichar
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09Luktalja
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architectureTot Bob
 

Similar to Architecture: where do you start? (20)

Good code-isnt-enough
Good code-isnt-enoughGood code-isnt-enough
Good code-isnt-enough
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture model
 
Ow2 Open World Forum09 Trustie Project
Ow2 Open World Forum09 Trustie ProjectOw2 Open World Forum09 Trustie Project
Ow2 Open World Forum09 Trustie Project
 
Hack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile divideHack and Tell - wtf is the core mobile divide
Hack and Tell - wtf is the core mobile divide
 
Software Design_Se lect16 btech
Software Design_Se lect16 btechSoftware Design_Se lect16 btech
Software Design_Se lect16 btech
 
Tactics
TacticsTactics
Tactics
 
Trustie Forge Solutions Linux Ow2
Trustie Forge Solutions Linux Ow2Trustie Forge Solutions Linux Ow2
Trustie Forge Solutions Linux Ow2
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
Architecture Description Languages: An Overview
Architecture Description Languages: An OverviewArchitecture Description Languages: An Overview
Architecture Description Languages: An Overview
 
Kuldeep presentation ppt
Kuldeep presentation pptKuldeep presentation ppt
Kuldeep presentation ppt
 
2
22
2
 
Chapter 09
Chapter 09Chapter 09
Chapter 09
 
Sda 1
Sda   1Sda   1
Sda 1
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 

More from Skills Matter

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard LawrenceSkills Matter
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applicationsSkills Matter
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmSkills Matter
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimSkills Matter
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Skills Matter
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlSkills Matter
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsSkills Matter
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Skills Matter
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Skills Matter
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldSkills Matter
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Skills Matter
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Skills Matter
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingSkills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveSkills Matter
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tSkills Matter
 

More from Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
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
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 

Architecture: where do you start?

  • 1. s re for developer Softwar e architectu What is software What is therole of How do you define How do you share How do you deliver architecture? a software architect? software architecture? software architecture? software architecture? Where do you start?
  • 2. simon.brown@codingthearchitecture.com @simonbrown on Twitter
  • 3. Software Architecture for Developers (.com) What is software architecture? What is the role of a software architect? How do you define software architecture? How do you share software architecture? How do you deliver software architecture?
  • 4. What is software What is therole of How do you define How do you share How do you deliver architecture? a software architect? software architecture? software architecture? software architecture? How do you take a system vision through to a software design?
  • 5. What is software architecture?
  • 6. What is architecture? Requirements Architecture Structure Design Framework Foundations
  • 7. Application architecture ecture r chit ti on a ware Ap plica he soft elive r t to d ides d prov n eede ati ons value f ound iness bus Requirements An application Classes & Design Patterns Frameworks Libraries Components
  • 8. System architecture vides r e pro e hitectu r dwar m arc n d ha S yste tw are a elive r sof to d the ation s fo und value bus iness Requirements A system Services & Interoperability Software Hardware Subsystems & Integration
  • 9. Enterprise Architecture Technology and business strategy across organisations and organisational units. { System Architecture Software and infrastructure architecture for an end-to-end system. Application Architecture Software architecture for an We call this application, sub-system or component. software architecture /// <summary> /// Represents the behaviour behind the ... /// </summary> public class SomeWizard : AbstractWizard { private DomainObject _object; private WizardPage _page; private WizardController _controller; public SomeWizard() { } ... }
  • 10. Software architecture introduces structure and guidelines into a software system, leading to consistency and clarity
  • 11. What is the role of a software architect?
  • 12. The role of a software architect Management of Ownership of Architecture non-functional the bigger Leadership definition requirements picture Technology Architecture Coaching and Quality selection evaluation mentoring assurance Design, Architecture development collaboration and testing Architecture Definition Architecture Delivery
  • 14. How do you define software architecture?
  • 15. Every system has an architecture, but not every architecture is defined bout h ink a ople t on’t ! e pe o me d Som re, s it ectu arch
  • 16. Goal What drives architecture? Options s nt ai tr ns l Co u ra ct ite ch Ar e s pl ci in l Pr u ra ct ite ch Ar s n - nt n o me l & ire n a qu tio re n c al Reality Fu ion n ct fu
  • 17. Functional requirements can influence the architecture (understand and challenge them if necessary) ally is il re Th e dev e tail! in t he d
  • 18. How many elephants did you see at the zoo? How many non-elephants? Kevlin Henney
  • 19. Non-functional requirements What non-functional requirements (e.g. “-ilities”) have you encountered in software development?
  • 20. Performance Flexibility ✓ Scalability Extensibility ✓ Availability Maintainability Security ✓ Interoperability Disaster Recovery Legal Accessibility ✓ Regulatory Monitoring Compliance Management i18n ✓ Auditability L10n ... ... Runtime Non-runtime
  • 21. Performance is about how fast something is
  • 22. Response Latency and time throughput a pps, web le to ems, licab g syst App s sagin s , me e tc... UI As, SO
  • 23. Scalability is about doing more (more requests, more data, more users, more messages, ...) ently inher lity is rrency Sc alabi oncu c ab out
  • 24. Vertical Horizontal scalability scalability (scale-up) (scale-out) s o nent omp A ll c e ntly; iffer sc ale d easy - up is s cale
  • 25. Availability is about uptime 9 .99%, . 9%, 9 99 %, 99 x 7, .. . %, 24 9 9.999
  • 26. Low High availability availability (single points of failure) (redundancy) s o nent c omp abilit y All t avail f eren s have dif r istic acte char
  • 27. Understand how to capture them tions e ques your u dienc Vary your a n ing o de pend
  • 28. Understand how to refine them ific, Spec , RT: vable SMA A chie sur able, imely Mea T nt & R eleva
  • 29. Understand how to challenge them u sur e yo u Ar e yo eed ? that n
  • 30. Understand how they influence your architecture l tiona o n- func plex ! Some n e com t s ar r emen requi
  • 31. Learn about and understand the non-functional requirements in order to build sufficient foundations
  • 32. Software lives in the real world, and the real world has constraints
  • 33. Constraints What constraints might affect software architecture? What constraints have you seen in your own organisations? Are all constraints negative?
  • 34. Scope Cheap + Quickly = Feature-light Feature-rich + Quickly = Expensive Cost Time Time & budget
  • 35. Technology (e.g. approved technology lists, existing licenses, interoperability, product maturity, common protocols, local standards, public standards, open source policies/licenses, vendor “relationships”, etc)
  • 36. Resources skills & (e.g. team size, lead time, future availability, training, specialists, etc)
  • 37. Other (e.g. legal/compliance, tactical vs strategic imperatives, existing systems, company politics, past failures, internal intellectual s ... tacle property, etc) will be obs e them! m T here v erco u st o yo u m
  • 38. Beware that constraints can drive the architecture more than the requirements
  • 39. Understand what the constraints are, why they are imposed, how they affect the architecture and how you will work with them
  • 40. Architectural principles are the things you want to adopt duce intro e lp to larit y Th ey h y and c s tenc c onsi
  • 41. Principles What architectural principles have you seen applied to software development projects? What principles have you seen in your own projects? Were the principles beneficial? What impact did the principles have?
  • 42. Principles are great, but make sure they’re realistic and don’t have a massive negative impact!
  • 43. Goal How do you get to the goal? Options s nt ai tr ns l Co u ra ct ite ch Ar e s pl ci in l Pr u ra ct ite ch Ar s n - nt n o me l & ire n a qu tio re n c al Reality Fu ion n ct fu
  • 44. Start analysing coding or start ? para ly sis & r s alysi acto An r distr ref acto h ba d t ar e bo
  • 45. Bo xes & l ines is Object or iented analys n Break the problem dow and de sign (OOAD ) into components and services ty Class Responsibili ) Collaboration (CRC ices What comp onents/serv ? do we need to do X ware a soft is sing nts omp o pone Dec com ating talk i nto H ow do they sys tem estim l for to each oth er? u sefu
  • 46. ems) Standard ( (syst containers ) angle Wide ld s hou Start with the pict ure t Eve ry n t par big picture Mac fere ro a dif tory t l (cella e same s ofsses) th Telephoto (components)
  • 47. UML eed a e on’t n e ctur Y ou d r chit do a to ol to desig n and Whiteboard? UML tool?
  • 48. Systems Internet Banking System Administration System Allows customers to interact Allows call centre staff to securely via the web. undertake administrative actions. s New System tems Existing Sys Banking System Single point of truth for all customer data. Contains all core banking logic.
  • 49. Containers External web server Web server Allows customers to interact Internal web server securely via the web. Allows call centre staff to Allow call centre staff to undertake administrative actions. undertake administrative actions. IIS IIS mmunication Windows Co Foundation Application server Orchestrates user interaction across big legacy system. IIS rotocol XML/TCP p SQL Database e app, Stores customer information Banking system andalon er, st b ase, ervfor all ice, data related to Internet Banking. Retains audit logs. eb s Single point of truth Wdata. erv i n, ... Stores help text, banners and customer Contains all indo ws S SB, plug other commentary. Wcore banking er, E logic. serv SQL Server app UNIX
  • 50. mponents Web server Co r Appli cation serve Authentication Service Login. Banking Service Authorise transaction. Logout. Get accounts. Reset credentials. Get statement. Lock account. WCF service Get/create/edit/delete recipients. Make payments. WCF service r Service Laye Data Layer Audit Service Banking System Facade Write audit log entry. Get audit log entries for Single point of truth for all customer. customer data. Contains all core banking logic. C# C# Database Banking System
  • 51. Classes e Banking S ystem Facad BankingSystemFacade <<abstract>> Get accounts. Transaction Get statement. Creates Execute transaction. Get/create/edit/delete Audit transaction. recipients. Make payments. of Uses Is made up <abstract> <abstract> BankingSystemInterface Response Request Parse XML response into domain Convert request to XML. object(s). Initiate connection. Execute transaction. e d us Close transaction. l cou , You ards RC c ... UM L, C , oard a w hiteb Banking system
  • 52. In terfaces External web server to Application server Technology, format & protocol Internal web server Service-level agreements to Application server Ownership Technology, format & protocol Release cycle & versioning Service-level agreements etc... Ownership Release cycle & versioning etc... Application server to Database Technology, format & protocol Service-level agreements Application server Ownership to Banking System Release cycle & versioning Technology, format & protocol etc... Service-level agreements ically r e typ y es a Ownership a c o f an terf arts Release cycle & versioning In p e est ctur etc... ki e th e ris r chit w are a soft
  • 53. Use stories/use cases to walkthrough and test your design
  • 54. Your experience should guide you rather than constrain you , re great a s es a o use atab eed t D do n’t n l utio n u y so bu t yo r o r eve o ne f
  • 55. Don’t blindly focus on the code; always ask what the major forces are on the system and how your architecture resolves them e ee th to s back Step e big pi ctur
  • 56.
  • 57.
  • 58.
  • 59. How do you share software architecture?
  • 60. Current Development Team Business Sponsors Future Development Team Your system Database Administrators Operations/Support Staff e ectur r chit w are a for Soft pla tfor m ocia l! is a .. be s t ion . ersa conv Other Teams Security Team Compliance and Audit
  • 61. It looks like there are multiple architectural layers. There are many libraries in the middle-tier; are they components? There’s a web application. Lots of C# code! There are some WCF service references.
  • 62. Process View Non-functional View Context Functional View Does the system implement Are there any significant non- What is this all about? What does the system do? functional requirements influencing business processes? the architecture? Architectural Architectural Logical View Interface View Constraints Principles What does the big picture look like Are there internal or external Are there any constraints Are there any principles influencing and how is the system structured? system interfaces? influencing the architecture? the architecture? Design View Infrastructure View Deployment View Operational View How will the system components be Is it clear how system components What does the target deployment How will people operate and deployed onto the target should be implemented? environment look like? support the system? infrastructure? Architecture Security View Data View Technology Selection How is security handled across all How is data managed, archived, What led to the selection of the Justification tiers? backed-up, etc? technologies in use? Does the chosen architecture “work”?
  • 63. Abstract Whiteboard Software Review Wiki Ar C Cstandards chitecture oding onversation /* D t ocumenDesign conformance * Pair v0.2 Test coverage * Programming Thread safety */ n De l egatio Security /** Logging /// Represents the behaviour behind the user tion handling chitecture e(!a * Reference Ar /// <summary> /// </summary> Excepregistration page. whil ngry) { public class RegistrationWizard : AbstractWizard nsibility { hote Yo Ex r * @autstrationCandidate; u pair(you); */ private RegistrationCandidate _regi privat Under;standing e RegistrationWizardPage _page; } Morale private RegistrationWizardController _controller Specific
  • 64. How do you deliver software architecture?
  • 65. How much architecture do you need to do? This much? Waterfall RUP Agile This much?
  • 66. You need to define “just enough” architecture
  • 67. What is architecturally significant? C ostly to cha nge Complex and risky New
  • 68. Does your architecture work? ng Satisfies th e Fou ndations for Platform for solvi vers blem arch itectural dri the code the business pro
  • 69. Concrete experiments Requirements A system / type p roto wa way pt o r thro once Foundations A of of c code pro ction p rodu
  • 71. What is software What is therole of How do you define How do you share How do you deliver architecture? a software architect? software architecture? software architecture? software architecture? nts Requiremen ts, constrai and principles drive ose the pro blem ures Decomp softwa re architect How dosyou take a system visionshould ms, containe r , Syste ure through sse s to a software very pict E design? com ponents, cla a different p art tell and interfaces y of th e same stor t Write code and tes your architecture ible as e arly as poss
  • 72. simon.brown@codingthearchitecture.com @simonbrown on Twitter ! Th anks http://www.codingthearchitecture.com s re for developer Softwar e architectu