You are on page 1of 8

© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

SOFTWARE CRISIS

Kartik Rai, Lokesh Madan, Kislay Anand


Student (B.tech VItIh sem) Department of Computer science
Dronacharya College Of Engineering,Gurgaon-122506

Abstract- Software Crisis is restricting the growth of _ It is notoriously difficult to establish an adequate
computing field due to huge gap between hardware and stable set of requirementsfor a software system.
developments and making use of it through non Often there are hidden assumptions, there is no
availability of software systems and competent software
analyticprocedure for determining when the users
development staff. So many problems have enforced the
have told the developers everything they need to
emergence of cognitive type discipline of Software
Engineering and its persistence for not meeting the gap
know, and developers and users do not have a
imposed. Nature of software is different than systems common understanding of terms used.
visible while in operation. Special emphasis is given to _ The interaction between the different parts of a
identify the problems being faced which need to be system makes change difficult.Software is essentially
addressed for providing solutions to overcome the thought stuff (that is, the result of a thought
software crisis. The basic premise of this paper is that process)and much of what is important about
unless the problems at the software industry level are software is not manifest in the programsthemselves
solved, no number of technical and project management
(such as the reasons for making design decisions).
tools can be of much help in overcoming the software
_ A requirements specification for a system contains,
crisis. The author examines the existence of the software
crisis, its causes and its serious impact on every walk of
perhaps implicitly, an application domain model (for
life. The nature of software development is discussed, example, describing the rules of air traffic).
considering it as a craft and as an engineering Developmentof application domain theories is very
discipline. After evaluating various reasons and causes, difficult.
the issue is opened for researchers to get it addressed. All these aspects are directly related to written
Issues like education, professionalization, programmer's communication. Managing complexity depends on an
productivity, and human factors are discussed. Action ability to document the interfaces (parameters and
on these recommendations requires crossing
functionality) of the modules involved. Requirements
organizational boundaries, and viewing the problem
are an important reference for the whole process and
from a macro perspective. In the age pervasive
computing the direction is almost set but no “Silver
should, therefore, be unambiguously and accessibly
Bullet” solution is available has been realized by the described for everyone.
community. The focus of mechanical systems To keep track of changes it is important to document
development is diminishing due to realization of what exactly has been changed.Software can be made
software community that reuse is the solution but with more visible by describing non-material artifacts,
developers’ competence. such as the overall design of a program. Domain
Index Terms- Software Crisis, growth of computing, models should, just like the requirements, be well
Software Engineering, cognition type discipline, Issues
documented. Thus, software engineering can benefit
and problems in development of software, programmer,
from good techniques to describe systems (programs,
software engineer, software developer, software person,
software practitioner and software professional.
subsystems, etc.)
Since last 20-25 years, there has been a rapid increase
I. INTRODUCTION in the development of programs using a computer.
_ Software is often too complex to be entirely Also, the difficulty level of software has increased to
understood by a single individual. We can try to a greater extent. In other words, a drastic change has
manage complexity by dividing the system into occurred in the development of computer programs.
subsystems, but,as systems grow, the interaction In order to make the programs more and more
between subsystems increases non-linearly. predictable, different types of patterns have been
created. But the software industry is still many years

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 95


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

away from becoming a mature engineering discipline. years ago, the term "Software Crisis" emerged to
Even in today's society, software is viewed with describe the software industry's inability to provide
suspicion by many individuals, such as senior customers with high quality products on schedule.
managers and customers, as something similar to In general it refers to poorly written, hard to read,
black magic. The result is that software is one of the error-prone software that often lacks good
most difficult artifacts of the modern world to documentation.
develop and build. Developers work on techniques Software crisis is also referred to the inability to hire
that cannot be measured or reproduced. All this, lead enough qualified programmers. It has become the
to a new concept called 'software crisis'. It has longest continuing "crisis" in the engineering world
become the longest continuing crisis in the and it continues unabated. The most visible
engineering world, and it continues unabated. symptoms of the software crisis are late delivery,
over budget; Product does not meet specified
II. SOFTWARE CRISIS
requirements, inadequate documentation. One of the
The difficulty of writing the code for a computer most serious complaints against software failure is
program which is correct and understandable is the inability to estimate with acceptable accuracy the
referred to as software crisis. The term software crisis cost, resources, and schedule necessary for a software
revolves around three concepts: complexity, change project. Conventional assessment methods have
and the expectations. This term was given by F. L. always produced positive results which contribute to
Bauer at the first NATO Software Engineering the too well-known cost infested and schedule
Conference in 1968 at Garmisch, Germany. Current slippage. As the world becomes more and more
System design approach is exceedingly empirical. It dependent on computers and as the complexity of
is unable to cope with increasing systems complexity. software systems continues to rise, the crisis can only
A number of problems in software development were get worse. It is particularly severe in vital segments
identified in 1960s, 1970s, and 1980s. The problems of the economy such as the health and financial
that software projects encountered were: the projects services, and the transportation, manufacturing,
ran over-budget, caused damage to property even to communication, power generation, and defense
life. Despite our rapid progress, the software industry industries.
is considered by many to be in a crisis. Some 40

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 96


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

Factors Contributing To The Software Crisis The computer environment can be defined as the
The factors contributing to the software crisis are collection of hardware and software resources which
numerous. If we examine them in detail then we find are utilized in order to achieve a particular effect,
what they fall into four different categories which normally defined by a problem description, but
when combined highlight the gravity of the crisis. including also the tools used to realize a solution to
These main factors are named as follows:- the problem. These resources include the tools for the
dule and budget overshooting designer who relies on them in any process of system
Development. The collection of tools for each project
costs money which contributes to the development
expenditure and increases the cost of the product.
Moreover, any variation in the environment in which
Examination of factors a tool operates or any malfunctioning of the tool
To examine in detail the issue of the software crisis, causes by delays which ultimately means more cost.
it is necessary to determine the factors which Poor estimates of resources and inadequate financial
contribute towards each set of problems. planning also contribute to higher costs; poor quality
and cheap resources are rarely reliable and typically
Schedule and budget over shooting cost money. A designer who is being unproductive
The development of software applications is a adds additional expenditure so contributing to greater
thriving business. The money invested in software cost.
technology in USA alone is billions of dollars A contract in the form of legally binding agreements
annually; in 1986 this was estimated at 30 billion on both sides is a compromise between the designer
dollars (see [COACARD 1986]). The estimated and the user or potential user. This typically includes
average annual growth rate since 1980 has been the time scale to be followed in the development
about 12%. Today the cost of software is typically process, (generally called the schedule), the budget
about 80% of the cost of a complete computer system forecast to meet the financial needs in accord with the
in contrast to the situation in the late 1950s when the schedule drawn up and the requirements of the user
cost of hardware was the major ingredient of the total for the software product i.e. the specification of the
cost of the system. Business is now approaching the system. A contract with incomplete, unclear, vague
situation where the hardware represents the and ambiguous requirements which are subjected to
inexpensive ’core’ surrounded by the precious several possible interpretations reduces the possibility
software layers. of a successful outcome and can lead to faulty or
A highly skilled designer will be well paid and his misdirected effort. Time, effort and resources
involvement in a project introduces high labour costs. absorbed after completion of the schedule leads to an
The software development process is labour intensive ultimate increase in cost. Ad hoc development -
and typically necessitates a high level of skilled-man performed without caring for documentation,
time units. Any increase in the time factor produces chronological recording, and verifying the system
more cost for the product. The user is complementary against the contract - generates confusion and
to the designer. The user uses the system and enjoys ambiguities leading to some maintenance problems.
the usefulness of the system which is designed. There Typically delays in producing the software systems
is no sense in designing and implementing a system are either because there is an overshoot in the budget
which will not be put into practice. Sometimes the or delay in delivery of the system. On such occasions,
user supplies unrealistic and over ambitious the user refuses to accept the product due to its poor
requirements to the designer and a good amount of quality. Moreover, potential advantages occur in
designer time can be involved in indentifying the hitting the markets before competitors do.
invalidity of the user’s requirements. The time
required to carry out the feasibility check of user Productivity issues
requirements is also typically included in the The main challenge to software developers today is
schedule. Even a slight deviation from the schedule to increase the output per time period of each worker.
can lead to cost increases. To understand the issue, let us refer to the industrial

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 97


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

revolution in the 18th century. With the achievements The problems associated with the product itself are:
related to such a revolution, it became possible for the kind of software, the quality requirements and the
one worker to produce the same amount of work with human interface. A software product of poor quality
a machine as hundreds had previously done with their is not attractive to the user. Moreover, to produce
hands. To create an information revolution of a high quality software needs time, commitment and
similar kind it is likewise required that one worker other resources (e.g. tools) which affect the level of
must be employed to even greater effect in producing productivity. If the product is not accepted by the
code. This becomes possible if computer software user then the time of a skilled designer is wasted.
factories are established to produce quality software Low quality, large software products which do not
in bulk. Unfortunately, software production factories meet the actual development tie requirements and are
are not in use on a large scale; thus a lot of effort developed without proper control and modularity
form scientists and software engineers is expended. It typically cause future maintenance problems.
is worth noting that productivity can be measured, Organizations which use computer based systems
e.g. as the ratio of the number of lines of source code invest enormous efforts to avoid the pitfalls of such
produced per unit of time; care needs to be exercised systems and follow the wisdom of a (well known)
to account for blank lines of commentary, several proverb: “It is better to die instead of remaining alive
statements packed into a single line, etc. Even the and enduring continuously bleeding wounds”. This
software process itself can significantly affect the produces serious setbacks to the economic and
metric. financial resources of organizations and causes a
The main strands of the software productivity issue decrease in the morale level of team.
are people, the process, the product and the machines. Factors (from the computer system (machines))
Each strand has many threads. The number of factors conspiring against productivity include
conspiring to reduce productivity is large and characteristics of the machine, its constraints and its
numerous causes are interrelated. Small systems can behaviour. Software production which is carried out
be produced by an individual designer facing without keeping these factors in view is unlikely to
minimal problems. The problems arising from suit the purpose for which it was designed.
individuals are due to their limitations in capabilities, Unsuitable systems which do not permit the proper
years of experience, language experience, and control of the hardware cannot generally be modified
experience with similar problems; the production of easily to produce a successful system and take up the
large systems by a team of designers offers a further development resources in an unproductive fashion.
set of problems. Individual factors, team factors and Recently, they have been many new hardware
the factors which are due to the nature and degree of machines on the market with different characteristics
communication among the members of a team and constraints; their individual behaviour hinders
influence the extent of the productivity. It is an old the bulk production of software, leading to concerns
saying that a chain is only as strong as its weakest about portability and techniques for achieving this.
link; this applies to teams of people as well as to An important aspect of this is the availability or other
metal chains .Wrong selection of languages, wise of tools and the appropriateness of techniques
unsuitable development methodologies, lack of for achieving productivity. Thus source control
attention to verification, validation and the system systems, data bases, separate compilation facilities
environment - all these limit productivity at a are all aspects of these concerns.
fundamental level. On the other hand the productivity
level is greatly enhanced if a good language which Quality issues
suits the problem requirements is chosen, a well There is little value in computer systems if they are
defined and thoroughly worked out methodology is not reliable, secure and efficient. The emphasis must
adopted for design, the design process includes ‘walk be on the quality of software product; indeed the
throughs’ and milestones, implementation is carried presence of quality is a prime objective of software
out structurally, verified automatically and an engineering. A simple definition of the quality is
effective and supportive environment is used. contained in [Ratcliff 1987], where an approach is
adopted which is based upon the observation of

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 98


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

defining is quality of software products as their total * The average system is delivered without 58% of
‘usefulness’ to the users. And total usefulness is proposed functionalities
further sub-divided into current usefulness, which * $81 billion in 1995 for cancelled projects
deals with the usage of the software in the existing * $51 billion in 1995 for over-budget projects
context, and potential usefulness which contributes to Only 16.2% of software projects are completed on-
the usage of the same system in any other context time and on-budget. In larger companies, a meager
resulting from slight variation of the environments, 9% of technology projects come in on-time and on-
changing requirements, varying applications, etc budget. In addition, about one third of all projects
will be canceled before they ever get completed.
Software Crisis in terms of statistics in 1990's Further results indicate 53% of projects will cost an
* 31 % of projects canceled average of 189% of their original estimates. In
* 52.7% cost an average of 189% over budget financial terms this analysis revealed that over $100
* 84% are late or over budget (91% for large billion in cancellations and $60 billion in budget over
companies.) runs occur in the Software Sector annually.

