Wednesday, December 5, 2007

3rd Assignment: by Mrs Rinabye Cooshnea Dhurmea (ID: 0700211) and Mrs Karishma Sunnotah Takhoor (ID: 0700172)










Introduction:
We are going to develop the software requirement specifications for the Gasoline Pump Control System (GPCS).

Purpose:
To automate the gasoline pump control system which deals with the dispensing of gasoline, handling customer payment and monitoring tank levels.

Scope:
The scope of this project is to create and implement the Gasoline Pump Control System (GPCS). The scope of this document is to fully document the software requirements of the Gasoline Pump Control System using the Software Requirement Specifications format in accordance with IEEE Recommended Practice For Software Requirement Specifications.
The Gasoline Pump Control System implementation date will be determined at an appropriate time.

The Gasoline Pump Control System will perform the following functions:
- Interfaces with the mechanical system of the pumps.
- Implements a transaction processing system
- Provides a repository for storing the transaction data.
- Validate and authenticate the customer identification like SSN or Driver’s license number in case of check payments by the customer.
- Archiving transaction data to the corporate office.
- Retrieve data from the corporate office archives.

The Gasoline Pump Control System team developed the design policies from a functional perspective, ensuring that the state regulatory and safety laws are followed.

Document Convention:
GPCS: Gasoline Pump Control System
SRS: System Requirement Specification

Intended audience:
The customer is The Indian Oil Group Of Companies

References:
IEEE Recommended Practice For Software Requirement Specifications 2. Overall
Description

Product Perspectives
This document describes the requirement specifications for the implementation of the gasoline pump control system for handling the dispensing of gasoline, customer payment, monitoring the tank levels and take care of all the other mechanical process of the pump station.

The purposes of this document are to serve as:
- A basis of communication between all parties;
- Input to the design team;
- Input to software testing and quality assurance;
- A development manager’s reference;
- A control for the evolution of the system.

Product Functions
The software will automate the process of dispensing gasoline by interfacing with the mechanical process of the gas station with a single computer. The software will also process the customer transactions and archive them. Software is supported by the real-time connectivity between the gas station and the corporate headquarters.

Figure 1 depicts the various functional interactions of the system. The System interacts with the Gas Pump Terminal, underground tank level checks, Customer purchasing gasoline, the customers payment criteria, It handles and archives the daily transactions, Updating the corporate server with the transactions, the Terminal operator. The Details of the various interactions will be discussed in the design document.
User Requirements ( Domain Requirement)

User Requirements define the anticipated end users of the Gasoline Pump Control System.
The user Requirements are differentiated based on the frequency of use, technical expertise and security or privilege levels.

The following represent the user requirements:
Vehicle users – These users require gasoline for their vehicles.
Gas station employees (operators, attendants etc.) – These users maintain and operate the system.
Corporate Office – Uses the system to archive transaction data.
Newly employed cashiers shall take between 10 and 15 minutes training time to learn the basic functionality of the system. No related experience needed.
A cashier should be able to read, understand, and follow English instructions without assistance.
Managers shall take between 30 and 60 minutes to learn the entire system.



Operating Environment

The Gasoline Pump Control System software will be installed at the gas station.

· Hardware Interface:
The terminal has one system which takes care of the archiving of the daily transactions.
So we would need a Pentium system at the minimum and the video system would require a good quality graphics card. Both systems should have minimum of 32mb RAM memory.
The Corporate Server needs to be a server class machine with at least 256 MB RAM and Pentium 4 system.
A dedicated link between the corporate sever and the Gas Pump Outlet.

· Software Interface:
The Terminal machines require Windows 9x or better, it needs a MS access 9x or better to store the daily archives.
The Corporate server should have oracle 8x or better to hold on to all the archives.

User Documentation:
Manual of the Gasoline Pump Control System.

Design/Implementation Constraints

In the future it is possible that the software design will have to incorporate changes that could take place in the mechanical domain of the system.
Some of the anticipated changes are given below
- New pumps being purchased
- Change of pumps (sophisticated to normal and vice-versa)
- Incorporation of new safety standards.

