You are on page 1of 4

When evaluating vendor offerings, what are the key factors that will help your

firm determine the best software product you require?


There are different factors which we will always consider at the time of
implementing a software product in our organization. These factors are as follows:

Software Engineering Factors:


1. Metrics and Measurements: Tool support for collecting metrics the
availability of metrics collection tools for a language.
2. Application Domains: Support for application domain the support
provided by a language for the application domain of interest.
3. Software Reuse: Support for structuring architectural framework the
support provided by a language for structuring an application framework
for a software system based on a defined software architecture.
4. Availability of code generators the availability of code generators for a
language within the application domain of interest.
5. Availability of components the availability of components for a language
within the application domain of interest that can be reasonably expected to
be useful.
6. Reengineering: Compatibility with reengineering plan the compatibility
of a language with the system reengineering plan in terms of support for
system requirements and support for being able to use components of the
existing system.
7. Development Environment: Compatibility with existing
tools/environments compatibility of a language with existing development
tools/environments.
8. Tool support for performance requirements the availability of languagerelated tools for determining software performance characteristics.
9. Tool support for security requirements the availability of languagerelated tools for evaluating and/or enforcing software security requirements.
10.Tool support for interoperability requirements the availability of
language-related tools supporting interoperability across multiple platforms
and/or software applications.
11.Tool support for maintenance requirements the availability of languagerelated tools supporting system maintenance requirements.
12.Availability of bindings/libraries required the availability of required
bindings and libraries that can be easily used within a language.

13.Availability of compiler for platform to be used the availability of


compilers for a language on the platform to be used.
14. Education and Training: Extent of education/training completed the
extent of the required language-related education and training already
completed by the project staff.
15. Availability of qualified professionals the availability of qualified
professionals, with the required language skills, who could augment the
current project staff.
16. Availability of required education/training the availability of languagerelated education and/or training courses that will be required to prepare
the staff for the project.

Cost Factors:
1. Purchase of product the purchase cost of the software development
tool(s).
2. Maintenance on product the cost of maintenance on the product for the
expected duration of use.
3. Training the cost to train personnel to use the tool(s) (including learning
the language, if necessary).
4. Installation the cost to install the tool(s), including check-out.
5. Additional hardware needed the cost of additional hardware (including
things such as networking cables) required by the specific tool(s).
6. Additional software needed the cost of additional software (including
operating systems, networking software, etc.) required by the specific
tool(s).
7. Additional people needed the cost of additional personnel (over the
lifetime of the project) required by the specific tool(s), to the extent that such
personnel would not otherwise be employed by the organization for use with
other candidate tool sets.

Product Characteristics:
1. Cost: Cost value the relative value of the total cost of the product as
compared with other products considered.

2. Performance: Various types of performance issues can be important when


considering a software development tool set. These issues generally center
on the code translator (compiler).
3. Compilation speed the performance of a translator (compiler or
assembler) in the areas of compilation speed, size of object code produced,
and ability to produce correct results.
4. Execution speed the performance of object code produced by a translator
in terms of execution speed.
5. Ability to handle large programs the performance of a translator with
respect to large programs in terms of limits of capacity and efficiency of
performance.
6. Tool Support: Tool support for requirements specification / risk
analysis the extent of automated support for the preparation of the
specification of requirements, including both textual and graphical forms of
documentation, and the assessment of risk associated with these
requirements.
7. Tool support for design the extent of automated support for the process of
defining the architecture, components, interfaces, and other characteristics
of a system or component.
8. Tool support for code generation the extent of automated support for
translating a requirements or design specification into source code for a
program.
9. Tool support for documentation the extent of automated support for
generating reports, certifying activities, and revising and managing any
written or pictorial information describing, defining, or specifying
requirements, procedures, or results.
10.Tool support for interfacing with a database the extent of automated
support for creating and managing a database to be used by the developed
software.
11.Tool support for testing the extent of automated support for the activities
in which a system or component is executed under specified conditions, and
the results are recorded and analyzed.
12.Tool support for static analysis the extent of automated support for the
process of evaluating a system or component based on its form, structure,
content, or documentation.
13.Tool support for dynamic analysis the extent of automated support for the
process of evaluating a system or component based on its behavior during
execution.

14.Tool support for configuration management the extent of automated


support for technical and administrative direction and surveillance to
identify and document the functional and physical characteristics of a
configuration item, control changes to those characteristics, record and
report change processing and implementation status, and verify compliance
with specified requirements.
15.Usability: Ease of set-up the extent that setting up a tool set for use in the
software development process is straightforward and without difficulty.
16. Ease of use the extent that the effort required to learn, operate, prepare
inputs for, and interpret outputs of development tools is minimal and without
difficulty.

You might also like