Home
SOFTWARES
* Accounting (1,579)
* Anti-Virus@ (127)
* Backup (188)
* Bar Code (212)
* Build Management (73)
* Business (674)
* Business Drawing (30)
* Business Intelligence@ (43)
* CAD@ (998)
* Communications (60)
* Compilers@ (198)
* Configuration Management (367)
* Data Administration (66)
* Data Compression (36)
* Databases (2,426)
* Desktop Customization (1,427)
* Desktop Publishing@ (35)
* Device Drivers (42)
* Diagnostics (63)
* Digital Video@ (52)
* Disk Management (181)
* Distributed Computing@ (14)
* Document Imaging (167)
* Document Management (220)
* Editors (61)
* Educational (531)
* Emulators@ (454)
* Enterprise Application Integration (44)
* Enterprise Information Integration (22)
* ERP (651)
* File Management (297)
* Fonts (42)
* Games@ (42,772)
* Graphics (2,629)
* Groupware (434)
* Help Desk (182)
* Home@ (3)
* Human Resources (505)
* Industry-Specific (959)
* Information Retrieval (105)
* Internet (4,636)
* Intranet (19)
* Manufacturing (534)
* Marketing (390)
* Master Data Management (95)
* Math@ (535)
* Multimedia@ (738)
* Networking (482)
* Object-Oriented (30)
* Office Suites (85)
* Online Training (222)
* Operating Systems (7,747)
* Presentation (99)
* Project Management (280)
* Robotics@ (73)
* Science@ (193)
* Security@ (639)
* Sports@ (42)
* Spreadsheets (146)
* System Management (116)
* Typesetting (409)
* Virtual Reality@ (21)
* Word Processors (106)
* Workflow (159)
Software
A set of instructions that cause a computer to perform
one or more tasks. The set of instructions is often
called a program or, if the set is particularly large
and complex, a system. Computers cannot do any useful
work without instructions from software; thus a
combination of software and hardware (the computer) is
necessary to do any computerized work. A program must
tell the computer each of a set of minuscule tasks to
perform, in a framework of logic, such that the computer
knows exactly what to do and when to do it. See also
Computer programming.
Programs are written in programming languages,
especially designed to facilitate the creation of
software. In the 1950s, programming languages were
numerical languages easily understood by computer
hardware; often, programmers said they were writing such
programs in machine language.
Machine language was cumbersome, error-prone, and hard
to change. In the latter 1950s, assembler (or assembly)
language was invented. Assembler language was nearly the
same as machine language, except that symbolic (instead
of numerical) operations and symbolic addresses were
used, making the code considerably easier to change.
The programmable aspects of computer hardware have not
changed much since the 1950s. Computers still have
numerical operations, and numerical addresses by which
data may be accessed. However, programmers now use
high-level languages, which look much more like English
than a string of numbers or operation codes. See also
Numbering systems; Numerical representation (computers);
Programming languages.
Well-known programming languages include Basic, Java,
and C. Basic has been modified into Visual Basic, a
language useful for writing the portion of a program
that the user “talks to” (i.e., the user interface or
graphical user interface or GUI). Java is especially
useful for creating software that runs on a network of
computers. C and C++ are powerful but complex languages
for writing such software as systems software and games.
See also Human-computer interaction; Local-area
networks; Wide-area networks.
Packaged software such as word processors, spreadsheets,
graphics and drawing tools, email systems, and games are
widely available and used. Some software packages are
enormous; for example, enterprise resource planning (ERP)
software can be used by companies to perform almost all
of their so-called backoffice software work. See also
Computer graphics; Electronic mail; Video games; Word
processing.
Systems software is necessary to support the running of
an application program. Operating systems are needed to
link the machine-dependent needs of a program with the
capabilities of the machine on which it runs. Compilers
translate programs from high-level languages into
machine languages. Database programs keep track of where
and how data are stored on the various storage
facilities of a typical computer, and simplify the task
of entering data into those facilities or retrieving the
data. Networking software provides the support necessary
for computers to interact with each other, and with data
storage facilities, in a situation where multiple
computers are necessary to perform a task, or when
software is running on a network of computers (such as
the Internet or the World Wide Web). See also Database
management system; Internet; Operating system; World
Wide Web.
Business applications software processes transactions,
produces paychecks, and does the myriad of other tasks
that are essential to running any business. Roughly
two-thirds of software applications are in the business
area.
Scientific and engineering software satisfies the needs
of a scientific or engineering user to perform
enterprise-specific tasks. Because scientific and
engineering tasks tend to be very enterprise-specific,
there has been no generalization of this application
area analogous to the that of the ERP for backoffice
business systems. The scientific-engineering application
usually is considered to be in second place only to
business software in terms of software products built.
Edutainment software instructs (educates) or plays games
with (entertains) the user. Such software often employs
elaborate graphics and complex logic. This is one of the
most rapidly growing software application areas, and
includes software to produce special effects for movies
and television programs.
Real-time software operates in a time-compressed,
real-world environment. Although most software is in
some sense real-time, since the users of modern software
are usually interacting with it via a GUI, real-time
software typically has much shorter time constraints.
For example, software that controls a nuclear reactor
must make decisions and react to its environment in
minuscule fractions of a second.
With the advent of multiple program portions, software
development has become considerably more complicated.
Whereas it was formerly considered sensible to develop
all of a software system in the same programming
language, now the different portions are often developed
in entirely different languages. The relatively complex
GUI, for example, can most conveniently be developed in
one of the so-called visual languages, since those
languages contain powerful facilities for creating it.
The server software, on the other hand, will likely be
built using a database package and the database language
SQL (a Structured Query Language, for inquiring into the
contents of a database). If the server software is also
responsible for interacting with a network such as the
Internet, it may also be coded in a network-support
language such as Java. An object-oriented approach may
be adopted in its development, since the software will
need to manipulate objects on the Internet. See also
Computer programming; Object-oriented programming;
Software engineering.
s
|