Design

Release Information

Project: PIMS
Internal Release Number: 0.1
Attached Worksheets:
Related Documents:
Process impact: This design document describes a system that will satisfy the requirements of the SRS. Decisions made in creating this design document are based on those requirements and an understanding of available technologies and components. Once the design has been drafted, work on the system implementation and unit testing may begin.

Introduction

How is this design document organized?
This main page describes the system design in terms of packages, classes, relationships, and behavior. Several attached worksheets address specific aspects of the overall system design, such as user interface and database design.
What are the most important facts that a developer should know about this design?
Developers will be working at several locations. The design must be clear, and must reduce the coupling between developers' work.
What are the prioritized goals of this design?
  1. Testability
  2. Modularity
  3. Extensibility
  4. Correctness
  5. Understandability
  6. Feasibility
  7. Implementation phase guidance
  8. Efficiency

UML Design Checklist

TODO: Answer the following questions to help evaluate your design. Add or remove questions to fit your project. If you cannot answer a question positively, that may indicate an aspect of the design that should be revised.
Correctness: How do you know that this design is correct?
TBD. Some of the issues will be decided by the experience of implementing version 0.1. After that, there should be a second design review to examine its extensibility for requirements that have not been met so far.
Feasibility: What indicates that this design can be implemented and tested with the planned amount of time and effort?
Will be determined by experience of version 0.1.
Understandability / Modularity
Clear separation into layers with defined APIs.
Implementation phase guidance: Does the design suggest reasonable implementation tasks?
Yes, except for the Data Access Layer, which may be a big job.
Extensibility: How can new features can be easily added later?
Most use cases can be added at the Lab API and UI levels, making use of facilities from the lower layers. A few important features will require enhancements to lower layers. These are planned for in the design.
Testability: What makes this system easy to test?
All layers can be tested separately, apart from the UI.
Efficiency: Does the system consume an acceptable amount of time, storage space, bandwidth, and other resources?
The requirements are loose apart from the requirements for the turnaround time of an individual requrest. The design allows later work to improve this.
Has the design been communicated to the development team and other stakeholders?
TBD. The design is here and will be reviewed before implementation begins.
Company Proprietary
Copyright © 2003-2004 Jason Robbins. All rights reserved. License terms. Retain this copyright statement whenever this file is used as a template.