cisc 322
play

CISC 322 Software/Game Architecture Module 4: Examples of - PowerPoint PPT Presentation

CISC 322 Software/Game Architecture Module 4: Examples of Architectures (Linux) Ahmed E. Hassan Linux as a Case Study: Its Extracted Software Architecture Paper By: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster Slides By: Jack


  1. CISC 322 Software/Game Architecture Module 4: Examples of Architectures (Linux) Ahmed E. Hassan

  2. Linux as a Case Study: Its Extracted Software Architecture Paper By: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster Slides By: Jack ZhenMing Jiang

  3. Outline l Terminology l Conceptual Architecture l Concrete Architecture l Conclusions 3

  4. Terminology l Conceptual Architecture – How developers think of a system; Relations meaningful to developers – Analogy: Blue Print of the House – By Reviewing Existing Documentation – Essential Relations l Concrete Architecture – Relations that exists in a system – Analogy: Actual Architecture of the House – By Examining the Source Code – Implementation Specific Knowledge 4

  5. The Linux Kernel l Responsible for process, memory, and hardware device management – Different from the Linux System l Linux System: 10 KLOC in 1991 to 1.5 MLOC in 1998 l The studied Linux Kernel is 800 KLOC l Open Source 5

  6. Conceptual Architecture – Top Level 6

  7. Conceptual Architecture – File System 1 Façade Pattern Object Oriented Style 7 9/6/18

  8. Concrete Architecture – Extraction Methodology Control Flow Data Flow Manually -Group Directory to Subsystems -Naming Conventions Feedback 8 9/6/18

  9. Concrete Architecture – Top Level 9 9/6/18 Jack ZhenMing Jiang

  10. Concrete Architecture – File System 10 9/6/18 Jack ZhenMing Jiang

  11. Concrete Architecture – File System 1 2 11 9/6/18 Jack ZhenMing Jiang

  12. Concrete Architecture – Logical File System 2 1 12 9/6/18

  13. Why Conceptual Architecture and Concrete Architecture Not Match? l Missing Relations in Conceptual Architecture l More Functionalities – For example, Process Scheduler l Use Different Mechanisms l Improve Efficiency by Bypassing Existing Interfaces l Exist for Developer Expediency – “The read-only stuff doesn’t really belong here, but any other place is probably as bad and I don’t want to create yet another include file.” 13

  14. What To Do Next? l Restructure to Remove Unexpected Dependencies – Header Files – Lower Coupling l Refine Conceptual Architecture – Not Hinder System Understanding 14

  15. Conclusions l Conceptual and Concrete Architecture for the Linux Kernel l Similar Work Needs to Be Done for the Firefox Report l Sample Reports: – Conceptual Architecture: http://plg.uwaterloo.ca/~itbowman/CS746G/ a1/ – Concrete Architecture: http://plg.uwaterloo.ca/~itbowman/CS746G/ a2/ 15

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