Introduction to Software Architecture

999 views

Published on

Published in: Technology, Business
  • Be the first to comment

Introduction to Software Architecture

  1. 1. © Yuriy Guts, 2013Software ArchitectureIntroduction to
  2. 2. What isSoftwareArchitecture?
  3. 3. Modules, connections, dependencies and interfaces?
  4. 4. Modules, connections, dependencies and interfaces?The relationship between the elements that make up the product?
  5. 5. Modules, connections, dependencies and interfaces?The relationship between the elements that make up the product?The decomposition of the problem into smaller implementable elements?
  6. 6. Modules, connections, dependencies and interfaces?The relationship between the elements that make up the product?The decomposition of the problem into smaller implementable elements?The skeleton/backbone of the product?An abstract view?An approach to achieve a goal?A blueprint?The big picture?
  7. 7. Modules, connections, dependencies and interfaces?The relationship between the elements that make up the product?The decomposition of the problem into smaller implementable elements?The skeleton/backbone of the product?An abstract view?An approach to achieve a goal?A blueprint?The big picture?
  8. 8. There are literally hundreds ofdefinitions of Software Architecturehttp://tinyurl.com/sei-definitions
  9. 9. Is there anything in common?
  10. 10. “”The structure or structures of the system,which comprise software elements, theexternally visible properties of thoseelements, and the relationships among them.“Software Architecture in Practice” bookSoftware Engineering Institute
  11. 11. “”The structure or structures of the system,which comprise software elements, theexternally visible properties of thoseelements, and the relationships among them.“Software Architecture in Practice” bookSoftware Engineering Institute”“ Those aspects that are the hardest to change.Chris Verhoef; Martin Fowler
  12. 12. “”The structure or structures of the system,which comprise software elements, theexternally visible properties of thoseelements, and the relationships among them.“Software Architecture in Practice” bookSoftware Engineering Institute”“ Those aspects that are the hardest to change.Chris Verhoef; Martin FowlerSTRUCTUREVISION
  13. 13. Structure + VisionRegardless of the domain,architectural work is about
  14. 14. DevelopingOrganizationStakeholdersMarketingStakeholdersMaintenanceStakeholdersCustomerStakeholdersEnd-UserStakeholders
  15. 15. There are no “good” and “bad” architecturesThere are ones that are more suitablegiven current constraints,and the ones that are less suitable.
  16. 16. Levels of ArchitectureComponent Designer
  17. 17. Levels of ArchitectureComponent DesignerApplication Architect
  18. 18. Levels of ArchitectureComponent DesignerApplication ArchitectSolutions Architect
  19. 19. Levels of ArchitectureComponent DesignerApplication ArchitectSolutions ArchitectBusiness (Enterprise) Architect
  20. 20. The Software Architect Role
  21. 21. Anti-pattern:“The Ivory Tower Architect”Development team
  22. 22. Do Agile teams need architects?
  23. 23. ArchitecturalDriversUnderstanding requirementsand constraintsTechnologySelectionChoosing and evaluatingtechnologiesArchitectingDesigning softwareArchitectureEvaluationVerifying that the architectureactually worksArchitectureEvolutionOwnership of the architecturethroughout the deliveryCoaching &MentoringProviding guidance andassistance to teamsCodingInvolvement in hands-onsoftware deliveryQualityAssuranceIntroduction and adherence tostandards and principlesEven in the agilest of teamsyou need someoneto take care of all this!Otherwise it would get messy.
  24. 24. “Agile” ArchitectIt may not be a dedicated person.Responsibilities can be split among multiple people.Involvement varies depending on team maturity:1. Chaos (survival mode): requires direct authoritative leadership.2. Learning: requires a coaching leadership style.3. Self-organizing (mature): requires facilitation to keep balance.
  25. 25. Choosing a reference architecture
  26. 26. Architecture Visualization:The 4+1 Model
  27. 27. SA involvement within the company• Support for Sales and Marketing• Bootstrapping new projects• Technology consulting for existing projects• Investigating new technologies, developing PoC• Internal training, competence development
  28. 28. Q & Ayuriy.guts@eleks.comAcknowledgements• Len Bass, Paul Clements, Rick Kazman. Software Architecture in Practice, 2nd edition [2003].• Paul Clements et al. Documenting Software Architectures: Views and Beyond, 2nd edition [2010].• Simon Brown. Software Architecture for Developers [2013].

×