architectural decomposition
play

Architectural Decomposition Mei Nagappan What is SW architecture? - PowerPoint PPT Presentation

Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture - Steve Easterbrook Architectural Decomposition Mei Nagappan What is SW


  1. Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture - Steve Easterbrook Architectural Decomposition Mei Nagappan

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

  3. 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  4. Connectors ‣ Definition: ‣ An architectural entity tasked with e ff ecting 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. ‣ Frequently provide application-independent interaction mechanisms. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  5. 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. ‣ Di ff erentiates a bag of components and connectors from an implementable system. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  6. Topological Goals ‣ Minimize coupling between components ‣ The less components know about each other, the better (also known as information hiding). ‣ Maximize cohesion within each component ‣ Components should be responsible for a logical service; extraneous functionality should not be present. X  [Steve Easterbrook: http://www.cs.toronto.edu/~sme/CSC302/notes/04-package-diagrams.pdf] MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  7. Abstraction ‣ Complex problems can be approached by abstracting away unnecessary detail ‣ Focus on the key issues while eliding extraneous detail (some of these details will be pertinent during more detailed design activities) ‣ In software two classes of abstraction dominate: ‣ Control abstraction ‣ (e.g., structured programming) ‣ Data abstraction ‣ (e.g., abstract data types) MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  8. Decomposition ‣ Top-down abstraction is also called decomposition ‣ Break problem into independent components ‣ Describe each component ‣ Criteria for decomposition can include: ‣ Implementing teams ‣ Application domains (aka obvious partitions) ‣ Parallelization ‣ Make typical cases simple, and exceptional cases possible MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  9. Conway’s Law “The structure of a software system reflects the structure of the organization that built it” MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  10. Conway’s Law People A H J D G B C I F K L E Modules 10 1 8 7 3 4 9 2 11 12 6 5 [Steve Easterbrook: http://www.cs.toronto.edu/~sme/CSC302/notes/04-package-diagrams.pdf] See: Valetto, et al., 2007. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  11. Decomposition isn’t always great ➜ Decomposition can work well: � E.g. designing a restaurant menu Design appetizers menu Choose style Design entrees menu Assemble and theme and edit Design desserts menu Design drinks menu ➜ Decomposition doesn’t always work � E.g. writing a play: write character 1’s part Choose a set of write character 2’s part character parts merge write character 3’s part …etc… ➜ Decomposition isn’t always possible � for very complex problems (e.g. Managing the economy) � for impossible problems (e.g. Turning water into wine) � for atomic problems (e.g. Adding 1 and 1) HTTP://WWW.CS.TORONTO.EDU/~SME/CSC444F/SLIDES/L05- DECOMPOSITIONABSTRACTION.PDF MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  12. Activity ‣ Decompose the garage door opener example from last class. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  13. Architectural representations ‣ Software architecture is fundamentally about facilitating technical communication between project stakeholders ‣ An opaque architecture has no value as it will not be adequately understood ‣ Properties of representations: ‣ Ambiguity: Open to more than one interpretation? ‣ Accuracy: Correct within tolerances ‣ Precision: Consistent but not necessarily correct MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  14. NOAA [http://celebrating200years.noaa.gov/magazine/tct/tct_side1.html] MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  15. Architectural views ‣ Architectural models can be overwhelming ‣ Di ff erent views focus on specific subsets of elements or subsets of relationships ‣ Views often focus on specific concerns or scenarios within a system ‣ Views overlap; maintaining consistency between views is challenging MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  16. Component diagram ‣ Captures components and relationships. ‣ Required and provided APIs explicitly recorded. IBM [http://www.ibm.com/developerworks/rational/library/dec04/bell/] MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  17. Sequence diagram ‣ Focus on inter-component collaboration. ‣ Capture behaviour for specific runtime scenarios. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  18. Activity ‣ Sequence diagram for one use case of the garage door opener. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  19. Deployment diagram ‣ Provide mapping between physical devices VP [http://www.visual-paradigm.com/VPGallery/diagrams/Deployment.html] MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  20. Activity ‣ Deployment diagram for the garage door opener example from last class. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  21. Statechart diagram ‣ More formal description of system behaviour. ‣ Poor mapping between states and components. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  22. 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) MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  23. 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  24. 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE REID HOLMES - SE2: SOFTWARE DESIGN & ARCHITECTURE

  25. Conceptual Architecture MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  26. Concrete 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