Print Friendly and PDF
Software Engineering: Triangle What is “quality"? Why Software Projects Fail ?? Bugs Vs Defects Some Recent Software Failures in Pakistan

Software Engineering: Triangle

What is “quality"?

In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context: Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications.                                                           
                                             
                                               
 What is Software Quality And Defects Leading to Crisis ?

Software Quality Assurance

Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI.

The function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented. 

This definition is taken from Software Definitions at NASA 


“Set of systematic activities providing evidence of the ability of the software process to produce a software product that is fit to use”
G. Schulmeyer and J. McManus, Software Quality Handbook, Prentice Hall, 1998.

IEEE Glossary: Degree to which a system, component, or process meets (1) specified requirements, and (2) customer or user needs or expectations

ISO: the totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs

Why Software Projects Fail ??


  • Unclear requirements: “Most people don’t know what to build because they’ve never defined it. When they build the software, it fails because it doesn’t meet people’s needs.”
  • Poor Design: It is vital to spend time to create a good design. Not having a good design leads to ongoing changes throughout the development phase. When this happens time and budget are consumed at a very rapid rate.
  •  Overly optimistic and/or unrealistic schedules. “People rush or skip things if the schedule isn’t realistic. Also, companies are panicking due to the economy. They’re compressing projects and schedules.”
  •  Lack of user input: This links back to requirements mistake #1. “Developers don’t talk to people who are going to use the software.”
  • Lack of executive sponsorship and support: “When management doesn’t support and protect the project, it can often be undermined by internal politics and budget cuts.”
  •  Turnover and layoffs: “Projects often fail when key people leave the project early in its lifetime.” Companies’ modern habit of laying off senior and, thus, higher-paid workers -– such as senior developers –- in favor of less experienced

And its all about:

 Bad software Engineering Practices

SQA IS THE MOTHER OF ALL  ENGINEERING ACTIVITIES

Bugs Vs Defects

  • A bug is the result of a coding error
  • A defect is a deviation from the requirements
That is: A defect does not necessarily mean there is a bug in the code, it could be a function that was not implemented but defined in the requirements of the software

What is Software?

                   Computer software, or just software, is a collection of computer programs and related data that provide the instructions telling a computer what to do and how to do it. We can also say software refers to one or more computer programs and data held in the storage of the computer for some purposes. In other words software is a set of programs, procedures, algorithms and its documentation 
Some Disasters due to Software Defects

Mariner Bugs Out (1962)
Cost: $18.5 million

  What NASA's website describes as "improper operation of the Atlas airborne beacon equipment" caused the booster to lose contact with one of the guidance systems on the ground, setting the stage for an apparent software-related guidance system failure. The role of software error in the launch failure remains somewhat mysterious in nature, shrouded in the ambiguities and conflicts among (and in some accounts, even within) the various accounts, official and otherwise 

A programmer incorrectly transcribed a handwritten formula into computer code, missing a single superscript bar.  Without the smoothing function indicated by the bar, the software treated normal variations of velocity as if they were serious, causing faulty corrections that sent the rocket off course 

CIA Gives the Soviets Gas (1982)
Cost: Millions of dollars, significant damage to Soviet economy
Disaster: Control software went haywire and produced intense pressure in the Trans-Siberian gas pipeline, resulting in the largest man-made non-nuclear explosion in Earth’s history.
Cause: CIA operatives allegedly planted a bug in a Canadian computer system purchased by the Soviets to control their gas pipelines.  The purchase was part of a strategic Soviet plan to steal or covertly obtain sensitive U.S. technology.  When the CIA discovered the purchase, they sabotaged the software so that it would pass Soviet inspection but fail in operation.

World War III… Almost (1983)
Cost: Nearly all of humanity
Disaster: The Soviet early warning system falsely indicated the United States had launched five ballistic missiles.  Fortunately the Soviet duty officer had a “funny feeling in my gut” and reasoned if the U.S. was really attacking they would launch more than five missiles, so he reported the apparent attack as a false alarm.

Cause: A bug in the Soviet software failed to filter out false missile detections caused by sunlight reflecting off cloud-tops

Patriot Fails Soldiers (1991)

Cost: 28 soldiers dead, 100 injured
Disaster: During the first Gulf War, an American Patriot Missile system in Saudi Arabia failed to intercept an incoming Iraqi Scud missile. The missile destroyed an American Army barracks.
Cause: A software rounding error incorrectly calculated the time, causing the Patriot system to ignore the incoming Scud missile

Y2K (1999)

Cost: $500 billion
Disaster: One man’s disaster is another man’s fortune, as demonstrated by the infamous Y2K bug.  Businesses spent billions on programmers to fix a glitch in legacy software.  While no significant computer failures occurred, preparation for the Y2K bug had a significant cost and time impact on all industries that use computer technology.
Cause: To save computer storage space, legacy software often stored the year for dates as two digit numbers, such as “99″ for 1999.  The software also interpreted “00″ to mean 1900 rather than 2000, so when the year 2000 came along, bugs would result

Some Recent Software Failures in Pakistan

  • Passport issuance system
  • Online Admit Card for Exams in Punjab
  • NADRA system often sits down

Forecasted failures 2011 -2012

  • Organizations and governments worldwide will spend about 
  •  $1 trillion this year on IT projects. 
  • Recent data suggested only about 35 percent of those projects are likely to be completed on time and on budget, with all their originally specified features and functions. 
  • Many projects, perhaps 20 percent, will be abandoned, often after multimillion-dollar investments—and the biggest projects will fail most often.

 TAKEN FROM SEI                                                              

Some Famous Bugs

  • http://www.scientificamerican.com/article/pogue-5-most-embarrassing-software-bugs-in-history/
  • http://www.devtopics.com/20-famous-software-disasters/
  • http://royal.pingdom.com/2009/03/19/10-historical-software-bugs-with-extreme-consequences/

References

  • Software Quality: Analysis and Guidelines for Success by Capers Jones
  • Requirements Analysis and Specification by Alan M. Davis
  • A Practitioner’s Approach to Software Engineering by Roger Pressman
  • Software Engineering 6th Edition, by I. Sommerville, 2000
  • ‘Software Engineering Quality Practices’ by R. K. Kandt, Auerbach Publications, 2006

zubairsaif

Zubair saif

A passionate writer who loves to write on new technology and programming

Post A Comment:

0 comments: