- What is a System Software?
- What is a Real Time software ?
- What is a Business Software ?
- What is an Embedded Software ?
- What is an AI Software ?
- What is a Web Application Software ?
- What an Engineering / Scientific Software ?
Good questions!!!
We all must have heard of it and we do know their meaning (of course we do!!), well, at least some of them... So we can explain it clearly to those who haven't heard about it. Don't worry we had the same reaction when our lecturer asked us to explain what we thought we knew.
The common word is software , so let us first of all define software...
Software can be defined as Computer instructions or data. Anything that can be stored electronically is Software. (For e.g while driving a car, we need certain skills to drive the car which cannot be seen or touch; similarly software drives/ operates a computer i.e the software is the skills of the driver, the end-user is the driver and the computer is the car ). Hope you got it now, easy?!
1. System Software
As our lecturer always say, the best thing to do is to look at the word separately i.e System and Software ..
well a System is a group of interdependent items that interact regularly to perform a task or it can be an established or organized procedure a method.
Software has already been defined earlier , refer to the first page
After we have defined these two terms separately , let us now try to define System Software
It refers to the operating system and all utility programs that manage computer resources at a low level.Systems software includes compilers, loaders, linkers, and debuggers.
The operating system and utility programs are the two major categories of system software. Just as the processor is the nucleus of the computer system, the operating system is the nucleus of all software activity. The operating system is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as :
.recognizing input from the keyboard
.sending output to the display screen
.keeping track of files and directories on the disk
.controlling peripheral devices such as disk drives and printers.
It is the first program loaded into memory when the computer is turned on and, in a sense, brings life to the computer hardware. Without it, you cannot use your word processing software, spreadsheet software, or any other applications.
Without an operating system, you cannot communicate with your computer. When you give the computer a command, the operating system relays the instructions to the 'brain' of the computer, called the microprocessor or CPU. You cannot speak directly to the CPU because it only understands machine language. When you are working in an application software program, such as Microsoft Word, commands that you give the application are sent through the operating system to the CPU. Windows2000, Window95/98, Mac OS, Unix and DOS are all examples of operating systems.
(http://www.webopedia.com/TERM/s/systems_software.html)
2. Real Time Software
Using our principle we will try to see the meaning of real time ..
Real time means occurring immediately
Real time can also refer to events simulated by a computer at the same speed that they would occur in real life ...
Having understand the meaning of real time now we'll try to explain the meaning of a real time software
A real time software is one which has been been designed & developed in such a way that it has to cater for live requests from several ends & immediate responses from the other ends.
The needs of real-time software are often addressed in the context of real-time operating systems, and synchronous programming languages, which provide frameworks on which to build real-time application software.
A real time system may be one where its application can be considered (within context) to be mission critical. The anti-lock brakes on a car are a simple example of a real-time computing system — the real-time constraint in this system is the short time in which the brakes must be released to prevent the wheel from locking. Real-time computations can be said to have failed if they are not completed before their deadline, where their deadline is relative to an event. A real-time deadline must be met, regardless of system load.
Designing Realtime systems is a challenging task. Most of the challenge comes from the fact that Realtime systems have to interact with real world entities. These interactions can get fairly complex. A typical Realtime system might be interacting with thousands of such entities at the same time. For example, a telephone switching system routinely handles calls from tens of thousands of subscriber. The system has to connect each call differently. Also, the exact sequence of events in the call might vary a lot.
The following issues are very important for a Realtime system: -
- Realtime Response - Realtime systems have to respond to external interactions in a predetermined amount of time.
- Recovering from Failures - Realtime systems must function reliably in event of both internal & external failures.
- Working with Distributed Architectures - Most Realtime systems involve processing on several different nodes & the system itself distributes the processing load among several processors.
- Asynchronous Communication - Remote procedure calls (RPC) are used in computer systems to simplify software design.
- Race Conditions and Timing - All the steps in a protocol are described with exact timing specification for each stage.
Reference :
Once again , adhering to our principle let us first try to understand the meaning of Business.
Business is usually defined as the different activities of a company to generate profit .. e.g Real estate businesses generate profit from the selling, renting, and development of properties, homes, and buildings.
Now having understood the meaning of Business let us try to explain what is meant by Business Software ....
A Business software is generally any software program that helps a business increase productivity or measure their productivity. The term covers a large variation of uses within the business environment, and can be categorized by using a small, medium and large matrix:
The small business market generally consists of home accounting software, and office suites such as Microsoft Office and OpenOffice.org.A Business software is use to run a company. It specifically excludes games and entertainment products.
The medium size, or SME, has a broader range of software applications, ranging from accounting, groupware, customer relationship management, human resources software, loan origination software, shopping cart software, field service software, and other productivity enhancing applications.
The last segment covers enterprise level software applications, such as those in the fields of enterprise resource planning, enterprise content management (ECM), business process management and product lifecycle management. These applications are extensive in scope, and often come with modules that either add native functions, or incorporate the functionality of third-party software programs.
Now, technologies that have previously only existed in peer-to-peer software applications, like Kazaa and Napster, are starting to feature within business applications.
(http://en.wikipedia.org/wiki/Business_software)
4. Embedded Software
First of all , let us try to understand the meaning of Embedded ...
Embedded This term is used for software applications which run on dedicated hardware (for example mobile phones, consumer electronic components, control systems etc.) as opposed to computer workstations.
Embedded software may be immediately available to the CPU or, for faster execution, may be transferred to RAM first and then executed. Contrast with regular software applications, which are stored on disk and must be loaded into RAM for execution.
embedded software is to control car engines and DSL modems , Windows based software which is considered as an embedded software to control a Printing Press inspection system or run an Optical Tweezer.
The problem is that The more stuff you have embedded, the more stuff you have to configure, integrate and test. Configuration and hook up are usually the straightforward part of embedded software
Good to know ....
shocking !!!!
5. AI Software

AI stands for Artificial Intelligence.
Many definitions of AI exist, which are elaborated and discussed at length in most if not all AI textbooks.
<<<<<
<<<<
Artificial is something which is not natural .... . Its original sense, related to artifact and artifice, refers to a product of human endeavor; a more English synonym is man-made. It is also used, however, to mean false, a substitute for the real thing.
Intelligence (http://en.wikipedia.org/wiki/Intelligence#Definitions)
Coming back to defining AI software an AI software is the science of making software that will drive machines do tasks that humans can do or try to do.
To further elaborate and give a more concrete definition it could be said that, AI Software is used to solve complex problems that are usually resolved by an expert (using rules of thumb, or heuristics, that work most of the time but with no guarantee) and that are not amenable to a straightforward solution by numerical computation (or, if they might theoretically be solved numerically, finding the solution would take an impractically long time and/or use too many computational resources).
Let's consider but one example: the VCR. It is well known that, incredible as it may seem, many home VCRs are left to blink red zeros because people cannot be bothered to, or simply cannot, program the machine to display the time of the day. An intelligent VCR would instead automatically discover which nearby devices possess the information, retrieve the data from the most reliable source, and program itself accordingly. Of course that is only a begining: the intelligent VCR would also understand and act upon your voiced instructions to record tonight's football game, or to play your favorite live concert; it would know about your preference to skip commercials, and the need to lower the volume after 9 PM... And the same could be said about every one of these devices that are allegedly designed to enhance our quality of life. What we need is technology to become more natural, with more humane interactions replacing the clunky interfaces of today - what we need are humanized interfaces. Because this is the challenge ahead, we can say that, to put Douglas Hofstadter's insightful quote in this context, certainly AI is whatever hasn't been done yet. ["Gödel, Escher, Bach: An Eternal Golden Braid", 1989.]
Computer engineers and AI practitioners have so far focused on the machine - designing better hardware components and smarter software algorithms for building intelligent systems. Yet the most precious resource is not the computer system itself. Rather, it is a resource not subject to Moore's law: user attention. As Herbert Simon put it: A wealth of information creates a poverty of attention, and a need to allocate that attention efficiently among the overabundance of information sources that might consume it. ["The Sciences of the Artificial", 1969.]
We can thus hope and work for a future where, to paraphrase Arthur C. Clarke's famous quote, (AI-driven) technology will become sufficiently advanced that it will be indistinguishable from magic. ["Profiles of the Future: An Inquiry into the Limits of the Possible", 1963.]
6. Web Application Software
Web application is an application in which all or some parts are downloaded from the Web each time it is run. The term typically refers to the use of Web browsers and Java applets. Web pages increasingly resemble the interactive behavior of local applications. Retrieving a Web page may cause the execution of code in the Web server as well as code in the HTML page brought into the user's machine. Clicking an icon on a Web page may cause a Java applet to be downloaded and executed in the user's machine.
Web Applications Software is also know as Web Software or WWW Software
It is a Software that is stored on a server and delivered via the Web based on the web, usually a combination of one or more interactive Web pages that can invoke and integrate Browsers, Active Server Pages (ASP), server-side Visual Basic or Java scripts, Access or SQL Server databases, HTML, XML, Cookies, and/or Component Object Model (COM) objects to create a dynamic website for bidirectional submitting, retrieving, … and storing of information. A Web application is usually a three-tier structure, comprising a User Service tier (allowing user access to the application), a Business Service tier (allowing the user to carry out complex activities) and a Data Service tier (which allows data storage and retrieval).
7.Engineering / Scientific Software
Engineering/ Scientific software involve very large computations that strain the resources of whatever computers are available. Such computations implement sophisticated mathematics, require deep scientific knowledge, depend on subtle interplay of different approximations, and may be subject to instabilities and sensitivity to external input.
The core of scientific computing is designing, writing, testing, debugging and modifying numerical software for application to a vast range of areas: from graphics, meteorology and chemistry to engineering, biology and finance. Scientists, engineers and computer scientists need to write good code, for speed, clarity, flexibility and ease of re-use.
Software able to succeed in this domain invariably embeds significant domain knowledge that should be tapped for future use. Unfortunately, most existing scientific software is designed in an ad hoc way, resulting in monolithic codes understood by only a few developers. Software architecture refers to the way software is structured to promote objectives such as reusability, maintainability, extensibility, and feasibility of independent implementation. Such issues have become increasingly important in the scientific domain, as software gets larger and more complex, constructed by teams of people, and evolved over decades.
In the context of scientific computation, the challenge facing mathematical software practitioners is to design, develop, and supply computational components which deliver these objectives when embedded in end-user application codes. The Architecture of Scientific Software addresses emerging methodologies and tools for the rational design of scientific software, including component integration frameworks, network-based computing, formal methods of abstraction, application programmer interface design, and the role of object-oriented languages.
No comments:
Post a Comment