SOURCES AND SERVICES
Chapter 55 Computer Software 55.1 Defining Computer Software
The computer software is the detailed program and instruction that control the operations of a computer system. They cause the hardware to do work. A software program is a series of statements or instructions to the computer. The process of writing coding programs is termed programming, and individuals who specialize in this task are programmers.
Software as a whole can be divided into a number of categories based on the type of work done. The two primary software categories are:
• system software (operating system and language translators), which control the workings of the computer, and
• application software, which addresses the multitude of tasks for which people use computers.
Two additional categories that are neither system nor application software, although they contain elements of both, are:
• network software, which enables groups of computers to communicate, and
• language software, which provides programmers with the tools they need to write programs.
In addition to these task-based categories, several types of software are described based on their method of distribution. These include the so-called canned programs or packaged software developed and sold primarily through the following.
• retail outlets
• freeware and public-domain software (made available without cost by its developer)
• shareware (similar to freeware but usually carries a small fee for those who like the program)
• vapourware (a software that either does not reach the market or appears much later than promised.
55.2 System Software
System software is a set of generalized programs that manage the computer's resources, such as the central processor, communication links, and peripheral devices. It coordinates the various parts of the computer and mediates between the application software and the computer hardware.
There are three major types of system software.
• Operating system - This manages ad control's the computer's activities, such as multiprogramming, multitasking, virtual storage, time sharing, and multiprocessing. The most common feature of software programs nowadays is the graphical user interface (GUI), which is the part of the OS users interact with, which uses graphic icons and some input pointing devices like the mouse to issue commands and make selections. The following is a list of popular operating systems.
o DOS (Disk Operating System) - This is a 16-bit OS used by earlier PCs. It does not support multitasking and limits the size of programs that can be run.
o OS/2 - This is an operating system for personal computers which allows multi-tasking. It can run MS-DOS and Windows-based applications, and can read all MS-DOS disks. OS/2 was originally developed as a joint project between Microsoft and IBM.
o Mac OS - This is the first OS to render graphical user interface that was developed for Macintosh computers.
o Linux - Linux is available from many different companies each adding their own features, such as a graphical installation routine, but all relying on a basic set of operating system functions. Linux has been refined and developed to become one
of the most popular operating systems in the world. It is widely used in the business community to support office and commercial systems as well as being an increasingly popular operating system for personal computing. Rather than being developed as a commercial product, the original version of Linux was released to a public Internet forum and was subsequently adopted by software engineers worldwide as a programming challenge. The basic Linux operating system is free. Linux was continually enhanced through the 1990s. In addition to the distributed development mechanism, commonly known as open source, software, several commercial enterprises have released their own Linux-based products. A number of vendors have gathered together various pieces of software and presented them in a distributable format that makes Linux look like any operating system with which people are familiar. The Linux releases from these companies are called distributions. The Red Hat distribution is the most popular commercial offering with Caldera, Debian, and Suse some of the other leading names.
o UNIX - This is a multi-user, user ID operating system that incorporates multitasking. It was originally developed for use on minicomputers. UNIX exists in various forms and implementations and is considered a powerful operating system that is more portable-less machine-specific-than other operating systems because it is written in C. UNIX is available in several related forms, including AIX, a version of UNIX adapted by IBM (to run on RISC-based workstations), A/UX (a graphical version for the Apple Macintosh), and Mach (a rewritten but essentially UNIX-compatible operating system for the NeXT computer).
o Microsoft Windows - This is a multitasking graphical user interface environment that runs on MS-DOS-based computers.
Windows provides a standard interface based on drop-down menus, screen windows, and a pointing device such as a mouse.
Programs must be specially designed to take advantage of these features. This was released in several versions.
§ Windows 3.0 (1990)
§ Windows 3.1 (1992)
§ Windows NT (1993) - This is an operating system for business environments.
§ Windows 95 (1995)
§ Windows 98 (1998) - This featured integrated Internet capabilities.
§ Windows CE (1999) - This OS was used in devices designed to provide consumers with integrated cable-television, telephone, and high-speed Internet services.
§ Windows ME (Millennium Edition, 1999) - This is very much similar to the features and capabilities of Windows 98, with some additional upgrades.
§ Windows 2000 (1999) - This was released as an update for Windows NT, intended for workstations and network servers.
§ Windows XP (eXPerience, 2001 - This is the company's first operating system for consumers that was not based on MS-DOS. It combines the robustness of Windows 2000 and Windows 98 and ME.
§ Windows Longhorn - This OS by Microsoft is the next generation to Windows XP, with updated and added features not present in previous versions. It has not been released to the market and is presently under development.
• Language translators - These are programs that convert the programming language instructions in a computer program into machine language code. The program I the high level language before translation into machine language is called source code. There are two basic types of language translators.
o Assembly languages - These programs substitute mnemonics for numeric codes. These are popular in second generation computers.
o Compilers or interpreters - These programs translate high-level language into machine language. Some examples are the following.
§ Third generation programming languages
• COBOL
• FORTRAN
• BASIC
• PASCAL
• C and C++
§ Succeeding generation programming languages
• PERL interpreter
• JAVA compiler
§ Fourth generation languages are language programs that can be employed directly by end users or less-skilled programmers to develop computer applications more rapidly than conventional programming languages.
They are characterized by the following.
• They are less procedural, or even non-procedural.
• They use a programming language that is very close to human language (natural language).
• They incorporate software tools that provide immediate on-line answers to requests for information that is pre-defined (query language).
§ Fourth generation language programs are distributed in seven categories.
• PC software tools (e.g. WordPerfect, IE, Access)
• Query language (e.g. SQL)
• Report generator (e.g. RPG III)
• Graphics language (e.g. SAS Graph, Systat)
• Application generator (e.g. Focus, Power Builder, MS Front Page)
• Application software packages (e.g.
Peoplesoft, HRMS, SAP R/3)
• Very-high-level programming languages (e.g.
APL, Nomads2)
• Utility software - These are programs that are used to support, enhance, and expand existing programs in a computer system. Typical utility software programs include
o screen savers
o data recovery and back-up utilities o virus-detection programs
o data compression and disk defragmenter tools o device drivers
o spooling programs o internet security programs 55.3 Application Software
Application software is a program written for a specific application to perform function specified the end user. It must work through the system software in order to operate.
The following are features common to all application software programs.
• WYSIWYG (What-You-See-Is-What-You-Get) - What appears exactly in the computer monitor is exactly as they would be finally produced.
• White space - The area where the work is done is commonly white (unless the user changes the default color).
• Cursor - This indicates where particularly in the document are the current and next operations applied.
• Panning - The user can scroll through the document to the left or to the right.
• Desktop - This is usually the entire screen area that is available for GUI.
• Desktop accessories - These are features commonly found on a conventional office desktop like toolbars, icons, forms, drop-down lists, check boxes, etc.
• Clipart - These are artwork designed for import usually to text documents or charts.
• Object linking embedding (OLE) - This lets one to embed an object created using one application into another application. This is common in integrated software packages.
The following is a categorization of application software commonly used nowadays.
• Word processing software - These are programs that are used to enter, store, manipulate, and print text (or sometimes text with images) to produce documents.
o Examples: MS Word Office Writer Star Office Writer
• Electronic spreadsheets - These are programs that are used for file containing data and formulas in tabular format. They are capable of easily recalculating numerical data.
o Examples: MS Excel SPSS Calc
• Database management software - These are used for creating and manipulating lists, creating files and databases to store data, and combining information for reports.
o Examples: MS Access
Integrated Library System Software File Maker Pro
• Presentation graphics software - These are programs that create quality graphics presentations that can incorporate charts, sound, animation, photos, and video clips.
o Examples: MS PowerPoint Lotus Freelance Graphics
• Integrated software packages and software suites - These come in bundles of two or more applications, which provide easy transfer of data between them. Integrated software suites have capabilities for supporting collaborative work on the Web or incorporating information from the Web into documents (e.g. MS Office 2000, XP, and 2003).
o Examples: MS Office Lotus Notes
• Personal information management software - These are equipped with appointment scheduling systems, calendars, contact lists, e-mail browsers, and other applications used for organizing personal data and information.
o Examples: MS Outlook Palm OS
• Electronic mail software - These programs facilitate computer-to-computer exchange of messages. Web browsers and PC software suites also have e-mail capabilities.
o Examples: MS Outlook Mozilla Eudora Pegasus
• Web browsers - These are easy-to-use software tools for accessing information in the World Wide web and the Internet.
o Examples: MS Internet Explorer Netscape Navigator Opera
• Web authoring software - These are intended in the creation of high quality Web pages and Web sites. They usually apply a WYSIWYG working environment, allowing the less skilled Web developers to come up with competitive work results.
o Examples: MS FrontPage Adobe GoLive
• Image processing software - These are intended in producing and editing high-quality images and photos, which can be used in other works or can be shared online or through devices like digital cameras.
o Examples: Adobe Photoshop Correl Draw
• Reference suite software - These are the electronic counterpart of the printed reference sources known, like encyclopedias, dictionaries, atlases, and so on.
o Examples: MS Encarta Reference Suite Compton's Interactive Encyclopedia
• Media authoring software - These are intended to be used in producing various types of media like video, music, animations, and so on.
o Examples: Pinnacle Cakewalk Studio Sonic Foundry Acid Pro Macromedia Flash
• Music notation software - These are chiefly intended for the production of printed music. Some music notation software applications are integrated with features that function like media authoring software.
o Examples: Finale
Voyetra MusicWrite Cakewalk Score Writer
• Media players - These are intended to playback media files like music files (e.g. audio tracks, mp3 files, MIDI sequences, wav files, etc.), and video files (MPEG files, avi files, etc.). They are also used to access the media content of optical discs (e.g. VCD, DVD, audio CD) or other storage devices that contain media.
o Examples: Windows Media Player Cyberlink Power DVD Creative Media Center
• Computer aided design software - These are highly specialized software used in creating designs like architectural and engineering designs. They are capable of rendering three-dimensional images.
o Example: Autodesk AutoCAD
55.4 Contemporary Tools for Software Development
Here are some of the tools and approaches commonly used nowadays in the design, creation, and development of computer software applications.
• Object-oriented programming - This is an approach to software development that combines data and procedures into a single object. The object combines data and program code. It has spawned a new programming technology known as visual programming. Visual Basic (VB) is a widely used visual programming tool to run on Windows platforms.
• JAVA - This is a programming language that can deliver only the software functionality needed for a particular task. such as a small applet downloaded from a network. JAVA can rin on any computer or operating system.
• HTML (Hypertext Markup Language) - This is the standard text formatting language for documents on the World Wide Web since 1989. HTML documents are text files that contain two parts: content that is meant to be rendered on a computer screen; and markup or tags, encoded information that directs the text format on the screen and is generally hidden from the user. HTML is a subset of a broader language called Standard Generalized Markup Language (SGML), which is a system for encoding and formatting documents, whether for output to a computer screen or to be printed on paper.
• XML (Extensible Markup Language) - This was created to structure, store, and send electronic information. In appearance, XML is similar to the familiar HTML used to create pages on the World Wide Web. The main difference between the two is that HTML is used to describe how Web pages should look while XML is designed to describe what the information on a Web page actually means. Put another way, HTML is about displaying information, while XML is about describing information. XML is not a replacement for HTML; it was designed for a specific purpose with an overall intent that it should complement HTML.
Chapter 56 - Data Resources Management 56.1 Databases: Some Concepts and Terminologies
The management of data and information in computers typically involves databases. A database is a collection of data organized for storage in a computer memory and designed for easy access by authorized users. It serves many applications efficiently by centralizing the data and minimizing redundant data. The data may be in the form of text, numbers, or encoded graphics.
Since their first, experimental appearance in the 1950s, databases have become so important in industrial societies that they can be found in almost every field of information. Government, military, and industrial databases are often highly restricted, and professional databases are usually of limited interest. A wide range of commercial, governmental, and non-profit databases are available to the general public and may be used by anyone who owns or has access to the equipment that they require.
The organization of data in databases involves some terminologies.
• character - consists of a single alphabetic, numeric, or other symbol
• field - a grouping of characters into a word, a grouping of words, or a complete number; such as a person's name or age
• record - a group of related fields
• file - a group of records of the same type, or rewcords that are somehow related
• entity - a person, place, thing, or event about which information must be kept
• attribute - a piece of information describing an entity
• key field - a field in a record that uniquely identifies instances of that record so that it can be retrieved, sorted, or updated
• query - a statement defined by the user, which instructs the database management system (DBMS) the find and retrieve the wanted record or information
• tuple - a row or record in a relational database 56.2 Databases: Management, Design, and Structure
Database management system (DVMS) is a special software or a computer program that controls the creation, maintenance, and use of a database of an organization and its end users. It has three (3) components:
• a data definition language
• a data manipulation language
• a data dictionary
Many database management software packages make use of SQL (Structured Query Language). It is the most prominent data manipulation language today.
A typical database consists of several database objects. The following objects are the usual components of a database. Other database management programs may use a different name for some of the objects.
• Table - A table is the basic unit for storing a collection of data. A table's definition consists of a list of fields, each of which stores a discrete piece of information for a single record.
• Queries - Queries enable the user to extract a subset of data from a single table, from a group of related tables, or from other queries, using criteria you define. By saving a query as a database object, the query can be run at any time, using the current contents of the database. They may sometimes look exactly like a table; the crucial difference is that each row of the query's results may consist of fields drawn from several tables. A query may also contain calculated fields, which display results based on the contents of other fields.
• Forms - Forms enable users to enter, view, and edit information, generally one record at a time. They can closely resemble paper forms such as invoices and time sheets; or they are organized for data entry with data validation rules. A form may also include a sub form that displays information from a related table.
• Reports - Reports enables the user to present data from one or more tables or queries in a readable style and a professional format, generally for printed output. A report may include detailed lists of specific data, with each row consisting of a single record, or it may provide a statistical summary of a large quantity of information. A report design can include grouping and sorting options.
• Macro - A macro is a set of one or more actions that perform a particular operation, such as opening a form or printing a report. Macros can help to automate common tasks. For example, the user can run a macro that prints a report when a user clicks a command button. A macro can be one macro composed of a sequence of actions, or it can be a macro group.
• Module - A module is essentially a collection of declarations, statements, and procedures stored together as one named unit to organize Visual Basic code or nay other code used by the database which are generated by other programming languages.
In designing a database, the following steps should be applied.
1. Determine the purpose of your database. - The first step in designing a database is to determine its purpose and how it's to be used.
• Talk to people who will use the database.
• Brainstorm about the questions you and they would like the database to answer.
• Sketch out the reports you'd like the database to produce. Gather the forms you currently use to record your data.
As you determine the purpose of your database, a list of information you want from the database will begin to emerge. From that, you can determine what facts you need to store in the database and what subject each fact belongs to. These facts correspond to the fields (columns) in your database, and the subjects that those facts belong to correspond to the tables.
2. Determine the fields you need in the database. - Each field is a fact about a particular subject. For example, you might need to store the following facts about customers: company name, address, city, state, and phone number.
You need to create a separate field for each of these facts.
3. Determine the relationships between tables. - Now that you've divided your information into tables and identified primary key fields, you need a way to tell the database how to bring related information back together again in
3. Determine the relationships between tables. - Now that you've divided your information into tables and identified primary key fields, you need a way to tell the database how to bring related information back together again in