Page 1209 - The Mechatronics Handbook
P. 1209
0066_frame_C49.fm Page 4 Thursday, January 10, 2002 5:05 PM
• Distributed. Any system in which a number of independent, interconnected processes can coop-
erate. The client/server model is one of the most popular forms of distribution in use today. In
this model, a client initiates a distributed activity and a server carries out that activity.
• Simulation. The representation of selected characteristics of the behavior of one physical or abstract
system by another system. For example, a software program can simulate an airplane or an orga-
nization or another software program.
• Documentation. It includes the description of requirements, specification, and design as well as
written or generated documentation, which describe how each program within the larger system
operates and can be used; and comments which describe the operation of the program that are
stored internally in the program.
• Tools. The software programs used to design, develop, test, analyze, or maintain system designs
or another software program and its documentation. They include code generators, compilers,
editors, database management systems (DBMS), GUI builders, debuggers, operating systems, and
software development and systems engineering tools referred to in the 1990s as computer-aided
software engineering (CASE) tools and now often referred to as life-cycle design or life-cycle
development environments, which combine a set of tools, including some of those listed above.
Although the reader should by now understand the dynamics of a line of source code, where that line
of source code fits into the superorganism of software is dependent upon many variables. This includes
the industry the reader hails from as well as the software development paradigm used by the organization.
As a base unit, a line of code can be joined with other lines of code to form many things. In a traditional
software environment many lines of code form a program, sometimes referred to as an application
program or just plain application. But lines of source code by themselves cannot be executed. First, source
code must be run through what is called a compiler to create an object code. Next, the object code is
run through a linker which is used to construct an executable code. Compilers are programs themselves.
Their function is twofold. The compiler first checks the source code for obvious syntax errors and then,
if it finds none, creates object code for a specific operating system. UNIX, Linux (a spinoff of UNIX),
and NT are all examples of operating systems. An operating system can be thought of as a supervising
program that controls the application programs that run under its control. Since operating systems (as
well as computer architectures) can be different from each other, the object code resulting from the source
code compiled for one operating system cannot be executed under a different kind of operating system—
without a recompilation.
Solving a complex business or engineering problem often requires more than one program. One or
more programs that run in tandem to solve a common problem is known collectively as a system. The
more modern technique of object-oriented development dispenses with the notion of the program alto-
gether and replaces it with a classification-oriented concept of an object.
Where a program can be considered a critical mass of code, which performs many functions in the
attempt to solve a problem with little consideration for object boundaries, an object is associated with
the code to solve a particular set of functions having to do with just that type of object. By combining
objects, like molecules, it is possible to create more organized systems than those created by traditional
means. Software development becomes a speedier and less error-prone process as well. Since objects can
be reused, once tested and implemented, they can be placed in a library for other developers to reuse.
The more objects in the library, the easier and quicker it is to develop new systems. And since the objects
being reused have, in theory, already been warranted (i.e., they’ve been tested and made error-free), there
is less possibility that object-oriented systems will have major defects.
The process of writing programs and/or objects is known as software development, or software engi-
neering. It is composed of a series of steps or phases, collectively referred to as a development life cycle.
The phases include (at a bare minimum) the following: an analysis or requirements phase, where the
business problem is dissected and understood; a specification phase, where decisions are made as to how
the requirements will be fulfilled (e.g., deciding what functions are allocated to software and what
functions are allocated to hardware); a design phase, where everything from the GUI to the database to
©2002 CRC Press LLC

