Translate

Total Page Views


Featured 1

Curabitur et lectus vitae purus tincidunt laoreet sit amet ac ipsum. Proin tincidunt mattis nisi a scelerisque. Aliquam placerat dapibus eros non ullamcorper. Integer interdum ullamcorper venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Featured 2

Curabitur et lectus vitae purus tincidunt laoreet sit amet ac ipsum. Proin tincidunt mattis nisi a scelerisque. Aliquam placerat dapibus eros non ullamcorper. Integer interdum ullamcorper venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Featured 3

Curabitur et lectus vitae purus tincidunt laoreet sit amet ac ipsum. Proin tincidunt mattis nisi a scelerisque. Aliquam placerat dapibus eros non ullamcorper. Integer interdum ullamcorper venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Featured 4

Curabitur et lectus vitae purus tincidunt laoreet sit amet ac ipsum. Proin tincidunt mattis nisi a scelerisque. Aliquam placerat dapibus eros non ullamcorper. Integer interdum ullamcorper venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Featured 5

Curabitur et lectus vitae purus tincidunt laoreet sit amet ac ipsum. Proin tincidunt mattis nisi a scelerisque. Aliquam placerat dapibus eros non ullamcorper. Integer interdum ullamcorper venenatis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Thursday, January 31, 2013

Third Generation Computer Languages

A program is a list of instructions that performs a particular task. Assembly programs were very long, this made it difficult to maintain programs written in Assembly. In the late 1950 Computer Scientists came up with high level computer languages which were closer to English and Mathematics.

High Level languages are relatively easy for people to learn and to program computers. Fig 4.2, shows examples of four programs written in diffe rent high level programming languages which display the message “Hello World” on the computer screen.

World
High Level Programming Languages

The computer cannot understand instructions given in a high level language. A transla tor is needed to convert the high level language program into machine code. Imagine that you got an opportunity to go to Japan as part of a student exchange program. As a student ambassador you need to make a speech to students about Sri Lanka. How would you carry out your speech?

If you knew how to speak in Japanese, that would be the best way to carryout your speech. But if you knew English couldn’t you still made the speech? You could by getting help of a translator who is conversant in both Japanese and English. This is exactly how things work in a computer. A translator is used to translate instructions given in a high level language into machine code.

Coming back to the earlier example you could use two approaches to conduct your speech. One way to carry out your speech is for you to speak a few sentences in English and pause allowing the translator to repeat what you have said in Japanese. The second approach is that you could prepare your speech before hand and give awritten copy of it to the translator. You could conduct your speech completely in English. Your Japanese friends would not understand anything you say, but would probably patiently wait till you finish. After you have finished the translator could now repeat your entire speech in Japanese.

These two approaches are used by computers to translate high level language programs to machine. Translator software which uses the first approach are called Interpreters and the latter are known as compilers.

An Interpreter converts a program written in a high level language to machine code as follows.
1. Interpret the next high level language instruction to machine code
2. Execute translated machine code instruction
3. Goto 1st step

A compiler on the other hand translates (compiles) the entire high level language program into machine code. The converted machine code program is usually stored on disk. In Microsoft Windows such machine code files generally have the extensions .EXE. You can get the computer to execute these instructions by running
the executable file. i.e. by typing the name of the executable file in the command prompt or by selecting the executable using the Windows Task Bar Run command.

There are hundreds of different high level programming languages available with newer ones being developed regularly. This is because different people have made different attempts to make Programming (Writing Computer programs) much easier. Some of the high level computer languages are general purpose. This means that these languages could be used to write programs which solve a wide range of problems. These could include, business applications, games, web applications etc. Java, C++, Visual Basic are example of such languages.

There are some high level languages which are special purpose. These languages are intended for writing specific types of programs only. For example COBOL was a language that was used for developing Business type applications. Fortran is used to developing scientific, engineering types of applications. Most of the languages that are used in the software industry fall into the Third Generation Computer Language category..

Wednesday, January 30, 2013

Introduction to Programming

Languages

In Sri Lanka people use three languages Sinhala, Tamil and English. The purpose of a language is to allow people to communicate. If we want to communicate with a computer it would be ideal if you could use a language like English. Unfortunately computers at present are not intelligent enough to understand human languages. Because of this computer scientists have developed computer friendly languages. These computer languages could be learnt relatively easily by people. Using such a computer language you can communicate with a computer. More specifically you could instruct the computer to perform a particular task.

Computer Languages Generations

First Generation Computer Languages
In the computer there is a component called the central processing unit (CPU). The main purpose of the CPU is to execute instructions given to the computer. The instructions even a modern day computer can understand directly are numbers given in binary format. This language is called machine code (See Fig 4.1). This is the language that a computer really understands. Machine code is dependent on the type of CPU your computer has. The Intel Pentium IV is the CPU used in new personal computers. There are older versions of this CPU, e.g. Pentium III, Pentium II, 80486, etc. These belong to a family of processors called the Intel 80x86. The machine code in these processors are similar. There are other types of CPUs like the PowerPC used in Apple computers, UltraSparc used in Sun Workstations. The internal design of these CPUs are very different from the Intel 80x86 family of processors. Because of this, machine code of these processors are different from the Intel processors.

If you think of a calculator it could add, substract, multiply. These are the operations it can perform. A CPU of a computer has instructions to mainly perform arithmetic calculations such as add and logical operations such as or, and etc.. The instructions supported by the CPU are called the instruction set. People do not instruct computers using machine code today. But when the first electronic computers were developed during the 1940s, the only type of computer language that was available was machine code. Computer scientists had to literally write all instructions using numbers. Machine Code is an example of a first generation computer language.

Second Generation Computer Languages

Using machine code was very difficult and error prone so in the 1950s they came up with the idea of using simple English words to replace the numerical instruction codes. These words were called mnemonics, and this computer language was named as Assembly. 

Now the computer scientists could give instructions using simple words. They next converted these instructions into machine code so that the CPU could understand them using a software developed called an Assembler.

In Assembly every assembly instruction corresponds to a machine code instruction. Since Assembly languages corresponded to machine code, each different type of CPU has its own type of assembly. Assembly is still used today to program small electronic devices because assembly programs are more efficient in speed and requires the least amount of memory compared to programs developed using third generation languages (See 41.2.3).. Assembly is classified as a second generation computer language. Both machine code and assembly are called low level languages.

                                   Machine Code                                           Assembly
Assembly, machine code 

Tuesday, January 29, 2013

Problems in Systems Development

It is evident by now, system development is a complex process. There are many areas where things can go wrong which may result in project failure. As per our initial discussion, the system development methodologies (such as SDLC) were proposed to provide some structure and formalism to system development process in order to ensure that valid systems are developed and to minimise the possibility of failure. Although, following a methodology does not guarantee success, it provides a mechanism to minimise failures and detect problems early in the system development.
Problems in Systems Development
Some of the major issues that need to be considered in system development include:
  • Estimating cost and time: “What is the best way to estimate the cost and time required by a project?”
  • Selecting a project team: “What members must be included in a project team? What type of background and skills are required?”
  • Capturing user requirements: “What is the best method to capture user requirements? How to ensure that all requirements are captured? How to ensure that the accuracy of the requirements (that is, requirements captured meets the goals of users)?”
  • Using standards: There are many standards and methodologies proposed for system development (such as SDLC). “Which standard/methodology should be used for the project?”
  • Choosing design approaches: There may be many design alternatives for a problem. “How do we ensure that the best design choice is made?”
  • Coding programs: There are many different programming languages, tools and programming methodologies to develop programs. “How do we ensure that the right tools and languages are used?”
  • Testing programs: Programs if incorrectly written can cause errors (sometimes also called “bugs”). “How do we minimize errors in programs? What is the best way to test programs?”
  • Maintaining systems: “What is the best way to ensure that the systems are maintained till the end of their life cycle?”
As per our previous discussion, many organisations try to follow a system development process (i.e. a set of activities, methods, best practices, deliverables and tools an organisation uses to develop information systems) to ensure that they develop successful information systems.

It has been shown that as an organisation’s standard information system development process matures, project delays and costs decrease while productivity and quality increases. The Software Engineering Institute at Carnegie Mellon University (USA) has observed and measured this phenomenon and developed a framework, called the Capability Maturity Model (CMM), to assist all organisations to achieve these
benefits.

The Capability Maturity Model (CMM) is a framework to assess the maturity level of an organisation’s information systems development and management processes and products. It consists of five levels of development maturity.

  • Level 1 – Initial: This is sometimes called anarchy or chaos. System development projects follow no prescribed process. Each developer uses his or her own tools and methods. Success or failure is usually a function of the skill and experience of the project team. The process is unpredictable and not repeatable. A project typically encounters many crises and is frequently over budget and behind schedule. Documentation is sporadic or not consistent from project to project and causes problems for those who maintain the system over the life cycle. Almost all organisation start at Level 1.
  • Level 2 – Repeatable: Project management processes and practices have been established to track project costs, schedules and functionality. The focus is on project management, not systems development. A systems development process is always followed, but it may vary from project to project. Success or failure is still a function of the skill and experience of the project team; however, a concerted effort is made to repeat earlier project successes.
  • Level 3 – Defined: A standard system development process has been purchased or developed, and its use has been integrated throughout the information systems/services unit of the organisation. All projects use a tailored version of the software development process to develop and maintain information systems and software. As a result of using this standardised process for all projects, each project results in consistent high-quality documentation and deliverables. The process is stable, predictable and repeatable.
  • Level 4 – Managed: Measurable goals for quality and productivity have been established. Detailed measures of the standard system development process and product quality are routinely collected and stored in a database. There is an effort to improve individual project management based on this collected data. Thus, management seeks to become more proactive than reactive to systems development problems (such as cost overruns, scope creep, schedule delays etc.). Even when projects encounter unexpected problems or issues, the project can be adjusted based on predictable and measurable impacts.
  • Level 5 – Optimised: The standardised system development process is continuously monitored and improved based on measures and data analysis established in Level 4. This can include changing the technology and best practices used to perform activities required in the standard system development process, as well as adjusting the process itself. Lessons learned are shared across the organisation, with an emphasis on eliminating inefficiencies in the systems development process while sustaining quality. In summary, the organisation has institutionalised continuous systems development process improvement.
Each level is a pre-requisite for the next level. Although there are organis ations that have reached Level 5, currently, many organisations try hard to meet at least CMM Level 3. A central theme is the use of a standard process or methodology (such as SDLC) to build or integrate systems. We have now come to the end of the chapte r. It is time to review and summarize the materials learnt so far.

Sunday, January 27, 2013

Systems Development Life Cycle

In Systems Development Life Cycle (SDLC) model, the development process is divided into a set of well-defined steps or phases as follows:
  • Systems Investigation
  • System Analysis and Requirements Definition
  • Systems Design
  • Software Development
  • Testing
  • Implementation
  • Maintenance
The SDLC is a development process that is best suited for projects where the requirements can be clearly defined. SDLC encourages top-down problem solving. That is, designers must first define the problem to be solved and then use an ordered set of steps to reach a solution. In SDLC, the development activities are performed as a sequence of phases. The major phases are illustrated in the figure 3.1.3. In SDLC, each phase begins only after the previous phase has been completed. Each phase usually produces one or more model(s), and/or products (shown in figure 3.13 in rectangles with rounded corners underlined). The models become part of a phase report, whic h describes what have been achieved in this phase and outlines a plan for the next phase. The report also includes any models, new or expanded user requirements, design decisions and problems encountered. This information is used at the next phase. Phase reports are also used to keep the management informed of project progress, so that management can change or modify project direction and allocate resources to the project. In the following subsections, we will discuss each phase in detail.
Systems Development
The development phases in SDLC
Systems investigation phase: The systems development life cycle begins with the System Investigation Phase. This phase includes problem definition and feasibility study. The major goals and objectives of the project are identified in this phase. This typically includes answering the following questions:
  1. Problems in or opportunities for improving the existing syste
  2. Objectives of the system investigation
  3. Overview of the proposed system
  4. Expected costs and benefits of the proposed system
A vital step in the system investigation phase is the feasibility study. Feasibility study includes:
  • Operational feasibility – whether the project can be put into action or operation. This includes considering motivational, logistical and acceptance considerations (such as resistance by users and other ethical considerations).
  • Technical feasibility – whether hardware, software and other system components can be acquired or developed to solve the problem.
  • Schedule feasibility – whether the project can be completed in a reasonable amount of time.
  • Economic feasibility – whether the project is financially viable. Whether the predicted benefits offset the costs and time needed to obtain them.
  • Legal feasibility – whether there are laws and regulations that may prevent or limit the system development project.
 Let us consider an example of a school. Let us assume that presently the school uses a manual system for administration purposes of the school. A computer-based information system (i.e. School Information and Management System - SIMS) for the school can dramatically improve the efficiency of its Administrative Division. If we were to develop a SIMS for the school using SDLC, the first step will be to perform a system investigation phase. In the system investigation phase, we will identify the following:
  • Problems in or opportunities for improving the existing system. By having a SIMS in the school, we can keep all student records, staff records, timetables etc. in the SIMS. This can improve the efficiency of the administrative division. For example, some of the objectives of the system may be:
  1. Release student reports within 2 days of submitting the marks by teachers.
  2. Student character and leaving certificates provided to students within 2 working days from the time of request.
  3. Student reports are accessible to students and parents via the Internet.
  4. Staff attendance and salaries are calculated using SIMS.
  • Objectives of the system investigation
  1. The objectives of the system investigation phase are to evaluate the feasibility and merit of introducing a SIMS to the school. The operational, technical, schedule, economic and legal feasibility is studied. Also, justification for introducing a SIMS to the school is discussed.In our SIMS example, a requirement may be to keep student and staff records in Sinhala and Tamil languages. The technical feasibility study will investigate whether current technology has adequate support for Sinhala and Tamil languages.
  • Overview o f the proposed system
  1. The overview of the proposed system including the main features is discussed. The following diagram illustrates an example of a proposed system.
Systems Development
An overview of a proposed School Information and Management System (SIMS)

In the above figure, the School Information and Management System (SIMS) keep data of students and staff in a database. The staff enter their attendance information to the system (by swiping a proposed staff identification card). SIMS uses this information in computing the salaries of the staff members. Teachers enter the student marks to the SIMS from the staff room. The Student Reports are generated by the SIMS and accessible to students via the school network (i.e. from the computer lab). The parents also have access to the Student Report of their child via the Internet. The Registrar uses information in the SIMS database to verify records and generate Student Character and Leave Certificates.
  • Expected costs and benefits of the proposed system
  1. Since the school currently uses a manual system, the costs must be computed for technology infrastructure, re -organization and training of staff. Then an analysis of whether the benefits outweigh the costs or not must be determined.
This phase results in a statement of requirements (i.e. formal definition of what the system must do). This document includes the project goals, project bounds and resource limits. This output is often reviewed by a steering committee, often consisting of senior management, users, IS department personnel and other functional areas. After review, the approval may be given by the management to carry on with the other phases and allocate resources for the project. 

System analysis and requirements definition phase: The next phase, Systems Analysis and Requirements Definition, results in the detailed system specifications. This includes an analysis model which describes how the current system works and what it does, requirements model which gives detailed requirements on what the users want the new system to do, and design model which describes how the new system will work and what it does.

In this phase, the existing system is studied in detail. Data on the existing system is gathered using different techniques, such as (1) inspecting written documents, (2) conducting interviews, (3) questionnaires and (4) onsite observations. The next step is to manipulate the collected data so that it is usable for the development team participating in the system analysis. Various techniques including data flow diagrams (DFD), entity relationship diagrams (ER), screen layouts, report layouts etc. are used for documenting requirements. (The study of these techniques in detail are beyond the scope of this book. Readers are encouraged to refer to the Suggested Learning Materials in section 3.6 and other related references for further information). In this phase, requirements for the new system are proposed, reviewed and documented. The figure below shows an example of a Student Report generated by SIMS.

Systems Development
A Sample Student Report generated by the proposed School Information
and Management System (SIMS)

At the end of this phase, the detailed system specifications (also popularly known as the Systems Requirements Specification – SRS) of the new system are generated. This document specifies in detail all the functionalities of the proposed system (i.e. “What the system does?”). These requirements are used in the next phase, which is the Systems Design phase. 

Systems design phase: The Systems Design Phase produces a design specification for the overall system being developed. This specifies how the system will be built meeting all requirements specified by the SRS. This includes an architectural design, which specifies the high-level modules being built, and a detailed design, which specifies the user interfaces, system procedures and low-level modules of the new system.

The design specifications typically cover the following areas:
  • Hardware design: All computer equipment including input, processing and output devices with performance characteristics. In our example of SIMS, hardware design includes specification of all hardware requirements (such as computers etc.) and specifying for what purpose the equipment will be used.
  • Software design: All software must be specified with capabilities. Certain software may be purchased or others may be developed. All input, output and processing requirements are considered in software design. In our example of SIMS, this includes all software that needs to be purchased (such as Operating Systems, Database Management Systems) and also specifying the software components to be developed (such as Principal, Registrar, Student, Parent interfaces to SIMS, etc.).
  • Personnel Design: Positions, job titles and task descriptions are considered in the personnel design. In our SIMS example, we may propose new positions, duties and job titles such as a “System Administrator” etc. and even restructure existing positions.
  • Database design: The type, structure and function of the database must be specified. In our SIMS example, this may include the database design that stores the student and staff records.
  • Telecommunications and network design: The necessary characteristics of the communications software, media, and devices must be specified. In our SIMS example, this pertains to the school network design that connects the different computer systems.
  • Procedures design: All information systems require procedures to run applications and handle problems if they occur. These important policies are captured during procedures design. An important aspect of this step is to design security and backup polices and procedures to minimise the potential for fraud and crime.
  • Training requirements: Specifies the training requirements.
  • Maintenance requirements: Specifies maintenance requirements for both hardware and software.
  • Design Decisions and Alternatives: Major design decisions and alternatives considered are documented.