Change in the mode of payment
- Accepting credit cards at the pump terminals
- Real time verification of check payments at the pump terminals
- Customer Account Balance verification.

Security features at the gas station
- Installation of cameras at each pump terminal.
- Automatic Scan of the Vehicles license number.
System Functionality (Refer to Figure 2)
The Gas Pump operator is the person who is responsible for the correct and reliable functioning of the gas pump.

Operator is the person who controls the Gasoline Pump Control System.

Once the Gasoline Pump Control System is started by the Operator the Gasoline Pump Control System is in Active and running mode.

Figure 3 shows what the function of the operator would be.
Functional Requirements

Ø The Operator can check each tank level, for the two grades of gasoline.

Ø When he does the check, the text boxes will be filled with tank fill percentages.

Ø If the Tank goes below 20% the operator has to ask for the Gasoline tank refill.
Ø Each transaction that happened on a particular day is archived in the local database.

Ø The Operator can Archive the Entire daily transaction history to the central server by selecting the Archive button.

Ø The Operator can view the Customer details by scanning or entering the Customer Id.

Ø The Operator can make a complaint on any License number and the amount due if the customer absconds without paying the due amount.

Ø The License number would appear once he clicks on the video screen of the pump where the gas was filled.


Non Functional Requirements

Reliability
Reliability is most important for basic pump operation. The pumps must accurately report the amount of fuel dispensed. If the pump reports that less fuel is used than is actually used, it will cost the station money. If the pump reports that more fuel is used than is actually used, it will create disgruntled customers which may never come back.

Availability
At initial release, the basic functionality should have an availability of at least 99.999%. Basic functionality includes pump interface and operation. Basic functionality also includes the ability for the cashier to receive payments for transactions. More advanced functionality such as manager reports can have an availability of 95%.

Security
To prevent the hard drives from being removed and modified outside the system, the file system will be encrypted such that they cannot be used in another machine.

All management functions shall be logged (see section 3.4.4).

Maintainability
The system shall be separated into modules. There will be one module for the pump control logic. There will be another module for low level pump control. There will be a third module for the cashier station.

Portability
Pump control module is to be written in ANSI C. Any low level code (i.e., code to control operation of pump motor, etc) will be contained in a separate module and written in assembly. This will allow the pump control software to be moved to another microcontroller with a minimal amount of work.

The cashier station module will be written in Java. Because Java is supported on many platforms, it should be quite easy to move to another platform.


Assumptions and Dependencies

As soon as the user lifts the pump handle, a signal is automatically sent to the operator console via the system requesting that the pump be enabled.
The user has to make the payment at the gas station kiosk where the operator will be located.
The system is linked with the corporate office network.
The system uses licensed third party software products.
The gas station premises will not be affected by frequent power outages.
The Gasoline reorder level is set to 20% for each tank.
Reordering of the tank level signal will be sent to the Gas Tank Refill Department, once the signal is sent the handling of the Gas Refill is out of the present system domain.
At any point of time there is only 2 gasoline grades one in each underground tank.
System Requirement Specification (SyRS)

Introduction

We are going to develop the System Requirement Specification for the Gasoline Pump Control System.

System Scope
The scope of this project is to communicate the requirements of the Indian Oil Group of Companies to the General System Development in an understandable manner that will specify and build the system.

General System Description
The Gasoline Pump Control System should perform the following functions:
- Provide the customer with fast and rapid service.
- Validate and authenticate the customer identification
- To control all the station of the Indian Oil Group of Companies.

User Requirements

Design a system which is user friendly and very active.

Techniques for identifying Requirements
Observation on the site of work to identify the pattern of work.


System Capabilities, Conditions and Constraint


Physical

Construction
Should be developed within 4 months from the date of contract.

Adaptability
Should adapt to a change in the company such as expansion or growth of the business, for example if a new system need to be installed.

