Computer Applications Unit 1

 

Classification of Computers

Computers differ based on their data processing abilities. They are classified according to purpose, data handling and functionality.

According to purpose, computers are either general purpose or specific purpose. General purpose computers are designed to perform a range of tasks. They have the ability to store numerous programs, but lack in speed and efficiency. Specific purpose computers are designed to handle a specific problem or to perform a specific task. A set of instructions is built into the machine.

According to data handling, computers are analog, digital or hybrid. Analog computers work on the principle of measuring, in which the measurements obtained are translated into data. Modern analog computers usually employ electrical parameters, such as voltages, resistances or currents, to represent the quantities being manipulated. Such computers do not deal directly with the numbers. They measure continuous physical magnitudes. Digital computers are those that operate with information, numerical or otherwise, represented in a digital form. Such computers process data into a digital value (in 0s and 1s). They give the results with more accuracy and at a faster rate. Hybrid computers incorporate the measuring feature of an analog computer and counting feature of a digital computer. For computational purposes, these computers use analog components and for storage, digital memories are used.

According to functionality, Type of Computers are classified as:

Analog Computer

 An analog computer (spelt analogue in British English) is a form of computer that uses continuous physical phenomena such as electrical, mechanical, or hydraulic quantities to model the problem being solved.

Digital Computer

A computer that performs calculations and logical operations with quantities represented as digits, usually in the binary number system

Hybrid Computer (Analog + Digital)

A combination of computers those are capable of inputting and outputting in both digital and analog signals. A hybrid computer system setup offers a cost effective method of performing complex simulations.

On the basis of Size: Type of Computer

Super Computer 

The fastest and most powerful type of computer Supercomputers are very expensive and are employed for specialized applications that require immense amounts of mathematical calculations. For example, weather forecasting requires a supercomputer. Other uses of supercomputers include animated graphics, fluid dynamic calculations, nuclear energy research, and petroleum exploration.

The chief difference between a supercomputer and a mainframe is that a supercomputer channels all its power into executing a few programs as fast as possible, whereas a mainframe uses its power to execute many programs concurrently.

Mainframe Computer

A very large and expensive computer capable of supporting hundreds, or even thousands, of users simultaneously. In the hierarchy that starts with a simple microprocessor (in watches, for example) at the bottom and moves to supercomputers at the top, mainframes are just below supercomputers. In some ways, mainframes are more powerful than supercomputers because they support more simultaneous programs. But supercomputers can execute a single program faster than a mainframe.

Mini Computer

A midsized computer. In size and power, minicomputers lie between workstations and mainframes. In the past decade, the distinction between large minicomputers and small mainframes has blurred, however, as has the distinction between small minicomputers and workstations. But in general, a minicomputer is a multiprocessing system capable of supporting from 4 to about 200 users simultaneously.

Micro Computer or Personal Computer

  • Desktop Computer: a personal or micro-mini computer sufficient to fit on a desk.
  • Laptop Computer: a portable computer complete with an integrated screen and keyboard. It is generally smaller in size than a desktop computer and larger than a notebook computer.
  • Palmtop Computer/Digital Diary /Notebook /PDAs: a hand-sized computer. Palmtops have no keyboard but the screen serves both as an input and output device.

Workstations

A terminal or desktop computer in a network. In this context, workstation is just a generic term for a user’s machine (client machine) in contrast to a “server” or “mainframe.”

Computers in Business

The role of computers in business is to help you work smarter, not harder. In 2009, Apple created a cult phrase: “There’s an app for that!” It proved so true with computers and phones that Apple quickly trademarked the phrase.

The struggle today is more about finding the right software for your problem. Consider talking to or following productivity evangelists and information technology experts to see if you’re overlooking potential solutions through smartphones, tablets and computers that could be a game changer in how you solve and expedite business challenges.

Business Computer Functions

Most business processes now involve the use of computers. Here are some of them:

Research:

Businesses can use computers to research industry trends, patents, trademarks, potential clients and competitors via search engines and proprietary databases.

Product Development:

Developers use computers to create new products and services.

Media Production:

Computers are now used to produce different types of media, including graphics, video and audio productions.

Communications:

Companies use computers for both internal and external communications via email, messenger systems, conferencing and word processing.

Data Tracking and Storage:

Although paper files containing hard copy documents are still in use, organizations also store and manage their data using software and the cloud.

Human resources:

Internal HR processes and payroll systems are managed using software and online services.

Record keeping and problem solving:

Information management is a key example of the importance of computers in business administration. At a glance, a manager can see what sales are doing and what problems are arising, and they can act rapidly thanks to the instantaneous connection afforded through most management apps and programs. Better yet, computers can be programmed to have specific operations for each business or client through highly adaptable software or even proprietary creations.

Transparency and accountability are more possible with today’s technology. Even a mom-and-pop hardware shop can have software to record transactions for their customers, making orders and client care easier than ever before. Businesses can track individual employee behavior online, monitor divisional sales and accomplishments and much more.

Networking:

According to the Spam Laws Web site, file sharing is one of the key benefits of networking computers in an office environment. Office networking, or the creation of an office intranet, means that a common database of files is accessible to all users. This also applies to software and management of computers, which significantly reduces costs for offices, as they can purchase one networkable software product instead of having to purchase multiple copies for individual computers. Networking also provides communal access to printers, fax machines and copiers.

Introduction to Computers: Basic Anatomy

When breaking down the components of a computer, they are oftentimes likened to the parts of the body. The processing unit may be compared to the brain, with the access memory and hard drive are equated to short and long term memory, while the motherboard is sometimes considered the central nervous system of a computer. All these parts hidden beneath the casing work much like organs, performing essential functions that allow a computer to perform tasks.

Central Processing Unit (CPU)

The central processing unit is an essential part of the computer. It controls and executes operations, interpreting input provided by the user and directing the output to complete a requested task. While it is generally a physical component of the computer, cloud computing can subdivide CPU operation into virtual central processing units (vCPU).

CPU’s are distinguished by their computing speed, which is referred to as a clock rate. Depending on the speed, this is measured in hertz (Hz) or gigahertz (GHz) per second. Tasks like watching high-definition movies, simultaneous online gaming and streaming, manipulating graphics or other large programs generally require processors with higher speeds.

Random Access Memory (RAM)

Random access memory is just like it sounds: a computer’s memory. More specifically, it stores the data and machine code currently being used. This allows the information to be read or written quickly regardless of where the physical location of the data is inside the complete memory.

The more RAM a computer has, the better it can manage several programs at once. It isn’t difficult to add more memory after an initial build, but investing in more RAM is considered just as vital, if not more, than a good processor. A good starting point is at least 512 megabytes.

Hard Drive

While RAM could be regarded as short term memory, a hard drive is long term storage. It is a high-capacity, self-contained storage device with the ability to both store and recall data. It includes one or more hard disk inside a sealed unit, each of which can hold up to 12 terabytes of information.

All data created on the computer – from work files to installed programs – are stored on the hard drive. IBM compatible computers often labeled alphabetically, starting at “C:”, with A and B reserved for removable media. Hard drives can also be external as well and are often used for backing up computer data or storing exceptionally large files.

Motherboard

The motherboard is the main printed circuit board in a computer. It holds and allows communication between essential electrical components of a system, such as the CPU and the memory, and provides input connectors. Without it, nothing else would work.

Selection of a motherboard depends mostly on size restrictions and the types of components that will be included. It is suggested that at least two USB ports be included, but more may be required depending on which attachments will be used internally and externally and how they connect.

Video, Graphics & Sound Cards

Most motherboards come with a integrated processors for these functions. If higher performance is required for graphics or audio, like for running games or multimedia programs, a dedicated processing unit comes highly recommended. They can also be upgraded over time fairly easily, with laptops being the exception, by plugging into the motherboard.

Keyboard & Monitor

A keyboard and monitor are required for inputting commands and receiving output. There is a large variety of monitors available, but the specs required are determined along the same lines as the graphics card. If large programs with high graphics are frequently used, a monitor to compliment that will make the dedicated processor worth the investment. Keyboards offer less of a variety, though there are some styles that provide specialized tools or additional buttons for various uses.

Introduction to Distributed Data Processing and Real Time System

Distributed systems use multiple central processors to serve multiple real-time applications and multiple users. Data processing jobs are distributed among the processors accordingly.

The processors communicate with one another through various communication lines (such as high-speed buses or telephone lines). These are referred as loosely coupled systems or distributed systems. Processors in a distributed system may vary in size and function. These processors are referred as sites, nodes, computers, and so on.

The advantages of distributed systems are as follows:

  • With resource sharing facility, a user at one site may be able to use the resources available at another.
  • Speedup the exchange of data with one another via electronic mail.
  • If one site fails in a distributed system, the remaining sites can potentially continue operating.
  • Better service to the customers.
  • Reduction of the load on the host computer.
  • Reduction of delays in data processing.

Real Time operating System

A real-time system is defined as a data processing system in which the time interval required to process and respond to inputs is so small that it controls the environment. The time taken by the system to respond to an input and display of required updated information is termed as the response time. So in this method, the response time is very less as compared to online processing.

Real-time systems are used when there are rigid time requirements on the operation of a processor or the flow of data and real-time systems can be used as a control device in a dedicated application. A real-time operating system must have well-defined, fixed time constraints, otherwise the system will fail. For example, Scientific experiments, medical imaging systems, industrial control systems, weapon systems, robots, air traffic control systems, etc.

There are two types of real-time operating systems.

Hard real-time systems

Hard real-time systems guarantee that critical tasks complete on time. In hard real-time systems, secondary storage is limited or missing and the data is stored in ROM. In these systems, virtual memory is almost never found.

Soft real-time systems

Soft real-time systems are less restrictive. A critical real-time task gets priority over other tasks and retains the priority until it completes. Soft real-time systems have limited utility than hard real-time systems. For example, multimedia, virtual reality, Advanced Scientific Projects like undersea exploration and planetary rovers, etc.

Introduction to Distributed Data Processing and Real Time System

Distributed systems use multiple central processors to serve multiple real-time applications and multiple users. Data processing jobs are distributed among the processors accordingly.

The processors communicate with one another through various communication lines (such as high-speed buses or telephone lines). These are referred as loosely coupled systems or distributed systems. Processors in a distributed system may vary in size and function. These processors are referred as sites, nodes, computers, and so on.

The advantages of distributed systems are as follows:

  • With resource sharing facility, a user at one site may be able to use the resources available at another.
  • Speedup the exchange of data with one another via electronic mail.
  • If one site fails in a distributed system, the remaining sites can potentially continue operating.
  • Better service to the customers.
  • Reduction of the load on the host computer.
  • Reduction of delays in data processing.

Real Time operating System

A real-time system is defined as a data processing system in which the time interval required to process and respond to inputs is so small that it controls the environment. The time taken by the system to respond to an input and display of required updated information is termed as the response time. So in this method, the response time is very less as compared to online processing.

Real-time systems are used when there are rigid time requirements on the operation of a processor or the flow of data and real-time systems can be used as a control device in a dedicated application. A real-time operating system must have well-defined, fixed time constraints, otherwise the system will fail. For example, Scientific experiments, medical imaging systems, industrial control systems, weapon systems, robots, air traffic control systems, etc.

There are two types of real-time operating systems.

Hard real-time systems

Hard real-time systems guarantee that critical tasks complete on time. In hard real-time systems, secondary storage is limited or missing and the data is stored in ROM. In these systems, virtual memory is almost never found.

Soft real-time systems

Soft real-time systems are less restrictive. A critical real-time task gets priority over other tasks and retains the priority until it completes. Soft real-time systems have limited utility than hard real-time systems. For example, multimedia, virtual reality, Advanced Scientific Projects like undersea exploration and planetary rovers, etc.

Software Development Process

Software Development Life Cycle, SDLC for short, is a well-defined, structured sequence of stages in software engineering to develop the intended software product.

SDLC Activities

SDLC provides a series of steps to be followed to design and develop a software product efficiently. SDLC framework includes the following steps:

7.png

Communication

This is the first step where the user initiates the request for a desired software product. He contacts the service provider and tries to negotiate the terms. He submits his request to the service providing organization in writing.

Requirement Gathering

This step onwards the software development team works to carry on the project. The team holds discussions with various stakeholders from problem domain and tries to bring out as much information as possible on their requirements. The requirements are contemplated and segregated into user requirements, system requirements and functional requirements. The requirements are collected using a number of practices as given –

  • studying the existing or obsolete system and software,
  • conducting interviews of users and developers,
  • referring to the database or
  • collecting answers from the questionnaires.

