CpSc 372

Exam 1

 

Name______________________________________________

 

Answer any FOUR of the five questions. Place a large X on the question you are omitting. If you answer all five, the one on which you score the best will be dropped. All questions are counted the same: 25 points each. Answer all parts of each question. By signing your name below you acknowledge that you have neither given nor received help on this exam by any means other than those described to you. You are not allowed to browse the internet nor are you allowed to send/receive any email.

 

 

 

 

signature


 

 

1.      Modeling

a.       Three criteria for a good model are: complete, consistent, and correct. What does it mean for a sequence diagram and a state diagram to be consistent? See the specific example on the next page but answer the general question.

 

The messages in the sequence diagram follow the same sequence as one complete path in the state diagram.

 

b.      We have used three modeling languages: SysML, UML, and AADL. Explain the DIFFERENCES among them. In other words why would we want to use all three and not just select one?

 

Each has a different fundamental story to tell and a different role to support but the story relates to the stories told in the other languages.

 

c.       We looked at the class diagram, the sequence diagram, and state diagram as a set of complementary diagrams. What is the relationship between each pair of diagrams?

 

Class -> sequence: Every messaging arrow in a sequence diagram corresponds to the methods defined in a class definition in a class diagram.

Sequence -> state: The sequence of the arrows follows one of the allowable paths in the state diagram.

State -> class: Each state is defined by a pattern of values for the attributes defined in the class’s definition.

 

d.      A model element can be split into a specification and an implementation. How does this split improve a model?

 

The implementation can be changed  without affecting the specification and without affecting the rest of the system.

 


 

 


2.      Design decisions

a.       We have addressed several design actions so far. Select one specific action and describe how it makes a complex design less complex.

 

We separated the concerns of currency and credit cards into two separate modules (one which was split again). This allows each module to focus on a small set of operations and attributes.

 

b.      How would your action from #2a be applied to a class that is part of the complex design?

 

One class would be made into multiple classes.

 

c.       A tradeoff considers both the things that are improved by a design decision and the things that are degraded. We separated the hardware and software into two different blocks in our block diagram. What about the design was improved by doing this and what was degraded?

 

The hardware definition and the software definition were both made easier to understand. It is possible that a change in the hardware might not be reflected in the driver software.

 

d.      The requirements for a product can be represented by use cases. Explain how.

 

A complete set of actors and a complete set of uses for each actor will result in a complete set of requirements.

 

 


 

3.      Domain modeling

a.       How can the criteria in #1a be used to evaluate a domain model for the vending machine example?

 

Completeness means a human domain expert will not be able to make any additions. Correctness means that the model faithfully captures the domain and a human expert will make no corrections. Consistency means that there are no contradictions, every statement is properly constrained.

 

b.      We first modeled the “sunny day” scenario where everything went well and then added the “rainy day” scenario where the purchased was cancelled. Why not do both at the same time?

 

The sunny day should be the most traveled paths and the ones we spend the most time creating.

 

c.       A domain model is more abstract than a specific product model. What does that mean? What is the relationship between the two models?

 

More abstract means fewer specific details, the more concrete model should take each abstract concept and elaborate it by adding information.

 

d.      For the vending machine domain list two non-functional requirements. Briefly describe how each can be achieved thru design.

 

Extensibility – achieved by having individual modules for each hardware piece

Modifiability – achieved by having layers

 

 


4.      Process Modeling

a.       We are using the EPF tool to help capture our process information. It is based on the SPEM standard. Explain the benefit of implementing anything ( a product, a process, or anything else) using applicable standards.

 

It is easier to interchange elements, it is easier to judge their completeness, it is more likely to be able to interplay with elements from another company

 

b.      The picture of RUP shows “iteration”s across the bottom and phases across the top, both on the horizontal axis. What is the relationship between the two?

 

Within each phase the disciplines will be applied in multiple iterations. That is, each skill will be used several times to add to or refine the output of the phase.

 

c.       The standard categories in EPF are roles, tasks, work products, and guidance. Explain the relationships among these elements.

 

A role defines who performs a task, a task defines what work products are created, and guidance describes what roles are to do, how a task is to be performed, and what a work product should contain.

 

d.      Pick one role we have explored so far and explain how that role contributes to the success of the development of a product.

 

The architect creates a structure that satisfies the requirements of the product and that guides the developers in what they need to do.

 

 


 

5.      Architecture

a.       We used a layered architecture for the first cut at the vending machine architecture. For a given module in some layer, what do we know about that module’s relationship with modules in the layer above it? What do we know about the relationship with modules that are in the same layer? See the example below.

 

The modules in the layer above are more abstract with regards the lower layers. For example, a more abstract view of the hardware. Modules in the same layer share a common level of abstraction.

 

b.      A port is a way into a module or a way out of a module.  What is the relationship between ports in two different elements that share a connection? What is the relationship between two ports in the same element.

 

Ports that share a connection must be opposite in direction. There is no fixed relationship among ports in the same module.

 

c.       A state diagram captures much of the information about a set of design elements and how they interact. Describe what a state represents and what a transition represents.

 

A state is a particular pattern of values of the attributes for whatever the state diagram represents. A transition describes how a legal state is transformed into another legal state.

 

d.      An architectural style such as “layered” or “client/server” are used when the architect wants to enhance specific non-functional attributes. What attributes does the layered architecture enhance? (in other words, why would we use that style?)

 

Portability and modifiability