III. CAUSES more powerful! To put it quite bluntly: as long as


there were no machines, programming was no
Software engineering today is in severe crisis. The
problem at all; when we had a few weak computers,
situation is particularly grim because this crisis is not
programming became a mild problem, and now we
widely acknowledged by the software development
have gigantic computers, programming has become
industry. The causes of software crisis were linked to
an equally gigantic problem." - Edsger Dijkstra
the overall complexity of the software process and
* The cost of owning and maintaining software in the
the relative immaturity of software engineering as a
1980's was twice as expensive as developing the
profession. The main reason for the crisis is the lack
software.
of a sound software construction methodology with
* During the 1990's, the cost of ownership and
which to manage the high complexity of modern
maintenance increased by 30% over the 1980's.
applications. The notion of a software crisis emerged
In 1995, statistics showed that half of surveyed
at the end of the 1960s. An early use of the term is in
development projects were operational, but were not
Edsger Dijkstra's ACM Turing Award Lecture, "The
considered successful.
Humble Programmer" (EWD340), given in 1972 and
* The average software project overshoots its
published in the Communications of the ACM.
schedule by half.
Dijkstra says,
* Three quarters of all large software products
"The major cause of the software crisis is] that the
delivered to the customer are failures that are either
machines have become several orders of magnitude

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 99


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

not used at all, or do not meet the customer's engineering is concerned with all aspects of software
requirements. production from the early stages of system
To explain the present software crisis in simple specification through to maintaining the system after
words, consider the following. The expenses that it has gone into use. As a solution to this software
organizations all around the world are incurring on crisis, we must apply a disciplinary artistry; using
software purchases compared to those on hardware tools that help us manage this complexity. The skilled
purchases have been showing a worrying trend over systems engineer, can through the use of these
the years. techniques and by the application of systems
Not only are the software products turning out to be engineering methods and project management skills,
more expensive than hardware, but they also present reduce the demands placed on software engineers,
a host of other problems to the customers: software hence reducing the software engineering effort and
products are difficult to alter, debug, and enhance; also reducing the total development cost. But still,
use resources no optimally; often fail to meet the user there is no single approach which will prevent all the
requirements; are far from being reliable; frequently consequences of software crisis in all cases. While
crash; and are often delivered late. Among these, the there is no single solution to the crisis, much has been
trend of increasing software costs is probably the learned that can directly benefit today's software
most important symptom of the present software projects. It is our human inability to deal with
crisis. complexity that lies at the root of the software crisis.
It has been noted frequently that we are experiencing
Software crisis: The present scenario a software crisis, characterized by our inability to
The Software Crisis began 4 decades ago and produce correct, reliable software within budget and
continues today. In the 60s, we began to speak of a on time. No doubt, many of our failures are caused
"software crisis". A thirty year long "crisis" was by the inherent complexity of the software
beginning. A world-wide research effort also began. development process, for which there often is no
Today, the situation is quite different. We have a analytical description.
Science of Programming. We know a great deal Through the use of computer-aided symbolic
about how to design and document software, but the specification techniques and simulation, and with an
"Software Crisis" continues unabated! understanding of the software development process,
The software crisis continues because the the skilled systems engineer can contribute to the
communication between Computer Scientists and resolution of the software crisis. The skilled systems
those who write software, including the Engineers, engineer, can through the use of these techniques and
has been very poor. Current software standards, are by the application of systems engineering methods
weak, superficial, and are not based on software and project management skills, reduce the demands
science. Process oriented "standards" are empty placed on software engineers, hence reducing the
because there are no product/document standards. software engineering effort and also reducing the
total development cost.
IV. SOLUTION
In software engineering, the possible solution to
Over the last twenty years many different paradigms software metrics is the use of proper software metrics
have been created in attempt to make software and the proper utilization of these metrics. For the
development more predictable and controllable. implementation of this solution to the problem of
While there is no single solution to the crisis, much software crisis some pre-requisites are there.
has been learned that can directly benefit today's
software projects. One of the possible solutions to the They are:
software crisis is the study of software engineering. It 1. Knowledge of basic statistics and experimental
is believed that the only satisfactory solution to the design.
present software crisis can possibly come from a 2. Basic understanding of commonly used software
spread of software engineering practices among the life cycle models, at least to the level covered in an
engineers, coupled with further advancements in the introductory senior or graduate-level software
software engineering discipline itself. Software engineering course

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 100


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

