This paper presents an approach to synthesizing functional and robust code from object-oriented design models and Z data and operation speciications. The approach used here is based on an integrated notation of the Uniied Modeling Language and a slightly extended Z notation to include object-oriented concepts and structures. Our approach generates fully… (More)
The detection of bugs in software has been a difficult and time-consuming manual task. Some bugs are hard to find as they manifest themselves far from the actual errors such as dereferencing null-pointer. To avoid these bugs, a useful static program analysis tool would inspect a program for presence of such errors. The goal of static analysis is to detect… (More)
In this paper we describe a recently NSF-funded project that is based on the power of an innovative teaching approach, which combines the traditional teaching models and adds the use of automated software tools to enhance the student's learning experience.
This paper presents a generic approach to statically analyze Java programs in order to detect potential errors (bugs). We discuss a framework that supports our approach and carries out the static analysis of Java code automatically. Our approach can automatically detect potential bugs and report them before the program is executed. For a Java class,… (More)
We are well into the twenty-first century, and our technology is advancing at blazing speeds. Yet our education methodologies suffer the fate of remaining largely antiquated. Students and educators alike have become more sophisticated; the tools of learning must reflect and compensate for this intellectual advancement. Podcasts have greatly contributed… (More)
The use of formal methods has been growing steadily and there h a v e b een a number of successful applications of formal methods in a range of application areas. It seems agreed that quality should be assured by applying testing, analysis and formal methods to rigorously deened p r ecode artifacts. The detection of null pointer violation errors is… (More)