Feasibility Study

After requirement gathering, the team comes up with a rough plan of software process. At this step the team analyzes if a software can be made to fulfill all requirements of the user and if there is any possibility of software being no more useful. It is found out, if the project is financially, practically and technologically feasible for the organization to take up. There are many algorithms available, which help the developers to conclude the feasibility of a software project.

System Analysis

At this step the developers decide a roadmap of their plan and try to bring up the best software model suitable for the project. System analysis includes Understanding of software product limitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc. The project team analyzes the scope of the project and plans the schedule and resources accordingly.

Software Design

Next step is to bring down whole knowledge of requirements and analysis on the desk and design the software product. The inputs from users and information gathered in requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams and in some cases pseudo codes.

Coding

This step is also known as programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language and developing error-free executable programs efficiently.

Testing

An estimate says that 50% of whole software development process should be tested. Errors may ruin the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to reliable software.

Integration

Software may need to be integrated with the libraries, databases and other program(s). This stage of SDLC is involved in the integration of software with outer world entities.

Implementation

This means installing the software on user machines. At times, software needs post-installation configurations at user end. Software is tested for portability and adaptability and integration related issues are solved during implementation.

Operation and Maintenance

This phase confirms the software operation in terms of more efficiency and less errors. If required, the users are trained on, or aided with the documentation on how to operate the software and how to keep the software operational. The software is maintained timely by updating the code according to the changes taking place in user end environment or technology. This phase may face challenges from hidden bugs and real-world unidentified problems.

Disposition

As time elapses, the software may decline on the performance front. It may go completely obsolete or may need intense upgradation. Hence a pressing need to eliminate a major portion of the system arises. This phase includes archiving data and required software components, closing down the system, planning disposition activity and terminating system at appropriate end-of-system time.

System Development Life Cycle

1.1 nataliemoore.jpg

Stage

Key Question

Result

1. Recognition of need

 

Preliminary survey/

Initial investigation

What is the problem or opportunity?

Statement of scope and

 

objectives

Performance criteria

2. Feasibility Study

 

Evaluation of existing

system and procedures

Analysis of alternative

candidate systems

Cost estimates

What are the user’s demonstrable needs?

 

Is the problem worth solving?

How can the problem be redefined?

Technical / behavioral

 

feasibility

Cost / benefit analysis

System scope and objectives

Statement f new scope and

Objectives

3. Analysis Detailed evaluation of present system Data collection

What must be done to solve the problem?

 

What are the facts?

Logical model of system

 

e.g. data dictionary, data flow diagrams Pertinent data

Design

 

General design

specifications

Detailed design

specifications

Output, Input, Files

Procedures

Program construction

Testing

Unit Testing

Combined module

Testing

User acceptance

Testing

In general, how must the problem be solved?

 

Specifically, how must the problem be solved?

What is the system (processing) flow?

Does the user approve the system?

How well do individual

programs / modules test out? How ready are

programs for acceptance test?

Design of alternative

 

solutions

Final cost/ benefit analysis

Hardware specifications

Cost estimates

Implementation

specifications

Implementation schedule

Approval of systems by user

Programs, Test plans

Security, audit and operating

procedures

Actual hardware use

Formal system test

5. Implementation

 

User training

File / system

Conversion

What is the actual

 

operation? Are user

manuals ready? Are

these delays in loading

files?

Training program

 

User-friendly documentation

6. Post-implementation

 

and maintenance

Evaluation

Maintenance

Enhancements

Is the key system

 

running? Should the

system be modified?

 

User requirements met

 

User standards met

Satisfied user

 


 

Project Process Flows

In project management, a flow chart is a visual aid to understand the methodology you’re using to manage the project. The diagram shows the interdependent and parallel processes over the course of the project’s life cycle.

Project managers use a flow chart to offer a clear picture of process and to find ways to improve project efficiency. A flow chart displays graphically the project’s objective and seeks to more logically order the activities therein. But, a flow chart can also help with monitoring progress and even status reporting.

The project management flow chart is one of the many tools you need as a project manager to control the project. With the right project management software, your management can be even more productive and efficient.

topic 8.jpg

