Module: CS_230/235 Software Engineering I and II
Please visit the
CS_230/235P Software Engineering Tutorial web page.
We post some useful links to supplementary material here
in order to help second year students with their
study of software engineering.
Helpful Reading and Documentation:
Links Related to Human-Centered Software Development:
Free Tech Books:
No more using the money excuse for not having
your textbooks. Here you'll find free online computer
science and programming books, textbooks, and lecture notes.
Software Engineering 8 by I. Sommerville,
the web site to accompany the book
Software Engineering: Principles and Practice,
by H. van Vliet, accompanying web site
Practical Software Engineering: A Case Study
L.A. Maciaszek and B.L. Liong,
the web site to accompany the book
Designing Object-Oriented Software by
Wirfs-Brock et al.,
the web site to accompany the book
Module Evaluation Questionnaire: please help
improve future editions of the module using this feedback.
Documentation and Links directly related to Assessed
offers guidelines on how to develop usable and
useful web sites. The heuristics are also
applicable to software applications.
Externalisation – how writing changes thinking:
by Alan Dix (on the benefits of personas)
Apple's 1987 Knowledge Navigator Video
The first in-class group exercise.
Exercise 1 Solution:
Bob's solution to the first in-class group exercise.
The second in-class group exercise.
Exercise 2 Solution Part 1 (verbs) ,
Exercise 2 Solution Part 2 (reponsibilities) :
Bob's solution to the second in-class group exercise.
The requirements for the third assignment.
Design Document Success Story:
A very good example of a software design.
Assignments 4 and 5:
The requirements for the fourth and fifth assignments.
Assessment Report (first week of A5):
This is the assessment report to be handed in one
week after assignment 4.
LaTeX source for report )
The requirements for the sixth assignment.
Assessment Report for A5:
This is the assessment report used for A5.
Feedback Report for A6:
This is the assessment report used for A6.
A6 Success Story:
An excellent software demo by Devin Taylor.
Bob's Minutes of Meeting Protocol:
Your group meetings use this protocol.
on how to set up a web page on the CS server.
Bob's Concise Coding Conventions (C3)
Advances in Computer Science and Engineering (ACSE),
Vol. 4, No. 1, February 2010, pages 23-36
Bob's Concise Introduction to Doxygen
Schedule of Lectures, 2011-2012
Schedule of Lectures from 2009-2010
Schedule of Lectures from 2010-2011
Helpful Java links:
Helpful Java Visualization links:
Bob's Java souce code:
These are the examples used in class.
The Java SE API:
This page lists the documentation for the Java Platform, Standard
Edition, and the JDK.
The Java Tutorials:
are practical guides for programmers who want to use the Java
programming language to create applications.
They include hundreds of complete, working examples, and dozens of
-Netbeans is a free, open-source Java IDE (and more).
It Runs on Windows, Linux, Mac OS X and Solaris.
-Eclipse provides free, open-source tools for Java developers
creating JEE and Web applications, including a Java IDE,
tools for JEE and JSF, Mylyn and others.
-a repository of online Java tutorials including forums
-a large repository of online Java programs and source code
the Qt library made available to Java. It is an officially supported
technology aimed at all desktop programmers who want to write rich GUI
clients using the Java language...
is dedicated to software developers and testers using the JUnit
The Trident Library
provides powerful and extensible animations for Java applications
Helpful Java Graphics links:
-JFreeChart is a free 100% Java chart library that
makes it easy for developers to display professional
quality charts in their applications.
is a 3D geometry viewer and a mathematical visualization software.
It's amazing how quickly data visualization is growing.
TheJit.org can be used to create a wide variety of
an easy way of adding interactive charts to your web site or web
application. Highcharts currently supports line, spline, area,
is used to create charts on web pages...
Helpful LaTeX links:
The Java3D API
-version 1.3, is considered a minor release
of the API, with changes resulting from customer, partner,
and community feedback.
The Java Tutorials, Trail 2D Graphics
-This trail introduces you to the Java 2D API and shows
you how to display and print 2D graphics in your Java
Introduction to Java: A Tutorial
-by Ryan J. Stradling and A. Joseph Turner, Clemson University
Department of Computer Science. This tutorial contains
some useful material on graphics.
Chapter 10 of Core Web Programming, Second Edition
-An introductory book chapter on Java 2D.
Foundations of 3D Graphics Programming Using JOGL
-the web site of supplementary material (including source
code examples) to accompany the book
Computer Graphics for Java Programmers
-the web site to accompany the book, including source
Links to free Screen Capturing Software:
-the LaTeX Project Site contains a lot of helpful documentation
including user guides.
The Not So Short Introduction to LaTeX
-An excellent LaTeX user guide by T. Oetiker et al.
http://www.tug.org/-The TEX Users Group (TUG) Web Site
A great explanation from the Cambridge University Engineering
From the Department of Mathematics and Computing University
of Southern Queensland.
-Here you will find everything you need to know about BibTeX.
There are also several links to useful BibTeX tools.
The Collection of Computer Science Bibliographies
-This is a collection of bibliographies of scientific literature
in computer science from various sources, covering most aspects
of computer science.
-JabRef is an open source bibliography reference manager.
-An environment providing a comprehensive set of tools to
view, edit and compile LaTeX documents using Vim.
-The LaTeX Aware Spelling Checker
Text Processing using LaTeX
-A nice LaTeX resource page at Cambridge University in
the Department of Engineering. There are lots
Ulrich Berger's LaTeX Page
-This is the web page written by Ulrich Berger containing more
-Anyone who works with LaTeX knows how time-consuming it
can be to find a symbol in symbols-a4.pdf that you just
can't memorize. Detexify is an attempt to simplify this search.
The Comprehensive LaTeX Symbol List
-The Comprehensive LaTeX Symbol List is an organized list of
over 4900 symbols commonly available to LaTeX users.
Squeezing Space in LaTeX
-some tips on how to squeeze a little more onto LaTeX pages.
You can convert an AVI file to MPEG format by entering "avi 2 mpg" in
Screen Capturing Software.
is an open source tool that is able to record all screen and audio
activity on your computer and create AVI video
files and using its built-in SWF Producer can turn those AVIs
into lean, mean, bandwidth-friendly Streaming Flash videos (SWFs)
5 Free is a completely free screen capture software for you
to easily take screenshots.
-a really nice piece of software and recording enables
editing by zooming, adding annotations, etc. Unfortunately it's
not freeware but the 30 day trial was good enough. (Recommended
by James Walker)
-is a free, open-source, feature-rich video editor for linux
(Recommended by Dan Lipsa)
for the Mac OS X (Recommended by Dave Chung).
You can use this in conjunction with iMovie on the
Mac for video editing.
AVS Video Editor
(Recommended by Richard Roberts).
Helpful Links to free Software Engineering Tools:
offers free and commercial Subversion Hosting integrated
with Project Tracking for Open Source and Proprietary projects.
Git: is a free & open source, distributed version
control system designed to handle everything from small to
very large projects with speed and efficiency.
is a secure, hosted project management solution for software
Don't have time to get a server up and running and
then configure and secure code repositories, ticketing systems
and valuable project management tools?....
is a Java-based build tool. In theory, it is kind of like
make, without make's wrinkles.
Software Pointers: is directory for Software Development
including the most useful links to processes,
methods, tools, and services