Design Patterns

Design Pattern: Standard design techniques and templates widely recognized as good practice.

Controller

Acts as a switchboard between Domain layer and View layer classes.

Adapter

Place an adapter between your system and an external system.

Example: The school has a bunch of adapters to integrate existing systems with Canvas.

Factory

Use factory class when creation logic is complex for a set of classes.

Singleton

Use when only one instance should exist at a time and is shared.

Testing

Testing: Process of determining whether a component/subsystem/system contains any defects.

Test Case: Formal description of a starting state, event(s) to which the software must respond, and the expected response/ending state.

Test Data: Set of starting states and events used to test a module(s)/system.

Common Types of Tests

  1. Unit Testing
  2. Integration
  3. System and Stress
  4. ???

Unit Testing

Unit Tests: Tests of an individual method, class, or component before it’s integrated with other software.

Integration Testing

Integration Testing: Test of the behavior of a group of methods/classes/components.

System, Performance, and Stress Testing

System Test: Integration test of an entire system/independent subsystem.

Performance/Stress Test: Integration and usability test that determines whether a system/subsystem can meet time-based performance criteria.

User Acceptance Testing

User Acceptance Test: System test performed to determine whether the system fulfills user requirements.

Converting and Initializing Data

An operational system requires a fully-populated database to support ongoing processing.

Data needed at started can be obtained from:

Note: Some engineers specialize in ETL (Extract Transfer Load). Transferring data can be very costly.

Training Users

Training is needed for end users and system operators.

Planning and Managing

Change and Version Control

Alpha Version:

Beta Version

Production Version / Release Version / Production Release

Maintenance Release: