Research
Currently, my academic research is into the area of software quality and
software reliability. As I have not yet reached the point of having enough
quality material to place on this web site, I am instead providing a list of
useful links in the area of software quality, software reliability, and
general software engineering.
The material provided is purely for informational purposes. No guarantee
of fitness is implied or provided. All trademarks are recognized to be held
by the respective parties.
General Links
- Les Hatton Home Page - Dr. Les
Hatton is interested in Embedded Software Quality, and in particular, the
C language. His web site has numerous articles of interest to those in
the software quality and reliability field.
- Software
Engineering Realsearch Group at NC State University. This
organization is performing sound empirical software engineering
research.
- Embedded Systems Design Embedded
Systems Design is the only publication dedicated to issues effecting
embedded systems software developers.
- The Ganssle Group - Jack Ganssle
is a former embedded tools developer turned educator about the issues
related to embedded systems development.
- Carnegie Mellon Software Engineering
Institute - The SEI is at the forefront of SOftware Engineering
Study, and is responsible for the PSP, TSP, CMM, and CMMI processes used
for the development of software. Many publications are available on this
site.
- Motor Industry Software
Reliability Association The MISRA Guidelines provide important
advice to the automotive industry for the creation and application of
safe, reliable software within vehicles. One of the farthest reaching
documents is the MISRA C coding
standard for embedded systems development.
Static Analysis Tools
Commercial Tools
- SofCheck SofCheck is an
advanced Java static analysis tool designed to detect a large array of
programming errors including the misuse of pointers, array indices which
go out of bounds, buffer overruns, numeric overflows, numeric
wraparounds, dimensional unit mismatch, storage leaks, and the improper
use of Application Programming Interfaces. SofCheck works by thoroughly
characterizing each element of the program in terms of its inputs,
outputs, heap allocations, preconditions, and postconditions.
- Lint Lint
was the first static analysis tool available on the market. C-lint and
FlexeLint will check your C/C++ source code and find bugs, glitches,
inconsistencies, non-portable constructs, redundant code, and much more.
PC Lint is available from HiTex in the UK and
supports MISRA compliance checking.
- SaferC Tool kit
The Safer C tool set (SCT) was designed and built by Oakwood
Computing Associates and provides static analysis of source code
modules. It also supports static verification of MISRA compliance.
- Polyspace C Verifier. The
Polyspace C verifier is targeted at detecting runtime errors in
software. Customers include the airline industry and European Space
Program. Does not support the full ANSI-C language.
- Coverity Leading edge tool based on
Dawson Engler's
methodology for source code analysis of large code bases. An extended
version of the tool supports user-defined properties in the Metal
language. Fast, thorough, few false positives, but can be very
expensive.
- KlocWork Support for static error
detection, with added project management and project visualization
capabilities. Fast, almost as thorough as Coverity, and less expensive. A
capability for user-defined checks is pending.
- LDRAThe
LDRA tool is a static analyzer for the C language. The LDRA tool suite
can be configured with additional analysis facilities to automate the
checking of source code for conformance to the MISRA-C:2004 standard.
- QA
C QA C, from Programming Research Ltd., focuses on automated
enforcement of Coding Standards as an integrated step in the software
development process for C, C++, Java and Fortran. The enforcement of
coding standards is a key step for CMM Level 3 attainment. The tools also
generate code metrics (e.g. Cyclomatic Complexity, Estimated Path Count,
etc.) which can be used for CMM Level 4 process measurements, and form a
basis for optimization in Level 5. The tools detect stylistic issues,
dataflow problems, ISO C/C++ conformance, platform and compiler
portability issues, metric threshold violations and enforce best practice
issues in language implementation. The tool also supports MISRA C
analysis.
- ASSENT C
ASSENT is a global data flow static analysis tool that automatically
ensures conformance of C/C++ and Java code to good programming practices
and detects defects that can cause the program to crash.
- CMT++ (Complexity Measures Tool
for C/C++) calculates the basic McCabe, Halstead and lines-of-code
metrics for C and C++ code. Clear and compact report. Configurable alarm
limits. Can measure non-preprocessed source code. Can produce Excel data
file for customer specific analysis or for producing graphical
representations. Processes 1000s of lines of code in a second and can
manage huge code volumes. Does not require a C/C++ compiler, but if
Visual C++ is available, CMT++ can be used via its GUI.
- Green Hills Software
Green Hills software is a provider of embedded compilers and other
development tools. Part of its compiler includes MISRA compliance
checking.
- IAR Systems IAR
Systems provides embedded software development toolkits, one of which
includes MISRA C standards compliance testing.
- Metrowerks Metrowerks CodeWarrior Development Studio
products provide Misra C compliance checking for C source code.
- TASKING Software
Tools Tasking software tools includes MISRA C code checking compiler
technology in several compiler tools.
- TCSTCS Produces the ASSENT
MISRA-C analyzer. Of the 127 rules specified by the MISRA consortium,
ASSENT MISRA-C claims to check for conformance to 120 rules
automatically.
Research / Academic Projects
- AWARE AWARE aggregates
compilation errors and warnings, manually-written test failures, and
static analysis reports into a ranked listing of alerts.
- Airac Airac5 statically
detects all buffer-overrun errors in C programs. False alarms are
minimized through statistical processing of the tools output.
- Splint Splint is a tool
for statically checking C programs for security vulnerabilities and
coding mistakes. With minimal effort, Splint can be used as a better
lint. If additional effort is invested adding annotations to programs,
Splint can perform stronger checking than can be done by any standard
lint.
- ASTRÉE ASTRÉE is a static program analyzer aiming at
proving the absence of Run Time
Errors (RTE) in programs written in the C programming language.
On personal computers, such errors, commonly found in programs, usually
result in unpleasant error messages and the termination of the
application, and sometimes in a system crash. In embedded applications,
such errors may have graver consequences.
- NASA CGS Project The
goal of the CGS project is to demonstrate that it is possible to develop
software verification tools that can analyze NASA programs using static
analysis techniques to find a certain class of errors called runtime
errors.
- Uno
Lightweight tool for static analysis. The tool is targeted at a small set
of common programming defects (Uninitialized data, Nil-pointer
dereferencing, and Out-of-bound array indexing, with the three initial
letters giving the tool its name). It also handles a range of simple,
user-defined properties.
- Orion Work in progress on an
extension of Uno for C++, based on gcc.
Back

Web Counter
$Revision: 1.5 $
$Date: 2007/11/25 12:59:16 $
$Header: /cvs/webpage/Research/research.html,v 1.4 2006/11/16 20:13:56 wws
Exp $
$Name: $
$Log: research.html,v $
Revision 1.5 2007/11/25 12:59:16 wws
Updated web page with new information on publications, research, and education.
Revision 1.4 2006/11/16 20:13:56 wws
Updated webpage with new material and new conference presentations.
Revision 1.3 2006/08/05 16:59:51 wws
Updated website to reflect new material added to it.
Revision 1.6 2005/09/16 16:56:05 wws
1. Added pictures from Six Flags America 2003 trip.
2. Added information for EECS Networking class.
Revision 1.5 2005/08/14 20:39:04 wws
Added CSS formatting to document (Begining) as well as photos from Roller
coaster trips.
Revision 1.4 2005/05/04 01:49:01 wws Added meta
data to the document.