What are the names of the models in software’s canonical model structure?
a. Domain, Design, Development
b. Conceptual, Design, Code
c. Conceptual, Architecture, Development
d. Domain, Design, Code
e. None of the above
2. The Refinement relationship enables the architect to:
a. A type that appears in one model also appears in another.
b. Defines the correspondence between two models to show consistency
c. Allows one to carry constraints from one model to another
d. Both a and c
e. Both b and c
3. Abstractions are:
a. Models of design.
b. Different perspectives.
c. Very high-level representations of the system.
d. Both a and b
e. Both a and c
4. Every project should document its architecture
True
False
5. Architecture documents are abstractions of the system.
good set of architectural documents will completely describe the system
7. All design decisions should be made before coding begins
8. Different types of models are required in order to serve the needs of various stakeholders
1. Of the following, which is the best reason to avoid domain analysis?
a. The domain is too simple to bother modeling.
b. Domain modeling is open-ended and is a never-ending analysis task.
c. The domain is irrelevant to your architecture choices.
d. The best way to learn the domain is incrementally.
e. It is someone else’s job to do requirements.
2. UML has many great features but its use describing domain models should be restricted because
a. It takes too long to create the diagrams.
b. Good UML tools are too expensive.
c. It is not a language known by most non-developers.
d. Its use is incompatible with the goals of domain modeling.
e. The diagrams require you to include too much detail.
3. OCL (Object Constraint Language)
a. Can be used to model the structure of a system.
b. Is similar to natural language in its support for modeling systems.
c. Can be used to model the relationships in the domain.
d. Is a language that is understood by most non-technical people.
e. Is good for describing invariants in a model.
4. When modeling the domain we model its
a. Structure
b. Behavior
c. The way people will use the system
These are multiple-choice questions. Choose the best answer for each and put it in the blank at the end of the question.
a) Which of the following statements is the most correct?
b) A deployment view shows how the system is installed in the target environment.
c) A deployment view shows how the system interacts with its environment.
d) A deployment view shows where process will run and how they will interact.
e) Both a and b
f) Both a and c
2) Which of the following statements is the most correct
a) Components describe units of code.
b) Connectors are pathways of runtime interaction.
c) A module is associated with exactly one component.
d) Design decisions are clearly identifiable in views
e) Views always describe subsystems.
3) Which of the following is true of a Context Diagram
a) Describes how the software being created interacts with elements in its environment.
b) Can be based on a use case diagram.
c) Might show the Internet.
d) Describes what is in and what is outside the scope of the software project.
e) All of a-d
f) Only a and d
4) Three standard viewtypes for the Design Model are
a) Component and Connector, Designation, and Module
b) Runtime, Documentation, and Miscellaneous
c) Component, Module, Deployment
d) Component, Allocation, Module
e) Runtime, Allocation, Module
5) Which of the following is not true about the Apache server?
a) Built in the pipe and filter style
b) Is designed to allow new code to be inserted easily
c) Was designed with few constraints to support the system’s performance goals
d) A web server
e) Was designed around the goal of modifiability
6) A context diagram should include details related to quality concerns
7) A port is a point of interaction in a component diagram.
8) A context diagram is similar to a snapshot in that the context is likely to change as the system runs
9) A master model is the one used by the architect to include information from all three viewtypes.
10) A view is a projection of a model that reveals select details
11) An internals model can be used to identify boundary models of others.
1. Which of the following DOES NOT describe risk in software development?
a. Something to worry about.
b. A cause of failure.
c. A chance of failure.
d. A primary driver of architecture.
2. Which of the following clearly describes the scope of a software project?
a. An internals diagram
b. A context diagram
c. A sequence diagram
d. A functionality scenario
3. Three styles of design are _______ .
a. risky, safe, and uncertain
b. planned, evolutionary, and minimal planned
c. spiral, waterfall, and agile
d. risk-based, architectural, and code-based
4. (Fill in the blank) A use case is _________.
a. a decision not to modify the system
b. a process that will run as part of the system
c. an argument that drives system design
d. a goal for actors the system interacts with
e. a diagram that shows what the system does
5. The risk-driven approach is most difficult to apply to the ____________ software development process.
a. Waterfall
b. Interative
c. RUP
d. XP
6. A specific architectural style is chosen for a project because ______ .
a. the architect has the most familiarity with it
b. the developers who will implement the system are most familiar with it
c. it is known to ensure quality attributes of concern
d. it will make the system easier to maintain
e. none of the above
7. _______ are approaches to decomposing a system.
a. Functionality, Archetypes, Jigsaw Puzzle
b. Functionality, Architectural Design, Orthogonal abstraction
c. Dominant Component, Attribute Driven Design, Ports
d. Architectural Style, Ports, Archetypes
e. Both a and d
f. Both c and d
8. The XP software development process DOES / DOES NOT include up-front design.
DOES
DOES NOT
It prioritizes work according to RISKIEST FIRST / HIGHEST CUSTOMER VALUE FIRST.
HIGHEST CUSTOMER VALUE FIRST.
RISKIEST FIRST
And, its iteration length is typically TWO-FOUR WEEKS / LEFT OPEN . .
TWO-FOUR WEEKS
LEFT OPEN . .
Network and Job Domain Model, Yinzer Top-level Boundary Model
d. Non of a, b, or c
a. Designation
c. View
b. Refinement
Network and Job Domain Model, Yinzer Design Model
Yinzer Top-Level Boundary Model, Yinzer Design Model
Yinzer Top-Level Boundary Model, Yinzer Top-Level Internals Model
To ensure all the code is described
To make sure quality concerns have been addressed
There are sufficient perceived risks
Otherwise no one would know what to do
Because it provides a company with information to guarantee delivery of a project
Because doing so is a best practice for projects
Architecture documents should always be comprehensive.
Design should always precede coding.
Not all projects need to document their architecture
12) Which of the following statements is the most correct?
a) A sequence diagram is used to model a sequence of activities associated with a use case.
b) A sequence diagram is used to model a sequence of messages exchanged among objects.
c) A sequence diagram is used to model a sequence of transitions among objects in a use case.
d) Both a and b.
e) Both a and c.
13) Which of the following statements is the most correct?
a) United Models for Languages
c) Unified Modeling Language
14) Which of the following is best describes UML?
a) UML is a combination of notations.
b) UML supports modeling multiple views of software.
c) UML has evolved over time.
d) UML was created by the OMG
15) Three notations of UML are
a) Activity diagrams, Component diagrams, Construction diagrams
b) Component diagrams, Action diagrams, Sequence diagrams
c) Class diagrams, ER diagrams, Action diagrams
d) Canonical diagrams, Activity diagrams, Sequence diagrams
e) Class diagrams, Sequence diagrams, Use Case diagrams
16) Which of the following is not a UML diagram?
sdsds
17) Which of the following statements is the most correct?
a) A component diagram shows a configuration of the system at a given moment.
b) A component diagram shows all potential interactions among components in a view.
c) A component diagram can show instances of classes.
e) Both b and c.
18) Which of the following statements is the most correct?
a) Ports are represented using dots on a component border.
e) Socket symbol is used to represent provides interfaces.
c) Assembly connectors show the relationship between ports on the component’s boundary and its internals.
19) Which of the following is/are not well supported by the component diagram notation? ___________.
a) Component Internals
b) Potential interactions with external components
c) Complex components
d) Complex connectors
20) The primary difference between component diagrams and sequence diagrams is
a) Component diagrams show all potential interactions among a group of components whereas sequence diagram shows the interactions involved in response to a particular kind of request.
b) There is very little difference, they are just two different ways of viewing component interactions.
c) In component diagram the components use a rectangular shape with the component icon in the upper right corner but no component icon appears in sequence diagrams.
21) UML provides special notation for a subsystem element because
a) Subsystem elements have critical differences from components, which must be represented.
b) Subsystem elements and component elements are not substantially different so there is no need for them.
c) Component elements have important aspects that are not representable using the provided subsystem element notation.
22) Component details in UML can be shown as text within a compartment of a component.
23) Which of the following statements is the most correct? ____________ .
a) A class diagram shows a configuration of the system at a given moment.
b) A class diagram shows all potential interactions among components in a view.
c) A class diagram can show relationships between java interfaces and other classes.
24) Which of the following statements is the most correct? _________.
a) A class diagram for a module always has three components.
b) A class diagram shows relationships among code units.
c) A class diagram supports analyzing behavior of complex protocols.
25) Which of the following is(are) NOT well supported by the class diagram notation? ___________.
a) Identifying public and private members of a class.
b) Identifying which classes depend on other classes.
d) Discussing how to add newly required functionality to the system.
c) Discussing how the system will behave.
26) Which of the following is/are NOT a benefit of including class diagrams in project documentation? _______
a) Help programmers understand the context of the code they are creating.
b) Help the project sponsors understand how the system will work.
c) Help the project manager identify responsible people for each of the coding tasks.
Class diagrams can be generated directly from code.
The process of creating class diagrams is a valuable activity during design
All class diagrams created during design of a system should be maintained as part of the project
30) A design pattern ______ .
a) Contains a description of other related patterns.
b) Can be useful describing how a software problem was solved by a developer.
c) Is a general reusable solution to a commonly occurring problem within a given context in software design.
d) Gives examples of code that used the pattern.
f) All of a-d.
31) The Dependency Inversion Principle ______.
a) Helps ensure that objects are highly reusable.
b) Requires that methods that are present in base classes must also be present in the derived classes.
c) Helps ensure that objects are easy to extend without requiring change to the original object.
d) Requires that object interfaces only include methods that will be needed by most implementers.
e) Helps make changing an object easier.
32) The Open-Close Principle _________.
33) Liskov’s Substitution Principle _________.
34) The Single Responsibility Principle ________.
35) The Interface Segregation Principle _________.
Fill in the blank) Three basic categorizations of software design patterns are Creational, Structural, and
Behavioral
behavior
37) Which of the following is NOT an advantage of using architectural styles during design? __________
a) They support design reuse.
b) They provide a vocabulary for communication.
c) They provide a set of guard rails to guide you.
d) They define a set of names to use in your design.
e) They help ensure you will meet your quality goals.
38) The Mirrored, Farm, and Rack style of design is a style in the _______ view.
a) Runtime
b) Module
c) Allocation
d) None of a-c
39) The layered style of software design is a style in the ________ view.
40) The Model-Centered style of software design is a style in the ________ view.
42) Which of the following is a legal exception to pure layered style?
a) The use of sidecars.
b) The use of callbacks.
c) The use of one module in a layer by another.
d) The use of a module by one that is two layers above.
43) In the Pipe and Filter style, which of the following is not allowed? _______
a) A Filter can alternate providing data between two filters.
b) Two pipes can be potential suppliers for a filter.
c) A pipe can feed data into another pipe.
d) A filter can be designed to be used in another application.
44) Using consistent level of detail across a model helps _______ .
a) Cut expenses when building the system.
b) Make the view more comprehensible.
c) Increase consistency among views.
45) Which of the following help increase the quality of your view? _______
a) Use functionality scenarios to tie views together.
b) Animate your functional scenarios
c) Write action specifications
d) Both a and c
g) All of a-c
46) Which of the following is NOT on the list of ways Fairbanks suggests you write good functional scenarios? _____
a) Actor
b) Action
c) Reference
d) Target Model
e) Overall
f) Pattern
47) Which of the following is NOT one of the traits of good models? _______
a) Allows one to predictive potential issues
b) Be small
c) Be realistic
d) Refers only to elements that are in the model
e) Be inexpensive
48) How should a designer decide which views to create? _______
a) Build one for each function.
b) Build one for each actor.
c) Build one for each of the major concerns.
d) Build one for each use case.
e) Build one for each of the view types.
49) What are two ways Fairbanks says you can improve the quality of diagrams?
a) Include a legend b) Avoid arrowheads
a) Build one for each function. b) Build one for each actor.
50) An anti-pattern is _______ .
a) A known way to reverse the impact of using a design pattern.
b) A pattern for improving bad code.
c) A way to avoid known bad coding practice.
d) A way to refactor code
e) None of the above.
51) Which of the following is NOT a desirable trait of a software model? ______
a) Consistent use of arrows
b) Models reality
c) Sufficiently precise
d) Inexpensive
e) Accurate
52) Which of the following statements is NOT true for creating and using models? ________
a) A model is falsifiable if one is able to determine the truth or falseness of some property about the model.
b) A legend is not required when the diagram is created using a known notation.
c) Most people will be able to read a model but far fewer will be able to identify the correct type of model to create and to create it correctly.
d) A model is more useful if it focuses the user’s attention.
e) Both a and d
f) Both b and c
g) Both c and d
53) Modeling a system using multiple views requires that all views be ________ .
a) Kept neatly stored so they can be located.
b) Chosen carefully to reflect the concerns of users.
c) Kept internally consistent.
d) Created from different view types.
54) Which of the following is NOT true of a dependency matrix? ___________
a) Can be used to check dependencies among modules.
b) Can easily be converted to a graphical representation.
c) Is more difficult to use the larger a model grows.
d) Can be built automatically from code by some tools.
e) Can be used to help maintain a system.
55) Architecture checklists _______.
a) Provide architecture experts an opportunity to identify risks.
b) Should be checked every day.
c) Contain a list of activities that must be completed before the architecture is considered complete.
d) Must be included as part of the final documentation.
e) Can be used to ensure that known risks have been considered.
56) Formal analysis techniques _________.
a) Are widely available in automated tools.
b) Can be applied to UML models.
c) Require the model be expressed in the language of the tool.
d) Can be used to identify all potential security vulnerabilities in the code.
e) Only a and c
f) Only b and d
g) Only c and d
2. Which of the following is the best choice for creating code views? _______
a. Sequence diagram
b. Component diagram
c. Activity diagram
d. Class diagram
f. None of the above
3. Which of the following are the best question(s) the risk-driven model helps developers answer? ______
a. What is most important to the customer?
b. When are we done with the project?
c. How much software architecture should we do?
d. What programming language should we use?
e. Which techniques should we use in developing our project?
h. Both c and e
g. Both b and c
4. Which of the following is not a software engineering risk? ______
a. The server may not scale to 1000 users.
b. The code for the sort algorithm is overly complex.
c. We do not adequately understand our customer’s needs.
d. The system is working fine, but if we try to change anything it seems to always break something else.
e. None of the above.
5. Which of the following software development process models does not include up-front design?
b. Iterative
c. Spiral
d. RUP
e. Both a and b
6. In component diagrams, ports ARE / ARE NOT optional.
ARE
ARE NOT
7. In component diagrams, the lollipop symbol is used to represent a PROVIDES / REQUIRES interface.
PROVIDES
REQUIRES
8. In sequence diagrams, lifelines represent the activity of CLASSES / OBJECTS.
CLASSES
OBJECTS
Sequence Diagram
used to represent runtime model
used to model domain model
used to represent code model
Use Case Diagram
11. We need comprehensive documentation for the software architect
12. Software design patterns provide a ready resource for solving software development problems.
13. Software design patterns are created for unusual problems in development
14. All models in software design should be captured using UML diagrams.