CpSc 372
Exam 1
Name:_______________________________________________
Answer any FIVE of the six questions. All questions count the same - plus/minus 20 points.
Performance - The C/S style enhances performance when there is sufficient load to take advantage of two processors. Otherwise it diminishes performance.
Security - The C/S style diminishes security by providing more public interfaces through which an intruder might enter.
Availability - The C/S style enhances availability by allowing for the duplication of resources.
Functionality - The C/S style is neutral relative to functionality.
Usability - The C/S style is neutral relative to usability.
Modifiability - The C/S style enhances modifiability by allowing the separate pieces to be modified without disturbing other pieces.
Portability - The C/S style enhances by allowing clients to address servers through an intermediary that knows the current location of the server.
Scalability - The C/S style enhances scalability by allowing for multiple servers when needed.
Reusability - The C/S style enhances reusability by allowing servers to be written at a sufficiently general level to be used in many systems.
Integrability - The C/S style enhances integrability through the middleware that joins together the client and server.
Testability - The C/S style enhances testability slightly by allowing each piece to be tested separately.
Conceptual integrity - The C/S style diminishes integrity by reducing the coupling between pieces.
Buildability - The C/S style enhances buildability by allowing for the stubbing of separate pieces.
Correctness - The C/S style enhances correctness because it enhances testability.
Completeness - The C/S style is neutral relative to completeness.
The requirements process has changed by decreasing the effort required to change a requirement.
The process is more practical because requirements do change for a number of reasons and thus it is practical to address that reality in the process definition. The process is more practical because it is more efficient. By identifying and fixing problems earlier in the process, the costs are cheaper.
The input/entry criteria and the output/exit criteria show the relationships with the previous phases in the process and the next phases in the process. Each input must have been created by some previous phase and the entry criteria states what must have happened previously. The output will provide the input to one or more future phases and the exit criteria state what has been accomplished in the current phase.
The metrics section describes quantitative measures that make it possible to evaluate specific properties.
Description - The design phase produces the blueprint for a soultion to the problem described in the requirements.
Responsibility - Software architects provide a coarse-grained structure. This structure is made more fine-grained by designers/developers.
Input - the statement of requirements, standard architectures and standard design patterns
entry criteria - The requirements model has been judged sufficiently complete, correct and consistent to support design.
Activities - blob decomposition, application of standard design patterns to the decomposed pieces, maximization of qualities, definition of component interfaces and specification of semantics of each method.
Output - AN architectural model, design model, interface definitions, algorithm definitions
exit criteria - The design has been validated against the requirements and the qualities.
metrics - measures of coupling and cohesion
Alternative scenario - The teller makes a deposit to the specific account. The system responds by displaying the balance after the deposit.
Exception scenario - The teller enters an incorrect account number. When the system attempts to retrieve the account number it is unable to do so. It displays a message to the Teller and then requests an account number again.
Draw the use case diagram for these two use cases. What, if any, relationship exists between these two use cases? If there is a relationship what is it and why is there that particular relationship?



List two qualities that are enhanced by this decomposition. List one quality that is diminished by this decomposition. Justify each of the decisions that you make.
enhanced quality 1 ) modularity/modifiability - the smaller pieces are easier to change and manage because the scope of each is more narrow
enhanced quality 2) testability - the more narrowly focused pieces will each have a smaller specification. It will be easier to achieve adequate test coverage.
diminished quality) performance - may have been diminished by requiring communication between two pieces