Thursday, October 4, 2007

First Assignment - Software Engineering

Introduction
In this assignment, we are going to discuss about the different types of software applications. We are going to elaborate each one of them:-give a definition, some examples of each type of software application and if possible, give some uses of each.

Software Engineering
Before moving on to software applications, let us first of all talk about software engineering. What is software engineering? Well, software engineering can be defined as the systematic approach towards the analysis, design, implementation, testing and maintenance of software. In more simple terms, software engineering can be defined to be the process which makes the software more viable for the user (from a crude state to a more refined one). Polishing/Shapping the software to state where it can be used more easily by the user.

Software Applications

There are seven types of Software Applications

1. System Software
From our point of view System Software is a generic term referring to any computer software which manages and controls the hardware so that application software can perform a task. To be more explicit, it is a set of programs that organize, utilize and control hardware in a computer system, that is, it helps run the computer hardware and computer system.It includes device drives, operating sytems, servers, window system, utilities and more. Moreover the purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.

http://en.wikipedia.org/wiki/Software
http://www.techweb.com/encyclopedia/defineterm.jhtml?term=systemsoftware

2. Business Software
Business software is generally any software program that helps 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 scale:

  • The small business market generally consists of home accounting software and office suites such as Microsoft Office and OpenOffice.org.
  • 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 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.

    http://en.wikipedia.org/wiki/Business_software#column-one

3. Scientific Software
In our opinion Scientific Software are applications that help businesses work fast and accurately by integrating technology that enables our customers and their customers to save time, insure accuracy, gain profit, and enjoyment. Some examples of Scientifc Software are Software utilities, custom software, programs that retrieve and synchronize email automatically in outlook of Exchange, mortgage calculators, back up utilities for windows NT, 95, 98 and 2000.

http://www.softwarescientific.com/

4. Real-time Software
Real-time computing can be defined to be the study of hardware and software systems which are subject to a "real-time constraint"—i.e., operational deadlines from event to system response.

A real-time system may be one where its application can be considered, within the specified 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 the system load.

Real-time system can also be defined as a system in which the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. Real-time system can be classified into hard real-time systems and soft real time systems. In hard real time system, the completion of an operation after its deadline is considered useless - ultimately, this may lead to a critical failure of the complete system whereas a soft real-time system will tolerate such lateness, and may respond with decreased service quality for e.g., dropping frames while displaying a video.

An example of real-time system may be a car engine control system. This is so because a delayed signal may cause engine failure or damage. Other examples of such systems may include heart pacemakers and industrial process controllers.

http://en.wikipedia.org/wiki/Real-time_computing#column-one
http://en.wikipedia.org/wiki/Mission_critical


5. Embedded Software
An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions. It is usually ‘embedded’ as part of a complete device including hardware and mechanical parts. Since the embedded system is dedicated to specific tasks, design engineers can optimize it, reducing the size and cost of the product, or increasing the reliability and performance.

Physically, embedded systems range from portable devices such as digital watches, and MP3 players to large stationary installations like traffic lights, factory controllers, routers or the systems controlling nuclear power plant. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.

Some more examples where embedded system is used are:-avionics, aircraft, engine controllers, calculators, washing machines, air conditioners and microwave ovens.

The software written for embedded systems is often called firmware and is stored in read-only memory or Flash memory chips rather than a disk drive. It often runs with limited computer hardware resources: small or no keyboard, screen, and little memory.

http://en.wikipedia.org/wiki/Embedded_system#column-one

6. Web Application
In software engineering, a Web application or webapp is an application that is accessed via web over a network such as the internet or an intranet.

Web applications are popular due to the ubiquity of a client, sometimes called a thin client. The ability to update and maintain Web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity. Web applications are used to implement Webmail, online retail sales, online auctions, wikis, discussion boards, Weblogs and many other functions.

Web applications dynamically generate a series of Web documents in a standard format supported by common browsers such as HTML/XHTML. Client-side in a standard language such as JavaScript is commonly included to add dynamic elements to the user interface. Generally, each individual Web page is delivered to the client as a static document, but the sequence of pages can provide an interactive experience, as user input is returned through Web form elements embedded in the page markup. During the session, the Web browser interprets and displays the pages, and acts as the universal client for any Web application.

Web developers often use client-side scripting to add functionality, especially to create an interactive experience that does not require page reloading, which many users find disruptive.

A Web application is commonly structured as a three-tiered application. The Web browser being the first tier, an engine using some dynamic Web content technology (such as ASP, ASP.NET, Cold Fusion, PHP) is the middle tier, and a database is the third tier. The Web browser sends requests to the middle tier, which services them by making queries and updates against the database and generates a user interface.

http://en.wikipedia.org/wiki/Web-application#column-one


7. Artificial Intelligence

Artificial Intelligence can be defined to be the branch of computer science concerned with making computers behave like humans. Artificial intelligence includes:

  • Games playing: programming computers to play games such as chess and checkers;
  • Expert systems: programming computers to make decisions in real-life situations, for example, some expert systems help doctors diagnose diseases based on symptoms;
  • Natural language: programming computers to understand natural human languages
  • Neural networks: Systems that simulate intelligence by attempting to reproduce the types of physical connections that occur in animal brains;
  • Robotics: programming computers to ‘see’ and ‘hear’ and react to other sensory stimuli.

In the area of robotics, computers are now widely used in assembly plants, but they are capable only of very limited tasks. Robots have great difficulty identifying objects based on appearance or feel, and they still move and handle objects clumsily.


Some areas of artificial intelligence is neural networks, which are proving successful in a number of disciplines such as voice recognition and natural-language processing.


There are several programming languages that are known as AI languages because they are used almost exclusively for AI applications. The two most common are LISP and Prolog.

http://www.webopedia.com/TERM/A/application.htmlhttp://www.webopedia.com/TERM/A/expert_system.html

No comments: