Causes of Unreliable Software
Causes of Unreliable Software
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 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
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.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
• 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