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

Friday, December 3

Computer software

Computer software, or just software, is the collection of computer programs and related data that provide the instructions telling a computer what to do. We can also say software refers to one or more computer programs and data held in the storage of the computer for some purposes. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. The term was coined to contrast to the old term hardware (meaning physical devices). In contrast to hardware, software is intangible, meaning it "cannot be touched". Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.
Examples of computer software include:
Application software includes end-user applications of computers such as word processors or video games, and ERP software for groups of users.
Middleware controls and co-ordinates distributed systems.
Programming languages define the syntax and semantics of computer programs. For example, many mature banking applications were written in the COBOL language, originally invented in 1959. Newer applications are often written in more modern programming languages.
System software includes operating systems, which govern computing resources. Today large applications running on remote machines such as Websites are considered to be system software, because the end-user interface is generally through a graphical user interface, such as a web browser.
Testware is software for testing hardware or a software package.
Firmware is low-level software often stored on electrically programmable memory devices. Firmware is given its name because it is treated like hardware and run ("executed") by other software programs.
Shrinkware is the older name given to consumer-purchased software, because it was often sold in retail stores in a shrink-wrapped box.
Device drivers control parts of computers such as disk drives, printers, CD drives, or computer monitors.
Programming tools help conduct computing tasks in any category listed above. For programmers, these could be tools for debugging or reverse engineering older legacy systems in order to check source code compatibility.


History

For the history prior to 1946, Read More: History of computing hardware.
The first theory about software was proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem (Decision problem). The term "software" was first used in print by John W. Tukey in 1958. Colloquially, the term is often used to mean application software. In computer science and software engineering, software is all information processed by computer system, programs and data. The academic fields studying software are computer science and software engineering.
The history of computer software is most often traced back to the first software bug in 1946. As more and more programs enter the realm of firmware, and the hardware itself becomes smaller, cheaper and faster due to Moore's law, elements of computing first considered to be software, join the ranks of hardware. Most hardware companies today have more software programmers on the payroll than hardware designers, since software tools have automated many tasks of Printed circuit board engineers. Just like the Auto industry, the Software industry has grown from a few visionaries operating out of their garage with prototypes. Steve Jobs and Bill Gates were the Henry Ford and Louis Chevrolet of their times, who capitalized on ideas already commonly known before they started in the business. In the case of Software development, this moment is generally agreed to be the publication in the 1980s of the specifications for the IBM Personal Computer published by IBM employee Philip Don Estridge. Today his move would be seen as a type of crowd-sourcing.


Until that time, software was bundled with the hardware by Original equipment manufacturers (OEMs) such as Data General, Digital Equipment and IBM. When a customer bought a minicomputer, at that time the smallest computer on the market, the computer did not come with Pre-installed software, but needed to be installed by engineers employed by the OEM. Computer hardware companies not only bundled their software, they also placed demands on the location of the hardware in a refrigerated space called a computer room. Most companies had their software on the books for 0 dollars, unable to claim it as an asset (this is similar to financing of popular music in those days). When Data General introduced the Data General Nova, a company called Digidyne wanted to use its RDOS operating system on its own hardware clone. Data General refused to license their software (which was hard to do, since it was on the books as a free asset), and claimed their "bundling rights". The Supreme Court set a precedent called Digidyne v. Data General in 1985. The Supreme Court let a 9th circuit decision stand, and Data General was eventually forced into licensing the Operating System software because it was ruled that restricting the license to only DG hardware was an illegal tying arrangement. Soon after, IBM 'published' its DOS source for free, and Microsoft was born. Unable to sustain the loss from lawyer's fees, Data General ended up being taken over by EMC Corporation. The Supreme Court decision made it possible to value software, and also purchase Software patents. The move by IBM was almost a protest at the time. Few in the industry believed that anyone would profit from it other than IBM (through free publicity). Microsoft and Apple were able to thus cash in on 'soft' products. It is hard to imagine today that people once felt that software was worthless without a machine. There are many successful companies today that sell only software products, though there are still many common software licensing problems due to the complexity of designs and poor documentation, leading to patent trolls.
With open software specifications and the possibility of software licensing, new opportunities arose for software tools that then became the de facto standard, such as DOS for operating systems, but also various proprietary word processing and spreadsheet programs. In a similar growth pattern, proprietary development methods became standard Software development methodology.

