CS / SWE 421 - Midterm Review Topics
Check back for
updates! Last updated: 2/18/2009.
Note: We will cover material during
the week before the midterm that is NOT included yet in this review...
don't forget to study that also.
The following things are what I expect you to know for the CS / SWE 421
Midterm
- UML
- Know the goal and general ideas behind use cases. Know
how to read and interpret a diagram.
- How to draw class diagrams (including all the
parts we discussed in class)
- How to interpret class diagrams (including all
the parts we discussed in class)
- How
to validate a class diagram contains all needed pieces to implement a
given scenario. Example: I give you a class diagram and the we-grow
description. Does it satisfy all needs?
- Know how to draw activity and swimlane diagrams (get the
arrows/boxes/start/end correct)
- Software Engineering
- Be able to explain the generic process framework and
APPLY it!
- communication, planning, modeling, construction,
deployment
- Be able to explain a few general reasons many project
fail and identify the reason a project failed given a scenario
- Be able to explain the umbrella activities (how, why,
when, etc...) and how to apply them
- Software project tracking and control
- Risk management
- Software quality assurance
- Technical reviews
- Measurement
- Software configuration management
- Reusability management
- Work product preparation and production
- Be
able to explain what the CMM is (you do not need to memorize the 5
levels, but you should generally know what a level is if I give you the
name (e.g. "Managed") from the book (page 27-28)
- Be able to explain what the following models are (steps,
etc...) and in what situations each is appropriate
- waterfall
- spiral
- RAD
- incremental
- Explain when to use prototyping (and why)
- Agile Methods
- Explain
what agile methods are (similarities and differences between them and
"prescriptive" methods). How do agile methods address the challeneges
found in prescriptive methods? How do Agile methods reduce the need for
documentation?
- eXtreme Programming
- If I give you one of the 12 areas in eXtreme
Programming, be able to explain it
- If
I give you one of the 12 areas in eXtreme Programming, explain what
other areas must also be done for it to work. (Generally, can you just
pick this one area of eXtreme Programming and apply it, or do you need
other parts also?)
- Scrum --- SKIP SCRUM SINCE SPEAKER CANCELLED
- Know generally what Scrum is
- Be
able to explain how Scrum plans and executes 30 day sprints. What
happens at the beginning to determine the Sprint backlog? What happens
every day? What happens at the end?
- Be able to describe the Scrum taskboard
- Know the general difference in methodology between
Agile and Perspective
- Know what factors may drive a project NOT to use
XP/Scrum
- Know what a software practice is and how it differs from
a process model
- Requirements
- Know the general steps in the requirements
process
- Inception, elicitation, elaboration, negotiation,
specification, validation
- Know tasks you perform at each step
- Be able to describe problems in requirements. Answer
the question "What is wrong with this functional requirement?"
- Know the difference between functional and
non-functional requirements. Be able to give examples of both
- Be
able to write or interpret User Stories.