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.
- Functional Requirements
- Know the characteristics of a good requirement
- Testable
- Describes one thing
- Has a source
- Are things your system shall do (not an external system)
- Design Engineering
- Difference between analysis and design phase
- What goes 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 Responsability 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
- Visitor
- 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 stratgies to deal with it
- Know the concept of a Risk Management plan and the 4 things that should be documented for each risk:
- Description of the risk
- Liklihood of occurance
- Impact
- Mitigation strategy
- 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
- Verification and Validation
- Know definition of verification
- Know definition of validation
- Know definition of independant V&V and why it is used
- Know the definitions of static and dynamic verification and what each can and cannot do
- Know how to verify non-functional requirements
- Know how inspections can and cannot be used and what they may find
- Know two static analysis tools
- Know a definition of Formal Methods
- Know the V-Model of software development
- Define a successful test
- Testing Techniques
- Why do we need new testing techniques? (Why is the "old" view of testing a problem?)
- Why is it important to have testers involved at all stages of the software lifecycle?
- 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 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 40)
- 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
Check back for updates! Last updated: 11/30/2007