3. Experience working as a team member on a V. RISK MANAGEMENT


software development project.
Risk management is an important factor towards
In addition, for maximum utility in analytic studies
software project failure if it's not managed timely and
and statistical analyses, metrics should have data
effectively. As nothing can be predicted that what
values that belong to appropriate measurement scales.
will happen in future so we have to take the
Software engineering is still a very young discipline.
necessary steps in the present to take any uncertain
There are encouraging signs that we are beginning to
situation in the future. Risk management means
understand some of the basic parameters that are
dealing with a concern before it becomes a crisis.
most influential in the processes of software
Project managers have to identify the areas where the
production.
risk can be and how it can affect the development of
the project. Risk can be of technical nature or non
For the projects which are delivered late must
technical. After the risk is identified there is a need to
adopt the following methodology:
make the categories of that risk. Risk analysis is the
process of examining the project results and
Project Planning & Scheduling
deliverables after the risk analysis and applying the
Project planning means creating work breakdown,
technique to lower the risk. After the risk is analyzed,
and then allocate responsibilities to the developers
the next step is to priorities the risk. At first focus on
over time. Project planning consists of construction
the most sever risk first; and les sever later.
of various tasks, timelines and essential pathways
Managing the risk to achieve the desired results and
including Gantt charts and PERT charts and different
deliverables is done through controlling the risk at its
written plans for various situations. It is quite usual in
best.
software development process to work backward
from the project end date which results in complete VI. CONCLUSION
software project failure. It is impossible that a project Thus, we have discussed software crisis, its causes,
can be completed efficiently from the planning stage the present status and the possible solution to this
to the implementation stage. Allocation of roles and crisis. Software engineering appears to be one of the
responsibilities has to be clearly defined. Proper few options available to tackle software crisis.
scheduling is also required before the start of the Software engineering is the application of a
project. It includes the time scheduling, teams systematic, disciplined, quantifiable approach to
scheduling. development, operation, and maintenance of
software; that is, the application of engineering to
For the projects running out of budget, cost software.
estimation methodology must be applied: It is believed that the only satisfactory solution to the
present software crisis can possibly come from a
Cost Estimation spread of software engineering practices among the
Cost estimation is mainly involved the cost of effort engineers, coupled with further advancements to the
to produce the software project. But it's not limited to software engineering discipline itself. The solution
the effort only. It also includes the hardware and being advocated is to place a special emphasis on
software cost, training the employees and customer, fault tolerance software engineering which would
travelling to the customer, networking and provide a set of methods, techniques, models and
communication costs. Cost estimation should be done tools that would exactly fit application domains, fault
as a part of the software process model. Cost assumptions and system requirements and support
estimation needs to be done well before the start of disciplined and rigorous fault tolerance throughout all
the project development. phases of the life cycle. Also, the software must not
Failure of the budgeting for the cost of the project be considered equivalent to a widget, i.e. a gadget.
results in complete disaster. Development tools, cost
and hardware cost also need to be estimated first.
In order to cope up with the increasing system
complexity, risk management should be applied:

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 101


© 2014 IJIRT | Volume 1 Issue 11 | ISSN: 2349-6002

REFERENCES
Books referred:
Software engineering: concepts and techniques -
Peter Naur
Software engineering- Richard H. Thayer
Software engineering-Rajiv mal
Software engineering-kk aggarwal
Websites and links:
en.wikipedia.org/wiki/Software_crisis
www.apl.jhu.edu/Classes/Notes/.../SoftwareEngineeri
ngOverview.PDF
http://www.unt.edu/benchmarks/archives/1999/july9
9/

IJIRT 101671 INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 102

You might also like