Swansea University Gwyddor Cyfrifiadur

Module: CS_230/235 Software Engineering I and II
Sponsored by:


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:

  1. 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.
  2. Software Engineering 8 by I. Sommerville, the web site to accompany the book
  3. Software Engineering: Principles and Practice, by H. van Vliet, accompanying web site
  4. Practical Software Engineering: A Case Study Approach by L.A. Maciaszek and B.L. Liong, the web site to accompany the book
  5. Designing Object-Oriented Software by Wirfs-Brock et al., the web site to accompany the book
  6. Module Evaluation Questionnaire: please help improve future editions of the module using this feedback.
Links Related to Human-Centered Software Development:
  1. Usability.gov: offers guidelines on how to develop usable and useful web sites. The heuristics are also applicable to software applications.
  2. Externalisation – how writing changes thinking: by Alan Dix (on the benefits of personas)
  3. Apple's 1987 Knowledge Navigator Video
Documentation and Links directly related to Assessed Coursework:
  1. Exercise 1: The first in-class group exercise.
  2. Exercise 1 Solution: Bob's solution to the first in-class group exercise.
  3. Exercise 2: The second in-class group exercise.
  4. Exercise 2 Solution Part 1 (verbs) , Exercise 2 Solution Part 2 (reponsibilities) : Bob's solution to the second in-class group exercise.
  5. Assignment 3: The requirements for the third assignment.
  6. Design Document Success Story: A very good example of a software design.
  7. Assignments 4 and 5: The requirements for the fourth and fifth assignments.
  8. Assessment Report (first week of A5): This is the assessment report to be handed in one week after assignment 4. ( LaTeX source for report )
  9. Assignment 6: The requirements for the sixth assignment.
  10. Assessment Report for A5: This is the assessment report used for A5.
  11. Feedback Report for A6: This is the assessment report used for A6.
  12. A6 Success Story: An excellent software demo by Devin Taylor.

    Team A
    swaps with
    Team B
    Group 7
    (1st prize on A5)
    Group 5
    Group 3 Group 2
    Group 12 Group 10
    Group 11 Group 1
    Group 8
    Group 8 (old)
    Group 4
    Group 9 Group 6
    (2nd prize on A5)
  13. Bob's Minutes of Meeting Protocol: Your group meetings use this protocol.
  14. Directions on how to set up a web page on the CS server.
  15. Bob's Concise Coding Conventions (C3) in Advances in Computer Science and Engineering (ACSE), Vol. 4, No. 1, February 2010, pages 23-36
  16. Bob's Concise Introduction to Doxygen

Schedule of Lectures, 2011-2012

Legend Meaning
  Meta Classes tell us about processes and their motivation
Reason Group work opportunity (no formal lecture)
COLORED Indicates phase of the software cycle we are studying

Semester 1

Phase Week Monday Lecture 1 Monday Lecture 2 Thursday Lecture


3 Oct
Software Engineering (SE) Intro,
The Software Crisis
Motivation and Software Life-Cycle Phases
Software Life-Cycle Models


10 Oct
Assignment 1 + Tutorial groups (MLW)
Groupwork + Team Roles (CJW)
Intro to Human-Centred SE
HCI: Perception, Attention, and Memory


17 Oct
Introduction to Netbeans
Introduction to Netbeans
HCI: Interface Features and Design


24 Oct
HCI: User-Focused Requirements
HCI: Personas and Task Analysis
Group meeting opportunity
(No lecture)


29 Oct


31 Oct
Assignment 2, HCI Prototyping
HCI: Modelling Scenarios
(Group Meeting Opportunity)


7 Nov
Software Design: Information Hiding
(Group Meeting Opportunity)
Software Design: Objects and Information Hiding


14 Nov
Software Design: Responsibilities
(Group Meeting Opportunity)
Software Design: Collaborations


26 Nov


21 Nov
Gregynog Gregynog Software Design: Hierarchies


28 Nov
Software Design: SubSystems
(Group Meeting Opportunity)
Assignment 3: Software Design


5 Dec
Software Design: Protocols and UML
(Group Meeting Opportunity)
Software Implementation


12 Dec
Implementation: Bob's Concise Coding Conventions
Implementation: Introduction to Java Swing I
Implementation: Introduction to Java Swing II


23 Jan
Exams: January

Semester 2



30 Jan
Java Swing and Event Handling
Java Swing and Event Handling
Group Meeting Opportunity
(no lecture)


6 Feb
Implementation: Exception Handling in Java
Implementation: Debugging your Software
Group Meeting Opportunity
(no lecture)


13 Feb
Implementation: Java Graphics
Implementation: Version Control
Group Meeting Opportunity
(no lecture)


20 Feb
Testing: Unit and Integration Testing
Testing: Unit and Integration Testing-An Example
Group Meeting Opportunity
(no lecture)

A3 Partial

27 Feb


27 Feb
Testing: User Studies
Testing: User Study Methods
Group Meeting Opportunity
(no lecture)

Assessment Report

5 Mar


5 Mar
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)


12 Mar
Discussion of A4 and A5
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)


19 Mar
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)


26 Mar
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)
Group Meeting Opportunity
(no lecture)

