Home|News blank.gif
When Design Matters CoreLinux++ CoreLinux Consortium
blank.gif
CoreLinux++
blank.gif
Goals
blank.gif
Developer's Corner
blank.gif
Contacts
AbstractFactory Pattern Requirement

CoreLinux++ Functional Requirement Document
Revision $Revision: 1.3 $
Last Modified : Saturday, May 13, 2000

Title : Abstract Factory Pattern

Requirement ID: 5095
Analysis References: Use Case Report, Analysis Diagrams
Design References: Class Report, Design Diagrams
Cross References: Iterator, Strategy

1. Introduction

AbstractFactory provides an interface for creating families of related or dependent objects without specifying their concrete classes.

1.1 Deliverables Overview

The participants in the AbstractFactory pattern include:

AbstractFactory (libcorelinux)
Declares an interface for operations that create abstract product objects.
AbstractAllocator (libcorelinux)
A Strategy that declares an interface for the extension of memory management methods.
ConcreteFactory (external)
Implements the operations to create concrete product objects. Often the concrete factory is implemented as a Singleton.
AbstractProduct (external)
Declares an interface for a type of product object.
ConcreteProduct (external)
Defines a product object to be created by the corresponding concrete factory, implements the AbstractProduct interface.

The CoreLinux++ team will deliver the AbstractFactory type.

The CoreLinux++ team will deliver the FactoryException type.

The CoreLinux++ team will deliver the AbstractAllocator type.

The CoreLinux++ team will deliver the AllocatorException type.

Users can utilize the participant abstractions or implementations as a basis for creating their own AbstractFactory derivations outside of the libcorelinux++ library.

2. Functional Requirements

The AbstractFactory type will:

  1. Provide default constructors and virtual destructor.

  2. Provide operator assignment and equality overloads.

  3. Provide instrumentation for the number of creates and destroys.

  4. Take a AbstractAllocator argument for specialized memory management.

  5. Will allow the greatest number of type usage.

The FactoryException type will:

  1. Provide type for exception reasoning.

  2. Provide type for specializations to AbstractFactory.

The AbstractAllocator type will:

  1. Provide default constructors and virtual destructors.

  2. Provide operator assignment and equality overloads.

  3. Provide instrumentation for the number of allocations and deallocations.

  4. Provide virtual instrumentation methods for the number of space reuses.

  5. Will allow the greatest number of type usage.

The AllocatorException type will:

  1. Provide type for exception reasoning.

  2. Provide type for specializations to AbstractAllocator.

2.1 User Interface Specifications

NA

2.2 Product Services

NA

2.3 External Interfaces and Database Requirements

NA

2.4 Error Handling

Because the deliverables are not concrete, there is a non-issue, but, there will be Factory and Allocator exception types.


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

See Use Case and Class Reports


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
Contacts
- contact the webmaster
News
Powered / Hosted by

SourceForge.net
Contributor
NoMagic, inc.
thanks Gary!
Cool OO Sites
cetus
corba
omg
patterns
  Made with xemacs / php Comments to webmaster blank.gif