CS3733-E04: 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. Previous Final exams are: B03,
D04.
Process and Project Management
- What are some techniques for making small teams effective? (Daily meetings,
well-formed requests, short iterations, pair programming)
- What are well-formed requests? (Who does what, by when.)
- What happens if you make a well-formed request and the person says no? (You
accept it, renegotiate the end date, or renegotiate the scope of the request.)
- What are the values of software agile development? (Individuals and interactions
over process, working software over documentation, customer collaborabion
over contract negotiation, responding to change over following a plan.)
- Name n practices of Extreme Programming and describe them.
- Two ways of looking at the agile values are as discrete values, or as a
spectrum, which do you think is correct and why?
- Name n agile software development methods. (XP, SCRUM, FDD, DSDM,
Crystal Light, RUP)
- What is the Capability Maturity Model (CMM)? How many levels are there?
- What is the purpose of CMM or ISO900x?
- What is PSP or TSP?
- You should be able to discuss the Parnas and Clements article on faking
the process.
Analysis and Design
- What are design patterns?
- Name two design patterns and give an example of what they are used for.
- What is the purpose of the GRASP patterns? (Used to assign responsibility
to classes.)
- What is the difference between a pattern and a template? (A pattern is more
like a plan of how to solve a problem. A template is something that has specific
form to fill in missing information.)
- What is the difference between design by contract and defensive programming?
What are the advantages and disadvantages of each?
- What is the Adapter pattern? What is the difference between a class adapter
and an object adapter?
- Draw the UML diagram showing an adapter pattern.
- You should be able to apply and discuss the GRASP patterns: Information
Expert and Creator.
Metrics and Measurement
- What is the difference between metrics and measurement? (Metrics are measures
of the degree with something possesses an attribute. Measurement is the act
of determining a value.)
- What is an indicator? (A metric or combination of metrics that provide insight
[to a process, project, or product].)
- Why do we measure?
- Name n measurement principles. (Formulation, collection, analysis,
interpretation, feedback.)
- Name n metrics that can be used for software projects.
- Discuss the advantages and disadvantages of using lines of code as a measurement.
Quality
- What are the three types of testing? (System, Integration, Unit) Describe
them.
- What are the two main techniques for testing? (Black box, white box) Describe
them.
- What is the difference between quality and testing?
- What is the difference between a walk through, review, and inspection?
- What are the advantages and disadvantages for having the author attend a
review?
- What is the most effective way of finding and removing defects? (Code review)
- What are verification and validation? (Verification - are we building it
right [process], Validation - are we building the right thing)
- You should be able to write test cases (inputs and expected outputs).
- What is the difference between line (statement) coverage, path coverage,
condition coverage?
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:
28-Jun-2004
Gary Pollice