Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Architecture: Why and What?

1,051 views

Published on

Being a very brief history of how "architecture" become a thing in software, and of how it delivers on its core claim to fame, which is:
Enabling you to Reason & Calculate about quite vague "Quality" requirements and thereby to achieve confidence of a successful system and happy customers

Published in: Software
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Software Architecture: Why and What?

  1. 1. Chester Devs, 2015 Chris F Carroll Software Architecture – Why and What?
  2. 2. In the beginning ... ... there were algorithms; computable functions; the lambda calculus…
  3. 3. The Software Architectural Qualities of a Proof on Paper… • Availability: 7–Nines Uptime • Reliability/Robustness: no moving parts, can survive drops, collisions and earthquakes • Parallel processing: Can be copied and worked on by multiple people in parallel (good implementation of immutability) • Can be geographically distributed without loss of performance • But not, alas, extremely fast…
  4. 4. why architecture? because … “… No-one replaces or re-writes a system because of its functionally. It’s always because of some quality failing – performance or reliability, usability, or ease of modifiability”
  5. 5. The Claim of Software Architecture To enable Reasoning about: … the Quality Attributes of Software-intensive Systems … to meet Stakeholder’s Concerns … using Architecture Descriptions of the system’s fundamental structure(s) in terms of its elements, relationships, properties and principles Why software architecture?
  6. 6. • What is a Quality Attribute? • What does “Reasoning about” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  7. 7. • What is a Quality Attribute? • What does “Reasoning about” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  8. 8. What is a Quality Attribute? Who defines quality? “It’s not what you do, it’s the way that you do it” affordability, availability, correctness, deployability,efficiency, evolvability, extensibility, fault-tolerance, main-tainability, modifiability, reliability, resilience, responsiveness, robust-ness, safety, scalability, securability, testability, usability, …
  9. 9. What is a Quality Attribute? ISO 25010 “It’s not what you do, it’s the way that you do it” accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy, availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability, degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability, mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience, responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability, supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability, testability, timeliness, traceability, ubiquity, understandability, upgradability, usability
  10. 10. Many ways to get from A to B what about a horse?
  11. 11. Many ways to get from A to B how about a camel?
  12. 12. What is a Quality Attribute? but … what do all these words mean? “It’s not what you do, it’s the way that you do it” accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy, availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability, degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability, mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience, responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability, supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability, testability, timeliness, traceability, ubiquity, understandability, upgradability, usability
  13. 13. Software Quality Attributes first, define your terms Define what matters to you about a quality attribute by either Describing scenarios or Defining measures (or proxy measures) Then research the tactics/patterns/appliances you can use to achieve the quality
  14. 14. Availability & Resilience Availability / Resilience o A common measure is up-time: “5-nines” o A scenario for a failure event might be “When an out-of-memory failure occurs, the app should recycle, and the system should continue operating as normal within 30 seconds.” o Attack Scenarios: “When attack X happens, Y should happen and the system should continue operating as normal” quality attributes : define it
  15. 15. Modifiability is ... quality attributes : measure it Modifiability / Maintainability / Evolution o Could be measured as (estimated) cost or speed Are these reasonable measures of modifiability? o “It should not require a change request and 14 day wait to correct a spelling error on the website” o “Sprint velocity after a year of development should be at least as good as in months 3 to 12”
  16. 16. • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  17. 17. and even to predict What is “Reasoning about…”? estimate measure risk-evaluate account for cost-benefit-analyse calculate quantify validate budget everything
  18. 18. What is “Reasoning about…”? Show me the numbers ♣ Being able to describe, define, measure, calculate, test and even predict how a system will behave … ♣ … preferably in advance of paying the full cost of delivery and preferably before missing the timeframe in which the system is still useful
  19. 19. Abstraction is the key to reasoning even if the seats are concrete
  20. 20. Abstraction: Number of seats I am not a number! 50
  21. 21. • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help? 4 Key Concepts The promise of Software Architecture
  22. 22. 4 Key Concepts Such many stakeholders Not only the customer & the end-user but also…
  23. 23. Reconciling conflicting stakeholder needs …
  24. 24. Architecturally Significant Requirements what matters first? Architecturally Significant Requirements
  25. 25. 4 Key Concepts The promise of Software Architecture • What is a Quality Attribute? • What does “Reasoning about…” mean? • What are Stakeholder Concerns? • What is an Architecture Description and how does it help?
  26. 26. Abstraction: Number of seats Maths: Reason by abstraction
  27. 27. Abstraction: Number of seats I am not a number! 50
  28. 28. Abstraction: power to weight ratio Maths: Reason by abstraction
  29. 29. Abstractions: power & weight Maths: Reason by abstraction 74kW 12t
  30. 30. Views and Viewpoints
  31. 31. Different viewpoints there is no all-encompassing viewpoint
  32. 32. Modifiability, Extensibility, Evolvability
  33. 33. Modifiability & Extensibility
  34. 34. Load balancing as a tactic for scaling
  35. 35. Load balancing as a tactic for scaling
  36. 36. 4+1, Updated
  37. 37. 20 years on … “6 + 0 + 1” Rozanski & Woods, Software Systems Architecture, 2nd ed
  38. 38. The Claim of Software Architecture To enable Reasoning about: … the Quality Attributes of Software-intensive Systems … to meet Stakeholder’s Concerns … using Architecture Descriptions of the system’s fundamental structure(s) in terms of its elements, relationships, properties and principles Why software architecture?
  39. 39. What is “The Architecture” of a system? rough cut definitions “… the fundamental structures or organisation of your code” “… all the rules & design decisions you have get right up-front, because they are too expensive to change later.”
  40. 40. Architecture is ... Bass, Clements, Kazman, 1997-2012 SEI, early 2000s “The structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
  41. 41. Architecture is ... what does fundamental mean? 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”
  42. 42. Architecture is ... Kruchten, updated 2009 Kruchten 2009: The significant 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 specified 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
  43. 43. How to produce an architecture A catalogue & a method How can we design systems to meet quality requirements? 1) A catalogue of off-the-shelf tactics, components, appliances, patterns, frameworks, reference architectures… with known quality–impacts 2) A method for applying them when designing your system
  44. 44. catalogues of patterns, tactics, … A (very long) Reading List http://bing.com/search?q=architecture+tactics http://bing.com/search?q=reference+architectures http://google.com/search?q=architecture+pattern http://pubs.opengroup.org/architecture/togaf8-doc/arch/chap28.html Rozanski & Woods, Software Systems Architecture Bass et al, Software Architecture in Practise Buschmann et al, Pattern-Oriented Software Architecture Vols 1–5 Blue Peter Architecture
  45. 45. Patterns,Tactics, Appliances Off the shelf architecture Including … Pipe and Filter Architecture, Blackboard Architecture, Hexagonal Architecture, Layered Architecture, Service Oriented Architecture, Message Oriented Distributed Architecture, Client-Server, Client-Proxy Server, Master-Slave, Microservices, Reactor, Replication, Transactions, ACID, Eventual Consistency, Subsystem Interface, RDBMS, NoSQL DB, Graph Database, Datawarehouse, GUI, Command Line Interface, Batch Processing, Thread Pool, Activator, Factory, Dependency Injection, File System, Web Application, Sharding, Horizontal Scaling, Load Balancer, Message Queues, Publish-Subscribe, Request Broker, Web Services, Desktop Applications, Mobile Apps, Virtual Machine, Model View Controller, Domain Model, Domain Driven Design, Immutability, Caching, Proxy, Facade, Bridge, Adapter, Mediator, Decorator, Command, Interpreter, Web Farm, Web Garden, P2P, ORM, Data Mapper, Active Record, Tokens, Locks, Monitors, Heartbeat, Error detection, Backup and DR, the InterWebs, LAN, WAN, AES, PKI, Flash Drives, Gigabit Ethernet, WPA2-PSK
  46. 46. a method for designing an architecture 1. Draw a box for the system. Surround it with the external actors which/who must interact with it. 2. List the Architecturally Significant Requirements in priority order 3. Start at the top of the list and work down 4. For each requirement, Identify or Create a Partition of the system which will meet that quality requirement 5. Identify tactics/patterns/appliances which achieve the Quality Requirement 6. Goto 2 Simplified from Bass et. al.
  47. 47. Simple Case Study No relation to Uber Our New Startup • sÜper is an application which will find other sÜper users near you, and help you to arrange a lift share. • Business plan: Grow users to critical mass in year 1, charge a fee from year 2 onwards
  48. 48. Functional & Quality Requirements Key Functionality •Based on the sUper user’s geolocation, find their nearest peers •Enable communication & appointment making between Quality Requirements • Must be mobile/geo-based • Must be very very simple & fast to use & not make embarrassing mistakes • Must be virally attractive • Must (appear to) be reliable • Available 24/7 • Must be cheap to build & maintain for the 1st year • Must cope with viral growth in user base • Must keep user data especially payment data secure Are not un-related to each other
  49. 49. ASRs Prioritised Architecturally Significant Requirements 1. Deployability: Must run on mobiles 2. Usability: Must be very very simple 3. Usability/Performance: Must be fast to use 4. Usability/Accuracy: Not make embarrassing mistakes 5. Low Initial Cost & Time to Market 6. Functionality: Communication between users 7. Functionality: Find nearby users 8. Scalability 9. Availability 24/7 because the architect said so …
  50. 50. 0. The Context Diagram
  51. 51. ASR 1. Deployable to Mobile Platforms
  52. 52. 2. Usability – Very Very Simple
  53. 53. 3. Usability – Performance
  54. 54. 4. Usability-Accuracy
  55. 55. 5. Low Initial Cost/Time to Market
  56. 56. 6. Key Functionality 1: Communication
  57. 57. 7. Key Functionality 2: Find Nearby Users
  58. 58. 8. Scalability
  59. 59. 9. Availability
  60. 60. Et voila. We have most of an architecture ….
  61. 61. Software Architecture thank you and good-bye http:www.cafe-encounter.net/about/

×