Various tools and techniques are used in the system design phase. We will not discuss these techniques in detail as it is beyond the scope of this textbook. Readers are encouraged to refer to materials outlined in section 3.6 and other related references for further information.

Software development phase: The specifications produced in the systems design phase provide the input for the Software Development Phase. At this stage, software developers and programmers build and test individual modules of the overall software system. The individual modules are integrated to produce the new system.

Testing phase: Testing Phase proceeds in parallel with the major phases. A broad test strategy is defined at the time the system requirements are identified. Detailed test design takes place during system design, and testing is a part of the software development phase. There are different types of testing that takes place:
  • Unit testing: tests individual modules.
  • Integration testing: modules are integrated and tested.
  • System testing: entire system is tested
  • Acceptance testing: verifying users’ test scenarios. This is usually performed at the end of the system development to verify that the system meets users’ requirements.
Other types of testing include stress testing (with large volumes of data and users), reliability testing (how does the system handle failures?) and security testing (how does the system perform with respect to security attacks?). In addition to the testing types mentioned above, in SDLC, after each phase, the output is verified/validated to ensure that the phase objectives have been correctly met. 

Implementatio n phase: The Implementation Phase puts into operation the system built in the software development phase. This phase includes user training, acceptance testing and deploying the new system (also called conversion). Conversion of the system may proceed in four ways:
  • Direct implementation: The entire system is replaced with the new system at once.
  • Parallel implementation: Both systems (i.e., the new and the old systems) are executed in parallel for a certain defined period of time. This strategy is helpful because of the following:
  1.  Results of the old system can be compared with the results of the new system.
  2. Failure of the new system at the early stage, does not affect the working of the organisation, because the old system continues to work, as it used to do.
  • Phased implementation: The new system is introduced in a phased manner. In this implementation, the new system is installed in parts. Some part of the new system is installed first and executed successfully for considerable time period. When the results are found satisfactory then only other parts are implemented. This strategy builds the confidence and the errors are traced easily.
  • Pilot implementation: Pilot implementation allows users to test-drive the solution to make sure it meets both business and technical needs. During a pilot implementation, the solution is installed and configured in the users’ environment for the first time. A pilot implementation provides a snapshot of the same functionality of a full system implementation, generally without the scalability and redundancy found in a full system. To complete the changeover, users must be trained in system operation and any existing old procedures converted to the new system.
Maintenance phase: Maintenance is needed to eliminate any errors in the system during its working life and to tune the system to variations in its working environment. Also, an important review is the post-implementation review. This is usually conducted after sometime the system is implemented. The goal of the review is to evaluate how well the system meets its objectives.

In SDLC, there is a definite end point to each phase. The phases are carried out in strict sequence. One phase must be completed before the next phase starts. The problems are solved in a top-down manner from the initial concept to the detailed design and development.

The SDLC allows for a large degree of management control. At the end of each phase, a formal review is performed and a decision is made whether to continue, terminate the project or modify and repeat some of the current tasks of the current phase. During the SDLC, documentation is created and this can be useful for system modification later. A major problem of SDLC is that the user does not see a solution until the system is nearly complete. It may result in a system, which does not address the user’s real needs since the development was based on development team’s understanding of the needs. This is quite possible since the user may not necessarily be a computer literate or expert on systems and his expression of requirements may be incomplete and inaccurate resulting in misunderstanding by the development team. SDLC is also inflexible to changing needs of the users. Changes to requirements during system development may not be incorporated. This is because once the systems requirements definition phase is completed, the development team works on other phases without much interaction with the users. If the users’ requirements change during this time, the development team may not be aware or be able to incorporate these new requirements to the system. Even with these shortcomings, SDLC is still a popularly used development methodology for many TPS and MIS systems because of its advantages. Table 3.2 below illustrates some of the advantages and disadvantages of SDLC.

Systems Development
Advantages and Disadvantages of SDLC

Saturday, January 26, 2013

Information Systems Development

By now, we have gained an understanding of what information systems are and also seen their importance within an organisation. In this section, we discuss how information systems are developed. Developing information systems is a complex process (especially large-scale information systems). There have been many attempts in developing information systems that have failed to meet their objectives. Hence, information system development has been extensively studied and many approaches are proposed for information system development. We will study the traditional System Development Life Cycle approach, which is also known as the Classical Life Cycle Model, Linear Sequential Model or the Water Fall Model. There are other approaches such as Prototyping Model, Rapid Application Model, and so on, which are not discussed and beyond the scope of this textbook. All these approaches have advantages and disadvantages and selecting the appropriate model for system being developed is important. Certain IT organisations have created their own system development methodology by borrowing concepts from different models.

Effective systems development requires a team effort. This team consists of users, managers, systems development specialists and various support personnel (i.e. stakeholders). Stakeholders are individuals who, either themselves or through the area of the organisation they represent, ultimately benefit from the systems development process. Depending on the project, the development team may include a systems analyst. A systems analyst is a professional who specialises in analysing and designing business systems. Systems analyst plays various roles while interacting with the stakeholders (users, management, vendors and suppliers, external companies and suppliers, software programmers and other support personnel). Like an architect that builds the blueprint (also known as plan) for a new building, a systems analyst develops detailed plans for the new or modified system.
Development
The System Analyst plays an important role in the development team and
is often the only person who sees the system in totality

