CpSc 372

Exam 1

 

 

Name:_______________________________________________

 

Answer any FIVE of the six questions. All questions count the same - plus/minus 20 points.

  1. The architect determines the various "structures" in a system. These are chosen to achieve high levels of desired qualities. Take FOUR of the qualities and describe how choosing the client/server architectural style affects these qualities in a system. Here is the list of qualities to choose from.
  2. 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.

     

     

  3. We discussed the waterfall, spiral, and the iterative, incremental approaches to software development. The industry has moved from waterfall to spiral and on to iterative incremental.

 

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. A process description is broken into several "phases". The description of each phase has several different pieces of information:
  1. description
  2. responsibility
  3. input
  4. entry criteria
  5. activities
  6. output
  7. exit criteria
  8. metrics

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

  1. Consider a software system that provides on-line banking services.
  1. List and describe two actors.
  2. Write the main scenario, one alternative path and one exception for one use case for this system.
  3. Explain how a use case that has a frequency of high and a criticality of low will be treated differently from a use case that has a high frequency and a high criticality by the project team.

 

  1. Teller and Branch Manager
  2. Main scenario - The teller requests the balance of a specific account. The system responds by requesting the account number for the account. The teller enters the account number. The system responds by using the account number to retrieve the account record; extracting the balance from the record; displaying the balance to the teller.
  3. 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.

  4. The use case with high frequency and high criticality will receive additional testing beyond that of the low criticality and high frequency.
  1. We have begun looking at the Unified Modeling Language (UML).
    1. Create class view - this use case describes creating a view of a program that shows all of the classes used in the program and connects each class to those classes with which the class some relation.
    2. Create class node - this use case describes the creation of an individual class node for inclusion in the representation.

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?

 

  1. Consider the following architectural transformation:

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