You are on page 1of 7

IS Innovation and New Technologies Page 1 of 13

Software Problems Part 1

GREAT!!!
You may now proceed to the main lesson.

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

Software bugs or errors are so prevalent and so detrimental that they cost the U.S. economy an estimated
$59.5 billion annually, or about 0.6 percent of the gross domestic product, according to a newly released
study by the Department of Commerce’s National Institute of Standards and Technology.(NIST). At the
national level, over half of the costs are borne by software users and the remainder by software
developers/vendors.
The study also found that, although all errors cannot be removed, more than a third of these costs or an
estimated $22.2 billion, could be eliminated by an improved testing infrastructure that enables earlier and
more effective way.
Studies have found that reworking defective requirements, design, and code typically consumes 40 to 50
percent of the total cost of software development (Jones 1986). As a rule of thumb, every hour you spend on
defect prevention will reduce your repair time from three to ten hours. In the worst case, reworking a software
requirements problem once the software is in operation typically costs 50 to 200 times what it would take to
rework the problem in the requirements stage (Boehm and Papaccio 1988). It’s easy to understand why. A
1-sentence requirement can expand into 5 pages of design diagrams, then into 500 lines of code, 15 pages
of user documentation, and a few dozen test cases. It’s cheaper to correct an error in that 1-sentence
requirement at requirements time than it is after design, code, user documentation, and test cases have been
written to it.
IS Innovation and New Technologies Page 2 of 13
Software Problems Part 1
IS Innovation and New Technologies Page 3 of 13
Software Problems Part 1

What now is your Understanding of Software Problem?


______________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________

