CpSc 372

Exam 1

 

Name______________________________________________

 

Answer any FOUR of the five questions. Place a large X on the page for the question you are not answering. If you answer all five, the one on which you did the best will NOT be counted. All questions are counted the same: 25 points each. Be certain to answer ALL parts of the questions you select to answer. Write clearly if you expect to be graded correctly. Answer the question that is asked and then stop. I reserve the right to deduct points for wasting my time.

You are allowed the notes you have taken, handouts, and printouts of assigned readings but no laptops or cellphones. No sharing of materials.

 


 

  1.  

 

    1. We used decomposition to create the Model/View/Controller structure. What benefits are derived from decomposing one module into two? what disadvantages are there?
    2. A pattern description presents the “forces” at work in the problem and how this pattern resolves them. Give an example of a typical force and how the Proxy design pattern affects that force.
    3. We have maintained a steady “rhythm” in this course with assignments due each Monday night. In a development project what is an equivalent rhythm and why is it helpful?

 

a.      Advantages: Reduces complexity; increases cohesion

Disadvantages: increased latency; reduced security

b.     Connecting many producers to many receivers with differing communication needs; Proxy hides the complexity of the many differing protocols

c.      Making regular deliveries to the customer or holding regularly scheduled meetings; prevents schedule surprises

 

 


 

 

  1.  
    1. We used several patterns in the railway system that were intended to remove direct dependency between 2 elements. What does removing as many direct dependencies as possible do for the design?
    2. In a process model that is iterative and incremental, the iterative portion defines multiple passes over the same material to improve it. What does the incremental part of the process model ensure?
    3. In the railway reservation system the adapter pattern was chosen as a means of handling communication with varying backend systems. Which quality attributes are enhanced by the use of the adapters and which are degraded?

 

a.      Increases modifiability and portability

b.     Ensures that multiple teams can work in parallel and/or each team can attack a small problem with less complexity

c.      Latency is increased (degraded) but modifiability is enhanced.

 

 

 


 

  1.  
    1. Give a complete statement of one risk associated with the railway reservation system.
    2. We have talked about requirements, use cases, and features. What does each contribute to the specification of a system that is different from the other two?
    3. The Visitor pattern is useful for keeping loose coupling between data and a set of algorithms that operate of the data, which allows new algorithms to be added easily. What does this pattern make more difficult or error prone?

 

a.      There is a 5% chance the reservation system will issue two tickets for the same seat resulting in one person being denied service.

b.     The requirements are a list of tasks the system must handle; the use cases show how those tasks are combined to accomplish the work the users needs; the feature tree provides the system building a selection of capabilities that may be selected to accomplish a set of requirements

c.      Coordinating the algorithms with the types to which they apply

 

 

 


 

  1.  
    1. The EPF method of modeling process is based on the Software Process Engineering Meta-model, a standard from OMG. The standard defines 4 types of artifacts. Explain the relationships between Roles and Tools. Why is it important to base a tool on a standard?
    2. The Open/Closed Principle says a module should be open to extension but closed to modification. What does that say about how to design an alarm feature for an existing timing system?  
    3. Separation of specification from implementation is an important design concept, why?  How does Java assist with this? 

 

 

a.      A role uses tools to complete tasks; using a standard as a basis enhances reusability

b.     The alarm feature is added to the product by techniques such as extension or encapsulation

c.      The separation allows early establishment of interfaces between components without having a completed implementation. Java provides the interface concept as well as private and protected definitions  


 

  1.  

a.      We saw several process models. V models, spirals, and tables are used. Explain what the shapes are intended to communicate.

b.     An architecture is an abstraction of a program. What is the purpose of abstraction in software engineering? How is abstraction present in a development process that takes advantage of the architecture?

c.      Liskov’s substitution principle explains what happens when an element of a subtype is substituted for an element of the supertype. How is this implemented in object-oriented languages? What does this allow us to do in a design?

 

a.      The process model defines the sequence in which things are done. The shape of the picture provides hints at relationships. In the Vmodel the testing activities are in the same position in the right hand branch as the things they are intended to test occupy in the left hand branch.

b.     The development process maps concrete source code onto structures in the architecture. The mapping defines the abstraction

c.       Implemented as inheritance. Use polymorphic substitution to implement the open/closed principle in the design

 


 

d.     Process model       

V model

Inspection/find what is not there

List 2 standards we used

Styles; views;

Quality attribute scenarios

 

 

A process model determines the sequence in which a set of process phases is carried out.

a.      Select two of the models we studied and compare them to each other. What does model A do better than model B? What does model B do better than model A?

 

 

 

b.     In the spiral process model, risk is evaluated as a part of each iteration. The project cannot just stop at these points. So if an action is determined to be a high risk, what is done?

 

The risk mitigation procedure is used.

 

c.      Describe two of the sections in the format for describing a process phase. What do they add to the process description?

 

Exit criteria – this gives criteria for moving to the next phase

Output – these are the deliverables produced by that phase