Lapas attēli
PDF
ePub

Software Technology

November 6, 1989

Despite its somewhat abstract nature, however, software is quite real and is critical to the use of computers. Most computers are, at least in theory, considered to be universal machines in that they could, given enough time, perform virtually any task that could be reduced to logical and computational steps. Software transforms this nearly unlimited hardware potential into a usable system directed to a specific job. Innovation and distribution of software, then, is every bit as important, if not more, to realizing the social and economic benefits of computers as is development of

new hardware.

Programs are, in a sense, a basic unit of software. They are expressions of instructions to be loaded into the computer designed to accomplish a particular and well defined set of tasks. Programs range in size from small, a few lines of instructions, to very large and complex, but they tend to be focused on specific activity. Any complex system, say the social security payment system or even a reasonably powerful word processing system for a personal computer, is composed of several programs that may work independently or may be tightly interlinked.

-

As commonly used, however, the term "software" commonly refers to a more comprehensive set of products a collection that includes programs, data sets, together with training, reference, and maintenance documentation and tools. That is, a computer science student may write a program as a class

Software Technology
November 6, 1989

assignment or meet some specific personal or academic purpose. A software provider, on the other hand, has developed a package with an eye towards serving the broader needs of a community of users. The program or programs, although the key element, are only a part of that package, and those programs are designed with much broader considerations, such as:

Can they be used for a variety of purposes users might dream up?

O Can they be used on a reasonable variety of machines?

o Are they easy to learn and use?

o Can they be connected with other software packages?

of one program be used by another program?

Can the output

o Are the programs as reliable as the application might require?

Furthermore, in today's marketplace, a variety of software products are offered that contain no programs or for which the programs are a minor

component. Vendors sell products such as specialized data bases and digitized pictures and type faces for use in desk-top publishing.

Software Technology
November 6, 1989

Forms of Programs

Programs come in a variety of forms. There are many classifications, but they roughly fall into three categories, as follows:

System programs direct the flow of work and data through the computer. These are executive control programs that keep track of data in the storage systems, schedule jobs, communicate with various input and output devices, keep accounting records, and interact with other computers over a data communications network. System software may be produced by the computer

manufacturer or by a third party

-

but delivered with the machine. It

defines, to a large degree, the operating environment of the computer, how the machine "looks" to users and to their application programs.

Utility programs perform operations that are common to many users. An electronic mail package, a program that helps people arrange information in storage, or one that detects virus contamination on their disks are examples of programs that would be used by most people on the system at some time or other in the course of their work.

Finally, application programs are those that actually make the computer do its work, solve the problems of users. They range widely in size and generality. Some are very large programs used by many people, word

Software Technology
November 6, 1989

processors, data base systems, statistical packages, spread sheets, and so on. Some are custom designed for highly specialized purposes and make take years of effort to develop and refine. Some are small games sold in mass quantities for $19.95 to be run on home computers.

Programming Languages

Computers have their own "language" in which the programs must be expressed in order for them to operate. This language is primitive and nearly impossible to use directly to create programs. It is expressed in the form of long strings of ones and zeros each string describing a relatively limited,

discrete step.

-

A large program can contain millions of these machine

instructions. In order to help programmers, higher-level languages were developed. Programs written in these languages are then translated by compilers into machine language code.

There are many classifications of language level. The important point is that the higher the level of language, the closer it is to the way a programmer thinks about and expresses a problem solution. level, the closer to the form of the machine language.

The lower the Translation may, in

fact, go through stages, from a high-level language to an intermediate lower level language, and eventually to machine language. At each step, the form of the program put into the compiler is called the source code, and the result is called the target code.

Software Technology
November 6, 1989

Algorithms

A term that arises frequently in the discussion of software is "algorithm." Algorithms are the basic units from which programs are created, They are essentially descriptions of techniques, methods for performing computational tasks. They differ from programs in two ways. They are (1) abstractions to some degree, and (2) they are specific in that they describe precise, narrowly defined operations. They also form the basis for much computer science and engineering.

Abstraction and narrowly prescribed function allow algorithms to be studied, analyzed, as well as communicated to programmers and researchers concisely. Abstraction, as the computer scientist sees it, can be viewed as removing unimportant details. As a Renaissance painter would sketch a design of a mural and leave it to his apprentices to fill in the gaps, so an algorithm is a precise, albeit incomplete, sketch of a program. Of course, which details are important and which unimportant depends greatly on the needs of the person doing the abstracting. Hence, definitions of algorithms vary, and algorithms are usually, themselves, composed of other algorithms. For example, an algorithm for finding the average of two numbers (add them and divide by two) assumes that we already have algorithms for adding and dividing.

« iepriekšējāTurpināt »