You are on page 1of 6

UCA-351(Software Engineering)--- Unit-I

What is software Engineering?


In1969 Fritz Bauer defined software eng. as, the establishment and use of sound engineering principles in
order to obtain, economically, software that is reliable and works efficiently on real machines.
According to Boehm, software engineering involves, the practical application of scientific knowledge to the
design and construction of computer programs and the associated documentation required developing, operating
and maintaining them
IEEE, in its standard 610.12-1990, defines software engineering as: (i) The application of a systematic,
disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the
application of engineering to software. (ii) The study of approaches as in (i).
By combining all the above definition we can define software engineering as, Software engineering is the
technological and managerial discipline concerned with systematic production and maintenance of software
products that are developed and modified on time and within cost estimates.

Goal of software engineering


The primary goals of software engineering are:
To improve the quality of the software products.
To increase the productivity &
To give job satisfaction to the software engineers

Software Crisis in Software Engineering


In the late 1960s, it became clear that the development of software is different from manufacturing other
products. This is because employing more manpower (programmers) later in the software development does not
always help speed up the development process. Instead, sometimes it may have negative impacts like delay in
achieving the scheduled targets, degradation of software quality, etc. Though software has been an important
element of many systems since a long time, developing software within a certain schedule and maintaining its
quality is still difficult.
History has seen that delivering software after the scheduled date or with errors has caused large scale financial
losses as well as inconvenience to many. Disasters such as the Y2Kproblem affected economic, political, and
administrative systems of various countries around the world. This situation, where catastrophic failures have
occurred, is known as software crisis. The major causes of software crisis are the problems associated with poor
quality software such as malfunctioning of software systems, inefficient development of software, and the most
important, dissatisfaction amongst the users of the software.
The software market today has a turnover of more than millions of rupees. Out of this, approximately thirty
Percent of software is used for personalcomputers and the remaining software is developed for specific users or
organizations. Application areas such as the banking sector are completely dependant on software application.

Software failures in these technology-oriented areas have led to considerable loss in terms of time, money, and
even human lives. History has been witness to many such failures, some of which are listed below.
1.

The Northeast blackout in 2003 has been one of the major power system failures in the history of North
America. This blackout involved failure of 100 power plants due to which almost 50 million customers faced
power loss that resulted in financia110ss of approximately $6 billion. Later, it was determined that the major
reason behind the failure was a software bug in the power monitoring and management system.

2.

Year 2000 (Y2K) problem refers to the widespread snags in processing dates after the year 2000. The
roots ofY2K problem can be traced back to 1960-80 when developers shortened the 4-digit date format like 1972
to a 2-digit format like 72 because of limited memory. At that time they did not realize that year 2000 will be
shortened to 00 which is less than 72. In the 1990s, experts began to realize this major shortcoming in
the computer application and then millions were spent to handle this problem.

3.

In 1996, Arian-5 space rocket, developed at the cost of $7000 million over a period of 10 years was
destroyed within less than a minute after its launch. The crash occurred because there was a software bug in the
rocket guidance system.

4.

In 1996, one of the largest banks of US credited accounts of nearly 800 customers with approximately
$9241acs. Later, it was detected that the problem occurred due to a programming bug in the banking software.

5.

During the Gulf War in 1991, the United States of America used Patriot missiles as a defense against Iraqi
Scud missiles. However, the Patriot failed to hit the Scud many times. As a result, 28 US soldiers were killed in
Dhahran, Saudi Arabia. An inquiry into the incident concluded that a small bug had resulted in the miscalculation
of missile path.

Software Processes & Characteristics


1. What is a Process
a set of ordered tasks involving activities, constraints and resources that produce an intended output of some
kind
a process is important because it imposes consistency and structure on a set of activities
it guides our actions by allowing us to examine, understand, control and improve the activities that comprise
the process
the process of building a product is sometimes called a lifecycle because it describes the life of that product
from conception through to its implementation, delivery, use and maintenance.

2. Characteristics
A software product can be judged by what it offers and how well it can be used. This software must satisfy on
the following grounds:
Operational
Transitional
Maintenance
Well-engineered and crafted software is expected to have the following characteristics:

Operational
This tells us how well software works in operations. It can be measured on:
Budget
Usability
Efficiency
Correctness
Functionality
Dependability
Security
Safety
Transitional
This aspect is important when the software is moved from one platform to another:
Portability
Interoperability
Reusability
Adaptability
Maintenance
This aspect briefs about how well a software has the capabilities to maintain itself in the ever-changing
environment:
Modularity
Maintainability
Flexibility
Scalability
System Development Life Cycle (SDLC)

SDLC(Software/System Development Life Cycle):


It is a well defined process by which a system is planned, developed and implemented. The system development
starts with the requirement for improving their business system.
There are following activities involves in SDLC :Preliminary Investigation (Problem Identification)
Feasibility study
System analysis
System designing
Development of software
System testing
Implementation & Evaluation
Maintenance

1. Preliminary Investigation OR Problem Identification:


One of most difficult task of the system analyst is identifying the real problem of the existing system. It defines
the user requirements or what the user expects from the new system. This also includes the rough idea of the
resource requirements as well as estimated time for completion and number of persons expected to be involve in
each phase.
Problem identification helps in :i.
Defining a problem
ii.
Setting proper system goal
iii.
Determining the boundaries of the project by considering the limitations of available
resources

2. Feasibility study:
It determine the possibility of either improving the existing system or developing the complete new system. It
helps to obtain an overview of the problem and to get rough assessment of whether physical solution exist. The
purpose of feasibility study is to determine whether the requested system successfully realizable.
There are four aspects of feasibility study :-

i.
ii.
iii.
iv.

i.

Technical feasibility
Economical feasibility
Operational feasibility
Behavioural feasibility

Technical feasibility:
It involves the required and existing computer system, hardware, software & to what extent it can support the
proposed application.
It answers following questions :o Whether the system can be carried out with existing equipments ?
o Whether the existing software is enough ?
o If a new technology is required how best it can be implemented ?

ii.

Economic feasibility:
It involves post benefit analysis to determine the benefit and savings that are expected from new system and
compared with costs. It benefits out weight cost then decision is made to design and implement new system.

iii.

Operational feasibility:
It concerns with human, organisational and political aspects. It covers technical performance as well as
acceptance within the organisation. It determines the general attitude and job skills of existing personals and
whether any restructuring of jobs will be acceptable to the current user.

iv.

Behavioural feasibility:
It includes how strong the reaction of staff will be towards the development of new system that involves
computers use in their daily work. So resistant to change is identified.

3. System analysis:
It involves detailed understanding of all important facts of the business area under investigation. This require
data collection from a verity of sources such as questionnaires, forms, interviews, study of existing documents. It
can be involved the direct observation in the organisation and collected documents to understand the whole
existing system.
4. System designing:
In this process the primary object is to identify user requirements and to build a system that satisfies these
requirements. Design of the system is mainly the logical design that can be sketch on a paper or on a computer. It
includes physical design elements, describes the data to be inputted.
The process involved in manipulation of data & output design represents:i.
File structure, storage devices etc

ii.
iii.
iv.
v.

Database is also designed in this phase


Changes to be made in the organisational structure of the firm are outlines
Input, Output, files, forms and procedures are planned
Finally standards for testing, documentation, system control are designed.

5. Development of software:
Development is a phase where detailed design is used to actually construct and build the system. In this phase the
system is decided whether to buy commercial software or to develop new customized program with the help of
the programmers. The choice depends upon the cost of software and cost of programming.
6. System testing:
Testing is a process of making sure that the program performs the intended task. Once the system is designed it
should be tested for validity. During this phase the system is used experimentally to ensure that software does not
fail and it will work according to its specification. It is tested with special test data.

7. Implementation & Evaluation:


This is the final phase of development. It consists of installing hardware, programs, collecting data and
organizing people to interact with and run the system. In this phase user actually starts using the system therefore
it also involves training of users and provides friendly documentation.
Evaluation is the process of verifying the capability of a system after it put into operation to see whether it meets
the objective or not. It includes response time, overall reliability and limitations user behaviour.
8. Maintenance:
It is process of incorporating changes in the implemented existing system.
i.
Enhancement:
Adding new functions or additional capability of the system.
ii.
Adaptation:
Customizing the software to run in a new environment.
iii.
Correction:
Correcting the bugs in the existing software.

You might also like