A5 Complete Implementation

2 Apr

Easter Break: 2 April - 20 April



23 April
Groups 1+2 demo A5 Groups 3+4 demo A5 Groups 5+6 demo A5 Groups 7+8+13+14 demo A5
Special Time
Friday 27 April, 15:00, Far-RR


30 April
Groups 9+10 demo A5 Groups 11+12 demo A5 A6 work opportunity A6 work opportunity

Schedule of Lectures from 2009-2010
Schedule of Lectures from 2010-2011

Helpful Java links:

  1. Bob's Java souce code: These are the examples used in class.
  2. The Java SE API: This page lists the documentation for the Java Platform, Standard Edition, and the JDK.
  3. 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 lessons.
  4. NetBeans.org -Netbeans is a free, open-source Java IDE (and more). It Runs on Windows, Linux, Mac OS X and Solaris.
  5. Eclipse.org -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.
  6. Java-Tips.org -a repository of online Java tutorials including forums
  7. Java2s.com -a large repository of online Java programs and source code
  8. Jambi 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...
  9. JUnit is dedicated to software developers and testers using the JUnit testing framework.
  10. The Trident Library provides powerful and extensible animations for Java applications
Helpful Java Visualization links:
  1. JFreeChart -JFreeChart is a free 100% Java chart library that makes it easy for developers to display professional quality charts in their applications.
  2. Java View is a 3D geometry viewer and a mathematical visualization software.
  3. 20 Fresh JavaScript Data Visualization Libraries: It's amazing how quickly data visualization is growing.
  4. TheJit.org can be used to create a wide variety of information visualizations...
  5. Highcharts.com: Highcharts is a charting library written in pure JavaScript, offering an easy way of adding interactive charts to your web site or web application. Highcharts currently supports line, spline, area, ...
  6. g.raphaeljs.com is used to create charts on web pages...
Helpful Java Graphics links:
  1. The Java3D API -version 1.3, is considered a minor release of the API, with changes resulting from customer, partner, and community feedback.
  2. 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 programs.
  3. 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.
  4. Chapter 10 of Core Web Programming, Second Edition -An introductory book chapter on Java 2D.
  5. Foundations of 3D Graphics Programming Using JOGL and Java3D -the web site of supplementary material (including source code examples) to accompany the book
  6. Computer Graphics for Java Programmers -the web site to accompany the book, including source code examples
Helpful LaTeX links:
  1. http://www.latex-project.org/ -the LaTeX Project Site contains a lot of helpful documentation including user guides.
  2. The Not So Short Introduction to LaTeX -An excellent LaTeX user guide by T. Oetiker et al.
  3. http://www.tug.org/-The TEX Users Group (TUG) Web Site
  4. Why LaTeX? A great explanation from the Cambridge University Engineering Department.
  5. Why LaTeX? From the Department of Mathematics and Computing University of Southern Queensland.
  6. http://www.BibTeX.org -Here you will find everything you need to know about BibTeX. There are also several links to useful BibTeX tools.
  7. 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.
  8. JabRef -JabRef is an open source bibliography reference manager.
  9. VIM-LaTeX -An environment providing a comprehensive set of tools to view, edit and compile LaTeX documents using Vim.
  10. Excalibur -The LaTeX Aware Spelling Checker
  11. Text Processing using LaTeX -A nice LaTeX resource page at Cambridge University in the Department of Engineering. There are lots of links.
  12. Ulrich Berger's LaTeX Page -This is the web page written by Ulrich Berger containing more useful links.
  13. http://detexify.kirelabs.org/ -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.
  14. The Comprehensive LaTeX Symbol List -The Comprehensive LaTeX Symbol List is an organized list of over 4900 symbols commonly available to LaTeX users.
  15. Squeezing Space in LaTeX -some tips on how to squeeze a little more onto LaTeX pages.
Links to free Screen Capturing Software:
  1. OpenBroadcaster (OBS)
  2. Debut Screen Capturing Software.
  3. CamStudio 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)
  4. ScreenHunter: 5 Free is a completely free screen capture software for you to easily take screenshots.
  5. CamTasia: -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)
  6. Cinelerra: -is a free, open-source, feature-rich video editor for linux (Recommended by Dan Lipsa)
  7. Screenflick for the Mac OS X (Recommended by Dave Chung). You can use this in conjunction with iMovie on the Mac for video editing.
  8. AVS Video Editor (Recommended by Richard Roberts).
You can convert an AVI file to MPEG format by entering "avi 2 mpg" in google.

Helpful Links to free Software Engineering Tools:

  1. XP Dev: offers free and commercial Subversion Hosting integrated with Project Tracking for Open Source and Proprietary projects.
  2. Git: is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  3. Unfuddle: is a secure, hosted project management solution for software development teams. 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?....
  4. Apache Ant is a Java-based build tool. In theory, it is kind of like make, without make's wrinkles.
  5. Software Pointers: is directory for Software Development including the most useful links to processes, methods, tools, and services

This page is maintained by Robert S. Laramee.
In case of comments, questions, suggestions, or collaboration ideas, send email to: r.s.laramee "at" swansea.ac.uk.

Valid HTML 4.01 Transitional