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.
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
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.
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
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
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