basics of sw architecture
play

Basics of SW Architecture Reid Holmes Lecture 4 - Thursday, - PowerPoint PPT Presentation

Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Basics of SW Architecture Reid Holmes Lecture 4 - Thursday, September 22 2011. Proposal


  1. Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Basics of SW Architecture Reid Holmes Lecture 4 - Thursday, September 22 2011.

  2. Proposal Presentations ‣ Finish the last presentation. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  3. Waterloo Event Finder Mike Ye Martin Lacombe REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  4. Main functionalities - Student REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  5. Main functionalities - Organizers REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  6. [TAILOR ET AL.] So what? ‣ What makes building systems so hard? ‣ Young field. ‣ High user expectations. ‣ Software cannot execute independently. ‣ Incidental difficulties [Brooks MMM]. ‣ Problems that can be overcome. (e.g., ...) ‣ Essential difficulties [Brooks MMM]. ‣ Those problems that cannot be easily overcome. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  7. [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 - SE2: SOFTWARE DESIGN & ARCHITECTURE

  8. [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 - SE2: SOFTWARE DESIGN & ARCHITECTURE

  9. [TAILOR ET AL.] Architecture Analogies ‣ We live in them. ‣ We know (approximately) how they are built. ‣ Requirements. ‣ Blueprints (design). ‣ Construction (implementation). ‣ Use in practice. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  10. [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? REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  11. [TAILOR ET AL.] The architect How is building architecture different from ‣ software architecture? What common benefits can software gain from an ‣ architect that a building gets from its architect? REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  12. What is SW architecture? ‣ Definition: “The set of principal design decisions about the system” ‣ Blueprint for construction and evolution. ‣ Encompasses: ‣ Structure ‣ Behaviour ‣ Interaction ‣ Non-functional properties REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  13. Prescriptive vs descriptive ‣ Prescriptive architecture dictates how the system will be built a priori . ‣ (as-conceived) ‣ Descriptive architecture captures how the system was actually built after the fact. ‣ (as-implemented) REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  14. Architectural degradation ‣ Drift ‣ Introduction of changes that are not captured in the current architecture but do not violate it. ‣ Erosion ‣ Introduction of changes that violate the current architecture. ‣ How can this happen? REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  15. Architectural recovery ‣ [ICSE 1999: Bowman, Holt, and Brewster] ‣ Conceptual architecture ‣ How developers think about the system. ‣ Focuses on meaningful relationships. ‣ Concrete architecture ‣ How the system was actually built. ‣ Necessary: the devil is in the details. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  16. Components ‣ Elements that encapsulate processing and data at an architectural level. ‣ Definition: ‣ Architectural entity that: ‣ encapsulates a subset of functionality. ‣ restricts access via explicit interface. ‣ has explicit environmental dependencies. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  17. Connectors ‣ Definition: ‣ An architectural entity tasked with effecting and regulating interactions between components. ‣ Connectors are often more challenging than components in large heterogenous systems. ‣ Often consists of method calls, but be much more. ‣ Examples? ‣ Often provide application-independent interaction mechanisms. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  18. Configurations ‣ Bind components and connectors together in a specific way. ‣ Definition: ‣ An architectural configuration, or topology, is a set of specific associations between the components and the connectors of the system’s architecture. ‣ Differentiates a bag of components and connectors from an implementable system. REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  19. Architectural styles ‣ Some design choices are better than others. ‣ Experience can guide us towards beneficial sets of choices (patterns) that have positive properties. ‣ Such as? ‣ An architectural style is a named collection of architectural design decisions that: ‣ Are applicable to a given context. ‣ Constrain design decisions. ‣ Elicit beneficial qualities in resulting systems. REID HOLMES - 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