The System Life Cycle

Similar to humans, plants and animals, information systems also have a life cycle. An information system also follows a system life cycle – from its development to operation and to final retirement. The system life cycle divides the life of an information system into two stages as follows:
  • System development: developing the information system
  • Systems operation and support: running the system and supporting it until its retirement.
A system development methodology implements the development stage of the system life cycle. Next, we will study the trad itional System Development Life Cycle methodology.

What is object oriented programming ?

This question is a little difficult to answer because the computer industry has a fascination for terminologies and catch words. Not long ago words like “artificial intelligence”, ‘’gui” and “net surfing” were used as if they were to offer a path to heavens. The same overuse seems to be happening to the phrase “object oriented” Since it has been proven that object-oriented techniques offer a way to write better programs, every body seems to be slipping the label “object oriented” on their software products.

So it is important for us to understand what is OOP, why do we need it, what does it do that traditional languages like C , Pascal nd Basic don’t and what are the principles behind OOP. This chapter addresses these issues and provides an overview of the features to be discussed in the rest of the book. What we say here will necessarily be general and brief . Don’t worry if you don’t catch everything in this chapter on the first pass; OOP is a complicated beast and learning about it takes time. We will be going over these features again in subsequent chapter . There’s lot of ground to cover here , so let’s get started .

While designing software a guideline that should be followed is ‘The Expression of an algorithm should model the application domain that it support ‘. Or in other words the solution to a problem should resemble the problem that it solves. That is, the observer should be able to recognize that purpose  of the solution without necessarily knowing the problem in advance. For example, when you see a properly designed word processor , you intuitively understand that the problem being solved is one of receiving and manipulating text. Similarly , when you see a properly designed inventory control system , you recognize that its purpose is to maintain a record of stock quantities and locations. 

You recognize those things because the solutions resemble and therefore remind you of the problems that they solve . In a similar sense the purpose of a programming language is to express with algorithms the solution to a data processing problem. The techniques used in that expression determine how  successfully the solution models its problem domain . Earlier , procedural programming was used for expression of a algorithm. Of late it is being replaced by object – oriented programming . To understand why this is so let’s begin by looking at the history of programming methodologies. 

Information System Types

As per our previous discussion, different levels of management require different types of information for their decision-making process. There are different types of information systems available geared towards different user needs. We can broadly classify some of the basic types of information systems as follows:
  • Transaction Processing Systems
  • Management Information Systems
  • Decision Support Systems
  • Executive Information Systems
  • Expert Systems
The following figure illustrates the focus areas of the different information system.
Information System
The different types of information systems and their focus areas

It is important to note that a single organisation may have many different types of information systems. Let us consider each information system type in detail.  

Transaction processing systems: The Transaction Processing Systems (TPS) are a popular type of information system. Transaction processing systems capture and process data about business transactions. A TPS is focused at the operational level of a business. In our example of the bank, the banking system that maintains information about customers, accounts and financial transactions (such as withdrawals, deposits etc.) is a TPS. Many people at the operational level of the bank use the TPS. The lower-level management mainly uses the reports generated by TPS.

Information System
ATM is an example of a customer’s interface to the bank’s Transaction
Processing System

The design of a TPS tends to focus on factors such as response time, throughput (volume of transactions per unit time), accuracy, consistency, and service. A TPS usually operates within one functional area of a business. It is common for large organisations with many functional areas (such as marketing, accounting, production etc.) to have their own TPS. Some examples of TPSs include: Stock Control, Order Processing, Payroll, Payment Processing, etc.

Management information systems: Management Information Systems (MIS) supplement transaction-processing systems with management reports required to plan, monitor, and control routine business operations. In other words, an MIS provides managers with information and support for effective decision-making and provides feedback on daily operations. The primary focus of an MIS is managing theefficiency at the operational level. Management info rmation systems typically provide standard reports derived from information in transaction processing systems. These reports assist managers at the middle -level in their decision–making process. For example, in the bank, a report consisting of average cash flow per month in a branch might assist the manager to plan for future cash requirements at the branch.

Information System
A Sample Report generated by a Bank’s Management Information System

There are different types of reports produced by an MIS: (i.) scheduled reports – that are generated periodically such as daily, weekly, monthly; (ii.) demand reports - that generate information on request; and (iii.) exception reports –that usually describe unusual or critical situations like low inventory levels etc.

Decision support systems: A Decision Support System (DSS) is used to support problem-specific decision-making. The focus of a DSS is to support effective decision-making. A DSS supports all aspects of problem-specific decision-making. It goes beyond the traditional MIS. It supports complex, unstructured and semistructured decision-making. For instance, in our bank example, the management decides to expand and open a branch. A DSS may support in finding the best city or town to open the branch. It may analyse customers’ addresses and their nearest bank branch to suggest locations. For instance, “there are many customers whose addresses are in Matara region having accounts in the Galle branch”, which may suggest opening a branch at Matara. Traditional MISs are seldom used to solve these types of problems; a DSS can help by suggesting alternatives and assisting in final decision-making. A DSS analyses the information already captured by TPSs and MISs in order to support unstructured and semi-structured decision-making at various levels. A DSS may also include data obtained from external sources as well.

Executive information systems: An Executive Information System (EIS) or sometimes also called Executive Support System (ESS), is a DSS specifically made for top-level managers and executives to support their strategic decision making process. EISs provide executives with internal information as well as information from external sources (such as research databases, news services etc.). EISs provide executives to view information in a user-friendly, customised manner that assist them in their decision-making process.

Expert systems: Expert Systems belong to area known as Artificial Intelligence1 in the Computer Science field. The focus of an expert system is to capture the knowledge and reasoning of a human expert in a particular field and utilise this in decision-making in the respective field. Expert systems have been successfully utilised in different areas such as performing medical diagnosis or credit evaluations. In our bank example, an expert system may be utilised to determine the creditworthiness of a loan application.

