This page refers to the Spring 2012 offering of CSE 709 only. The information on this page does not necessarily apply to every offering of CSE 709.
Spring 2012
12019
Software Specification, Design, Analysis, Verification, Testing, Debugging
"… software verification has been the holy grail of computer science for many decades, but now in some very key areas, for example, driver verification, we’re building tools that can do an actual proof about the software and how it works in order to guarantee reliability." – Bill Gates, keynote address, WinHEC 2002 conference
This seminar is devoted to the study of concepts, methodologies, and tools for rigorous software development. The benefits of a rigorous approach are early error detection, increased programmer productivity, and more reliable software. Towards this end, a number of tools have emerged in the last decade and are being adopted in industry, for example, Code Contracts, CodeSurfer, Coverity, Java PathFinder, SLAM, and SPIN. (Bill Gates was referring to the SLAM tool developed at Microsoft in the above quotation.)
The abovementioned tools are based upon static as well as dynamic analysis techniques, such as data-flow analysis, program slicing, model checking, abstract interpretation, symbolic execution, test-case generation, and verification. At UB, we have been developing a state-of-the-art dynamic analysis and visualization tool for Java, called JIVE, which is available as an Eclipse plug-in and has been used at the graduate and undergraduate levels.
The instructor will provide an introduction to the concepts underlying the tools in order to make the seminar self-contained. Thus, any CSE graduate student could potentially take the seminar. The reading materials will be drawn from published papers, tutorials, and user manuals of the tools.
The seminar is of variable credit: Students taking the seminar for one credit will be expected to make a class presentation on one of the tools. Students taking the seminar for two credits are expected to make a class presentation and write a report (critical review). Students taking the seminar for three credits are expected to make a class presentation, work on a research problem or an implementation (after instructor approval), and write a paper. As per department policy, all seminars are graded on an S/U basis.
Meeting Time: Tuesdays, 5-7pm (tentatively)
Please email the instructor, Dr. Bharat Jayaraman (bharat@buffalo.edu), if you are interested in taking the seminar for credit.
For more information, please consult the course webpage below.
Graduate Standing in CSE
Ph.D.: This course does not fulfill core area or core course requirements.
M.S.: This course does not fulfill core area or core course requirements.