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

Recommend


More recommend