Portability Requirement
- portability requirement
- any developer-oriented
quality requirement
that specifies a required amount of the
quality factor
portability
The typical objectives of a portability requirement are
to:
- Ensure that the application or component can be easily
and quickly ported to specified new environments if and when
necessary.
- Minimize porting costs and schedules.
The following are typical examples of portability
requirements:
- “The average time needed to port the component from
Windows 98 to Windows XP shall not exceed two person
weeks.”
- “Porting the application from Windows NT to Windows
XP shall not require modifying more than 0.5% of the lines of
non-comment, non-blank source code.”
- “Porting the application from Windows NT to Windows
XP shall not require modifying more than 1.5% of the
modules.”
- “The average time needed to port the application
from Internet Explorer to Netscape Navigator shall not exceed
6 person weeks.”
The following guidelines have been found to be useful when
producing portability requirements:
- The scope of a portability requirement can be:
- Because the amount of effort required porting an
application or component typically depends on the environment
to which it is being ported, portability requirements should
specify the potential (probable) environments to which the
application or component will be ported.
- When specifying the environments to which the application
or component may be ported, the portability requirement
should specify the:
- Hardware platform (i.e., vendor and model).
- Operating system (i.e., vendor, model, and version such
as Microsoft Windows XP).
- Programming language virtual machines (i.e., vendor,
model, and version such as Sun Java Version 2).
- Browser (i.e., vendor, model, and version such as
Microsoft Internet Explorer Version 5.0 and greater).
- Avoid redundancy between portability and interoperability
requirements. Clearly decide whether or not virtual machines
and browsers are part of the platform.
- Portability requirements are typically specified in terms
of the maximum amount of effort permitted for average
engineers to port the application or component to the
specified environment.
- The implementation of porting requirements typically
involves:
- Updating software components.
- Updating data and hardware components (e.g., if going
porting client software from a workstation to a hand-held
wireless device with limited screen space).
- Updating associated documentation.
- Quality engineering and testing.
- Porting 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 portable applications when
followed such as:
- Isolating operating system calls.
- Minimizing or avoiding the use of machine
language.
- Maximizing the use of portable languages such as
Java.
- Maximizing the use of open interface, distribution, and
communications standards (e.g., CORBA, Enterprise Java
Beans).
- Localizing user interface software.
- Initially targeting common platforms.