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.




Google



s