90 likes | 314 Views
CSE Senior Design Architecture Design Exercise. This presentation describes the tasks of a group exercise that is conducted as a bridge between the CSE 4316 system definition phase and the CSE 4317 system implementation and test phases of the CSE Senior Design capstone project.
E N D
CSE Senior DesignArchitecture Design Exercise This presentation describes the tasks of a group exercise that is conducted as a bridge between the CSE 4316 system definition phase and the CSE 4317 system implementation and test phases of the CSE Senior Design capstone project.
Day 1+ • Document your assumptions and assertions about what the system must do and how those might affect your design. Fill in the gaps. • Consider extensibility and potential enhancements. • Consider potential user interaction, inputs and outputs • Consider system responses to expected scenarios • Consider usability, set-up, configurability, installation, etc. • Consider what is done in dedicated hardware, and what is done in software on a central processing unit • Document the guiding principles that you will employ in your architecture (meta-architecture) • Ensuring the 4-I’s? • Maximum flexibility for implementation approaches? • What are your guidelines for defining layers and subsystems? • What other “ilities” will guide you (portability, scalability, reusability, usability, interoperability, modifiability, reliability, …)?
Day 2+ • Define and document the layer structure and draw a layer diagram • What are the functions/operations that must exist (“bubble diagram”) • How can these functions/operations be best organized into layers? • What is the purpose of each layer (what services does it provide within the system – to which other layers)? • What must each layer do in order to provide these services (what functions must it perform)? • How is each layer differentiated from other layers? • Define and document key interfaces to/from each layer and the resultant interactions between layers. • External (may be “none” for some layers) • Internal (between layers) • Provide rationale for all of your choices • Consider independence, integrity and implementability • Consider complexity of your approach relative to other possible approaches
Homework Day 2+ • In your exercise groups: • Walk through your layer structure • Verify and refine the interfaces between layers • Refine the functions of each layer • Discuss and verify cohesion (high) within each layer • Discuss and verify coupling (low) between layers • Begin discussion of how you will break up each layer’s critical functions into subsystems • Discuss high-level data flows • Prepare a “2-minute, 2-sheet” presentation to defend your structure in our next class
Day 3+ • Define your subsystems • What is the purpose of each subsystem within the layer (what services does it provide– to which other subsystems)? • Is the function defined for the subsystem implementable? • Does the subsystem logically fit BEST in the layer you have it in? • Define the data flows to/from each subsystem • What data is needed (image, counter, text, etc.)? • What data is created (image, counter, text, etc.) • What is the created data used for, and by which other subsystem(s) is it needed? • Define the inter-subsystem relationships (producer-consumer relationship matrix) • Do they work? Can they be implemented?
Homework Day 3+ • In your exercise groups: • Walk through each subsystem • Refine the functions of each subsystem • Verify subsystem interfaces (direct correlation to that defined for layers?) • Discuss and verify cohesion (high) and coupling (low) for each subsystem • Verify producer-consumer relationships for all data elements • Prepare to discuss/defend your architecture
Accelerator Other?? Brake Steering Turn Signal Driver Input Layer Device Interface Subsystem Input Conversion Subsystem Display and speakers Presentation Layer Simulation Layer Video Mixer Subsystem Driver Action Subsystem AI Subsystem Mapping Subsystem Audio Subsystem Data Management Layer Data- base Data Access Subsystem AV Data Streamer Subsystem Reporting Subsystem Administrator PC Local Printer CSE 4317
Final Day(s) • Each design group will discuss your architecture • Key assumptions and guiding principles • Layer diagram (no subsystems yet) • Layer definitions (services provided) • Data flows and producer-consumer relationships • Key interactions between subsystems • Various “ilities” addressed, and how • Critical use case scenarios • Informal and interactive format • Each group will have 25 minutes, maximum, including allowance for interaction and Q&A • May use PowerPoint slides, document camera, handouts, or a combination of these