In this section, we have seen the different types of information systems. In the next section, we will investigate the steps that can be followed in developing information systems.

Thursday, January 24, 2013

Types of Information Systems

Organisational Structure

Traditionally, organisations have a hierarchical structure: the strategic level, the tactical level and the operational level.
Levels in a traditional organisation

The strategic level includes the top-level management in an organisation such as the chairman, board of directors etc. They make corporate goals and strategic decisions for an organisation. The top-level management typically makes strategic decisions. These decisions are typically unstructured in nature. Let us consider our example of the bank. The board of directors, chairman and other top-level management of the bank consist of strategic level management. They may decide to expand their customer base and profits, and decide to open bank branches in different regions of the country or elsewhere in the world and invest funds for it. This is a strategic decision based on business environment, fund availability etc. These unstructured strategic decisions are rarely based on routine procedures, complex in nature and involve the subjective judgement of the decision makers.

The middle or tactical management level must acquire and arrange the resources to meet the goals, and define the detailed tasks to be carried out at the operational level. These resources may include people, machinery, buildings, etc. needed to accomplish the goals. The information that middle managers need include review, summarisation, and analysis of data to help plan and control operations and implement
policy that is been formulated by upper management. In our example of the bank, this Strategic Tactical Operational Set Goals Arrange Resources Carry out Tasks may include finding appropriate locations and buildings, purchasing equipment, hiring staff and training, making marketing strategies etc. for the newly established bank branches. Managers at the middle level generally deal with semi-structured decisions. A semi-structured decision or a tactical decision is a decision that is made without a clearly defined informational procedure.

The personnel at the operational level carry out the detailed tasks defined by the middle management. Most decisions at this level require easily defined information that relates to the current status and activities within the basic business functions. This information is generally given to lower management in detailed reports. The decisions taken at this level are called structured decisions, also known as operational decisions. A structured decision is a predictable decision that can be made by following a well-defined set of routine procedures.

Let us consider the bank example. A bank teller withdraws cash for a customer’s request if the customer’s account has the available funds. This is a structured decision. The current balance of the customer’s account is the information the bank teller requires to make this decision.

So far we have discussed hierarchical organisation structure. Even though traditional organisations have a hierarchic al structure, today, we are seeing more organisations with a flat organisational structure. A flat organisational structure has a reduced number of management layers. Flat organisational structures empower employees at lower levels to make decisions and solve problems without needing permission from the midlevel managers. Empowerment gives employees and their managers more responsibility and authority to make decisions, take certain actions, and in general have more control over their jobs. In our example of the bank, a bank teller may be able to process a customer’s cheque and return cash to a customer without approval from his/her manager. Empowerment usually results in faster action and quicker resolution of problems. It can also reduce costs and result in higher quality products and services.

Information systems can be a key element in empowering employees. Often, information systems enable empowerment by providing information directly to employees at lower levels of the hierarchy. In our example of the bank, the bank teller may be enabled to obtain information to verify the validity of the cheque and availability of funds prior to processing the cheque.

Wednesday, January 23, 2013

What is an Information System?

An information system (IS) can be defined as an arrangement of people, data, processes, and interfaces that interact to support and improve day-to-day operations in an organisation as well as support the problem-solving and decision-making needs of management and users. Let us look at this definition in detail.

An interface is the means by which two or more entities interact with each other in a system. For instance, in a school, a student may request for a “Character Certificate” by filling a pre-defined form and submitting it to the Registrar. The form that is filled is the interface between the student and Registrar of the school.
In the above definition of information systems, note that we have considered

“problem solving” and “decision-making” needs in addition to our previous definition of a system - a collection on interrelated components (people, data, processes, and interfaces) that work together to achieve a goal (day-to-day operations in an organisation). Also, in the previous section, we have seen how information and data can assist in problem solving and decision- making in an organisation.

It is interesting to note that we have not mentioned the use of computers in information systems. Actually, an information system can exist without the use of computers (a manual information system) or using computers (a computerised information system or computer-based information system). We will study manual and computer-based information system in the next section.

Manual and Computer-based Information Systems

Manual information system: In a manual information system, all data processing is done manually. Filing cabinets, manual procedures and papers are vital components of a manual information system.
Information
 With manual information systems, it is common to have
large number of filing cabinets to store records

In our school example, let us consider a student who is applying for a “Character Certificate”. The student fills a form stating information about his/her schooling history, which may include student’s academic records (O/L and A/L results), extra - curricular activities performed (member of a school sports team, being a prefect, etc.) and other relevant information. The form is submitted to the Registrar’s office with the student record book. The Registrar’s office verifies the information in the form by checking the student file in the filing cabinet. Then the character certificate is prepared by the Registrar’s office and sent to the principal for his/her signature. Finally, the “Character Certificate” is given to the student. This is an example of a manual information system.

We could store all the data and information of students in a computer. Then, we could check the records of students in a very fast manner (without the use of filing cabinets). Then, the system becomes a computer-based information system (CBIS). 

Computer-based information system: A computer-based information system is a single set of hardware, software, databases, telecommunications, people and procedures that are configured to collect, manipulate, store, and process data into information.

Let us look at each component in detail:
-Hardware consists of computer equipment.

- Software is the computer programs that govern the operation of the computer systems. There are two types of computer programs:

               (i.) System software that governs the basic computer operations such a startup etc. For example, the Operating System.
              (ii.) Application software allows specific tasks to be accomplished. For example, Word Processing software enables us to create documents – letters, books, etc.

- A database is an organised collection of data and information. As we discussed previously, data and information are critical for problem solving and decisionmaking in an organisation. Hence, most managers and executives consider a database to be the most valuable and important part of a computer-based information system.

