This page contains resources and links that are useful for the course. This list will be updated throughout the course and if you have additional links that you think might be relevant please share them in the comments.
Software Engineering (general)
- OnSoftware Podcast – A software podcast featuring interviews on a variety of topics in Software Engineering. Episodes are available in both audio and video formats.
- Software Engineering Radio – Another software engineering podcast. Episode only available in audio format.
- All We Really Need To Know About Software Engineering Is In The Film Office Space – by Russell Ovans (published by ACM)
- CompInfo Software Testing and Quality Control – Links to testing and quality resources for industrial IT professionals.
Software Process & Process Improvement
- ISO/IEC 90003:2014 – International Standards Organization standard 90003 for software development procedures and processes.
- Capability Maturity Model Integration (CMMI) – A level-based assessment procedure originally developed by the Software Engineering Institute at Carnegie Mellon.
- How Microsoft Builds Software – An article by Michael A. Cusumano and Richard W. Selby (published by ACM)
- How Microsoft dragged its development practices into the 21st century – An articple by Peter Bright (Ars Technica)
- Baldrige National Quality Program – Website at the National Institute of Standards and Technology (NIST)
- ExtremeProgramming.org – an introduction to XP
- Xplorations – A collection of articles by William C. Wake on XP
- How Does Pair Programming Work? – by Stuart Wray (published in IEEE Software)
- XP Game – a game about Extreme Programming!!
- Trello – a web application that allows groups to collaborate and share projects using “boards”.
- The Software Test Page – An introduction to software testing by David Smiles (Baltimore Technologies, UK) [archived page]
- JUnit.org – Links to download JUnit as well as resources to assist in using JUnit can be found at junit.org
- JTest – JTest is a commercial tool by Parasoft that was mentioned in the lecture notes during the discussion of source code instrumentation. If you want to see how it works click the orange “Demo” button.
- MuJava – A stand-alone mutation testing tool for Java.
- MuClipse – An eclipse plugin version of MuJava for mutation testing Java programs.
- Javalanche [old site], Javalanche [new site]- a newer stand-alone mutation testing tool for Java.
Code Coverage Tools
- Cobertura – line & branch coverage
- JaCoCo – instructions & branch coverage
- CodeCover – statement, branch, loop, strict condition coverage and more
- EMMA – line & block coverage
Inspections & Static Analysis
- Refactoring Website – Martin Fowler’s refactoring website.
- Catalog of Refactorings – Catalog of code refactorings contributed by Martin Fowler (primarily).
- JLint – A stand-alone static analysis bug detection tool for Java
- Lint4J – An Eclipse plugin that statically analyzes Java programs
- FindBugs – A static analysis tool for detecting bug patterns in Java programs. Available as a stand-alone program or as an Eclipse plugin
- How to Write Doc Comments for the Javadoc Tool
- Javadoc Documentation – Java documentation tool
- Doxygen Documentation – Documentation tool that can be used with languages including C++
- G++ and GCC – Using the GNU Compiler Collection (GCC) – the gcc compiler is a great command-line compiler in Linux
- Compiling C and C++ Programs – a guide to use gcc/g++
- Getting Started with Shell Scripting
- GDB: The GNU Debugger – an introductory guide to using the GNU Debugger
- Java Debugging with Eclipse – a tutorial on Lars Vogel’s website.
- Visual Studio 2010 – Debugging Preparation: Visual C++ Project Types
- Visual Studio 2010 – Using Breakpoints and Tracepoints
- Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, Cambridge, UK, ISBN 0-52188-038-1, 2008.
- Guide to Assertions – a guide to assertions in Microsoft’s Visual Studio 2010.
- Programming with Assertions – a guide to assertions in Java