COMP 410 — Software Engineering
Write the paper, not just the code — 99 rubric-graded exam answers
A full software engineering course built for a closed-book written paper: the process framework and the prescriptive models, agility and the human side of a software team, requirements engineering and the functional/non-functional split, scenario, class, functional and behavioural modelling in UML, the design concepts (abstraction, modularity, information hiding, functional independence), architecture and component-level design with cohesion and coupling measured properly, user experience and pattern-based design, quality concepts, technical reviews and SQA, security engineering and the whole testing strategy, configuration management, metrics and support, and project planning, estimation and risk management. Every concept ends in the instrument the exam actually uses — a long-form answer you write, commit, then grade against the marking scheme, with the model answer and the technique note beside it. Prepares directly for the three-hour closed-book COMP 410 final examination: four 7-mark definitions, six 10-mark short answers, and one 12-mark thinking problem.
0 / 68 lessonsThe Discipline and the Process Framework
28 cardsPrescriptive Process Models
35 cards- The generic process model: activities, actions, tasks, task sets ◈ 13
- The waterfall model, and the projects where it is the right answer ◈ 4
- Prototyping, incremental delivery, and the spiral ◈ 5
- The Unified Process, and a prototype-driven model with a go/no-go gate ◈ 8
- Choosing a process model and defending the choice ◈ 5
Agility and the Human Side of Software Engineering
36 cardsUnderstanding Requirements
28 cardsScenario- and Class-Based Modelling
23 cardsFunctional and Behavioural Modelling
21 cardsDesign Concepts and the Design Model
28 cardsArchitecture and Component-Level Design
34 cards- Software architecture, and the decision record ◈ 4
- Architectural styles and architectural patterns ◈ 10
- Doing architectural design, and assessing the alternatives ◈ 4
- Components, and the principles that govern their design ◈ 5
- Cohesion and coupling ◈ 7
- Conducting component-level design, and refactoring ◈ 4
User Experience, Mobility, and Pattern-Based Design
25 cardsQuality, Reviews, and Software Quality Assurance
51 cards- What software quality means ◈ 10
- The quality dilemma and the cost of quality ◈ 7
- Quality control versus quality assurance ◈ 5
- Reviews: defect amplification, metrics, and choosing a review type ◈ 8
- Formal technical reviews, postmortems, and agile reviews ◈ 11
- SQA, statistical SQA, reliability, availability and safety ◈ 10
Security Engineering and Software Testing
32 cards- Security across the life cycle: secure SDLC, SQUARE, misuse cases ◈ 4
- Threat modelling, STRIDE, attack surface, and secure coding ◈ 4
- Testing strategy: V&V, organizing for testing, scaffolding, and stopping ◈ 4
- White-box testing, basis path testing, and cyclomatic complexity ◈ 5
- Black-box testing, boundary values, and object-oriented testing ◈ 5
- Integration, regression, smoke, validation, acceptance, and specialized testing ◈ 10
Configuration Management, Metrics, and Support
33 cards- Configuration management: baselines, SCIs and the repository ◈ 7
- The change management process ◈ 5
- Measures, metrics, indicators, and software analytics ◈ 6
- Product, process, project and quality metrics ◈ 4
- Software support: maintenance, reverse engineering and evolution ◈ 4
- Software process improvement and the CMMI ◈ 7
Managing the Project, and the Thinking Problem
55 cards- The management spectrum and the planning process ◈ 10
- Estimation: sizing, decomposition, and reconciling ◈ 9
- Scheduling: task networks, the critical path, and tracking ◈ 10
- Risk: reactive versus proactive, categories, and the risk table ◈ 12
- Risk refinement, RMMM, and the risk information sheet ◈ 7
- The thinking problem, and sitting the paper ◈ 7