- Telecommunications is the electronic transmission of signals (i.e. data) for communications. Telecommunications enable organisations to carry out processes and tasks through effective computer networks. Networks connect computers and computer equipment in different locations (i.e. places) and enable electronic communications. For example, the Internet is the world’s largest computer network, which connects computers around the world.

- People are the most important element in most computer-based information systems. These include users, people who manage, run, program, and maintain the system. Users are persons, who use information systems to get results.

- Procedures include the strategies, polic ies, methods, and rules for using a computer-based information system. Procedures may include methods such as
“how to perform a task by executing a particular program?” or policies such as
“who can have access to the database and what data?”
We have discussed computer-based information systems in general. Let us consider an example of a CBIS. In Sri Lanka, we are seeing many financial institutions, such as banks, using computer-based information systems.
Information

A bank that uses a computer-based information system

A bank has a head-office and many branches located in different parts of the country. The bank and its branches have a large collection of computer equipment (hardware) ranging from computers to Automated Teller Machines (ATMs). There are many different programs (software) installed in these computer systems such as bank teller applications, Automated Teller Machine applications etc. The head office contains a database of relevant facts and information – such as account information, customer information and transaction information. All the branches are connected to the head - office by computer networks (telecommunications). Hence, now a customer can access his/her account information from any bank branch. There are many people who use the bank’s CBIS. The users include customers, bank tellers, bank managers, bank’s executives etc. Also, there are personnel who run, program, manage, and maintain the bank’s CBIS which consists of the bank’s IT department (such as database administrator, network administrators etc.). There are lots of procedures in the bank (for example, a customer can access only his/her account information, a bank manager can approve a housing loan etc.).

Manual vs. computer-based: Let us consider some important advantages and disadvantages of manual and computer-based information systems.

  • Cost: The initial cost in installing a computer-based information system is higher than a manual system. In a computer-based information system, there is a cost for hardware, software, and computer networks (also called technology infrastructure) in addition to people and making up procedures. In a manual system, the initial cost is lower since this technology infrastructure is not required.

  • Fast access to information: In a CBIS, information can be retrieved very fast when compared to a manual system. This is because computers store and access data electronically which is faster than a person looking through a cabinet of files.
In our example of the bank, since the bank is using a CBIS, a customer can check the balance in his/her account very quickly. If the bank was using a manual system and a cabinet of files, it will take a long time to obtain this information.

  • Accuracy: In a CBIS, computers handle many repetitive data processing tasks. When programmed properly, computers are very accurate in data processing. In a manual system, humans handle these tasks. Humans get tired and bored and thus may result in errors.

  • Distributed access to information: With computer networks, we can connect different computer systems and communicate between them. Hence, we can access information from many different places. In our previous example of the bank’s CBIS, a customer can access his/her account information from any branch (e.g. Anuradhapura or Kandy) because the computer networks connect the different branches and head office. Gaining efficient distributed access to information is difficult in a manual system.

  • Availability: In a CBIS, since many tasks rely on computer systems, they are available throughout the day. In a manual information system, since many tasks rely on humans, they may not be available. Humans get tried and needs a rest so they work during daytime (for instance, 8am – 5pm). Computers do not get tired and can work all 24 hours a day. In our example of the bank, a customer can go to the ATM in the night when the bank is closed and still withdraw money from his/her account. This is because the bank is using a CBIS.

  •  Reliability: In a CBIS, computers are used for many tasks. Computers rely on electricity to work. If there is a power failure or system failure, many tasks cannot be performed in a CBIS (unless alternative systems are in place). Sometimes, the entire system may come to a standstill! In a manual system, humans are performing the tasks and if a person gets ill another person may easily replace him/her during this period. However, if all persons gets-together and strike, then the entire system can come to a standstill!
  • People resources: In a CBIS, since computers perform many tasks, there is a need for fewer people to operate a system. However, the people in a CBIS need to be well trained to operate the CBIS. In a manual system, larger number of people is needed to operate the system. Hence, some persons argue that CBIS replaces certain people’s jobs (such as clerks, office assistants etc.), while other’s claim that organisations are more efficient and productive and hence save more money by utilising a CBIS.
In today’s competitive business environments, many organisations believe that advantages of computer-based information systems far outweigh manual information systems and are required for an organisation’s survival. With the cost of hardware reducing with the advancement of technology, computer-based information systems are accessible to many organisations. Hence many organisations try to leverage the advantages of using computerised information systems in their daily operations to gain a competitive advantage. Thus learning computer-based information systems has become a necessity and a fruitful endeavour for students today. Hence, in the rest of this chapter, we will focus on computer-based information systems and we will use the term information system to refer to computer-based information system.

Tuesday, January 22, 2013

Information Systems

In this section, we will learn concepts that lead us to understand what information systems are and its importance in an organisation. We will learn what data and information is, the role that information plays in problem solving and decisionmaking, define information system and also look at manual and computer-based
information systems.

Data versus Information

Firstly, let us revisit the concept of data and information. Data are raw facts pertinent to a system. In our example of a school, data can be names of students, teachers, subjects, marks of students for subjects etc. Information is data that have been refined and organised by processing. In the school example, a report book contains information – i.e. marks organised and processed for a student.

We use a process to turn data into information. A process is a set of logically related tasks performed to achieve a specific outcome. Sometimes, data is organised and processed mentally or manually. Sometimes a computer is used. We will discuss computer-based information systems in section 3.2.

An example of data and information
 
In the above example, the teacher generates the marks for a particular subject (i.e. data). The Student Report contains information (i.e. data processed for a student). The marks are compared with a grading scheme (i.e. process) and a grade (i.e. information) is assigned for each subject. Also, the student’s average marks are computed (i.e. process). The student’s average marks are compared with other students’ average marks (i.e. process) and a position (i.e. information) is assigned for the student.

Problem Solving and Decision-making