First of all, a project management flow chart can outline whatever it is you want to outline. You can have one for the initiation process, for example, which would start with the initiation and flow to the project charter, it’s approval and whether that approval is given or not. That would then lead to two different streams: if the project charter isn’t approved, you must either adjust or cancel the project, which leads back to the initiation at the top of the flow chart, or it terminates in project cancelled. If the project charter is approved, then you can continue with the planning process. If you need help with your project charter, try our free project charter template.

The planning process is more complex. It starts with planning, collecting requirements and the development of scope. That can go either to project level indicators or a project scorecard, both of which lead to the project plan. That plan, of course, leads to resources, budgets, schedules, etc. Each of those subsets leads to another point in the flow chart, such as the communications or risk plan, which in turn flows into the change control plan and quality management. Eventually you get to approval, which leads to the executing process, or no approval, sending you back to the beginning.

Executing can be a whole other flowchart, leading to the development of the project team, securing resources for quality assurance and the manner of communication distribution. Again, you either adjust, cancel or continue, and depending on which you choose, you’re back at the beginning, cancelling that phase or moving on to the next procedure.

There is naturally a flow chart to note the monitoring and control processes of the project, which starts with monitoring and control and leads to an integrated change control plan. That leads to quality control, which flows into reporting risk and issues, and so forth.

Even closing a project is a process, and therefore can be visualized in a flow chart. Start with the close of the project, and then the activities that flow from that, including the verification and acceptance of project deliverables and operations, and then the transition to what lessons you’ve learned. Then, you’re ready to sign off!

If you prefer, the whole project process can be captured in a project management flow chart that can be used in congress with the others or as a standalone visual. This macro-flow chart would start with the whole project, leading from the project creation, documentation, task assignments, meetings, agendas, reports, etc. Each of these can lead to its own stream, such as project creation flows into monitoring the project status, while documentation leads to budget, schedule, etc.

I-O Design

Input Design

In an information system, input is the raw data that is processed to produce output. During the input design, the developers must consider the input devices such as PC, MICR, OMR, etc.

Therefore, the quality of system input determines the quality of system output. Well-designed input forms and screens have following properties −

  • It should serve specific purpose effectively such as storing, recording, and retrieving the information.
  • It ensures proper completion with accuracy.
  • It should be easy to fill and straightforward.
  • It should focus on user’s attention, consistency, and simplicity.
  • All these objectives are obtained using the knowledge of basic design principles regarding −

·         What are the inputs needed for the system?

·         How end users respond to different elements of forms and screens.

Objectives for Input Design

The objectives of input design are:

  • To design data entry and input procedures
  • To reduce input volume
  • To design source documents for data capture or devise other data capture methods
  • To design input data records, data entry screens, user interface screens, etc.
  • To use validation checks and develop effective input controls.

Data Input Methods

It is important to design appropriate data input methods to prevent errors while entering data. These methods depend on whether the data is entered by customers in forms manually and later entered by data entry operators, or data is directly entered by users on the PCs.

A system should prevent user from making mistakes by:

  • Clear form design by leaving enough space for writing legibly.
  • Clear instructions to fill form.
  • Clear form design.
  • Reducing key strokes.
  • Immediate error feedback.

Some of the popular data input methods are −

  • Batch input method (Offline data input method)
  • Online data input method
  • Computer readable forms
  • Interactive data input

Input Integrity Controls

Input integrity controls include a number of methods to eliminate common input errors by end-users. They also include checks on the value of individual fields; both for format and the completeness of all inputs.

Audit trails for data entry and other system operations are created using transaction logs which gives a record of all changes introduced in the database to provide security and means of recovery in case of any failure.

Output Design

The design of output is the most important task of any system. During output design, developers identify the type of outputs needed, and consider the necessary output controls and prototype report layouts.

Objectives of Output Design

The objectives of input design are:

  • To develop output design that serves the intended purpose and eliminates the production of unwanted output.
  • To develop the output design that meets the end users requirements.
  • To deliver the appropriate quantity of output.
  • To form the output in appropriate format and direct it to the right person.
  • To make the output available on time for making good decisions.

Let us now go through various types of outputs:

External Outputs

Manufacturers create and design external outputs for printers. External outputs enable the system to leave the trigger actions on the part of their recipients or confirm actions to their recipients.

Some of the external outputs are designed as turnaround outputs, which are implemented as a form and re-enter the system as an input.

Internal outputs

Internal outputs are present inside the system, and used by end-users and managers. They support the management in decision making and reporting.

There are three types of reports produced by management information −

  • Detailed Reports: They contain present information which has almost no filtering or restriction generated to assist management planning and control.
  • Summary Reports: They contain trends and potential problems which are categorized and summarized that are generated for managers who do not want details.
  • Exception Reports: They contain exceptions, filtered data to some condition or standard before presenting it to the manager, as information.

Output Integrity Controls

Output integrity controls include routing codes to identify the receiving system, and verification messages to confirm successful receipt of messages that are handled by network protocol.

Printed or screen-format reports should include a date/time for report printing and the data. Multipage reports contain report title or description, and pagination. Pre-printed forms usually include a version number and effective date.

Programming Language and Their Classifications

Just as humans use language to communicate, and different regions have different languages, computers also have their own languages that are specific to them.

Different kinds of languages have been developed to perform different types of work on the computer. Basically, languages can be divided into two categories according to how the computer understands them.

Two Basic Types of Computer Language

  • Low-Level Languages:A language that corresponds directly to a specific machine
  • High-Level Languages:Any language that is independent of the machine

There are also other types of languages, which include

  • System languages:These are designed for low-level tasks, like memory and process management
  • Scripting languages:These tend to be high-level and very powerful
  • Domain-specific languages:These are only used in very specific contexts
  • Visual languages:Languages that are not text-based
  • Esoteric languages:Languages that are jokes or are not intended for serious use

These languages are not mutually exclusive, and some languages can belong to multiple categories. The terms low-level and high-level are also open to interpretation, and some languages that were once considered high-level are now considered low-level as languages have continued to develop.

Low-Level Languages

Low-level computer languages are either machine codes or are very close them. A computer cannot understand instructions given to it in high-level languages or in English. It can only understand and execute instructions given in the form of machine language i.e. binary. There are two types of low-level languages:

  • Machine Language:a language that is directly interpreted into the hardware
  • Assembly Language: a slightly more user-friendly language that directly corresponds to machine language

Machine Language

Machine language is the lowest and most elementary level of programming language and was the first type of programming language to be developed. Machine language is basically the only language that a computer can understand and it is usually written in hex.

In fact, a manufacturer designs a computer to obey just one language, its machine code, which is represented inside the computer by a string of binary digits (bits) 0 and 1. The symbol 0 stands for the absence of an electric pulse and the 1 stands for the presence of an electric pulse. Since a computer is capable of recognizing electric signals, it understands machine language.

Advantages

 

Disadvantages

Machine language makes fast and efficient use of the computer.

 

All operation codes have to be remembered

It requires no translator to translate the code. It is directly understood by the computer.

 

All memory addresses have to be remembered.

 

 

It is hard to amend or find errors in a program written in the machine language.

Assembly Language

Assembly language was developed to overcome some of the many inconveniences of machine language. This is another low-level but very important language in which operation codes and operands are given in the form of alphanumeric symbols instead of 0’s and l’s.

These alphanumeric symbols are known as mnemonic codes and can combine in a maximum of five-letter combinations e.g. ADD for addition, SUB for subtraction, START, LABEL etc. Because of this feature, assembly language is also known as ‘Symbolic Programming Language.’

This language is also very difficult and needs a lot of practice to master it because there is only a little English support in this language. Mostly assembly language is used to help in compiler orientations. The instructions of the assembly language are converted to machine codes by a language translator and then they are executed by the computer.

Advantages

 

Disadvantages

Assembly language is easier to understand and use as compared to machine language.

 

Like machine language, it is also machine dependent/specific.

It is easy to locate and correct errors.

 

Since it is machine dependent, the programmer also needs to understand the hardware.

It is easily modified.

 

 

High-Level Languages

High-level computer languages use formats that are similar to English. The purpose of developing high-level languages was to enable people to write programs easily, in their own native language environment (English).

High-level languages are basically symbolic languages that use English words and/or mathematical symbols rather than mnemonic codes. Each instruction in the high-level language is translated into many machine language instructions that the computer can understand.

Advantages

 

Disadvantages

High-level languages are user-friendly

 

A high-level language has to be translated into the machine language by a translator, which takes up time

They are similar to English and use English vocabulary and well-known symbols

 

The object code generated by a translator might be inefficient compared to an equivalent assembly language program

