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

SOFTWARE CRISIS

Kartik Rai, Lokesh Madan, Kislay Anand Student (B.tech VItIh sem) Department of Dronacharya College Of Engineering,Gurgaon-122506

Abstract- Software Crisis is restricting the growth of _ It is notoriously difficult to establish an adequate 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 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 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 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