Friday, March 16, 2007

Yesterday`s post I talked about the answer to part C of the CAD architecture question. The answer seems to want you to talk about the two ways to do architectural analysis of questioning and measuring. Though I see this as the answer especially because of a comment I got from my adviser while going over a previous test I cannot pass over this question without a complaint. It seems that he implied an answer from the book "Software Architecture in Practice by Bass, Clements and Kazaman". The answer comes in the introduction to part III of the book. The questioning part of the answer seems to be incomplete. In this book the answer comes from the point of view of the Architectural Business Cycle or ABC. In other words you would be providing a questionnaire to your stakeholders and others involved in the project. I say the question on the test is incomplete because it affirms that the requirement is already concrete. The questioning technique described in this book happens early enough in the process that it could be that meeting this requirement mean not meeting it at all. An architect would talk to the stakeholder and discover that through push back with cost it is not really 3 seconds but longer is tolerable. Example: You would need a local workstation with replicated storage to be able to open any drawing within 3 seconds. We have decided to use centralized storage and allow for network latencies that would lead to longer than a 3 second retrieval time. Because of my learning disability I read this question literally. The answer type given above is not in my arsenal to answer the question. It is ruled out because the question is written affirming the concrete 3 second retrieval time. Also, experience plays a part in the previous answer type. This kind of experience, even hypothetically, I don`t have. This kind of architectural call limits my thinking for answering the test question. In the real world I would have to shift over to prototypes and measuring to really answer the architectural questions. As you know from previous posts I was not give credit for that kind of answer an previous tests even though I had a very complete mathematical derivation. Another type of questioning is internalized questioning. This was not implied as the correct answer by my adviser at our meeting. The reason I think this is that the implied answer comes from a different book mentioned above. This internalized type of questioning comes from "Applying UML and Patters by Craig Larman". This kind of internalized questioning is described in relationship to the UP process and how the Software Architecture Document would be done. The author talks about FURPS+. It is a mnemonic developed by Robert Grady while at HP. This mnemonic stands for Functionality, Usability, Reliability, Performance, and Supportability. The plus part is for Design Requirements, Implementation Requirements, Interface Requirements, and Physical Requirements. The questioning is done as an exercise in learning about the system. This kind of questioning helps to systematically go through parts of the system and make educated guesses about meeting requirements. Then after the guesses recording them in the SAD as risk and possible solution. The cost factors are also used in evaluation as above in the other type of questioning but the requirement is more concrete. Through iteration in the UP it may be revisited but the analysis is done and through educated guess you may be able to say if you can or cannot meet the requirement before implementation. I see differences in the approaches to questioning. Still neither is as concrete as measuring. They both take place it seems not in relationship to a concrete requirement as how the question was phrased on the test. So I am back to being stumped on how to answer the question. It seems as both are wrong in some way. In the real world you would either have an educated guess that would be supported by your man paying the bills or they would ask you to have more concrete metrics by measuring prototypes. The test writer needs to re-write this question.