conceptual and concrete architecture
play

Conceptual and Concrete Architecture Linux Case Study Conceptual - PowerPoint PPT Presentation

Conceptual and Concrete Architecture Linux Case Study Conceptual Architecture Intent direct attention at an appropriate decomposition of the system without delving into the details of interface specification [1]


  1. Conceptual and Concrete Architecture “Linux Case Study”

  2. Conceptual Architecture Intent ● “ direct attention at an appropriate decomposition of the system without delving into the details of interface specification ” [1] ● appropriate decomposition – focus on key constructs & abstractions rather than on technical details [1] R. Malan, D. Bredemeyer, Software Architecture Action Guide. 2

  3. Conceptual Architecture Includes ● what a system does (functionality) ● identification of significant components & connectors – component responsibilities – component interactions – control & data flow ● architectural (non-functional) mechanism – e.g. security – other crosscutting concerns 3

  4. Conceptual Architecture Provides ● communicating architectural details with – stakeholders (technical & non-technical) Input artifacts ● reference architecture (more on this later) ● requirements (functional & non-functional) ● documentation & code 4

  5. Conceptual Activities ● capturing system functionality – requirements to use case descriptions ● capture system properties – evolution, system load, portability ● capture system constraints – legacy components, third party components – resources, time, – technical capabilities 5

  6. Concrete Architecture Intent ● implementation specific architecture – decomposition into (implementation specific components) – identification of actual relationships ● actual – e.g. identify third party, COTS components 6

  7. Architectural Drift & Erosion Architectural erosion – conceptual architectural violations Architectural drift – concrete architecture shifts away from conceptual architecture – technical details need to be flushed out here 7

  8. Concrete Architecture Includes ● what a system does (functionality) ● how will it do it (implementation) ● identification of significant components & connectors – component responsibilities – component interactions – control & data flow ● realization of architectural (non-functional) mechanisms 8

  9. Concrete Architecture Input Artifacts ● ask the class ● can we extract concrete architecture from code – isn't that reveres engineering? – choice of tools 9

  10. Example Linux ● lack of formal architecture – conceptual or concrete ● considerable code size ● fragmented documentation – individual systems well defined but not the overall ● based on – Linux as a Case Study: Its Extracted Software Architecture, Ivan T. Bowman, Richard C. Holt, Neil V. Brewster, 2005 10

  11. Linux Conceptual Architecture Input artifacts ● Unix & Minix descriptions ● Linux documentation seven kernel sub-systems ● memory management depends on file system for swapping ● initialization depends on all ● library sub system forms the core 11

  12. Linux Conceptual Architecture File Subsystem ● data abstraction architectural style ● facade pattern – virtual file system – system call interface ● coupling & dependency – support various hardware devices – logical file system formats 12

  13. Extraction of Concrete Architecture LSEdit ● Ian Davis guest presentation on May 17, 2010 General technique ● inspection – source (directory structures, packages, file naming etc) – compiled artifacts ● clustering – grouping of components ● discovery – inter-component dependency 13

  14. Linux Concrete Architecture Observations ● same subsystem decomposition as conceptual arch ● what happened to dependency relationships? – 19 vs 37 out of 42 14

  15. Dependency at a Glance Conceptual Architecture Concrete Architecture 15

  16. Linux Concrete Architecture Dependencies explained ● “avoided existing interfaces for better efficiency” 16

  17. Linux Concrete Architecture File Subsystem 17

  18. Linux Conceptual Architecture Dependencies under a microscope ● network interface subsystem on logical file subsystem – SMBFS & NCPFS ● network interface calls functions from the file subsystem 18

  19. Linux Conceptual Architecture Dependencies under a microscope ● process scheduler on device driver subsystem – printk to print messages to the console – printk makes a call to device driver routine 19

  20. Linux Conceptual Architecture Dependencies under a microscope ● all file subsystem depends on IPC – IPC subsystem implements reusable synchronization primitives, used globally 20

  21. Conceptual Vs. Concrete Comparisons ● subsystem discovery pretty accurate – despite different input artifacts ● concrete architecture has more inter-component dependencies – architectural erosion and drift ● violations – in the name of to improvements (performance) 21

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