introduction to software architecture
play

Introduction to Software Architecture Reid Holmes Architecture - PowerPoint PPT Presentation

Introduction to Software Architecture Reid Holmes Architecture Architecture is: All about communication. What parts are there? How do the parts fit together? Architecture is not: About development. About


  1. Introduction to Software Architecture Reid Holmes

  2. 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. REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  3. What is Software Architecture? ‣ The conceptual fabric that defines a system ‣ All architecture is design but not all design is architecture. ‣ Architecture focuses on those aspects of a system that would be di ffi cult to change once the system is built. ‣ Architectures capture three primary dimensions: ‣ Structure ‣ Communication ‣ Nonfunctional requirements REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  4. Logical Web Architecture cs846.html index.html cs446.html a1.html a2.html project.html REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  5. Physical Web Architecture REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  6. 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 REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  7. 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 REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  8. 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” REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  9. Eoin Woods “Software architecture is the set of design decisions which, if made incorrectly, may cause you project to be cancelled.” REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  10. Philippe Krutchen ‣ “The life of a software architect is long (and sometimes painful) succession of sub-optimal decisions made partly in the dark. REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  11. [TAILOR ET AL.] So what? ‣ What makes building systems so hard? ‣ Young field. ‣ High user expectations. ‣ Software cannot execute independently. ‣ Incidental di ffi culties [Brooks MMM]. ‣ Problems that can be overcome. ‣ Essential di ffi culties [Brooks MMM]. ‣ Those problems that cannot be easily overcome. REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  12. [TAILOR ET AL.] Essential Difficulties ‣ Abstraction alone cannot help. ‣ 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. REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  13. [TAILOR ET AL.] Attacks on Complexity ‣ High-level languages. ‣ Development tools & environments. ‣ Component-based reuse. ‣ Development strategies. ‣ Incremental, evolutionary, spiral models. ‣ Emphasis on design. ‣ Design-centric approach taken from outset. REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  14. [TAILOR ET AL.] Architectural approaches ‣ Creative ‣ Engaging ‣ Potentially unnecessary ‣ Dangerous ‣ Methodical ‣ E ffi cient when domain is familiar ‣ Predictable outcome ‣ Not always successful REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  15. [TAILOR ET AL.] Design process 1.Feasibility stage: • Identify set of feasible concepts 2.Preliminary design stage: • Select and develop best concept 3.Detailed design stage: • Develop engineering descriptions of concept 4.Planning stage: • Evaluate / alter concept to fit requirements, also team allocation / budgeting REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  16. [TAILOR ET AL.] Abstraction Definition: ‣ “A concept or idea not associated with a specific ‣ instance” Top down ‣ Specify ‘down’ to details from concepts ‣ Bottom up ‣ Generalize ‘up’ to concepts from details ‣ Reification: ‣ “The conversion of a concept into a thing” ‣ REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  17. [TAILOR ET AL.] Level of discourse ‣ Consider application as a whole ‣ e.g., stepwise refinement ‣ Start with sub-problems ‣ Combine solutions as they are ready ‣ Start with level above desired application ‣ e.g., consider simple input as general parsing REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

  18. Separation of Concerns ‣ Decomposition of problem into independent parts ‣ In arch, separating components and connectors ‣ Complicated by: ‣ Scattering: ‣ Concern spread across many parts ‣ e.g., logging ‣ Tangling: ‣ Concern interacts with many parts ‣ e.g., performance REID HOLMES - CPSC 410: ADVANCED SOFTWARE ENGINEERING

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