140 likes | 164 Views
A-7E Case Study. CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Wk 1, Day 3. Today. A case history – this Ch 3 in Bass, et al. Time to work on Project 1 in class. A7E - Acknowledgements.
E N D
A-7E Case Study CSSE 477 Software ArchitectureSteve Chenoweth, Rose-Hulman InstituteWk 1, Day 3
Today • A case history – this • Ch 3 in Bass, et al. • Time to work on Project 1 in class.
A7E - Acknowledgements Some of the material in these slides is taken from Software Architecture in Practice, 2nd edition by Bass, Clements, Kazman. http://www.sei.cmu.edu/staff/ljb/, http://www.sei.cmu.edu/staff/clements/, http://www.sei.cmu.edu/staff/rkazman/.
Outline • History of A-7E Project • Decomposition Structure • Uses Relation • Process Structure
David Parnas David Weiss Paul Clements Kathryn Britton Naval Research Laboratory
A-7E History • Software Cost Reduction (SCR) • Information hiding • A-7E Project (1977 - 1987) • Requirements discovery • Reference Architecture • Software Architecture and Design • Partial implementation
A-7E Avionics • Sensors • air probe • radar • Displays • map • heads-up • Input • joystick • keypad
Module Guide • Provides decomposition structure of software architecture • Describes information hiding modules • Purposes: • avoid duplication and gaps • achieve separation of concerns • help maintainer find modules affected by a change request
Decomposition Goals • Each module should be simple enough to understand fully • Change in implementation of a module should not affect other modules • Ease of making change related to likelihood of need for change
Decomposition Structure • Hardware-Hiding Module • Behavior-Hiding Module • Software Decision Module • Application Data Type Module • Data Banker Module • Filter Behavior Module • Physical Models Module • Software Utility Module • System Generation Module
Uses Relation • Similar to "calls" relation • Layers of what can call what: • EC = Extended Computer at the bottom • AT = Application Data Type Module • DI = Device Interface Module • FD = Function Driver Module • SS = Shared Services Module • Allowed-to-use relation defined in advance to partition programming These two at the top
Process Structure • Cooperating Sequential Processes • synchronization via shared data • Types of processes: • Function driver processes (for avionics): • Periodic – run every 40 ms • Demand-driven – await a triggering event • Access procedure processes (less frequent): • Periodic – run every 100 ms – compute and store values • Procedures to get and use values when called • Offline scheduling – to run all this on single processor! Avoids scheduling decisions at runtime.
Process Consequences The offline analysis possible from the process design let lots of scheduling be pre-determined (prior to runtime): • Thread structure identified • Re-entrant procedures identified • Most-often invoked procedures identified • Mutual exclusion identified