Overview
A layer structure showing where operating system is located on generally used software systems on desktops
Software includes all the various forms and roles that digitally stored data may have and play in a computer (or similar system), regardless of whether the data is used as code for a CPU, or other interpreter, or whether it represents other kinds of information. Software thus encompasses a wide array of products that may be developed using different techniques such as ordinary programming languages, scripting languages, microcode, or an FPGA configuration.
The types of software include web pages developed in languages and frameworks like HTML, PHP, Perl, JSP, ASP.NET, XML, and desktop applications like OpenOffice.org, Microsoft Word developed in languages like C, C++, Java, C#, or Smalltalk. Application software usually runs on an underlying software operating systems such as Linux or Microsoft Windows. Software (or firmware) is also used in video games and for the configurable parts of the logic systems of automobiles, televisions, and other consumer electronics.
Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. Programs are an ordered sequence of instructions for changing the state of the computer in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.

Types of software

Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.

System software
System software provides the basic functions for computer usage and helps run the computer hardware and system. It includes a combination of the following:
device drivers
operating systems
servers
utilities
window systems
System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner.

Programming software
Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. The tools include:
compilers
debuggers
interpreters
linkers
text editors
An Integrated development environment (IDE) is a single application that attempts to manage all these functions.

Application software
System software does not aim at a certain application fields.In contrast,different application software offers different function based on users and the area it served.Application software is developed for some certain purpose,which either can be a certain program or a collection of some programmes,such as a graphic browser or the data base management system. Application software allows end users to accomplish one or more specific (not directly computer development related) tasks. Typical applications include:
industrial automation
business software
video games
quantum chemistry and solid state physics software
telecommunications (i.e., the Internet and everything that flows on it)
databases
educational software
Mathematical software
medical software
molecular modeling software
image editing
spreadsheet
simulation software
Word processing
Decision making software
Application software exists for and has impacted a wide variety of topics.

Software topics

Software architecture
Users often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers and supercomputers) usually see three layers of software performing a variety of tasks: platform, application, and user software.
Platform software: Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer. On a PC you will usually have the ability to change the platform software.
Application software: Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are usually independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications.
User-written software: End-user development tailors systems to meet users' specific needs. User software include spreadsheet templates and word processor templates. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into default application packages, many users may not be aware of the distinction between the original packages, and what has been added by co-workers.

Software documentation
Most software has software documentation so that the end user can understand the program, what it does, and how to use it. Without clear documentation, software can be hard to use—especially if it is very specialized and relatively complex like Photoshop or AutoCAD.
Developer documentation may also exist, either with the code as comments and/or as separate files, detailing how the programs works and can be modified.

Software library
An executable is almost always not sufficiently complete for direct execution. Software libraries include collections of functions and functionality that may be embedded in other applications. Operating systems include many standard Software libraries, and applications are often distributed with their own libraries.

Software standard
Since software can be designed using many different programming languages and in many different operating systems and operating environments, software standard is needed so that different software can understand and exchange information between each other. For instance, an email sent from a Microsoft Outlook should be readable from Yahoo! Mail and vice versa.

Execution (computing)
Computer software has to be "loaded" into the computer's storage (such as the hard drive or memory). Once the software has loaded, the computer is able to execute the software. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation – moving data, carrying out a computation, or altering the control flow of instructions.
Data movement is typically from one place in memory to another. Sometimes it involves moving data between memory and registers which enable high-speed data access in the CPU. Moving data, especially large amounts of it, can be costly. So, this is sometimes avoided by using "pointers" to data instead. Computations include simple operations such as incrementing the value of a variable data element. More complex computations may involve many operations and data elements together.

Software quality, Software testing, and Software reliability
Software quality is very important, especially for commercial and system software like Microsoft Office, Microsoft Windows and Linux. If software is faulty (buggy), it can delete a person's work, crash the computer and do other unexpected things. Faults and errors are called "bugs." Many bugs are discovered and eliminated (debugged) through software testing. However, software testing rarely – if ever – eliminates every bug; some programmers say that "every program has at least one more bug" (Lubarsky's Law). All major software companies, such as Microsoft, Novell and Sun Microsystems, have their own software testing departments with the specific goal of just testing. Software can be tested through unit testing, regression testing and other methods, which are done manually, or most commonly, automatically, since the amount of code to be tested can be quite large. For instance, NASA has extremely rigorous software testing procedures for many operating systems and communication functions. Many NASA based operations interact and identify each other through command programs called software. This enables many people who work at NASA to check and evaluate functional systems overall. Programs containing command software enable hardware engineering and system operations to function much easier together.

