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

Recommend


More recommend