Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts

Wednesday, March 21, 2012

History of Software

 It shouldn't be a big surprise that the creation or software also went in large but distinguishable steps. Compared with hardware there were fewer developments that went parallel or overlapping. In rare cases developments were reinvented sometimes because the development or invention was not published, even prohibited to be made public (war, secrecy acts etc.) or became known at the same time and after (legal)discussions the "other" party won the honors.

Birth of “Software” and the Interactive Minicomputer

According to Jeffery R. Yost, the term “software” was created in the late 1950s and was soon adopted throughout the industry (2011). Coined by statistician John Tukey, the term became a catchall, user-friendly term for the work of computer programmers who were using terminology ranging from “computer program” to “code.” The America Heritage New Dictionary of Cultural Literacy describes software as “[t]he programs and instructions that run a computer, as opposed to the actual physical machinery and devices that compose the hardware.” Meanwhile, The Free On-Line Dictionary of Computing adds that software is divided into two primary types: system software and program applications. System software includes general program execution processes such as compilers and, most recognizably, the disk operating system (DOS), which has evolved in form in IBM PC-style computers within the last two decades from the ubiquitous Microsoft DOS prompt (MS-DOS) to stylish Windows-based platforms from Microsoft 2000 to Windows Vista. Similarly, Apple has seen countless new releases from the Apple DOS 3.1 of 1977 to the OS X series of recent years. Program applications include everything else, from gaming to multimedia to scientific applications. Finally, software combines lines of source code written by humans with the work of compilers and assemblers in executing machine code.

At the Massachusetts Institute of Technology in 1955, a project called TX-O was given to Ken Olsen. The project hoped to develop smaller research computers out of tiny, powerful transistor technology. MIT programmer Wesley Clark designed the TX-O and with Olsen’s methodical and persistent management helped develop the foundation of Olsen’s dream: “a reliable computer…accessible by one person, inexpensive and low powered, but…compact, fast, and exciting” . After MIT, Olsen and his assistant Harlan Anderson obtained venture capital to found the Digital Equipment Corporation (DEC) to develop interactive minicomputers to sell on the open market. Computer models such as DEC’s Programmed Data Processor series used a concept called “open architecture” to allow personalized software to run everything from submarines to refineries to neon displays at Times Square. DEC used the millions of dollars gained by going public in 1966 to enter into the field of networking by developing “standardized technologies and communication protocols.” IBM machines didn’t have the networking capacity other companies had begun to develop, resulting in the loss of  most of its market share. It re-entered the playing field in 1976 by developing minicomputers of its own, entering into a field that so many had not believed in: the personal computer.

Advanced Hardware for Complex Applications

As early as 1939, scientists such as William Shockley theorized that diminutive semiconductors would replace vacuum tubes. Indeed, all of modern electronics is based on Shockley’s ideas. Semiconductors can handle electronic pulses at the rate of billions of times per second, instead of the 10,000-times-persecond speed of the clunky and precarious vacuum tubes. Fairchild Semiconductor entered the market to compete with Shockley Semiconductor, and soon Fairchild became known for an innovation in semiconductors that is now familiar around the world: the use of silicon.

Silicon, “a commonplace mineral that constitutes 90 percent of the earth’s surface” was first used by Fairchild for U.S. Air Force rockets in transistors that needed to withstand intense heat. Additional elements were combined with silicon on flattened transistors to create the first integrated circuits capable of handling multiple devices and increasingly complex software applications. “Silicon Valley” was born as innumerable high-tech companies emerged on the scene, congregating in at the southern end of California's San Francisco Bay area. Perhaps most notably, Integrated Electronics, or Intel, was founded and new advances in memory chips and microprocessors allowed computers to handle software light years more complex than the single mathematical computations of the original mainframes

The Innovators of the Digital Age
 
