My Research Work

My research has touched on many areas over the years. My first research are was in the area of software quality and software reliability.  

From there, I moved into the area of effective teaching, looking at topics such as lecture interactivity and tablet PC usage in the classroom, the flipped classroom, and most recently, improving feedback to students. 

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 SoftwareQuality, and in particular, the C language.  His web site hasnumerous articles of interest to those in the software quality andreliability field.
  • EmbeddedSystems Design Embedded Systems Design is the onlypublication dedicated to issues effecting embedded systems softwaredevelopers.
  • The GanssleGroup - Jack Ganssle is a former embedded tools developerturned educator about the issues related to embedded systemsdevelopment.
  • CarnegieMellon Software Engineering Institute  - The SEI isat the forefront of SOftware Engineering Study, and is responsible forthe PSP, TSP, CMM, and CMMI processes used for the development ofsoftware.  Many publications are available on this site.
  • MotorIndustry Software Reliability Association  The MISRAGuidelines provide important advice to the automotive industry for thecreation and application of safe, reliable software withinvehicles.  One of the farthest reaching documents is the MISRA C codingstandard for embedded systems development.

Educational Tools

  • Classroom Presenter - Classroom presenter is a piece of software that allows instructors to annotate and share slides with students in real time. It unfortunately is not beign maintained anymore, but is very useful for those who want to interact more in the classroom and have a tablet PC.
  • Epic Pen - Epic pen is software for the Windows PC that allows you to digitally ink over anything on the screen. It works great for making markups and highlighting things on the screen when making tutorial and demo videos. The price is quite low for a license.
  • Camtasia - Camtasia is one of the most useful and important tools to have available for working with flipped classrooms. It is a video editor that allows you to embed quizzes and questions into your video as well as create modules that can be imported directly into Canvas or any other LMS.
  • OBS Studio - OBS Studio is a video capture and streaming suite that will help when making videos. It allows you to change scenes - supporting multiple cameras - as well as functionality such as chroma keys (i.e. greenscreen). Extremely powerful and capable tool.
  • Github Education - Github Education is an educational suite available to teachers at all grade levels for helping with source code. Based off of the github environment, it allows faculty to setup templates and monitor students working on programming assignments remotely. It also supports a form of autograding as well.

Static Analysis Tools

Commercial Tools

  • Lint Lint was the first static analysis tool available on themarket.  C-lint and FlexeLint will check your C/C++ sourcecode and find bugs, glitches, inconsistencies, non-portable constructs,redundant code, and much more.  PC Lint is available from HiTexin the UK and supports MISRA compliance checking.
  • PolyspaceC Verifier.  The Polyspace C verifier is targeted atdetecting runtime errors in software.  Customers include theairline industry and European Space Program.  Does not supportthe full ANSI-C language.
  • KlocWorkSupport for static error detection, with added project management andproject visualization capabilities. Fast, almost as thorough asCoverity, and less expensive. A capability for user-defined checks ispending.
  • LDRATheLDRA tool is a static analyzer for the C language.  The LDRAtool suite can be configured with additional analysis facilities toautomate the checking of source code for conformance to theMISRA-C:2004 standard.
  • QA C QA C, from Programming Research Ltd., focuses on automatedenforcement of Coding Standards as an integrated step in the softwaredevelopment process for C, C++, Java and Fortran. The enforcement ofcoding standards is a key step for CMM Level 3 attainment. The toolsalso generate code metrics (e.g. Cyclomatic Complexity, Estimated PathCount, etc.) which can be used for CMM Level 4 process measurements,and form a basis for optimization in Level 5. The tools detectstylistic issues, dataflow problems, ISO C/C++ conformance, platformand compiler portability issues, metric threshold violations andenforce best practice issues in language implementation. The tool alsosupports MISRA C analysis.
  • CMT++(Complexity Measures Tool for C/C++) calculates the basic McCabe,Halstead and lines-of-code metrics for C and C++ code. Clear andcompact report. Configurable alarm limits. Can measure non-preprocessedsource code. Can produce Excel data file for customer specific analysisor for producing graphical representations. Processes 1000s of lines ofcode in a second and can manage huge code volumes. Does not require aC/C++ compiler, but if Visual C++ is available, CMT++ can be used viaits GUI.
  • GreenHills Software Green Hills software is a provider of embeddedcompilers and other development tools.  Part of its compilerincludes MISRA compliance checking.
  • IARSystems IAR Systems provides embedded software developmenttoolkits, one of which includes MISRA C standards compliance testing.
  • TASKINGSoftware Tools Tasking software tools includes MISRA C codechecking compiler technology in several compiler tools.

Research / Academic Projects

  • AiracAirac5 statically detects all buffer-overrun errors in C programs.False alarms are minimized through statistical processing of the toolsoutput.
  • ASTREE  ASTREE is a static programanalyzer aiming at provingthe absence of Run Time Errors (RTE) inprograms written in the C programming language. On personalcomputers, such errors, commonly found in programs, usually result inunpleasant error messages and the termination of the application, andsometimes in a system crash. In embedded applications, such errors mayhave graver consequences.
  • Uno Lightweight tool forstatic analysis. The tool is targeted at a small set of commonprogramming defects (Uninitialized data, Nil-pointer dereferencing, andOut-of-bound array indexing, with the three initial letters giving thetool its name). It also handles a range of simple, user-definedproperties.