CS3013 Software Engineer II

advertisement
CS3013 Software Engineer II
Course Content Review
Part I: UML
(Textbook: The Unified Modeling Language User Guide)
1. Introduction and Overview of UML (Chapters 1-3)
Short answer questions:
 Modeling, OO Modeling, Visual Modeling
a) What is a model?
b) What is the fundamental reason for modeling?
c) What aims do we achieve through modeling?
d) What are four principles of modeling?
e) What is object-oriented modeling?
f) What is visual modeling? Why visual modeling?
 Characteristics and features of UML
a) In what sense do we say that UML support visualization, specification, construction, and documentation?

a)
b)
c)
d)
Conceptual model of UML
What are building blocks of the UML?
What structural things, behavioral things, grouping things, and annotational things are in the UML?
What relationships are in the UML?
What diagrams are in the UML?
 Software system architecture
a) What is the 4+1 architectural view of a software model? Why is it use-case driven?
2. Basic Structural Modeling (Chapters 4-8)
Short answer questions:
a) What is structural modeling? How is it different from behavioral modeling and architectural modeling?
 Classes
a) How many standard compartments are in a UML class? What is the meaning of each compartment?
b) What does responsibility of a class mean? What is the relationship between a class’ responsibility and its
operations.
c)
 Class relationships
a) What is dependency relationship between classes? How to identify dependency relationships between
classes?
b) What is generalization relationship between classes? How to identify generalization relationships between
classes? What are top-down and bottom-up approaches to identifying generalization relationships?
c) What is association relationship between classes? How to identify association relationships between classes?
d) What is the meaning of name, role, and multiplicity that are associated with an association relationship?
When do you use them?
e) What is aggregation relationship between classes? How to identify aggregation relationships between
classes? What is the relationship between aggregation and association? How do distinguish them in
modeling?

a)
b)
c)
Common mechanisms for classes
What is stereotype in UML? When to use stereotypes? Given an example.
What is tagged value in UML? When to use tagged values? Give an example.
What is constraint in UML? When to use constrains? Given an example.

a)
b)
c)
d)
Class diagrams
List all structural diagrams and behavioral diagrams in UML.
How to use UML diagrams to model different views of a system? Give examples.
How to use UML diagrams to model different levels of abstractions of a system? Given examples.
What elements can a class diagram contain?
 Common modeling techniques
a) How to model the vocabulary of a system using UML classes? Is it the first step to build a domain model for
a software system? Why?
b) What does the distribution of responsibilities among classes in a system mean? What should be considered
in the distribution?
c) How to model a logical database schema using UML class diagram?
d) What is forward engineering? What is reverse engineering?
Practical questions:
a) Givens a description of a real-world system such as university, draw a UML class diagram to model the
system.
b) Given source code of a class in an object-oriented programming language, reverse engineering to create a
corresponding UML diagram.
c) Given a class and its relationships with other classes in UML, forward engineering to generate source code
for the class in a programming language.
3. Advanced Structural Modeling (Chapters 9-12)
Short answer questions:
 Classifiers
a) What is a classifier? What is the difference between a classifier and a class?
b) In a classifier, what elements can have visibility? What kinds of visibility can be specified in UML? What
does each kind of visibility mean?
c) What is the difference between instance scope and classifier scope of an attribute or an operation of a
classifier? Given an example for each case to show its usage.
d) What is the multiplicity of a class (not a relationship)?
e) What is the full syntax of an attribute specification? Explain each term and give an example. What are the
meanings of the three defined properties of attributes?
f) What is the full syntax of an operation specification including the parameter specification? Explain each
term and give an example. What are the meanings of the three directions in the parameter specification?

a)
b)
c)
d)
Association relationship between classifiers
What is the meaning of navigation? Give an example.
What is the meaning of the visibility of a role? Give an example.
What is the meaning of qualification? Give an example.
What is a composition relationship? What is the difference between composition and aggregation
relationships? How to distinguish them in modeling? Use an example to explain the difference.
e) What is an association class? Why do we need an association class? Use an example to explain.

Realization
a) What is realization relationship between two classifiers?
b) List all possible realizations from a classifier to another classifier.

a)
b)
c)
d)
e)
Interfaces
What is interface in UML?
What elements can an interface contain?
What relationships can an interface have with other classifiers?
What do we mean that a classifier depends on an interface?
What do we mean that a classifier realizes an interface?

a)
b)
c)
d)
e)
Packages
What is package in UML?
What elements can a package contain?
What does the visibility of elements of a package mean?
What relationships can a package have with other classifiers?
What is the difference between a package and a subsystem?
4. Basic Behavioral Modeling (Chapters 15-19)
Short answer questions:
a) What is the meaning of behavioral modeling? What is the difference between behavioral modeling and
structural modeling and architectural modeling?

