7.4.1 - Mapping Subsystems to Processors and Components
7.4.2 - Identifying and Storing Persistent Data
Identifying persistent objects
Selecting a storage management strategy
- Flat files
- Relational database
- Object-oriented database
7.4.3 - Providing Access Control
The access matrix can be implements as:
- A global access table - Easy to use, but may be very sparse.
- An access control list - A linked list of the actors that have access to particular entities
- A capability list - A linked list of which entities a particular actor has access to.
Rules Lists
Dynamic access control
Authentication
Encryption
7.4.4 - Designing the Global Control Flow
Procedure-driven control
Event-driven control
Threads
7.4.5 - Identifying Services
7.4.6 - Identifying Boundary Conditions
Configuration
Start-up and shutdown
Exception handling
7.4.7 - Reviewing System Design
Is the model:
- Correct
- Complete
- Consistent
- Realistic
- Readable
7.5.1 - Documenting System Design
See also the Software Engineering Report Template provided for this class, in particular sections IV.
7.5.2 - Assigning Responsibilities
Main roles of system design:
- Architect
- Architecture Liaisons
- Document Editor
- Configuration Manager
- Reviewer
7.5.3 - Communicating about System Design
New sources of complexity:
- Size
- Change
- Level of abstraction
- Reluctance to confront problems
- Conflicting goals and criteria
Techniques:
- Identify and prioritize the design goals for he system and make them explicit.
- Make the current version of the document available to all concerned
- Maintain an up-to-date glossary
- Confront design problems
- Iterate.
7.5.4 - Iterating over the System Design
7.6.1 - Identifying Design Goals
- Low operating cost.
- High availability
- Scalability in terms of number of players and concurrent tournaments.
- Ease of adding new games.
- Documentation for open source development.
7.6.2 - Identifying Subsystems
7.6.3 - Mapping Subsystems to Processors and Components
7.6.4 - Identifying and Storing Persistent Data
Identifying persistent objects
Selecting a storage strategy
7.6.5 - Providing Access Control
7.6.6 - Designing the Global Control Flow
7.6.7 - Identifying Services
7.6.8 - Identifying Boundary Conditions
Configuration use cases
Start-up and shutdown use cases
Exception use cases
7.6.9 Lessons Learned