After over 30 years of combined software defect analysis performed by us and colleagues, we have identified
20 common software problems. These common software problems appear in a wide variety of applications
and environments but are especially prone to be seen in dirty systems.
1. Incorrect calculations - This is seen in functions such as financial and date calculations. The key
determinant is whenever mathematical functions and mathematical operators are involved.
2. Incorrect data edits - This is when the software does not apply existing data edits correctly. For example,
IS Innovation and New Technologies Page 4 of 13
Software Problems Part 1
a data edit may be coded to prohibit the entry of the day of the month greater than "31” but does not allow
for the month. This would allow the entry of February 30 and other invalid dates.
3. Ineffective data edits - This is when data edits are in place and working correctly, yet still fail to prevent
incorrect data from being entered into the system. An example of this is an alphanumeric address field that
allows spaces to be entered before any numbers or letters in the address. Therefore, when searches or sorts
are performed on the address field, the search or sort may not find the intended address.
4. Incorrect coding/implementation of business rules - This refers to the one of the most common sources
of software problems - the mistakes that occur between what is intended to be developed or implemented
and what is actually delivered. These defects can be traced back to incorrect, missing, or vague system
requirements specifications, or to the misinterpretation of requirements specifications. If you are asking,
"What specifications? What requirements?", the incorrect coding or implementation of business rules is
probably a common problem for you.
5. Inadequate software performance - This refers to slow system response times and transaction
throughput rates.
6. Confusing or misleading data - This means that the data shown to users may be correct, but the users
might not fully understand how to interpret the data. This is not a trivial problem. Lives have been lost because
of someone's failure to take the correct actions based on the data delivered to them from a computer system.
7. Software that is difficult to use - Many people have experienced first-hand the frustration of using
software that is cumbersome, difficult to navigate, and requires several steps to perform simple tasks. This
problem relates to a lack of understanding of how humans interact with computers and is also the result of a
history of modifications that are not planned and coordinated to account for ease of use. For example, the
addition of numerous workarounds over a period of time in legacy systems can have the overall effect of
convoluting the original system design.
8. Obsolete software - Software that no longer works due to new hardware or support software changes -
This refers to software that is based on functions found in older versions of databases and operating systems.
An example of this can be found in old COBOL code that will not compile on new compilers due to the use
of verbs that are no longer supported in the compiler. Many vendors try to make new releases of support
software upwardly compatible, but there are usually cases where one minor area of non-support from the
base system can cause a major revision of the system. The only other option is not to upgrade the support
software. This decision can be justified for the short-term, but a point is usually reached where the software
must either be replaced or modified.
IS Innovation and New Technologies Page 5 of 13
Software Problems Part 1
9. Inconsistent processing - Software that only works correctly in one environment – This refers to software
that has been designed for only one environment and cannot be easily transported and used in another
environment. Of course, some software is designed to work in only one environment. However, if an
organization adopts new technology that requires software be portable to new environments, then the
software will need to be modified or replaced if it can't meet the new technical requirements. An example of
this is software that works in an MS-DOS environment, but will not work in a Microsoft Windows environment.
10. Difficult to maintain and understand - This refers to the ability of a programmer or developer to maintain
the software. To maintain software, the person performing the maintenance must first analyze and
understand the software. Much of the software in existence today was initially written in an unstructured
manner and then patched on an as-needed basic over a long period of time. This type of software structure
results in what is known as "spaghetti code," which is complex and unstructured. To add to the problem,
when changes are made to this kind of software, there is a higher risk of creating new defects unintentionally.
11. Unreliable results or performance - This means that the software does not deliver consistently correct
results or cannot be depended to work correctly each time it is used.
12. Inadequate support of business needs or objectives - This refers to software that is inflexible to
meeting business needs. For example, a system may be difficult to modify to meet and organization's needs
or may lack features to allow the users to customize business rules.
13. No longer supported by the vendor - This occurs when a vendor ceases to support a particular software
product. This can occur due to the vendor's decision to no longer support a product, due to the vendor going
out of business, or the vendor selling the product to another vendor.
14. Incorrect or inadequate interfaces with other systems - This means that the software does not
correctly accept input (data, control, parameters, etc.) from other systems or sends incorrect output (data,
control, parameters, print, etc.) to other systems. An example of this is when a system has an electronic data
interfaces (EDI) with external systems but does not correctly receive or format the information.
15. Incorrect matching and merging of data - This refers to situations where data is obtained from one
source and matched or merged with data from another source. Examples include sorting multiple files into a
single file or table or matching data from a master file to an ID number entered as a lookup entry.
16. Data searches that yield incorrect results - This means that a search retrieves incorrect data as the
result of a search. In the worst-case situation, the data retrieved appears to be correct in format, but only by
tracing back to source documents and other original data can it be determined that the data is incorrect for
the search criteria. An example of this would be searching for the time worked by a particular employee in a
IS Innovation and New Technologies Page 6 of 13
Software Problems Part 1
payroll system. The employee's name at the top of the information may be displayed correctly, but the detailed
time data may belong to another employee. The only ways to verify the information would be to compare the
time worked back to time sheets or to tables that indicate the employee ID.
17. Incorrect processing of data relationships - This means that data relationships are not created or
maintained correctly between one or more data elements. These data elements can reside on interactive
interfaces, reports, or files. For example, a system may allow a user to incorrectly enter a telephone area
code invalid for the state specified in an address field.
18. Incorrect file and data handling - This refers to the software incorrectly retrieving data from files or
tables. This could include retrieving the wrong data from the right source or the right type of data from the
wrong data source. An example of this would be retrieving data from an old version of a file or table, thinking
the data is being retrieved from the most current version. Another example is the inability of the software to
process empty or full files correctly.
A secondary problem could relate to the software's inability to pass data correctly through the system. An
example of this would be the incorrect processing of transactions, where data is inadvertently dropped during
processing.
19. Inadequate security controls - This means that unauthorized access to the system is not adequately
controlled and detected. In addition, people may also be able to perform transactions in excess of the
authorization levels appropriate for their job functions. For example, a person without managerial levels of
security access might be able to approve their own overtime. Or, a person not in the payroll department might
be able to view the employee payroll files.
20. Inability to handle production data capacities - This refers to the software's inability to process data
at the level required by the organization. An example of this would be a system that is required to process
financial transactions that exceed $10 million, but the system can only process amounts up to $9,999,999.99.
Another example is the classic case of the Year 2000 computing problem, where dates in the Year 2000 and
beyond are incorrectly recognized as being in the early 1900's.
If you developed test cases to address each of these problems, you would have a huge challenge to cover
all of them completely. Like everything else in testing, looking at relative risk and the situation at hand will
narrow your focus. One approach would be to design a risk questionnaire for each problem area. Another
method would be to interview users to assess the risk impact. A third technique would be to study past defect
reports and correlate them to each of the problem areas, giving the highest priority to the most troublesome
areas.
IS Innovation and New Technologies Page 7 of 13
Software Problems Part 1

Why do you IT Developers Encounter Software Problems?


______________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________

Programming instructors and anyone who mentors new programmers should make sure their students or
mentees have a firm grasp of this process along with any specific technical skills they may need. Solving a
software development problem can be divided into four steps:

1. Identify the problem


2. Gather information
3. Iterate potential solutions
4. Test your solution

Explain why we need to have this technical skill in solving Software Problems.
______________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________

You might also like