a)
b)
c)
d)
e)
Interactions and interaction diagrams
What does an interaction diagram model?
What is the meaning of an interaction in UML?
What is the meaning of the context of an interaction?
In an interaction, what is the difference between an object itself and its roles in the interaction?
What is the meaning of a link in an interaction? What are the standard stereotypes of links and their
meanings?
f) What is a message in an interaction?
g) What is sequencing in an interaction?
h) What is the difference between sequence diagrams and collaboration diagrams in terms of their usage? What
unique features do sequence diagrams have but not collaboration diagrams, or vice versa?

a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
Use cases and use-case diagrams
What does a use-case diagram model?
What is a use case in UML?
What is an actor in UML? What relationships can two actors have?
What is the relationship between a use case and its flow of events? In terms of their meanings, what is the
difference between the two?
What are differences between main flow, alternative flow, and exceptional flow of events of a use case?
What is the different between a use case and a use-case scenario?
What is the difference between an actor and an actor instance?
What diagrams in UML can be used to describe a use-case scenario?
What is the meaning of include relationship between two use cases in a use-case diagram? How to describe
the include relationship in the flow of events of the use case that includes the other?
What is the meaning of extend relationship between two use cases in a use-case diagram? How to describe
the extend relationship in the flow of events of the use case that is extended by the other?
What is the meaning of generalization relationship between two use cases in a use-case diagram? How to
describe the extend relationship in the flow of events of the use case that specializes the general one?

a)
b)
c)
d)
e)
Activity diagrams
What does an activity diagram model?
What elements can an activity diagram have?
What is the difference between an action state and an activity state?
What is the meaning of triggerless transition?
What is the meaning of a guard expression in a branching? Why all the guard expressions of a branching
must not be overlap? Why all the guard expressions of a branching must completely cover all possible cases.
f) What is the meaning of fork and join? When do you need to use them?
g) What is the purpose of swimlanes?
h) What is object flow? When do you need to use it?
Practical questions:
a) Given a description of flow of events, draw an interaction diagram or according to the description.
b) Given an interaction diagram, write a corresponding flow of events according to the diagram.
c) Convert between a sequence diagram and a collaboration diagram.
d) Given an interaction diagram, derive participating classes and their relationships.
e) Given a sequence diagram with focus of control, show hierarchical sequencing numbers of messages.
f) Given a description of workflow or control flow, draw an activity diagram with swimlane and object flow,
or vice versa.
g) Given a functional description of an application, draw a use-case diagram, or vice versa.
5. Architectural Modeling (Chapters 25-26, 29-30)
Short answer questions:
a) What is the meaning of architectural modeling in UML? What is the difference between architectural
modeling and structural modeling and behavior modeling?

a)
b)
c)
d)
e)
f)
g)
h)
Component and component diagrams
What is the meaning of a component?
What is the relationship between components and classes?
What is the relationship between a component and its interface?
What is the relationship between a component’s interface and the classes in the component?
What are standard stereotypes of components and their meanings?
What elements can a component diagram contain?
What are possible relationships between a component and an interface in a component diagram?
Why should the dependency from one executable component to another be through the latter’s interface?

a)
b)
c)
d)
Deployment and deployment diagrams
What is the meaning of deployment?
What is the meaning of a node?
What is the meaning of a connection?
What is the relationship between a node and the components deployed on it? What types of components can
be deployed onto a node?
e) What does a deployment diagram model?
 Common modeling techniques
a) How to modeling the dependencies between source code files, database tables, static and dynamic libraries,
and executable components using a component diagram.
Practical questions:
a) Given a collection of classes and interfaces with their meanings and a description of deployment strategy,
assign the classes and interfaces into proper components and distribute components into nodes of the
deployment model.
Part II: The Unified Process
(Textbook: The Unified Software Development Process)
A. Introduction and Overview of The Unified Process (Chapter 1)
Sort answer questions:
a) In terms of core work flows of the unified process, explain why we say that the unified process is use-case
driven, architecture-centric.
b) What is iterative and incremental development process? What is its advantage?
c) What is the life of the unified process? What are the meanings of cycle, release, phase, milestone, iteration,
workflow, baseline, and model in the unified process?
d) What is the meaning of the two-dimensional life cycle diagram of the unified process?
B. The Core Workflows
1. Requirements Capture (Chapter 6-7)
Short answer questions:
a) What is the meaning of requirements capture?
b) Why requirements capture?
c) What is the difference between functional requirements and non-functional requirements?
d) What are differences between domain model, business model, and use-case model?
e) Is domain model and business model part of models of the unified process? Why do we need these two
models?

a)
b)
c)
d)