License
Main article: Software license
The software's license gives the user the right to use the software in the licensed environment. Some software comes with the license when purchased off the shelf, or an OEM license when bundled with hardware. Other software comes with a free software license, granting the recipient the rights to modify and redistribute the software. Software can also be in the form of freeware or shareware.

Patents
Main articles: Software patent and Software patent debate
Software can be patented; however, software patents can be controversial in the software industry with many people holding different views about it. The controversy over software patents is that a specific algorithm or technique that the software has may not be duplicated by others and is considered an intellectual property and copyright infringement depending on the severity.

Design and implementation

Design and implementation of software varies depending on the complexity of the software. For instance, design and creation of Microsoft Word software will take much more time than designing and developing Microsoft Notepad because of the difference in functionalities in each one.
Software is usually designed and created (coded/written/programmed) in integrated development environments (IDE) like Eclipse, Emacs and Microsoft Visual Studio that can simplify the process and compile the program. As noted in different section, software is usually created on top of existing software and the application programming interface (API) that the underlying software provides like GTK+, JavaBeans or Swing. Libraries (APIs) are categorized for different purposes. For instance, JavaBeans library is used for designing enterprise applications, Windows Forms library is used for designing graphical user interface (GUI) applications like Microsoft Word, and Windows Communication Foundation is used for designing web services. Underlying computer programming concepts like quicksort, hashtable, array, and binary tree can be useful to creating software. When a program is designed, it relies on the API. For instance, if a user is designing a Microsoft Windows desktop application, he/she might use the .NET Windows Forms library to design the desktop application and call its APIs like Form1.Close() and Form1.Show() to close or open the application and write the additional operations him/herself that it need to have. Without these APIs, the programmer needs to write these APIs him/herself. Companies like Sun Microsystems, Novell, and Microsoft provide their own APIs so that many applications are written using their software libraries that usually have numerous APIs in them.
Computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods. A person who creates software is called a programmer, software engineer, software developer, or code monkey, terms that all have a similar meaning.

Industry and organizations
A great variety of software companies and programmers in the world comprise a software industry . Software can be quite a profitable industry: Bill Gates, the founder of Microsoft was the richest person in the world in 2009 largely by selling the Microsoft Windows and Microsoft Office software products. The same goes for Larry Ellison, largely through his Oracle database software. Through time the software industry has become increasingly specialized.
Non-profit software organizations include the Free Software Foundation, GNU Project and Mozilla Foundation. Software standard organizations like the W3C, IETF develop software standards so that most software can interoperate through standards such as XML, HTML, HTTP or FTP.
Other well-known large software companies include Novell, SAP, Symantec, Adobe Systems, and Corel, while small companies often provide innovation.

(source:wikipedia)

Software industry

The software industry includes businesses involved in the development, maintenance and publication of computer software using any business model. The industry also includes software services, such as training, documentation, and consulting.


History

The word "software" had been coined as a prank by at least 1953, but did not appear in print until the 1960s. Before this time, computers were programmed either by customers, or the few commercial computer vendors of the time, such as UNIVAC and IBM. The first company founded to provide software products and services was Computer Usage Company in 1955. The software industry expanded in the early 1960s, almost immediately after computers were first sold in mass-produced quantities. Universities, government, and business customers created a demand for software. Many of these programs were written in-house by full-time staff programmers. Some were distributed freely between users of a particular machine for no charge. Others were done on a commercial basis, and other firms such as Computer Sciences Corporation (founded in 1959) started to grow. The computer-makers started bundling operating systems software and programming environments with their machines.
When Digital Equipment Corporation brought a relatively low-priced micro-computer to market, it brought computing within reach of many more companies and universities worldwide, and it spawned great innovation in terms of new, powerful programming languages and methodologies. New software was built for micro-computers, and others, including IBM, followed DECs example quickly, resulting in the IBM AS400 amongst others.
The industry expanded greatly with the rise of the personal computer in the mid-1970s, which brought computing to the desktop of the office worker. In subsequent years, it also created a growing market for games, applications, and utilities. DOS, Microsoft's first operating system product, was the dominant operating system at the time.
In the early years of the 21st century, another successful business model has arisen for hosted software, called software as a service, or SaaS; this was at least the third time this model had been attempted. SaaS reduces the concerns about software piracy, since it can only be accessed through the Web, and by definition no client software is loaded onto the end user's PC.