Microsoft's MS-DOS was directly modeled on a now lesser-known operating system called CP/M that was developed by University of Washington graduate Gary Kildall’s Digital Research (DRI). Kildall’s work was essential to Bill Gates and Microsoft (which was originally founded to sell the Beginners’ All-Purpose Symbolic Instruction Code (BASIC) programming language interpreter for hobbyists to write their own programs), but so were the early personal computer developments of Apple and its subsequent graphical user interface (GUI) that preceded Windows. It is Kildall’s work, nevertheless, that truly shaped Microsoft and much about modern computing. Evans theorizes that had Kildall had his way, the personal computer industry would have had access to multitasking windows-style platforms much sooner and the entire industry would be much more advanced today. Still, Kildall is attributed with the ideas that were “the genesis of the whole third-party software industry”.

Gary Kildall’s style of programming helped drive the transition from mechanical computing into digital computing. Kildall developed open language programming years before IBM’s PC, and a number of months before Apple. In short, before microcomputers even existed, Kildall authored a programming language “for a microcomputer operating system and the first floppy disk operating system” . Intel’s microprocessors were already running everything from microwaves to watches, but Kildall imagined them in home computers running software that would drive networks and wouldn’t be bogged down by hardware compatibility issues. His Programming Language for Microcomputers (PL/M) evolved into the Control Program for Microcomputers (CP/M), which contained the first PC prompt, wherein Kildall could open and store files in directories--work that is now down seemingly automatically as users click-and-drag files through virtual space on the computer desktop.

Next, Kildall’s basic input/output system (BIOS) could be easily changed by programmers to adapt to their specific hardware. Kildall’s software advancements were easily adapted into clone systems, though Kildall had largely retained licensing rights to his software through encoded copyright and encryption techniques. One operating system, however, Tim Patterson’s DOS, or the Quick ’n’ Dirty Operating System (QDOS), was developed for Rod Brock’s Seattle Computer Products. QDOS, according to Evans, “was yet another one of the rip-offs of the CP/M design” that would not have necessarily mattered had IBM’s business arrangements not aligned with those of Bill Gates. Spurred by the success of Steve Jobs and Steve Wozniak’s Apple products from the late 1970s and 1980s, IBM entered the field of microcomputers. Bill Gates seized the opportunity of Kildall’s delayed CP/M-86 (being designed for the faster Intel chip IBM had decided upon) and purchased Patterson’s operating system in order to strike a deal .

The trouble was, Kildall had already made arrangements with IBM and he thought he had successfully negotiated CP/M a share of the market upon the release of IBM’s new personal computer in 1981. But the final price point of CP/M was six times that of Microsoft’s PC-DOS, effectively flushing CP/M out of the market. Kildall had been betrayed. Ironically, only Kildall knew the limitations of CP/M and PC-DOS. His intentions for multitasking operating software would have revolutionized the industry at that time, but the IBM-Microsoft partnership dominated the American market and they evolved at their own pace. Meanwhile, Kildall kept his operation afloat with his European offices, which embraced the multitasking capacities of his MP/M OS.

While Kildall went on to innovate in areas from CD-ROMs to computer networking, DRI combined the graphic display technology of Atari with the expertise of former Microsoft programmer Kay Nishi and cloned the single-tasking MS-DOS with their DR-DOS. Upon entering the market, DR-DOS not only drove down Microsoft’s price point, but also fixed a number of MS-DOS bugs. This move helped lead to Novell’s acquisition of DRI in 1991 for $120 million. Gates missed the opportunity to acquire DRI for $10 million a few years earlier but, oddly enough, his investment in the ideas of Steve Jobs in 1996 helped Apple enter successful new fields of digital innovation such as the iPod and music downloading software, a field that, of course, Microsoft soon entered. Perhaps most importantly, Microsoft proved the power of owning the operating system. After years of working with IBM as the provider of the software for their hardware, Microsoft surpassed IBM

Types Of Computer Software

In the present day world, computers play a significant part in our daily life. To provide us different services, different types of software are run on these computers. Computer software is generally of three types: System software, Application software and Off-the-shelf Software. A brief outline of each type of software is given below.


System software


This is the software which is actually running your computer. This software handles different request for use the hardware, many housekeeping work, storage of data etc. A good example of such system software is the Windows program which is running your computer. Linux and UNIX are the other common system software available for running computers.

Application software


 These types of software are developed to handle a specific task and are developed to cater for the specific requirement of the user. This could be the Payroll system or the Accounting system of your company. The system is developed keeping all the requirements of the user in mind. But, for small companies it would not be a good idea to develop software applications specifically for your use. To keep the system running properly, you should have skilled IT expertise available to you and you might have to spend lots time and money to run the system properly.

Off-the-shelf software


 When software is developed catering for your specific requirement, you would be able to execute all the functions you desire. But, development of software would be quite costly and may not be suitable for small enterprises for their implementation. Off-the-shelf software generally provides some standard functions and they do not cost much. But, you may find that the software does not provide what you require. Therefore, you might have to change your business practice to be in line with this shrink-wrapped software.

Programming Software


This is one of the most commonly known and popularly used types of computer software. These software come in the form of tools that assist a programmer in writing computer programs. Computer programs are sets of logical instructions that make a computer system perform certain tasks. The tools that help programmers in instructing a computer system include text editors, compilers and interpreters. Compilers translate source code written in a programming language into the language which a computer understands (mostly the binary form). Compilers generate objects which are combined and converted into executable programs through linkers. Debuggers are used to check code for bugs and debug it. The source code is partially or completely simulated for the debugging tool to run on it and remove bugs if any. Interpreters execute programs. They execute the source code or a precompiled code or translate source code into an intermediate language before execution. 

Inventory Management Software


This type of software helps an organization in tracking its goods and materials on the basis of quality as well as quantity. Warehouse inventory management functions encompass the internal warehouse movements and storage. Inventory software helps a company in organizing inventory and optimizing the flow of goods in the organization, thus leading to improved customer service.

Utility Software


Also known as service routine, utility software helps in the management of computer hardware and application software. It performs a small range of tasks. Disk defragmenters, systems utilities and virus scanners are some of the typical examples of utility software.

Data Backup and Recovery Software


An ideal data backup and recovery software provides functionalities beyond simple copying of data files. This software often supports user needs of specifying what is to be backed up and when. Backup and recovery software preserve the original organization of files and allow an easy retrieval of the backed up data.

Malware


Malware refers to any malicious software and is a broader category of software that are a threat to computer security. Adware, spyware, computer viruses, worms, trojan horses and scareware are malware. Computer viruses are malicious programs which replicate themselves and spread from one computer to another over the network or the Internet. Computer worms do the same, the only difference being that viruses need a host program to attach with and spread, while worms don't need to attach themselves to programs. Trojans replicate themselves and steal information. Spyware can monitor user activity on a computer and steal user information without their knowledge.

Adware


Adware is software with the means of which advertisements are played and downloaded to a computer. Programmers design adware as their tool to generate revenue. They do extract user information like the websites he visits frequently and the pages he likes. Advertisements that appear as pop-ups on your screen are the result of adware programs tracking you. But adware is not harmful to computer security or user privacy. The data it collects is only for the purpose of inviting user clicks on advertisements.

Tuesday, March 20, 2012

Computer Software Definition

Computer Software Definition


Software is a generic term for organized collections of computer data and instructions, often broken into two major categories: system software that provides the basic non-task-specific functions of the computer, and application software which is used by users to accomplish specific tasks.

System software is responsible for controlling, integrating, and managing the individual hardware components of a computer system so that other software and the users of the system see it as a functional unit without having to be concerned with the low-level details such as transferring data from memory to disk, or rendering text onto a display. Generally, system software consists of an operating system and some fundamental utilities such as disk formatters, file managers, display managers, text editors, user authentication (login) and management tools, and networking and device control software.

Application software, on the other hand, is used to accomplish specific tasks other than just running the computer system. Application software may consist of a single program, such as an image viewer; a small collection of programs (often called a software package) that work closely together to accomplish a task, such as a spreadsheet or text processing system; a larger collection (often called a software suite) of related but independent programs and packages that have a common user interface or shared data format, such as Microsoft Office, which consists of closely integrated word processor, spreadsheet, database, etc.; or a software system, such as a database management system, which is a collection of fundamental programs that may provide some service to a variety of other independent applications.

Software is created with programming languages and related utilities, which may come in several of the above forms: single programs like script interpreters, packages containing a compiler, linker, and other tools; and large suites (often called Integrated Development Environments) that include editors, debuggers, and other tools for multiple languages.