They are easier to learn

 

 

They are easier to maintain

 

 

They are problem-oriented rather than ‘machine’-based

 

 

A program written in a high-level language can be translated into many machine languages and can run on any computer for which there exists an appropriate translator

 

 

The language is independent of the machine on which it is used i.e. programs developed in a high-level language can be run on any computer text

 

 

Types of High-Level Languages

Many languages have been developed for achieving a variety of different tasks. Some are fairly specialized, and others are quite general.

These languages, categorized according to their use, are:

1) Algebraic Formula-Type Processing

These languages are oriented towards the computational procedures for solving mathematical and statistical problems.

Examples include:

  • BASIC (Beginners All Purpose Symbolic Instruction Code)
  • FORTRAN (Formula Translation)
  • PL/I (Programming Language, Version 1)
  • ALGOL (Algorithmic Language)
  • APL (A Programming Language)

2.     Business Data Processing

These languages are best able to maintain data processing procedures and problems involved in handling files. Some examples include:

  • COBOL (Common Business Oriented Language)
  • RPG (Report Program Generator)

3.     String and List Processing

These are used for string manipulation, including search patterns and inserting and deleting characters. Examples are:

  • LISP (List Processing)
  • Prolog (Program in Logic)

4.     Object-Oriented Programming Language

In OOP, the computer program is divided into objects. Examples are:

  • C++
  • Java

5.     Visual Programming Language

These programming languages are designed for building Windows-based applications.Examples are:

  • Visual Basic
  • Visual Java
  • Visual C

Software Development Process

Software Development Life Cycle, SDLC for short, is a well-defined, structured sequence of stages in software engineering to develop the intended software product.

SDLC Activities

SDLC provides a series of steps to be followed to design and develop a software product efficiently. SDLC framework includes the following steps:

7.png

Communication

This is the first step where the user initiates the request for a desired software product. He contacts the service provider and tries to negotiate the terms. He submits his request to the service providing organization in writing.

Requirement Gathering

This step onwards the software development team works to carry on the project. The team holds discussions with various stakeholders from problem domain and tries to bring out as much information as possible on their requirements. The requirements are contemplated and segregated into user requirements, system requirements and functional requirements. The requirements are collected using a number of practices as given –

  • studying the existing or obsolete system and software,
  • conducting interviews of users and developers,
  • referring to the database or
  • collecting answers from the questionnaires.

Feasibility Study

After requirement gathering, the team comes up with a rough plan of software process. At this step the team analyzes if a software can be made to fulfill all requirements of the user and if there is any possibility of software being no more useful. It is found out, if the project is financially, practically and technologically feasible for the organization to take up. There are many algorithms available, which help the developers to conclude the feasibility of a software project.

System Analysis

At this step the developers decide a roadmap of their plan and try to bring up the best software model suitable for the project. System analysis includes Understanding of software product limitations, learning system related problems or changes to be done in existing systems beforehand, identifying and addressing the impact of project on organization and personnel etc. The project team analyzes the scope of the project and plans the schedule and resources accordingly.

Software Design

Next step is to bring down whole knowledge of requirements and analysis on the desk and design the software product. The inputs from users and information gathered in requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams and in some cases pseudo codes.

Coding

This step is also known as programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language and developing error-free executable programs efficiently.

Testing

An estimate says that 50% of whole software development process should be tested. Errors may ruin the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to reliable software.

Integration

Software may need to be integrated with the libraries, databases and other program(s). This stage of SDLC is involved in the integration of software with outer world entities.

Implementation

This means installing the software on user machines. At times, software needs post-installation configurations at user end. Software is tested for portability and adaptability and integration related issues are solved during implementation.

Operation and Maintenance

This phase confirms the software operation in terms of more efficiency and less errors. If required, the users are trained on, or aided with the documentation on how to operate the software and how to keep the software operational. The software is maintained timely by updating the code according to the changes taking place in user end environment or technology. This phase may face challenges from hidden bugs and real-world unidentified problems.

Disposition

As time elapses, the software may decline on the performance front. It may go completely obsolete or may need intense upgradation. Hence a pressing need to eliminate a major portion of the system arises. This phase includes archiving data and required software components, closing down the system, planning disposition activity and terminating system at appropriate end-of-system time.


Comments