se2 introduction to software architecture
play

SE2: Introduction to Software Architecture Mei Nagappan What is - PowerPoint PPT Presentation

Material and some slide content from: - Emerson Murphy-Hill - Reid Holmes - Mehdi Mirakhorli - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture SE2: Introduction to Software Architecture Mei Nagappan


  1. Material and some slide content from: - Emerson Murphy-Hill - Reid Holmes - Mehdi Mirakhorli - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture SE2: Introduction to Software Architecture Mei Nagappan

  2. What is Architecture? ‣ Encyclopedia Britannica defines it as ‣ both the process and the product of planning, designing, and constructing buildings or any other structures MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  3. The three original principles ‣ Roman architect Vitruvius (early 1st century AD) in his book De Architectura ‣ Durability – a building should stand up robustly and remain in good condition. ‣ Utility – it should be suitable for the purposes for which it is used. ‣ Beauty – it should be aesthetically pleasing. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  4. [TAILOR ET AL.] The architect ‣ Distinctive role. ‣ Broadly trained. ‣ Requirements, design, implementation, & use. ‣ Has a keen sense of aesthetics. ‣ Strong understanding of the domain. ‣ What are these for buildings? ‣ What are these for software? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  5. [TAILOR ET AL.] What common benefits can software gain from an architect that a building gets from its architect? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  6. Analogy to Buildings ‣ Arch focuses on client’s needs ‣ Iteration on a set of blueprints, refining as req ‣ Intermediate plans, mockups, prototypes ‣ Created by specialists, not end users ‣ Structure induces properties (e.g., in a castle) ‣ Architects require broad training ‣ Leverage lessons from past generations MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  7. [TAILOR ET AL.] ‣ How is building architecture di ff erent from software architecture? ‣ MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  8. Shortcomings of Analogy ‣ We have much more experience with buildings ‣ Buildings are physical artifacts; SW is intangible ‣ Software industry is less di ff erentiated (e.g, no ‘exception specialists’) ‣ Anyone can write software ‣ Deployment and Ops are di ff erent ‣ Nature of dynamic load is di ff erent ‣ Changes are expected MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  9. Why do we need Architecture? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  10. The Software Equivalent MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  11. Architecture ‣ Architecture is: ‣ All about communication. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  12. Architecture ‣ Architecture is: ‣ All about communication. ‣ What ‘parts’ are there? MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  13. Architecture ‣ Architecture is: ‣ All about communication. ‣ What ‘parts’ are there? ‣ How do the ‘parts’ fit together? MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  14. Architecture ‣ Architecture is: ‣ All about communication. ‣ What ‘parts’ are there? ‣ How do the ‘parts’ fit together? ‣ Architecture is not: ‣ About development. ‣ About algorithms. ‣ About data structures. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  15. What is Software Architecture? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  16. What is Software Architecture? ‣ The conceptual fabric that defines a system ‣ All architecture is design but not all design is architecture. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  17. What is Software Architecture? ‣ The conceptual fabric that defines a system ‣ All architecture is design but not all design is architecture. ‣ Architectures capture three primary dimensions: ‣ Structure ‣ Communication ‣ Nonfunctional requirements MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  18. ANSI/IEEE 1471-200 ‣ “Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution” MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  19. Logical Web Architecture cs846.html index.html cs446.html a1.html a2.html project.html MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  20. Physical Web Architecture MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  21. Dynamic Web Architecture GET cs446.html a c . o o l r e 200 t a w u GET 200 scholar.html a m c . o e c l g . r o e o t s g d n e i r f MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  22. Non-functional requirements ‣ Technical constraints: restrictions made for technical reasons ‣ Business constraints: restrictions made for business reasons ‣ Quality attributes: e.g., the ‘ilities’ ‣ Scalability ‣ Security ‣ Performance ‣ Maintainability ‣ Evolvability ‣ Reliability/Dependability ‣ Deployability MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  23. Why is Software Architecture important? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  24. Eoin Woods ‣ “Software architecture is the set of design decisions which, if made incorrectly, may cause you project to be cancelled.” MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  25. Why is Software Architecture important? ‣ Architecture focuses on those aspects of a system that would be di ffi cult to change once the system is built. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  26. Why is Software Architecture Difficult? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  27. Philippe Krutchen ‣ “The life of a software architect is long (and sometimes painful) succession of sub-optimal decisions made partly in the dark. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  28. [TAILOR ET AL.] What makes building systems so hard? ‣ Young field. ‣ High user expectations. ‣ Software cannot execute independently. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  29. Difficulties Classified ‣ Incidental di ffi culties [Brooks MMM]. ‣ Problems that can be overcome. ‣ Essential di ffi culties [Brooks MMM]. ‣ Those problems that cannot be easily overcome. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  30. [TAILOR ET AL.] Essential Difficulties ‣ Complexity ‣ Grows non-linearly with program size. ‣ Conformity ‣ System is dependent on its environment. ‣ Changeability ‣ Perception that software is easily modified. ‣ Intangibility ‣ Not constrained by physical laws. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  31. [TAILOR ET AL.] Attacks on Essential Difficulties ‣ High-level languages. ‣ Development tools & environments. ‣ Component-based reuse. ‣ Development strategies. ‣ Incremental, evolutionary, spiral models. ‣ Emphasis on design. ‣ Design-centric approach taken from outset. MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend