Review Questions for Midterm 2
Note: You won't need to do any calculations for the midterm. However, you may
be required to plug into the formulas studied in class.
- What are requirements?
- List 4 reasons why requirements elicitation is difficult.
- What is an example metric used in the requirements verification process?
- Given a system description, be able to identify the system stakeholders.
- Given a system description, be able to identify functional requirements,
non-functional requirements, and environmental constraints.
- What is an example UML diagram that captures static system behaviour?
What is an example UML diagram that captures dynamic system behaviour?
- Given code, be able to specify test cases in each equivalence
class.
- Given a system description, be able to draw the use case diagram for it.
- Explain the architectural patterns studied in class: MVC, layered
architecture, repository, client-server, pipe and filter. What are their
differences? What types of systems are they more suitable for and why?
- Given a system description, be able to draw the level 0 DFD for it.
- Given a system description, be able to draw the level 1 DFD for it.
- Give examples of what can be reused in the software development process.
- What are the costs and benefits of reuse?
- Explain the process of software development using a 4-tier host-target
environment, involving the tiers of: development, integration, staging, and
production.
- What is the difference between verification and validation?
- What is the difference between white box testing and black box testing?
- Given some sample code, draw a flow graph for it.
- Give a flow graph, be able to recover the code structure for it.
- Given a flow graph, identify the minimum number of paths needed to test
it, the paths needed to test statement coverage, branch coverage, multiple
condition coverage, loop coverage, and all paths coverage.
- Define the following terms: unit testing, integration testing, system
testing, acceptance testing, stress testing.
- Given certain software attributes (e.g., maintainability and reliability),
provide metrics that can be used to measure these attributes objectively.
- What is cyclomatic complexity? What does it indicate about a flow graph?
- Using the defect amplication model, calculate the number errors that pass
through from one phase to the next.
- What are the advantages of having a single commit appear from a feature
branch rather than having all of the commits appear separately?
- Be familiar with the different types of refactoring covered in class.
- What is the purpose of CMMI?
- What are the main steps in process improvement?
- What are the 5 levels of maturity?
- Given a company description, be able to identify which level it is at, and
explain your choice.
Passing criteria: You must pass the midterms in order to pass the course.