a)
b)
c)
d)
e)
f)
g)
Domain model
What is system context?
What is a domain model? What is the relationship between a domain model and system context.
How to specify a domain model in UML? What elements are in a domain model?
How to develop a domain model?
Business model
What does a business model describe?
What is a business process?
What is a business actor in a business process?
What is a worker in a business process?
What does a business use case describe? How to identify business use cases from a business process?
What does the business use-case diagram of a business model describe?
What does a business-object model describe? How to represent a business-object model in UML? How to
identify a business-object model from a business process and its domain model?
h) What is a business entity?
i) What is difference between an actor in a use-case model and a business actor or worker in the business
model from which the use-case model is derived?
j) How to identify actors of use-case model from roles of business actors and workers?

a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
Use-case model
List all artifacts of a use-case model and briefly describe their meanings?
List all workers of a use-case model and briefly describe their responsibilities and the artifacts they produce.
Briefly describe the activities of the following workflow, their purposes, and which workers are responsible
to do them.
 Find actors and use cases
 Prioritize use cases
 Detail use case
 Prototype user interface
 Structure the use-case model
What is the content and purpose of the survey description of a use-case model?
What is the purpose of prioritize use case activity? What need to be considered in the prioritization?
What need to write in the detailed flow of events description of a use case and its format?
What is the purpose of pre- and post-condition in a detailed flow of events description?
What are use-interface elements? How to identify them from a detailed use-case diagram?
Why user-interface design is for each actor instead of each use case?
Explain what is a “real” use case in terms of structured use cases with extend, include, and generalization
relationships.
Practical questions:
a) Given a description of problem and a real-world environment, create a domain model.
b) Given a description of business process, create a business model including business use cases and business
object model.
c) Given a description of system functionality, a domain model, and/or a business model, create a use case
model, including use-case diagram, descriptions of flow of events, and/or prototype use interfaces.
d) Given a use-case diagram and brief descriptions of use cases, write a description about the system’s
functionality.
e) Given a use-case diagram with detailed flow of events description, identify user-interface elements for each
actor.
2. Analysis (Chapter 8)
Short answer questions:
a) What is the purpose of analysis model? In what sense we say that an analysis model is a conceptual model?
b) List all artifacts of an analysis model and briefly describe their meanings?
c) List all workers of an analysis model and briefly describe their responsibilities and the artifacts they
produce.
d) Briefly describe the activities of the following workflow, their purposes, and which workers are responsible
to do them.
 Identifying analysis packages
 Analyze use case
 Analyze class
e) What is the common responsibility of boundary classes?
f) What is the common responsibility of control classes?
g) What is the common responsibility of entity classes?
h) What is a use-case realization? What elements does a use-case realization have? What is the relationship
between a use case and a use-case realization?
i) What is the correspondence between the class diagram of participating classes and interaction diagrams of
participating objects in a use-case realization? What is the purpose that we need the both for a use-case
realization?
j) What is treaceability? Why do we need traceability?
k) What is the different between analysis packages and service packages?
l) Why a use-case realization conceptually must have at least three participating classes, a boundary class, a
control class and an entity class and their corresponding collaborating objects?
m) Why in analysis, we only define class responsibilities, instead of their concrete operations?
n) How to derive a class’ responsibilities from use-case realizations?
Practical questions:
a) Given a use-case diagram, identify analysis packages and assign use case realizations into analysis
packages.
b) Given a use case and its detailed flow of events description, develop a use-case realization.
3. Design (Chapter 9)
Short answer questions:
a) What is the difference between analysis model and design model in terms of their purposes?
b) List all artifacts of a design model and briefly describe their meanings?
c) List all workers of a design model and briefly describe their responsibilities and the artifacts they produce.
d) Briefly describe the activities of the following workflow, their purposes, and which workers are responsible
to do them.
 Architectural design
 Design use case
 Design class
 Design subsystem
e) What is the difference between an analysis package and a design subsystem?
f) Why do we need to consider the system’s deployment model when developing the design model? What is
the role of the deployment model when partition the system into subsystems?
g) Why layered design is important? What are differences of application-specific layer, application-general
layer, middleware layer, and system software layer?
h) What is active class? What classes should be identified as active classes?
i) What is the relationship between an operation and its corresponding method?
j) What is the difference between a use-case realization-analysis and its corresponding use-case realizationdesign, in terms of their participating classes and object interactions.
Practical questions:
a) Given a use-case realization-analysis, develop a use-case realization-design.
b) Given a description of a distributed application, draw a deployment diagram.
4. Implementation (Chapter 10)
Short answer questions:
a) What is the purpose of implementation model?
b) List all artifacts of an implementation model and briefly describe their meanings?
c) List all workers of an implementation model and briefly describe their responsibilities and the artifacts they
produce.
d) What is a build? What is the content of an integration build plan?
e) What is the role of use cases in black-box tests?
f) What is the role of use-case realizations in white-box tests?
5. Test (Chapter 11)
Short answer questions:
a) What is test case? What is test procedure? What is test component?
Download