Everyday in our life, we make decisions to solve problems. Similarly, in any organisation, decisions need to be made. Data and information assist us in making decisions. Let us consider the example of a student report book. It provides information to the student on his/her performance for various subjects (Mathematics, English, Physics etc.). Now the student can decide whether s/he needs to improve in a particular subject and may attend extra classes, read more material on the subject and put more study time and effort in learning the subject area. This was a decision made by the student based on information the student received from his/her report book. Similarly, the principal of the school may look at the average marks obtained by students for each subject. After acquiring further information about the cause for poor performance on a particular subject, the principal may decide to arrange extra classes for a particular subject, add more reference materials into the school library, improve laboratory facilities etc. The principal made his/her decision based on the information s/he received.

It is evident from the above discussion that data and information play a key role in decision-making. Think of other examples of decision-making and type of data and information that influences such decisions? Also, it is evident that different people use different types of information to make decisions. In our above example, the principal makes a decision based on the average marks rather than the student report book. Similarly, the student based his/her decision by considering the information in his/her report book rather than average marks obtained by all students for a subject. Now that we understand what data and information mean and also, we have seen how data and information influence our decision-making to solve problems, we will start to explore informatio n systems in detail.

Monday, January 21, 2013

System Types

Systems can be classified into different types based on their characteristics. The following table illustrates the different system types and their primary characteristics.
System Types and Primary Characteristics

A single system can belong to many different system types based on their characteristics. Let us revisit our example of the school (viewed as a system). Is the school a simple or a complex system? Is the school an open or a closed system? Is the school a stable or a dynamic system? Is the school an adaptive or a nonadaptive system? Is the school a permanent or a temporary system?

It is important to note that system designers sometimes model complex systems as simple systems to better understand these systems. This process is called abstraction.

Viewing Organisation as a System

So far we have seen a school being considered as a system. Similarly, you can consider other examples for systems . If we look in our surroundings, we see many organisations: such as shops, medical centres, communication centres, theatres, universities and others. All of these organisations have goals, components, inputs, processing and outputs. They can be viewed as systems and analysed to identify system boundaries, system types, environment in which they operate. This study will provide us a better understanding of systems and their workings.

Now that we have learnt and gained an understanding of what a system is, we will focus our attention to the next section, which is Information Systems.

Elements of a System

Let us learn some new terms about systems. A system usually interacts with the external world or environment. The system boundary separates the system from its environment. A system’s boundary tells us what is inside and what is outside the system.
A school (viewed as a system) illustrating the system boundary

Let us consider our example of a school and identify the system boundary.

In the above example, the system boundary clearly illustrates the components inside the school (that is, principal, teachers, students etc.) and components outside the system (that is, parents, Department of Education, etc.).

As stated earlier, a system performs a task or accomplishes a goal. To perform a task or accomplish a goal, a system receives input (from the environment), processes and returns output (to the environment).
Input, Processing and Output

In our school example, we can identify goals, input, processing and output as follows:
                        System:                  School
                       Goal:                       Education of students
                        Input:                     Children, teachers, funds
                        Processing:            Teaching and learning
                       Output:                    Educated students

Sunday, January 20, 2013

Information systems

What is a system?

A system is a collection on interrelated components that work together to perform a specific task or achieve a goal. In a system, the different components are connected with each other and they are interdependent. Each component is a subsystem of the original system and carries out a part of the system task.

For example, the human body represents a complete natural system. Our human body contains complex muscle, bone, respiratory, digestive and circulatory subsystems, each providing a specific part of the system task.

Let us consider the respiratory subsystem which provides air to the body from the environment. Some of the components of the respiratory subsystem includes nasal passages, lungs etc. Each component, such as lungs, can it self be considered as a subsystems. Similarly, the heart and blood vessels can be considered as components of the circulatory subsystems.

What is the goal of the circulatory subsystems? The digestive subsystems? List some components of circulatory and digestive subsystems.                     
                                          
Another example of a system is a school. Principal, teacher, students, equipment and classrooms are components of a school.

A system can also play the role of a subsystem to build more complex systems. For example, a school mat be a subsystem f the educational system of a country. A university may be another subsystem. Viewing complex systems as a collection of subsystems may help us handle complexity and improve our understanding of the system.

Saturday, January 19, 2013

Introduction to Information Technology

Usage and importance of IT

There is a genera belief that Information Technology (IT) is about computers. However, this is not true. Information Technology (IT) is about computers. Information and knowledge utilizing such computers and communication networks. Information Technology (IT) has enabled people indifferent parts of the world to exchange information freely and with ease. In effect, IT makes us realize how small the world, we live in, is as it removes physical constraints such as distance between people in exchanging information.

With rapid developments in IT, global communication took a giant leap. Today, Information Technology (IT) is practically utilized in diverse fields such as education, science, engineering and technology, manufacturing, banking, airline industry, health and medicine, provision of public and other services, commerce, administration and management etc. We all have become users of many these IT applications in our day-to-day lives, no matter how sophisticated or moderate our lifestyles are. Further , more and more IT applications are introduced to human activities and with this scenario it is surmised that, in future, knowledge in IT will be essential requirement for a person to secure any from of employment or even participate as a member of the modern day society.

Information Technology (IT) has opened up a whole new of employment opportunities as programmers, systems analysts, systems designers, software engineers, software architects, systems engineers, database administrators, network engineers, network administrators, computer hardware professionals, Website developers, multimedia professionals, IT consultants and the like. In addition, IT has created vast job opportunites in other fields such as management, accountancy, commerce, banking, publishing and media, engineering, architecture, health and medicine.

There are also emerging areas of specialization such as electronic commerce, web services, network and data security, intelligent systems, e-government services all spurred by IT.

With the availability of a wide variety of employment opportunities in the field of IT and a whole host of  opportunities in the field of IT applications in other disciplines, those who are knowledgeable and proficients in IT will naturally find satisfying jobs with high remuneration both here and abroad. This is good enough reason for any student to embark on studies in IT.