0% found this document useful (0 votes)
118 views

Causes of Unreliable Software

The document outlines various causes and factors that can lead to unreliable software, including a lack of structured design, coding, testing, and maintenance methodologies and tools. It also discusses issues related to documentation, complexity, environment, requirements translation, testing methodology, maintenance, scheduling, programming language quality, and specific reasons like data organization errors and algorithmic bugs. Adopting proper methodologies, tools, and practices at each stage of the development lifecycle can help produce more reliable software.

Uploaded by

regisanne
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views

Causes of Unreliable Software

The document outlines various causes and factors that can lead to unreliable software, including a lack of structured design, coding, testing, and maintenance methodologies and tools. It also discusses issues related to documentation, complexity, environment, requirements translation, testing methodology, maintenance, scheduling, programming language quality, and specific reasons like data organization errors and algorithmic bugs. Adopting proper methodologies, tools, and practices at each stage of the development lifecycle can help produce more reliable software.

Uploaded by

regisanne
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 12

Causes and factors of Unreliable

Software
1.Methodologies and Tools
1.1)Structured design,code,test and
maintenance
• Structured design
• A systematic approach to program design that included the use of graphical
notation for effective documentation and communication, design guidelines and
recipes to help programmers get started.
• A top-down approach to design
• A way to design your program to make it easier to code, change, maintain and
understand.
• Use flow charts for structured design

• Structured design specifies


– Global variables , local data passes within parameters
• Structured design is modular
– Module should perform one function only
– Module changes –minimal impact on the rest of the s/w
1.1)Structured design,code,test and
maintenance
Structred code
Should use the control structures correctly in a program

Structured testing

Risk-based
– Focuses on testing most thoroughly, and thereby mitigating,the highest risk elements of the
product and project

Quality-centric
– Focuses on creating a quality product at each step of thesoftware development lifecycle
– Seeks defects in documentation, coding, testing,environments, and deployment as early as
possible, loggingthem for review/remediation by the business and technicalteams
– Pursues validation of quality throughout all phases of the development lifecycle

Benefits:detects errors early

Structured maintenance
Should not introduce errors due to maintenance
Maintence actions should eliminate errors
1.2)Pseudocode and flowdiagrams
code in english
Product descriptive Language(PDL)
direct impact on reliability-code is designed from pseudocode
flowcharts and pseudocode are necessary tools for structured design

1.3)Tools for designing ,coding testing,maintaining and


tracing code to requirements
design tools-pseudocode and flowcharts
coding-PDL
testing-tools to test structure test paths,functional test paths
,algorithm testpaths and to test test cases
Tracing code-all requirements are met and not met twice
1.4)Progress and status reporting and error
tracking
track process data,error data on a regular and up to date basis

1.5)Design and code walkthroughs


clear criteria and objective,agenda,Quality and development team persons

1.6)Formal Reviews
minimizes ambiguities in requirements and in design and coding
2)Learning factor
experience and training of the development team
interaction of the development team affects reliablity
3)Organization
organizations policy –reliable s/w to remain in s/w business
4)Documentation
a)contained in the code
name ,location in heirarchy tree,function of the module
configuration history-date created,reviewed and completed
b)external documentation-development and maintenance

configuration management plan, quality assurance plan, s/w development plan


, srs , sds , s/w test plans and procedures
5)Complexity
related to testability of code related to quality
higher the complexity-harder is to test
testing will not be sufficiently done
- thomas MCcabe
a)structural complexity
based on logic paths of each of the modules
b)Functional
required functions that a segment of code must perform
• 6)Environment
• Interfaces with s/w ,h/w and humans
• Training to end users
• 7)Prototyping
• Developing of a working model
• Prototype is sometimes may be used -disadvantage
• 8)Requirement translation and tracebility
• Errors occur during traslation from requirements to
coding
• 9)Testing methodology
• Independent validation and verification
• Distribution of responsibilities
– Code,design and test others modules(A-code,b-design,c-test)
– test group independent of organization

• 10)Maintenance
• Documentation should help in maintenance errors

• 11)Schedule
• Schedule in different phases of lifecycle
• 12)Language
– Higher level languages which uses structured approach

• 13)quality of s/w
• Maintainability,safety,fault tolerance,accuracy etc..
Specefic Reasons of unreliable s/w
• Data not organized
• User inputs not extensive
• Variables defined not in correct format(floating or double)
• Values give greater than the max size of the variable
• Incomplete functions
• Response times not adequate bcos i/o and memory not optimized
• Not enough error checking
• Incorrect parameter passing
• Algorithmic errors(divide by zero errors,square root of negative numbers)
• Lack of initialization of variables
• s/w requirement done incorrectly
• Algorithm incorrectly coded
• Incorrect flow of logic,file handling
• No error handling on user inputs
• Installation procedures not complete

You might also like