| 
           
            |  | Programming Reliable Software 
                Embedded and Reliable Information Systems 
                Laboratory
 Institute for Complex Engineered Systems
 Carnegie Mellon University
 |  
          
 Reliable Software SeminarIn the process of analyzing and researching reliability in the
	software development process, we have discovered a wealth of
	information.  What do most programmers do wrong?  Why are most
	schedules inaccurate?  What are the common misconceptions
	about why a program crashes?  This course is
	designed to help programmers understand the alternative
	problem solving approaches that can be used to debug
	application code when something goes wrong -- especially for
	code that he or she did not implement.  This course teaches an
	understanding of what can and does go wrong and then what to
	do to fix it.  The end result of this course is a more
	productive programming staff that can deliver higher quality
	software with a more reliable schedule.The following topics are covered:
	 Compilation
 
	  Fixing strange compiler problems like "Illegal L-value"
Control flow analysis, code slicing, pretty printers
C/C++ preprocessor (lack of) error checking
How someone gets around semantic error checking
Why you should not help the compiler optimize your code
Lint and other helpful tools
Object files and link error
Linking misconceptions and replacing runtime routines
Failures in version control systems
Errors in code reuse from uninitialized variable
 Memory Management
	 
	  Virtual memory, page tables and protection
Runtime system and errors when you debug
Stack and heap management errors
Lack of memory protection mechanisms
Bounds guards and what they actually test
 Functional Boundaries
	 
	  Subprogram stress testing
Harness for testing 3rd party libraries
Operating system routine failures
Unhandled exceptions
Value vs. variable testing
Orthoginal error reporting
 Direct comments and questions to:
	bigrigg@ices.cmu.edu
	        
  pdl-webmaster@ece.cmu.edu
 Last updated 
27 November, 2002
 |