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 only allowed paper, no electronics.

 

 

 

 

signature


 

 

 

1.     Modeling

a.      What does it mean for a specific UML sequence diagram to be consistent with a specific class diagram?

 

b.     What is the difference between the “extends” and “includes” relationships in a use case diagram? (Difference does not mean to define both. It means to only identify what makes them different.)

 

c.      Class diagrams and feature diagrams have “cardinality” annotations. What is the purpose of this annotation?

           

d.     SONAR uses a client/server architecture. The software is parsed and algorithms compute metrics (measurements) from the software. Give two examples of metrics and how they could be used to evaluate how well the software development process is working. What value is there in using sonar integrated into Eclipse?

 

a.      It means that for every object lifeline there is a class in the class diagram and for every message between objects there is an association in the class diagram.

b.     The difference is where the original use is decomposed or added to

c.      Cardinality defines the number of objects of one class that that can be instantiated per object of the associated class

d.     Lines of Code (LOC) is an often used measure; as is number of use cases implemented; Integration speeds the cycle of compute – interpret- modify

 

 

 


 

 

2.     Design decisions

 

a.      Describe the benefits of the registry in an event handling system where each event handler registers the events in which they are interested.

 

b.     A tradeoff is a decision between two alternative designs. What are the criteria for making this decision?

 

c.      We looked at separation of concerns and the separation of specification from implementation. What concerns are being separated when we separate a specification from an implementation of that specification? What goal are we trying to achieve with this separation?

 

d.     Define one quality attribute scenario that would be a high priority for your app (give a one sentence description of your app). Use the complete format for the scenario.

 

a.      the registry allows an event handler to register for specific types of events so that they do not have to process all possible events

b.     Determine which qualities are enhanced by which design; determine the priorities of the qualities; select the option that has the best overall effect on the design

c.      What is to be done from how it will be done;Goal: reduce complexity

d.     Variable answer


 

 

3.     Problem/Solution

a.      A domain model represents the concepts (or entities) and the relationships between entities in the problem statement. What is the appropriate modeling notation to use for this model?  Why?

 

b.     A framework provides an architecture and a control flow and the product developer provides implementations for methods specified in the framework such as OnClickListener.  List at least two software engineering principles being applied when the framework design was created. Justify why those two are being used.

 

c.      List one functional requirement and one non-functional requirement for your app. Indicate which is functional and which is non-functional. Explain why each is what you say they are.

 

d.     The model-view-controller design achieves better performance and maintainability when compared to a monolithic design in which all of the behavior is in one module. How does it do this? Explain each (performance, maintainability) separately.

 

 

a.      A UML class diagram or an SysML block diagram because these give names to concepts and allow links to be formed to other concepts

b.     1. Reduce coupling because the Listener pattern separates an action fro the response 2. Encapsulation because the response to an event is handled in one place

c.      Varies

d.     Performance is improved since not all views have to be refreshed for every modification of the model


 

 

4.     Principles

a.      Give one reason why “function boxing” is a good means of structuring a development process and one reason why it is bad.

 

b.     The layered architecture style introduces abstraction into a design. How does the abstraction come about? What benefit does the abstraction provide?

 

c.      What is the difference between a use case and a requirement? What is the same about them?

 

d.     What is the purpose of information hiding? How can it be implemented? How is it related to encapsulation?

 

a.      It is good because a complete requirement is implemented before development cycles back; It is bad because you are not certain when the box will end

b.     The fact that an upper layer can only reference the specification of the lower layer means the implementation of the lower layer can be changed without affecting the upper

c.      The completeness of the action the product is to do; both are defining a portion of the product’s required action

d.     Information hiding ensures that outside implementations do not become dependent on implementation specifics within a component; implemented with private methods/variables; an encapsulating construct is usually used to hold the hidden information

 


 

 

5.     Architecture

a.      We start with a use case diagram that only has actors and use cases directly associated with an actor. We then introduce additional uses that are associated to the original uses through “includes”, “extends”, and “generalizes” relationships. What design principles are being applied and what non-functional attributes are being enhanced?

 

b.     In an architecture we define a control flow and an error flow. What is the purpose of each? How are they different?

c.      During architecture evaluation the evaluators identify risk themes. What does a risk theme convey?

 

d.     An iterative process usually iterates every 2 – 4 weeks while an agile project iterates every day. What characteristics are affected by the length of the iteration?

 

a.      Decomposition and abstraction; complexity is reduced

b.     The control flow shows the normal path of computation from object to object while the error flow defines the connections along which error objects are passed.

c.      That the team is biased about a type of architecture decision and that the bias is threatening the validity of the architecture

d.     The degree to which a  project can deviate due to misunderstanding the requirements  is reduced as the length of the iteration is reduced;  obviously the number of requirements that are completed is affected by the length;