CpSc 881

Spring 2002

Exam 2

 

Name ________________________________

 

Answer 5 of the 6 questions. All questions count the same amount. If you answer all 6 questions I will count the 5 WORST scores.

 

 

  1. The architecture creation process fits into the overall software development process between the requirements and detailed design phases.
    1. Give a detailed description of the generic architecture creation process.
    2. Describe how this process would be modified to produce the architecture for the system that runs an e-commerce web site.
    3. What benefit does the availability of a reference architecture that fits the problem at hand bring to the project creating the architecture?

 

 

  1. The steps include:

Identification of architectural drivers (requirements)

Identification and prioritization of quality attributes involving stakeholders

Architecture definition by applying unit operations/styles/patterns

Architectural evaluation

Architecture packaging and documentation

Architecture refinement

  1. Since web sites are architecturally very similar, the process would begin with the J2EE reference architecture. Also, the quality attributes for this system would have different priorities from other types of systems. For example, security would have a very high priority.
  2. A reference architecture provides a head start. It provides a decomposition that already has several features, such as the 4 layers in the J2EE architecture. It also provides a set of patterns that guide further decomposition.
  1. The purpose of an architecture is to communicate a vision of the structure of the software to all of the stakeholders. The architecture encompasses much information with many different perspectives.
    1. Describe how UML is used to document the architecture.
    2. Describe how the performance quality attribute would be documented in the architecture description.
    3. Describe how a required function is documented in the architecture description.

 

  1. Component interfaces can be defined using the class diagram syntax. This diagram also shows the structural connections among components. The deployment diagram is used for the physical view. The task diagram is used for the process view. Dynamic relationships are shown using sequence diagrams.
  2. The performance attribute could be documented by two parts. Each component interface can define the worst case latency for implementations of the interface. Each connector can also be labeled with the worst case latency for that flow. The overall performance of an algorithm would be the sum of the pieces along the path.
  3. A required function is first captured in a use case as a requirement. Then the function appears as a method specification in some interface specification.
  1. A software product line provides an environment in which there is significant reuse of software. The organization is divided into two parts: those who create assets and those who use assets to create products.
    1. Describe the differences between an architecture intended for a product line and an architecture intended for one specific product in the product line.
    2. How can variations between products be shown in the product line architecture?
    3. How does the product line architecture enhance reuse in building products?

 

  1. The architecture intended for a product line describes points at which variation is possible and describes the allowable alternatives at each point.  The architecture for a product shows the variations that have been chosen for this particular product.
  2. Variations are shown by using the specialization relationship among a set of interfaces. The process diagram shows a general process and then the set of processes that are possible replacements for the general process.
  3. The product line architecture provides more general interface definitions that cover a wider scope than a single product architecture and are the basis for implementing the set of reusable components.   {The question asks about ENHANCING reuse not just how to reuse.}
  1. Unit operations, styles and patterns are devices that allow the reuse of architecture knowledge.
    1. The unit operation, part/whole, is used to take the overall user interface and create View and Controller modules. What functionality is placed in each module? What quality attributes are enhanced by applying this operation?
    2. Which quality attributes are enhanced by applying the layered style? Which are degraded?
    3. The pipe and filter style could be used to represent the path of a transaction from the customer to the database. Give a detailed description of the application of this style to the transactions in the e-business project.

 

  1. The View module contains the functionality to present information to the human user. The Controller module provides the functionality related to interaction with the user such as mouse events. Modifiability and extensibility are enhanced for this transformation.
  2. The layered style enhances modularity, modifiability and extensibility.  The layered style degrades performance and security.
  3. The pipe and filter style handles transactions by transforming the data at the filters and passing data to the next transformation via a pipe. Pipes may be inter-process or intra-process. The filters for transactions include security authentication, product selections, query construction, and payment verification.   

 


 

  1. The architecture community has defined three levels of architecture. The lowest level is the specific architecture for a product. The second level is a reference architecture that generalizes on specific architectures. The third level is a reference model, which generalizes even further.
    1. What are the implications of having a reference model for a market in components? Which is more likely to promote an active component market, a reference model or a reference architecture?
    2. Consider the CORBA reference model below. Each box is a conceptual module that would be broken into more specific modules, each of which provides some of the functionality of the conceptual module. What unit operation is used to create the new modules.

 

 

    1. What quality attributes are enhanced by the use of IDL? Are any degraded? If so, which ones?

 

  1. A reference model is more general than a reference architecture. Therefore a reference architecture promotes a component market while a reference model promotes a market of complete products.
  2. Operations such as abstraction and layering would be used. Part/whole is used to provide details within each module rather than to create new modules.
  3. Interoperability and modifiability are enhanced. Performance can be degraded.
  1. The second project was an e-business system that was structured using the J2EE 4-tiered architecture.
    1. Describe the quality attributes that were enhanced by moving from a 3-tiered architecture to a 4-tiered architecture.
    2. Where in the architecture is the module that would use the customer’s characteristics to determine which of the available insurance policies should be shown to the customer for consideration?
    3. Describe one pattern that you used in the architecture definition. Why did you use it? What attributes did it enhance?

 

  1. Modifiability is enhanced and performance is enhanced if different layers are placed on different processors. Maintainability is also upgraded.
  2. The business tier includes business logic about which attribute values map to which products.
  3. Your choice