Architecture Design Exercise

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.
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
– 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
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
• 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
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

similar documents