CoreLinux++
Functional Requirement Document Revision $Revision: 1.2 $ Last
Modified : Tuesday, February 8, 2000
Title : Prototype Pattern
1. Introduction
Specify the kinds of objects to create using a prototypical
instance, and create new objects by copying this prototype.
1.1 Deliverables Overview
The participants in the Iterator pattern include:
- Prototype (libcorelinux)
-
Declares an interface for cloning itself.
-
ConcretePrototype (external)
-
Implements an operation for cloning itself.
The CoreLinux++ team will deliver the Prototype type.
The CoreLinux++ team will deliver the PrototypeException type.
Users can utilize the participant abstractions or implementations
as a basis for creating their own ConcretePrototype implementation
outside of the libcorelinux++ library.
2. Functional Requirements
The Prototype type will:
Provide default constructors and virtual destructor.
Provide operator assignment and equality overloads.
Provide the clone interface.
Provide instrumentation for the number of clone requests
made.
The PrototypeException type will:
Provide type for exception reasoning.
Provide type for specializations of Prototype.
2.1 User Interface Specifications
NA
2.2 Product Services
NA
2.3 External Interfaces and Database Requirements
NA
2.4 Error Handling
At the libcorelinux level this is a non-issue, but exception types
are provided.
2.5 Foreseeable Functional Changes and Enhancements
NA.
3. Non-Functional Requirements
Precondition constraints: None
Postcondition constraints:
None
Invarient constraints: None
3.1 Performance Requirements
NA
3.2 User Documentation and Other User Aids
This Document
Analysis Use-Case diagrams
Design class diagrams
3.3 Development Requirements
Standards: CoreLinux++ C++ Standards and
Guidelines
Will be part of the libcorelinux++ shared library.
3.4 Foreseeable Non-Functional Changes
NA
4. Remarks and Guidelines for Later Life Cycle Phases
TBD
5. Term Glossary
TBD
Copyright © 1999, 2000 by CoreLinux Consortium
This material may be distributed only subject to the terms and conditions set forth in the
Open Publication License
|