Software Design and Architecture
exam questions with correct answers
A use case diagram represents what? - CORRECT ANSWER-a product's use cases and the actors involved in each
use case
Adding Associations-Brainstorming - CORRECT ANSWER--Study the SRS and product design models looking for
verbs and prepositions describing relationships between model entities.
-Look for relationships such as
--Physical or organizational proximity;
--Control, coordination, or influence;
--Creation, destruction, or modification;
--Communication; and
--Ownership or containment.
Adding Associations—Rationalizing - CORRECT ANSWER--Limit the number of associations to at most one between
any pair of classes.
-Combine different names for the same association.
-Break associations among three or more classes into binary associations.
-Make association names descriptive and precise.
-Add rolenames where they are needed.
Adding Attributes - CORRECT ANSWER--Study the SRS and product design models looking for adjectives and other
modifiers.
-Use names from the problem domain.
-Include only those types, multiplicities, and initial values specified in the problem.
-Don't add object identifiers unless they are important in the problem.
-Don't add implementation attributes.
-Add operations sparingly.
Adding Multiplicities - CORRECT ANSWER--Take pairs of associated entities in turn.
--Make one class the target, the other the source.
--Determine how many instances of the target class can be related to a single instance of the source class.
--Reverse the target and source and determine the other multiplicity.
-Add only multiplicities important in the problem.
Analysis model definition - CORRECT ANSWER-any representation of a design problem.
Brainstorming Branch Points - CORRECT ANSWER--Look at scenarios for failed or alternative interactions.
-Consider errors, faults, and alternatives at every step.
-Don't forget an actor's failure to act.
branch point - CORRECT ANSWER-a place where the action flow may diverge
Class Diagram Heuristics - CORRECT ANSWER-Name classes, attributes, and roles with noun phrases.
Name operations and associations with verb phrases.
, Capitalize class names only.
Center class and compartment names but left-justify other compartment contents.
Stick to binary associations.
Prefer association names to rolenames.
Place association names, rolenames and multiplicities on opposite sides of the line.
Class Diagram Rules - CORRECT ANSWER--Class symbols must have a name compartment.
-Compartments must be in order.
-Attributes and operations must be listed one per line.
-Attribute and operation specifications must be syntactically correct.
Class Diagram Uses - CORRECT ANSWER--Central static modeling tool in object-oriented design
--Conceptual models
--Design class diagrams
--Implementation class diagrams
-Can be used throughout both the product and engineering design processes
class model definition - CORRECT ANSWER-a representation of classes in a problem or a software solution
Conceptual Models - CORRECT ANSWER-An conceptual model is a static model of the important entities in a problem,
their responsibilities or attributes, the important relationships among them, and perhaps their behaviors
Definitions:
Object
Class
Attribute
Operation
Association - CORRECT ANSWER--An object is an entity that holds data and exhibits behavior.
-A class is an abstraction of a set of objects with common operations and attributes.
-An attribute is a data item held by an object or class.
-An operation is an object or class behavior.
-An association is a connection between classes representing a relation on the sets of instances of the connected
classes.
Designing with Use Case Descriptions - CORRECT ANSWER--Use case descriptions refine the user-level specification
in a use case diagram into operational-level specifications.
-Design alternatives are specified in different descriptions.
-Alternatives can be evaluated as already described.
Designing with Use Case Diagrams - CORRECT ANSWER--Model a design alternative for the interactions that a
product will support
-Generate several design alternatives
-Evaluate alternatives (they can be evaluated in terms of
--Unmet needs
--Extraneous features or capabilities
--Development costs
--Time and risk
--Conformance to constraints
--Feasibility, simplicity, beauty
Difference b/w Requirements and Use Case Models - CORRECT ANSWER--Use case models do not provide atomized
requirements statements
--They are not traceable
--Some product functions may not appear
--Data and non-functional requirements are not explicit.
-Use case models sometimes serve as surrogates for requirements.
Extracting requirements from use case models, how does it help? - CORRECT ANSWER--Helps designers understand
their designs better;
-Helps find errors and improve designs;
-Produces a useful artifact for engineering design.
How to check use case diagrams? - CORRECT ANSWER--Review the stakeholders goals list to make sure no actors
are missing.
-Review the needs list to make sure no uses cases are missing.
-Review constraints and limitations to make sure they are no violated.
-Generate an event list and check that all events are handled.
-Check that the collection of use cases covers all externally visible behavior.
-Check the diagram against the use case heuristics
exam questions with correct answers
A use case diagram represents what? - CORRECT ANSWER-a product's use cases and the actors involved in each
use case
Adding Associations-Brainstorming - CORRECT ANSWER--Study the SRS and product design models looking for
verbs and prepositions describing relationships between model entities.
-Look for relationships such as
--Physical or organizational proximity;
--Control, coordination, or influence;
--Creation, destruction, or modification;
--Communication; and
--Ownership or containment.
Adding Associations—Rationalizing - CORRECT ANSWER--Limit the number of associations to at most one between
any pair of classes.
-Combine different names for the same association.
-Break associations among three or more classes into binary associations.
-Make association names descriptive and precise.
-Add rolenames where they are needed.
Adding Attributes - CORRECT ANSWER--Study the SRS and product design models looking for adjectives and other
modifiers.
-Use names from the problem domain.
-Include only those types, multiplicities, and initial values specified in the problem.
-Don't add object identifiers unless they are important in the problem.
-Don't add implementation attributes.
-Add operations sparingly.
Adding Multiplicities - CORRECT ANSWER--Take pairs of associated entities in turn.
--Make one class the target, the other the source.
--Determine how many instances of the target class can be related to a single instance of the source class.
--Reverse the target and source and determine the other multiplicity.
-Add only multiplicities important in the problem.
Analysis model definition - CORRECT ANSWER-any representation of a design problem.
Brainstorming Branch Points - CORRECT ANSWER--Look at scenarios for failed or alternative interactions.
-Consider errors, faults, and alternatives at every step.
-Don't forget an actor's failure to act.
branch point - CORRECT ANSWER-a place where the action flow may diverge
Class Diagram Heuristics - CORRECT ANSWER-Name classes, attributes, and roles with noun phrases.
Name operations and associations with verb phrases.
, Capitalize class names only.
Center class and compartment names but left-justify other compartment contents.
Stick to binary associations.
Prefer association names to rolenames.
Place association names, rolenames and multiplicities on opposite sides of the line.
Class Diagram Rules - CORRECT ANSWER--Class symbols must have a name compartment.
-Compartments must be in order.
-Attributes and operations must be listed one per line.
-Attribute and operation specifications must be syntactically correct.
Class Diagram Uses - CORRECT ANSWER--Central static modeling tool in object-oriented design
--Conceptual models
--Design class diagrams
--Implementation class diagrams
-Can be used throughout both the product and engineering design processes
class model definition - CORRECT ANSWER-a representation of classes in a problem or a software solution
Conceptual Models - CORRECT ANSWER-An conceptual model is a static model of the important entities in a problem,
their responsibilities or attributes, the important relationships among them, and perhaps their behaviors
Definitions:
Object
Class
Attribute
Operation
Association - CORRECT ANSWER--An object is an entity that holds data and exhibits behavior.
-A class is an abstraction of a set of objects with common operations and attributes.
-An attribute is a data item held by an object or class.
-An operation is an object or class behavior.
-An association is a connection between classes representing a relation on the sets of instances of the connected
classes.
Designing with Use Case Descriptions - CORRECT ANSWER--Use case descriptions refine the user-level specification
in a use case diagram into operational-level specifications.
-Design alternatives are specified in different descriptions.
-Alternatives can be evaluated as already described.
Designing with Use Case Diagrams - CORRECT ANSWER--Model a design alternative for the interactions that a
product will support
-Generate several design alternatives
-Evaluate alternatives (they can be evaluated in terms of
--Unmet needs
--Extraneous features or capabilities
--Development costs
--Time and risk
--Conformance to constraints
--Feasibility, simplicity, beauty
Difference b/w Requirements and Use Case Models - CORRECT ANSWER--Use case models do not provide atomized
requirements statements
--They are not traceable
--Some product functions may not appear
--Data and non-functional requirements are not explicit.
-Use case models sometimes serve as surrogates for requirements.
Extracting requirements from use case models, how does it help? - CORRECT ANSWER--Helps designers understand
their designs better;
-Helps find errors and improve designs;
-Produces a useful artifact for engineering design.
How to check use case diagrams? - CORRECT ANSWER--Review the stakeholders goals list to make sure no actors
are missing.
-Review the needs list to make sure no uses cases are missing.
-Review constraints and limitations to make sure they are no violated.
-Generate an event list and check that all events are handled.
-Check that the collection of use cases covers all externally visible behavior.
-Check the diagram against the use case heuristics