Uploaded by ttoghett

lab work2

advertisement
Software Architecture
Assignment 2. Project Risk Assessment and analyze architecture diagrams
Name: ________________________
Part 1. Risk-Based Architecting
PURPOSE
This part will give you concrete experience thinking about views and the questions that they can help answer. You
will also revisit the high-priority risks you identified in Lab work 1 and identify which of these are architectural
risks that can be mitigated through design choices. For each architectural risk, you will begin creating a mitigation
strategy by writing questions about the system that will determine whether the design will address it.
ACTIVITIES
Perform each of the following activities. If you have questions, issues, or doubts, please ask for help and do not just
guess.
1.
You should begin a Word document to record the questions that will be the product of today’s exercise..
Create two sections in the document: 1 for the questions created in Activity 3 below and one for 2 for
questions created in Activity 6.
2.
Discuss the three types of views.
3.
You should select a viewtype and add one question to the Word document that could be answered by
consulting a view of that kind.
4.
Review the three questions and confirm that you all agree that they are appropriate for their associated type
of view.
5.
Open the spreadsheet your group created in lab work 1.
6.
Beginning with your highest priority risk, decide whether each risk is a management risk or an architectural
risk. Enter “Management” or “Architectural” in Column E
7.
Place an X in Column F next to any management risks.(Because architectural mitigation strategies are
likely to solve management risks, we will consider these mitigated for the purpose of this course.)
8.
Discuss the remaining architectural risks. For the purposes of this exercise, reformulate each risk as a
question about the architecture. For instance, if you have a risk listed that is concerned with allowing a
person to withdraw more than $500/day, you could restate that as “Does the withdrawal process include a
check on cash dispensed on this account so far today before the cash is dispensed?”
9.
For each question, identify which viewtype can be used to answer the question.
10. Record the question in Column G of the spreadsheet and the identified viewtype in Column H.
Note: If any of your five highest risks are identified as management risks, then continue down the risk list
until you have identified, and written questions for, at least five architectural risks.
Part 2. How much architecture?
PURPOSE
This part will give you concrete experience thinking about how to use risks as a guide to help you limit your focus
on architecting.
ACTIVITIES
Perform each of the following activities.
1.
You should reopen the Risk Assessment Spreadsheet last used in Part 1. At two new columns (I and J)
headed Mitigates and Risk.
2.
Refer to the prioritized list of risks that were identified in Part 1 as being architectural. Starting with the
highest priority risks on the sub-list, discuss how the design of the system impacts the risk for the top five
risks you wrote questions for in Part 1. You has come to consensus on the impact, discuss design choices
that could:
a.
Help mitigate the risk.
b.
Leave the system at risk.
For instance, if a risk is that the system is expected to require frequent modification then a design choice
that would help mitigate the risk would be to require strict adherence to coding style and naming
conventions. A choice that would leave the system at risk would be to allow unrestricted communication
among modules.
Record a description of responses to a and b above in the new columns of the spreadsheet.
Part 3. Analyze architecture diagrams
The purpose of this part is to give you concrete practice in evaluating software abstractions.
In this part, you will study several architectural diagrams to identify how they could be used. You will also practice
identifying and classifying ambiguities.
ACTIVITIES
Perform each of the following activities. If you have questions, issues, or doubts, please ask for help and do not just
guess.
1.
Review the purpose of each of the models in the canonical model structure. Think about them in terms of what
kinds of elements each depicts and what they are used for – what kinds of questions they can help answer.
2.
For each of the cartoons on the following pages, do the following:
a.
Discuss what kinds of questions the diagram could help answer then create and record one question
that the cartoon could help answer.
b.
Compile the identified ambiguities into a single list to be submitted. Do not submit duplicates – as you
combine the ambiguities discuss each to confirm that it is in fact an ambiguity and that it is not a
duplicate of one already recorded.
c.
For each ambiguity, decide whether or not you feel the ambiguity is likely an error and should be
referred back to the architect or whether it is clearly something that can be left open to downstream
design and coding. On your paper record whether it should be Referred or Left Open. If your decision
that it should be referred then describe why you things so.
VIEW DIAGRAMS:
A.
B.
C.
D.
E.
Download