Module Identifier CS12420  
Module Title SOFTWARE DEVELOPMENT  
Academic Year 2007/2008  
Co-ordinator Mr Christopher W Loftus  
Semester Semester 2  
Other staff Mr David J Smith, Dr Lynda A Thomas  
Pre-Requisite CS12230 or CS12320  
Course delivery Lecture   Up to 30 lectures  
  Other   Workshop. Up to 11 x 1hr  
Assessment
Assessment TypeAssessment Length/DetailsProportion
Semester Exam1.5 Hours Online examination  40%
Semester Assessment Group Project:  20%
Semester Assessment In-Course Assessment: In class test.  20%
Semester Assessment Course Work:  20%
Supplementary Exam1.5 Hours Online examination  100%
Further details http://www.aber.ac.uk/compsci/ModuleInfo/CS12420  

Learning outcomes

The module concentrates on developing the student's professional approach to software development.

The major learning outcome of this module is that students should:
1. have an appreciation of the Java concepts covered in the syllabus and be able to make full use of them in their programs.

In addition, on successful completion of the module, students should:
2. appreciate the importance of software design, coding and testing as demonstrated by their own software development;
3. be able to analyse a problem and produce high quality software designs as shown by their project work;
4. be able to produce more robust programs making full use of Java exceptions;
5. be able to make data persist from one program run to another;
6. demonstrate how classes can be made more reusable using Java interfaces;
7. produce high quality software that is robust, reliable, reusable and maintainable.
8. have practical experience of using Swing to develop user-friendly front ends;
9. have more experience of software development within a team working to tight time constraints.

Aims

This module builds on the material covered in CS12230/CS12320 to further the development of participants' programming skills.

Students are introduced to more advanced facilities that are available to the software engineer to improve the robustness, reusability and maintainability of software. In particular the module involves detailed coverage of exceptions and an introduction to interfaces.

The graphical user interface, Swing, is used as the basis for implementing user-friendly front-ends. Although the coverage is not exhaustive, students will gain plenty of practical experience the use of these concepts.

The Java programming language is used as a basis for illustrating the concepts covered by the syllabus, but where possible the concepts are introduced in a language independent manner.

Content

1. Eclipse - 2 Lectures
As an example of an IDE; J Unit testing through Eclipse.

2. Robust Programming - 4 Lectures
The need for a separate mechanism for handling erroneous code; throwing and catching exceptions. User defined exceptions.

3. Persistent Data - 2 Lectures
Advanced input/output and files. Worked example bringing together file handling and exceptions.

4. An introduction to Graphical User Interfaces - 9 Lectures
Building on programming skills, this looks at developing graphical front ends to simple software systems introducing Java's AWT and Swing classes.

5. Abstract Data Types and Linear Data Structures - 7 Lectures
More on the ideas of abstraction and encapsulation. Java support for their implementation. An introduction to linear data structures: Stacks and Queues implemented.

6. Enhancing the Reusability of Classes - 3 Lectures
An introduction to Java interfaces: Comparable and the standard Iterator interface. Using interfaces to produce a reusable List class. Generics.

7. Threads - 3 lectures
An introduction to concurrency, Java threads, threads in Swing, the event dispatch thread. Synchronisation.

Reading Lists

Books
** Recommended Text
Barnes, David J. (2006.) Objects first with Java :a practical introduction using BlueJ /David J. Barnes and Michael K. K olling. 3rd ed.. Pearson Prentice Hall 013197629X
Skansholm, Jan (Feb. 2004) Java from the Beginning 2nd ed.,Revised. Addison-Wesley [Imprint] 9780321154163
** Reference Text
Eckel, Bruce (Feb. 2006) Thinking in Java 4th ed.,Revised. Prentice Hall PTR 9780131872486
Freeman, Eric (2004.) Head First design patterns /Eric Freeman, Elisabeth Freeman ; with Kathy Sierra and Burt Bates. O'Reilly 9780596007126
** Recommended Background
Stevens, Perdita (Dec. 2005) Using UML:Software Engineering with Objects and Components 2nd ed.,Revised. Addison-Wesley Longman [Imprint] 9780321269676

Notes

This module is at CQFW Level 4