Extensibility Requirement
- Extensibility Requirement
- any quality requirement
that specifies a minimum required amount of
extensibility
The typical objectives of an extensibility requirement are
to:
- Enable architects and designers to partially base their
choices on foreseen enhancements.
- Ensure that future enhancements to an application or
component can be easily and quickly to implemented.
- Minimize enhancement costs.
The following are typical examples of
general extensibility requirements:
- “The average person-time required to make a minor
enhancement (including testing and documentation update) to
the application between major releases shall not exceed one
person week.”
- The average person-time required to make a significant
enhancement (including testing and documentation update)
during the development of a major new version of the
application shall not exceed five person weeks.”
The following are typical examples of
specific extensibility requirements associated
with an online auction application:
- “The average person-time required to extend the
application to enable sellers to sell services as well as
goods shall not exceed 40 person days.”
- “The average person-time required to extend the
application to enable buyers to obtain insurance shall not
exceed 60 person days.”
- “The average person-time required to extend the
application to enable buyers to place their seller payments
in escrow until satisfactory delivery shall not exceed 60
person days.”
- “The average person-time required to extend the
application to enable buyers to use their registered credit
card(s) to buy electronic money, which is then used to pay
the seller shall not exceed 40 person days.”
- “The average person-time required to extend the
application to enable sellers to automatically relist their
auctions if there are no winners shall not exceed 30 person
days.”
- “The average person-time required to extend the
application to enable sellers to specify a take it (i.e., buy
it immediately) price shall not exceed 30 person
days.”
- “The average person-time required to extend the
application to enable sellers to specify fixed price sales
(i.e., minimum bid = take it price) shall not exceed 10
additional person days.”
The following guidelines have been found to be useful when
producing extensibility requirements:
- Specify extensibility requirements when specific changes to requirements are envisioned.
- Extensibility requirements may be specified in terms of
average effort (person-time) or cost to make the different categories
of enhancements.
- The typical format for an extensibility requirements is:
“The average [effort|cost] to extend X to [meet requirement Y] shall not exceed Z.”
- The scope of an extensibility requirement can be:
- Extensibility should include:
- Analyzing, architecting, designing, and implementing the extension.
- Enhancing the associated documentation.
- Performing all associated regression or new
testing.
- Unlike correctability, extensibility can occur between or
at major releases of the application or component.
- Extensibility requirements should
not be unnecessarily specified in terms of
architectural, design, and implementation constraints and the
use of industry best practices that tend to produce
maintainable applications when followed such as:
- Layered architectures.
- Modular software.
- Information hiding of implementation.
- Well-defined interfaces.
- Object-orientation and component-based
development.
- Complete and current documentation.
- Adherence to project conventions.