CS3733-D04: Final Study Guide
The following guide provides some help in the type of things you are expected
to know in order to be able to pass the final exam. The guide is broken down
into specific topic areas containing either sample questions or a statement
of what you should know. It is assumed that you have attended class, read the
assigned sections of the book, done your homework, and have looked at the slides
from the lectures. The final exam I gave in CS3733-B03 is here
if you would like to see it.
UML
- You should be able to construct UML use case, sequence, collaboration, and
class diagrams.
- You should know how to convert a sequence diagram into a collaboration diagram
and vice-versa.
- You should know the syntax for associations, generalization, messages, and
how object are represented differently than classes.
- You should know the purpose of ech of the UML diagrams above.
Patterns
- What are design patterns?
- Who is Christopher Alexander and what is his relationship to patterns?
- Who is Erich Gamma and what is his relationship to patterns?
- You should be able to describe and use the following patterns: Adapter,
Singleton, Observer, Facade, and Iterator.
- You should be able to describe and apply the two GRASP patterns of Information
Expert and Creator.
- How are patterns created?
Software architecture, analysis and design
- What is software architecture?
- What is system engineering?
- How does embedded software differ from other types of software?
- What is the main goal of class design?
- Compare and contrast design-by-contract and defensive programming. Which
is more amenable to testing?
- What are CRC cards? What are the different parts of a CRC card?
- What are the different views in the 4+1 views identified by Kruchten? What
is the purpose of each?
- What is meant by layered architecture? What benefits does a layered
architecture give you?
Integration and Deployment
- What is integration?
- What is beta testing?
- Describe what you do in integration testing?
- What is the difference between phased and incremental integration? What
are the benefits and disadvantages of each?
- What are the activities of the integrator?
- What types of deployment (support) material are there? Why do you need them?
- What are some issues you must consider with respect to licensing your software,
or using licensed software?
Modified:
24-Apr-2004
Gary Pollice