Software sectors

There are several types of businesses in the software industry. Infrastructure software, including operating systems, middleware and databases, is made by companies such as Microsoft, IBM, Sybase, EMC, Oracle and VMWare. Enterprise software, the software that automates business processes in finance, production, logistics, sales and marketing, is made by Oracle, SAP AG , Sage and Infor. Security software is made by the likes of Symantec, Trend Micro and Kaspersky. Several industry-specific software makers are also among the largest software companies in the world: SunGard, making software for banks, BlackBoard making software for schools, and companies like Qualcomm or CyberVision making software for telecom companies. Other companies do contract programming to develop unique software for one particular client company, or focus on configuring and customizing suites from large vendors such as SAP or Oracle.

Leading companies: mindshare and marketshare

In terms of technology leadership, the software industry has long been led by IBM. However, Microsoft became the dominant PC operating system supplier. Other companies that have substantial mindshare (not: marketshare) in the software industry are SUN Microsystems, the developer of the Java platform (purchased by Oracle in 2009), Red Hat, for its open source momentum, and Google for its Google Docs. However in terms of revenues coming from software sales, the software industry is clearly dominated by Microsoft, since inception. Microsoft products are still sold in largest number across the globe.

Size of the industry

According to market researcher DataMonitor, the size of the worldwide software industry in 2008 was US$ 303.8 billion, an increase of 6.5% compared to 2007. Americas account for 42.6% of the global software market's value. DataMonitor forecasts that in 2013, the global software market will have a value of US$ 457 billion, an increase of 50.5% since 2008.

Business models the software industry

Business models of software companies have been widely discussed. Network effects in software ecosystems networks of companies and their customers are an important element in the strategy of software companies.


(source:wikipedia)

Software industry in Madurai

Over the recent years the IT industry has made a big mark in the economy of Madurai. Software Technology Parks of India, an agency of the Government of India, has authorized several companies in Madurai to receive benefits under its national information technology development program. But still the city needs more investment and care to be taken with respect to growth in IT industry. City houses MNCs like Honeywell Technologies India (P) Ltd  and other notable software companies like Alfa Web Solutions and AJ Square Consultancy Services (P) Ltd.
Due to work culture, low attrition rates and the availability of educational institutions , the city attracts IT majors like HCL, Satyam, Oracle  and Sutherland Global Services . Tamil Nadu government has proposed two IT- Special Economic Zone(SEZ)s in Madurai and they have been fully occupied by various IT companies .The work on provision of infrastructure is in progress in Information Technology parks .Considering the high growth rate of Quality Human resource in and around madurai India's No.2 IT major Infosys is eyeing Madurai for its expansion and to open its development centre.


(source:wikipedia)

Tuesday, November 2

Oracle to buy retail software company ATG

Oracle Corp said on Tuesday it will buy Art Technology Group Inc for $1 billion, to bolster its e-commerce software applications.

Oracle's $6-per-share bid represents a 46 percent premium over ATG's close of $4.10 on Nasdaq. ATG shares were trading at $5.99 in early Nasdaq trading.

The acquisition, which is expected to close early next year, is the latest in a wave of dealmaking by a major technology company to diversify product portfolios -- from computing, security, storage and networking to online videoconferencing and e-commerce.

"It's a nice, safe acquisition for Oracle," said Jeff Gaggin, an Avian Securities analyst, adding that the deal will expand Oracle's retail software portfolio, which includes Retek, a retail software company it acquired in 2005.

More than 1,000 companies use ATG software to help with online customer transactions on mobile devices and in stores.

ATG creates software for customers to buy items online. Its customers include Best Buy Co Inc, AT&T and Vodafone Group Plc. It competes with Amazon.com and GSI Commerce.

ATG, which is based in Cambridge Massachusetts, had sales of $50.3 million in the third quarter of 2010, up 16 percent from $43.4 million a year earlier.

Avian Securities' Gaggin called ATG a "moderate grower" and said it was reasonable for Oracle to pay a 46 percent premium on its shares.

