Ryerson Computer Science CPS406: Software Engineering

(go back)

1 - Intro SDLC

Contrast with typical manufacturing - with SW, most of the time is spent in development, not reproduction

Typical phases: Requirements, Architecture/Design, Implementation, Operation/Maintenance, Testing (continuous)

2 - SDLC Models

  1. Code-and-fix (and Code-like-hell)
  2. Waterfall
  3. Waterfall with feedback (feedback from the operation phase to any)
  4. Rapid prototype - starts with a prototype (feedback from operation phase to any)
  5. Incremental - iterative implementation phase with designs
  6. Spiral - with Risk Analysis in each phase

3 - Requirements Part 1

Feasibility study - can it be done, should it be done

Functional vs non-functional

  • Functional: "What", or more mathematically, for a given input there is one output (response)
    • inputs the system will accept, expected outputs
    • data stored in the system
    • who can use what areas of the system
    • list of reports the system produces
  • Non-Functional: "How", or "Constraints"; Eg
    • security
    • maintainability
    • extendability
    • performance

C-Requirements: customer

D-Requirements: design

4 - XP Intro

Project control variables:

  • Scope [xp says scope most critical]
  • Resources
  • Time
  • Quality

5 - User Stories

6 - Requirements Part 2

  • Class diagrams
  • Use Cases
  • Sequence Diagrams
  • State Diagrams
  • Petri Net diagrams

7 - Test Driven Development

Embedded Systems: hardware simulator

GUI's: separate into model, presenter, view

Benefits of TDD:

  • Coverage
  • Repeatable
  • Tests describe how the code should behave (essentially documentation)

Quality Assurance

  • Verification: That you built it right
  • Validation: That you built the right thing
  • Static Verification: System is not running. Eg., code review
  • Dynamic Verification: System *is* running. Could use simulated or real data taken from an earlier running copy of the program.
  • Regression Test: Test that is re-run to see if the system has not become broken since the last time run
  • Mutation Test: After establishing the test suite (and they pass), change some aspect of the code and witness a failure of the tests.
  • Black box: cannot see the code
  • White box: have access to the code

UI Design

  • Life-Critical Systems
  • Industrial & Commercial User
  • Office, Home & Entertainment

Gulf of Execution: Difference between the users's goals and the means of achieving them

Gulf of Evaluation: Amount of effort required to determine the system's state

4 Principles of Good Design:

  • State of the system and alternative actions should be visible
  • System should have a good conceptual model with consistent system image
  • Interface should have good mappings
  • Users should receive continuous feedback

4 Points where user failures can occur:

  • Users can form inadequate goal
  • Users might not find the correct interface object (wrong label)
  • Users may not know how to specify or execute desired action
  • Users may receive inappropriate or misleading feedback


Creational, Structural, Behavioral


  • Factory