The functional aspect of an application is embodied in the programming languages used
to code it. Additionally, professional system developers require tools appropriate to the
development and maintenance of applications. These capabilities are provided by software
engineering services, which include:
- Programming language services provide the basic syntax and semantic definition
for use by a software developer to describe the desired application software function.
Shell and executive script language services enable the use of operating system commands
or utilities rather than a programming language. Shells and executive scripts are
typically interpreted rather than compiled, but some operating systems support compilers
for executive scripts. In contrast, some compilers produce code to be interpreted at
runtime. Other tools in this group include source code formatters and compiler compilers.
- Object code linking services provide the ability for programs to access the
underlying application and operating system platform through APIs that have been defined
independently of the computer language. It is used by programmers to gain access to these
services using methods consistent with the operating system and specific language used.
Linking is operating system dependent, but language independent.
- Computer Aided Software Engineering (CASE) environment and tools services include
systems and programs that assist in the automated development and maintenance of software.
These include, but are not limited to, tools for requirements specification and analysis,
for design work and analysis, for creating, editing, testing and debugging program code,
for documenting, for prototyping, and for group communication. The interfaces among these
tools include services for storing and retrieving information about systems and exchanging
this information among the various components of the system development environment. An
adjunct to these capabilities is the ability to manage and control the configuration of
software components, test data, and libraries, to record changes to source code or to
access CASE repositories. Other language tools include code generators and translators,
artificial intelligence tools and tools like the UNIX command "make", which uses
knowledge of the interdependencies between modules to recompile and link only those parts
of a program which have changed.
- Graphical User Interface (GUI) building services assist in the development of the
Human Computer Interface elements of applications. Tools include services for generating
and capturing screen layouts, and for defining the appearance, function, behavior and
position of graphical objects.
- Scripting language services provide interpreted languages which allow the user to
carry out some complicated function in a simple way. Application areas served by special
purpose scripting languages include calculation, graphical user interface development and
development of prototype applications.
- Language binding services provide mappings from interfaces provided by
programming languages onto the services provided by the Application Platform. In many
cases the mapping is straightforward since the platform supplies analogous services to
those expected by the application. In other cases the language binding service must use a
combination of Application Platform services to provide a fully functional mapping.
- Run Time Environment services provide support for application software at run
time. This support includes locating and connecting dynamically linked libraries, or even
emulation of an operating environment other than the one which actually exists.
- Application Binary Interface services provide services that make the Application
Platform comply with defined application binary interface standards.
Copyright © The Open Group, 1998