Skip to content

About Design Goals

Under Construction

Correctness
This design correctly matches the given requirements.
Feasibility
This design can be implemented and tested with the planned amount of time and effort.
Understandability
Developers can understand this design and correctly implement it.
Implementation phase guidance
This design divides the implementation into components or aspects that can correspond to reasonable implementation tasks.
Modularity
Concerns are clearly separated so that the impact of most design changes would be limited to only one or a few modules.
Extensibility
New features or components can be easily added later.
Testability
It is easy to test components of this design independently, and information is available to help diagnose defects.
Efficiency
The design enables the system to perform functions with an acceptable amount of time, storage space, bandwidth, and other resources.
Ease of integration
The components will work together.
Capacity matching
The architecture deploys components onto machines that provide needed resources with reasonable total expense.
Expressiveness
It allows for storage of all valid values and relationships
Ease of access
Application code to access stored data is simple
Reliability
Stored data cannot easily be corrupted by defective code, concurrent access, or unexpected process termination
Data capacity
The system can store the amount of data needed.
Data security
Protection of sensitive user and corporate data from unauthorized access or modification
Performance
Data can be accessed quickly
Interoperability
The database or data files can be accessed and updated by other applications
Intrusion prevention
Prevent, e.g., hackers opening a command shell on our server.
Abuse prevention
Prevention of abuse (e.g., using our system to send spam).
Auditability
All changes can be accounted for later.
Understandability and learnability
Users can reasonably be expected to understand the UI at first sight. Users will be able to discover additional featureswithout aid from other users or documentation, and they will be able to recall what they have learned.
Task support and efficiency
The UI is well matched to the users' tasks and it can be used with a reasonable number of clicks and keystrokes.
Safety
Users are not likely to accidentally produce an undesired result (e.g., delete data, or send a half-finished email).
Consistency and familiarity
Users can apply their knowledge of similar UIs or UI standards to this system.