System Reliability
The system should be reliable.
System Maintainability
Mean time between maintenance actions should be stated.
Should have a life span of at least 5 years.

System Human Factor
Should take into consideration the human factor, that is allocation of function to personnel and communication.

Policy and Regulations
The system should be designed according to the norms and regulations in force.

Overall Scenarios
Descriptive examples such as on site presentation on the use of the system should be provided

SyRS Development Process Overview
Refer to Figure 4

From Figure 4 it can be seen that raw requirements, customer feedback, customer representation, constraint influence, technical representation, and technical feedback are all necessary for the development of a system requirement.

Tuesday, October 16, 2007

BI Upgrade - Second Assignment-Software Engineering by Karishma SUNNOTAH-THAKOOR (ID: 0700172) & Rinabye COOSHNEA-DHURMEA (ID:0700211)


A SIMPLE ORDER - ENTRY SYSTEM





To place an order, a user interacts with the order-entry graphical user interface (GUI) on a client machine. This starts the transaction processing flow.




  • The GUI program calls the client program with a request to place an order. The request identifies a transaction to be run and passes appropriate parameters to qualify the request.


  • The client program calls a CICS (Customer Information Control System) region, passing on the request from the GUI.


  • The CICS region verifies that the user is authorized to make the request and that the user's terminal is supported. If not, the user is prevented from using the transaction processing system.


  • The CICS region assigns a task to process the new instance of the transaction and schedules the task for processing alongside other current tasks. The CICS region processes and monitors the order-entry request throughout the task.


  • The CICS region starts the task, getting storage and other operating system resources for it. It runs the first program for the transaction, the main order-entry program. The program runs on an application server taken from the server's pool of such processes.


  • The main program checks and decrements the entry in the relational database. The CICS region and the RDBMS both lock the database entry to isolate it from update by other transactions. Only this one transaction can update the account. The CICS region logs the change but does not commit it until the shipping and billing operations have succeeded.


  • The main program adds a shipping request to the central shipping queue. The CICS region logs the change but does not commit it until the billing operation has succeeded.


  • The main program invokes a local billing program to route a request to the central billing program, which runs as a remote program on a mainframe host. The local billing program runs on a separate application server.


  • The local billing program sends the billing request through a Peer-to-Peer Communication Gateway server to the mainframe host. It waits for the reply and then returns the reply to the main order-entry program. While the billing program waits for a reply from the mainframe host, in the meantime the main program can be doing other work.


  • Having successfully accessed the database, queued the shipping request, and processed the billing request, the main order-entry program now issues a *syncpoint. The CICS region commits and logs the changes made to the database, shipping queue, and billing data. This makes the changes durable.


  • The CICS region releases the resources used for the order-entry request and makes the application server available for other tasks.


  • The CICS region returns an appropriate success message to the user through the client program and the order-entry GUI.


*: Synchronization (sync) points divide a task, usually a long – running one, into smaller logical units of work (LUWs). Each syncpoint command establishes a syncpoint to mark the completion of a LUW.


EMERGENT PROPERTIES OF THE SYSTEM

Functional Properties:

The above depicted system can be said to achieve its goals in the sense that when a user makes a request, he gets a response for the request he has made. In other words, he has been able to do what he wanted and the system has also been able to achieve what it is meant to achieve.

The system also supports such user tasks as querying details of items in a catalog, ordering items and shipping items to customers. To order an item, the application checks for the item in its database, changes the inventory and sends requests to billing and shipping applications.

Non-Functional Properties:

Security and Performance are two non-functional properties of this system.

Security: The CICS region verifies that the user is authorized to make the request and that the user’s terminal is supported and unless that is the case, the user is prevented from using the transaction processing system.

Performance: The gap between the time a user makes a request to the time he receives a response is fairly short, implying the client-server model depicted in the system is more rapid than other models like, for instance, teleprocessing and file-server models.

THE SYSTEM ENVIRONMENT

The order-entry application and associated programs described in the application are implemented on several client and server machines.

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