Section 1 Guidelines for Choosing a Computer Language:
Support for the Visionary Organization

Guidelines for Choosing a Computer Language:
Support for the Visionary Organization
2nd Edition

Computer technology is constantly changing – ever the source of both delight and concern for an organization. Commercial off-the-shelf (COTS) software holds much promise for satisfying many of today’s business requirements, yet it is not a panacea by any means. COTS software is often more expensive in the long run than internally developed software, and it often cannot satisfy all needs. Internally developed software continues to be necessary in many cases, but its integration with COTS software is often not considered. A visionary organization must look at the software "big picture" to develop a viable software strategy. The choice of computer language is central to the issues involved with developing such a strategy. A good choice permits internal development of useful, reliable systems that can also be integrated with COTS software where necessary. A poor choice perpetuates "business as usual" – that all-too-familiar scenario of unreliable, hard-to-use programs that cannot share information with any other programs, and that become a more and more expensive liability as time goes on.

This document is intended as a decision aid for the software manager who must choose appropriate software assets for an organization to use in its software production. As such, the process described in this document has been named Selecting Appropriate Software Engineering Assets (SASEA). The choice of computer language is an important issue for a visionary organization and should not be taken lightly. This document will lead the decision maker through a series of steps to choose a language, and then it will go beyond this, to the natural and logical extension of selecting a set of software tools to be used in producing software using the chosen language.


Section 1

How to Use This Document

The main body of this document should be used sequentially, without skipping any sections. Supplementary material has been provided in the appendices. These appendices are referenced when they are pertinent, and the reader is encouraged to examine this supplementary material. Appendix A contains a list of all acronyms. Appendix B provides a list of all references used throughout the document, including those used only in the appendices.

The next section, Changes to the 2nd Edition of This Document, discusses the changes made for this edition of the document and the reasons for them. This may be useful for readers who are familiar with the first edition.

The following section, Criteria for a Good Language, discusses the criteria used in determining a good language for a particular organization. Each of the languages, or types of languages, considered in this document has been evaluated according to these criteria. These evaluations can be found in Appendix H through Appendix R, where each language considered is covered separately. The languages in the appendices are ordered as they are given in Table 2. Appendix S, Ada 83, details a language that has been dropped from the list of default languages in the tables because it is no longer likely to be used on new projects. However, it remains as an appendix in case its consideration makes sense for a project. Language appendices are last to allow room for adding new languages as interest in considering a language in the SASEA process dictates the provision of ratings for the language. Added languages will not necessarily become default languages in the tables, but once a language has been rated it will not be removed from the appendices.

The section, Size and Complexity Drive Development Strategies, considers how size and complexity should determine the strategy to be chosen for development. The first step in choosing a language is to establish the size and complexity of the system(s) to be developed. Under the right circumstances, a language decision can be made directly from Table 1. However, where this is not the case, the decision process continues to the next section.

The Choosing a Language section lays out the language selection subprocess of SASEA using Table 2 and Table 3. The subprocess begins by requiring the decision maker to determine the most important language characteristics in the decision process, and these characteristics are assigned weights. Language characteristics have to do with the definition of the language rather than any implementation factors, and they are discussed in detail in Appendix C. Criteria and/or languages not listed in Table 2 can be added. However, such additions will require additional analyses of the type already accomplished in the language appendices for the given languages and the given criteria. Note that Table 2 lends itself to automation via a spreadsheet.

Once the language calculations are completed, there are other important factors that have still not been considered. The language must now be considered in the context of software engineering factors affecting the organization. These have to do with the implementation of a development environment for a language, and they are discussed in detail in Appendix D. Table 3 supports a further refinement of the language decision subprocess, based on the importance of these factors to the organization. Table 3 is completed in much the same fashion as Table 2, and it also lends itself to automation. Once the software engineering factors are considered, an informed language decision can be made.

The complete SASEA process also involves the selection of tool support. The section on Choosing Software Development Products first lays out cost considerations in Table 4, because this is usually a driver for choosing candidate products. It can also be important for estimating a budget for tool support. Cost factors are discussed in detail in Appendix E.

Once candidate products are determined, Table 5 is used to rate these products. This table uses ratings and weights of important product characteristics for determining the most appropriate tool set for development use. Appendix F discusses product characteristics in detail. Be aware that, depending on the size of systems to be developed, it may take a significant amount of time and effort to complete Table 5. It requires not only assigning weights to the given product characteristics, but also evaluating each candidate product with respect to each important characteristic. Once done, however, product decisions can be made, and the SASEA decision process is complete.

Because this process is not always quick or simple, two examples of using the SASEA process have been provided in Appendix G. Additionally, an Excel file containing automated versions of Tables 2, 3, 4, and 5 accompanies this document, along with a file containing the worked out example from Appendix F that uses these tables. It is also likely that the decision maker will want to enlist help from others, referred to in this document as evaluators, in gathering information during this process.



< Previous Page Search Contents Tables Next Page >

Sections
1 2 3 4 5 6 7

Appendices
A B C D E F G H J
K L M N P Q R S