CS / SWE 421 - Midterm Review Topics
Check back for
updates! Last updated: 10/08/2009.
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, draw and interpret a diagram.
- Can you explain why a use case description has each part?
- How to draw class diagrams (including all the
parts we discussed in class)
- What are all the parts? What do they mean?
- 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)
- Know how to draw sequence diagrams (get the
arrows/boxes/start/end correct)
- Know how to draw state diagrams (get the
arrows/boxes/start/end correct)
- Know how to draw DFD diagrams. What is a level 0 diagram? How do you create a level 1 diagram? What is a DFD trying to show?
- Know how to draw ERD diagrams. What are they trying to show? How are they different from DFD diagrams?
- Software Engineering
- Know the goal of 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
- What is an umbrella activity? Be able to briefly explain:
- Software project tracking and control
- Risk management
- Software quality assurance
- Technical reviews
- Measurement
- Software configuration management
- Reusability management
- Be able to explain what the following models are (steps,
etc...) and in what situations each is appropriate
- waterfall
- spiral
- RAD
- incremental
- Unified Process
- Explain when to use prototyping (and why)
- CRC Cards
- Why do we use CRC cards
- What are the steps involved in using them
- What goes on a card and what do those things mean? (you can ignore stereotypes)
- Agile Methods
- Explain
what agile methods are (similarities and differences between them and
"prescriptive" methods). How do agile methods address the challenges
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
- Know generally what Scrum is, what is the process?
- 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? What is velocity (and how do you calculate it)
- Be able to describe the Scrum taskboard
- Be
able to write or interpret User Stories.
- What are the roles in Scrum?
- Know the general difference in methodology between
Agile and Perspective. What do each strive to do?
- Know what factors may drive a project NOT to use
XP/Scrum.
- Requirements
- Know the general steps in the requirements
process
- Inception, elicitation, elaboration, negotiation,
specification, validation
- Be able to explain briefly each step (1-2 sentences per 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
- Analysis phase
- What is the analysis phase?
- What are the objectives?