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 requirements diagram to be consistent with a use case diagram? Why do we need both?
b. We used a technique to ensure the quality of the use case model that was an improvement over just handing the model to a group and asking them to read all the use cases. What was the improvement and why did it improve the quality of the evaluation?
c. How are the differences in importance of stakeholders incorporated into some of the design decisions?
d. What is the correspondence between the elements of a sequence diagram and a class diagram.
a. No information in the requirements diagram
can contradict the information in the use case diagram. The use case diagram
gives a quick start but the requirements diagram gives a more exact statement
of a requirement.
b. We used a checklist. It improved the quality
by ensuring that things that have gone wrong on the past are checked for.
c. We give different numbers of votes.
d. The life line represents objects that are
instantiated from classes. The arrows indicate messages that represent the
methods in classes. The parameters on messages are attributes in the class definition.
2. Design decisions
a. Describe a type of problem for which an event/event handler paradigm is the solution? What is it about that type of problem that requires events?
b. A tradeoff considers both the product qualities that are improved by a design decision and the product qualities that are degraded. In our example app, we have applied the model/view/controller architecture style. What about the design was improved by doing this and what was degraded?
c. Describe the relationship between designing an inheritance hierarchy of class definitions and the design principle of abstraction.
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. A system in which input from outside heavily
influences the flow of control such as the user interface
or machine interface. These events happen at random rather than with a regular
period.
b. Modifiability and extensibility were
enhanced. Performance and security are degraded.
c. The top of an inheritance hierarchy
represents the most general description of a family. In order to cover all the elements
below it, it must omit some details.
d. Source of stimulus – user
Stimulus – soft button press
Environment – device containing app
is running
Artifact – The software button
Response – The button widget generates
a button pressed event
Response measure – does/does not
generate the event
3. Domain modeling
a. A domain model provides the concepts related to the problem space. This includes the concepts (or entities) and the relationships between entities. Describe 4 entities and 2 relationships for your application domain.
b. A class is a static definition of an entity and an object is a dynamic instantiation of that class. What are the static and dynamic representations of the interactions between two classes and two objects respectively?
c. List one functional requirement and one non-functional requirement for your app. Indicate which is functional and which is non-functional. Explain the DIFFERENCE between functional and non-functional requirements in general.
d. List two non-functional requirements that are characteristic of being an app. Briefly describe how each can be satisfied through design.
a. An emergency, a contact, a message, a
communication channel are entities. A message is “sent over” a channel and a
message is “sent to” a contact.
b. The static representation is a “relationship”
such as aggregation, composition, or association. The dynamic representation is
a message.
c. Difference: the scope to which the requirement
applies; Functional – when the emergency button is pressed, a call is initiated
to a designated emergency number; non- functional – A call is initiated within
3 seconds of the button being pressed.
d. Modular – the app encapsulates all of the services
it needs; Abstraction – represents a complete action of some type
4. Principles
a. Give one reason why “time boxing” is a good means of structuring a development process and one reason why it is bad.
b. The MVC architecture includes some necessary coupling between the Model, View, and Controller. Describe what that coupling is. What benefit does the coupling provide?
c. Why does an architect provide multiple views of a system’s architecture? Describe two views that a software architect provides.
d. What is the DIFFERENCE between an error and an exception. Which is designed into a program on purpose? Why?
a. Time boxing allows schedules to be accurate
and predictable but does not allow the amount of features delivered at the end
of a time box to be accurately predicted.
b. There is coupling between all pairs. The
controller coupling is necessary to propagate events and if all events went
through just the model performance would suffer. The views must be able to get data
from the model and the model must be able to tell the views when the model has
been changed.
c. Multiple views speak to different people
with different concerns. A module view shows data types a programmer will need
to implement. The component/connector view will allow algorithms to be traced
and verified by reviewers.
d. The difference is the action taken.
Exceptions are programmed in because they may be correct, but seldom seen,
behavior.
5. Architecture
a. The Android SDK provides an architecture upon which an app is based. Its primary style is layered. What constraint does the layered approach impose on communication between modules in the architecture? What is the advantage of this style?
b. An SDK usually provides a framework for applications and a set of wizards. Describe the purpose of a framework. Describe the purpose of a wizard. What qualities does the wizard help achieve?
c. During architecture evaluation the producers of the architecture work closely with the evaluators. Describe the interactions between the two teams. What are the responsibilities of each group?
d. There are the 4 basic types in EPF: Role, Task, Workproduct, and Guidance. Give an example of each for the EPF model that would describe the process for defining a software architecture.
a. All communication goes from a layer to a layer
beneath it. This prevents circular dependencies which are impossible to compile
and difficult to trace.
b. A wizard automates a process. The wizard
limits the range of answers to each step reducing the likelihood of an error.
c. The architecture and business teams provide
the background and review material. The ATAM people provide a process
presentation, elicit scenarios in a session with the architects, and produce an
evaluation.
d. Role – Architect; Task – make design decision;
Workproduct – quality attribute scenario; Guidance – architectural
design guidelines