Oracle is in a California court on Tuesday seeking some $2 billion in damages from rival SAP AG on accusations that SAP stole its software.

Oracle shares were up 23 cents at $29.38 in Nasdaq morning trade.


(source:reuters.com)

Friday, September 17

Google applauds HTML5 features in IE9, 'excited' by modern browsers

THERE'S something weird going in the world of the web browser giants.
For the most part, Microsoft has – despite being the most commonly used browser in the world – weirdly been the critical underdog, with Internet Explorer 6 struggling to cope with the demands of the modern web user right from its launch, and IE7 and IE8 seemingly not doing enough to differentiate from each other, in order to convince users to upgrade.

Now Microsoft seems to have spoiled the party by getting all modern with the release of a beta version of Internet Explorer 9, adding HTML5s and CSS3s to make it a whole lot flashier, complete with extra moving bits and Aero Snaps.

Download the beta version here to find out what that actually means.
related coverage
IE9: The browser's dead, long live the browser


Rest assured the makers of Chrome and Firefox – Google and Mozilla - aren’t going to take it lying down.

The proper IE9 probably won’t even be released until mid-next year. HTML5 is still not functional enough to meet the standards of those in charge of such standards on the web.

So by the time IE9 is debugged by the public, there’ll no doubt be competitive versions of Chrome and FireFox ready to drag it back to the pack.

Only, when it gets there, there’ll be less scrapping and a whole lot more group hugging.

That’s because lately, browser makers have distanced themselves from the unsavoury behaviour of their users.

Any actual news value in yesterday’s beta release of IE9 was almost instantly lost in the online, 24-hour screaming match that broke out between the various online tribes desperate to prove to each other that it wasn’t them that’s made the wrong browser choice.

“The fishtank demo’s a fake.” “Everyone knows Firefox 4 is WEBGL enabled.”
Yawn.
Yet over at Mountain View, California, where Aussie-made Glen Murphy is helping Chrome stay in the race, Google is giving the digital equivalent of a polite golf clap for Microsoft’s efforts.

“We’re very happy whenever any browser moves forward in this way,” Mr Murphy told NEWS.com.au.

“We’re very excited by the HTML5 support and speed improvements becoming standard in all modern browsers.

“Getting the web to this point was a large part of the reason why we built Chrome.”

And that’s it. Not so much as a “We’ve been doing this for years”.

It gets worse. Lately, Microsoft’s been giving Mozilla cakes every time it release a FireFox upgrade.

Cakes.

In 2005, Mozilla even let Microsoft share its web feed logo at the same time Microsoft was asking it to come on over and help work out how to make FireFox and Vista play nicely together.

Mr Murphy’s excuse is that IE9 is not just a significant step forward for Microsoft, but for web users in general, and that’s exactly what Google’s been committed to right from the start.

“Browsers are not only getting faster and more powerful, but they’re also being updated and upgraded faster than ever before - internet users are going to benefit greatly from new features and capabilities as all the browsers compete and collaborate on making the web a better place,” he said.

“HTML5 is a good example of this - all the browser vendors have worked together to produce the specification for it, but they all compete to get the best and most complete implementation.”
It’s not quite cakes at 10 paces – and there’s no word yet of the IE9 team having received any reciprocal niceties from their FireFox buddies – but this kind of goodwill is typical of what’s been developing in the tech industry ever since the words “open source” became the trendy digital equivalent of “environmentally friendly”.

“Before we launched Google Chrome, JavaScript was 10 times slower, the first public working draft of HTML5 had only just been published, and the next generation of browser technologies were nothing more than research projects,” Mr Murphy said.

“By contrast, today browsers are innovating faster than ever before and we think that’s largely due to some of the advances made by Google Chrome.”

Some of the advances made by Google Chrome? Those sound like fighting words, Mr Murphy.

Maybe, hopefully ,there’s a bit of Aussie in Glen Murphy that won’t give completely in to the great global group hug among browser developers.

Indeed, he added that Google planned to release a major version of Chrome every six weeks “in order to stay ahead of such developments” as IE9.

“Because of this, our users will always be using the fastest, most secure, most capable browser,” he said.

Mr Murphy, you just cost your team a cake. Flame on, users.
Peter Farquhar is in San Francisco for the launch of IE9 as a guest of Microsoft




(source:news.com.au)