CS / SWE
421 - Final Review Topics
The
following things are what I expect you to know for the CS / SWE 421
Final
- Everything
from the midterm review (the final will be comprehensive approximately
15-30% from the first half of class and 70-85% from the second half).
Generally though, you can concentrate on the "big things" like the
software process and concepts from the midterm and project.
- UML
- Be able to read/create sequence diagrams
- Be able to read/create an ERD using Bachman (or Crow's foot) notation
- Be able to read and create a DFD
- What's the difference between a Level 0 and Level 1 DFD?
- Be able to read/create a state diagram
- Including state transitions, guards, activities during transition, etc...
- Analysis Modeling
- What is the analysis phase? Why do we do it?
- Know how to perform a grammatical parse. What is this used for?
- Know how to create and use CRC cards. What are these used for?
- What are the basic four things that go in an analysis model?
- Scenario based elements
- Flow oriented elements
- Behavioral elements
- Class based elements
- Risk Management
- Know the
concept of a Risk Management plan and the 4 things that should be
documented for each risk:
- Description
of the risk
- Likelihood
of occurrence
- Impact
- Mitigation
strategy
- Design Engineering
- Difference between analysis and design phase
- What basic things go into a design spec
- architecture design
- component design
- UI design
- data design
- Explain what a design principle is
- Explain what a design pattern is
- Explain what a design metric is
- Design principles you should know
- Single Responsibility Principle
- Law of Demeter (Principle of Least Knowledge)
- Interface segregation principle
- Given a situation you should know which of these apply
or are being violated
- Design patterns you should know
- Singleton pattern
- Command
- Factory
- Know the definition of cohesion
- Know the definition of coupling
- Project Management
- Why is it necessary to quantify your plans
- Define
stakeholders and be able to give examples
- Scheduling
- Know how to create a schedule
- Definitions to know: critical path, slack, milestone,
dependency, resource leveling
- Know the dependency types: FS, FF
- Given a small schedule, be able to manually level your
resources
- How to read a Gantt chart
- Know how to determine the critical path given a list of
tasks
- Draw the network
- Determine the critical path
- Be able to briefly
describe Earned Value Analysis
- Know the
definition of scope creep and some strategies to deal with it
- Give
three things that can motivate people other than money
- Explain
why you need to manage expectations and what that means
- Explain
the concept of problem decomposition and how it relates to scheduling
- Know the
jobs of a project manager
- Risk
management
- Defect
tracking
- Managing
and motivating your people
- Testing Strategies and Techniques
- Why do we need new testing
techniques? (Why is the "old" view of testing a problem or what are advantages of the "new version"?)
- Why is it important to have
testers involved at all stages of the software lifecycle?
- Know
definition of verification
- Know
definition of validation
- Know definition of software
fault, software error, software failure
- Know the definition of testing
and debugging using the fault/failure terminology
- Be able to explain
observability and controllability and their impact on testing
- Know the
definitions of static and dynamic verification and what each can and
cannot do
- Know how
inspections can and cannot be used and what they may find
- What is an example of a static testing tool?
- How do you perform dynamic testing?
- Know the definition of white
box and black box testing
- Understand how test criteria
are used to create test requirements
- Given a structure, if I ask you
to create test cases or requirements from the criteria, be able to do
it for each structure
- Graphs
- Cover every node
- Cover every path
- Cover every edge
- Logical expressions
- predicate, clause,
combinatorial (active clause coverage)
- Input domain characterization
- A test case for each possible
input partition.
- Understand how to create
partitions given code or pseudo-code
- Syntactic structures
- Explain the basic steps in
mutation testing
- Explain what a coverage
analysis tool does
- Know the advantages of using
test coverage criteria (slide 45 in Testing Techniques slides)
- Explain the difference between unit testing and system testing
- Cyclomatic Complexity
- What does it measure?
- Is it an example of static or dynamic analysis?
- Know how to compute it given a small program or graph
- Software
Metrics
- Explain what is meant by an actionable metric
- What every project should measure -- inputs, outputs,
results. Be able to give examples and how they are actionable
- Explain what a function point is and how they are used.
- Know the definition and an example of measuring quality:
- Correctness
- Maintainability
- Integrity
- Usability
- Define and calculate Defect Removal Efficiency
- Refactoring
- What is a basic definition of refactoring?
- What is a danger in refactoring and how to you lessen the
risk?
Check
back for updates! Last updated: 11/30/2008