What are the different categories of software requirements? - - User vs system
- Func vs non-func
What are the different levels of development testing? - - Unit, integration, system
- Done by developers
What are some of the key differences between traditional software inspections and
modern code review? - - Software inspection: rely on the process, meeting
- Modern: use tools to help automate the process; no in-person meetings needed
What are the different families of design patterns? - - Creational: factory
- Structural: composite, adapter. decorator
- Behavioral: template, strategy
The classical design patterns that we will cover in this class fall into three categories:
- Creational patterns that add flexibility to the object instantiation process (hiding the
creation logic)
- Structural patterns that are concerned with how classes and objects are combined to
build software (adaptor, API migration)
- Behavioural patterns that allow algorithm and object responsiblity to be flexibly
redefined (Java iterator)
What does coupling/cohesion measure in an object oriented system? What values are
desirable? - - Coupling is the measure of the degree of interdependence between the
modules. A good software will have low coupling.
- Cohesion is a measure of the degree to which the elements of the module are
functionally related. Cohesion is the internal glue that keeps the module together. A
good software design will have high cohesion.
During a code inspection, team members occupy different roles. Apart from author and
reviewer, what are they? - Moderator, recorder/scribe, reader
Name five architectural patterns/styles - - MVC ( Web application)
, - Layered ( Operating System)
- Repository ( IDE)
- Client server ( Film library )
- Pipe and filter ( Processing invoices)
Software Quality Assurance is primarily concerned with two activities. What are they? -
Verification and validation
What are the key phases in a release pipeline? - - B uild
- I ntergrate
- D eploy
What are some of the key differences between traditional software inspections and
modern code review? - Software inspection: rely on the process, meeting
Modern: use tools to help automate the process; no in-person meetings needed
What are the stages/ACTIVITIES in the Software Development Process? - - D
evelopment
- E volution
- V alidation
- S pecification
Define the two steps in the requirements/specification stage: - 1. Software elements
analysis:
- Extract the requirements. The customer typically knows what he wants, but does not
know which software should do it.
- Demonstrating live code may help reduce the risk that the requirements are incorrect.
2. Scope analysis: Certain functionalities may be out of the scope of development
because it is too costly, or because the requirements are unclear.
What is specification? - It is the task of precisely describing the software to be written.
What are the FOUR major types of DESIGN? - - C omponent design
- A rchitectural design
- P ersistence design
- I nterface design
Define Software specification/development/validation/evolution - - Development: How
can the specification be realized?
o Software is designed and programmed
- Evolution: Reacting to changing market conditions