|
|
Software Construction
COMP2100/2500
Description
(This is just the current handbook entry, edited slightly
to bring it up to date.)
COMP2100 Software Construction and COMP2500 Software
Construction for Software Engineers
(6 units)
First Semester
Thirty one-hour lectures and six seven two-hour laboratory sessions.
Prerequisites:(COMP1110 or COMP1120 or COMP1510) and
(MATH1005 or MATH1014 or MATH1116).
Syllabus:This course is about the implementation and
test phases of the software construction process. It is based
around an individual project lasting the whole semester. In this
project, students work on the construction of a substantial
application, relevant to their experience as computer users. The
project is closely specified, and involves a graphical user
interface. During the semester, students follow the Personal
Software Process, learning time-management, planning, and
quality control.
The following topics are covered:
-
working with larger software systems;
- code review and inspections;
- test planning and
procedures (derived from specification and design documents);
- object-oriented (
Eiffel Java) and
scripting (Bash) languages and procedural (C
programming language ) [C will not be covered here from 2008:
see COMP2300
Introduction to Computer Systems]
;
- recursive data structures;
- graphical user interfaces;
- the Personal Software Process;
- build tools (Ant, Make),
- version control
(Subversion, RCS)
- unit testing (JUnit);
- use of external libraries in programming
(JNI)
In addition, COMP2500 for Software Engineers covers Professional
practice for software engineers.
Proposed assessment for COMP2100: assignments (30%);
mid-semester (written) exam (20%); final (lab) exam (50%)
Proposed assessment for COMP2500: assignments (20%);
oral presentation (5%), written report (5%), mid-semester
(written) exam (20%), final (lab) exam (50%).
Learning outcomes
revised in 2009
The planned learning outcomes for the course are that students should be
able
- 1. construct and modify
- to construct and modify small to medium scale computer
programs
-
apply all aspects of software
construction for a representative variety of small to medium
scale object-oriented programs up to around 300 lines of code
containing up to 7 classes;
-
to make modifications (including source code design,
implementation, and testing) within a moderate-sized Java
program system (103 (1000) to 104
(10,000) lines of code), given a documented specification,
design and implementation of the system
- to have elementary or better competence with standard software development
tools and methods: text editor, compiler, integrated software
development environment, command line scripting, automated build
tools, version control, unit test design, code review
-
to use and analyse a personal software process in constructing small
computer programs
- 2. abstraction
- to compare several forms of abstraction in
object-oriented software design and construction:
inheritance, generic types,
polymorphism, procedural abstraction, abstract recursive data
structures (including abstract syntax trees);
and to apply them appropriately in constructing programs.
- 3. knowledge resources
- to be familiar with common programming knowledge resources to find, understand, and apply online
manuals and tutorials for software tools, programming language
components, and software libraries
- 4. principles and practice of software construction tools
- to describe the underlying principles of three major
aspects of software construction and to apply the appropriate tools:
- version control
(using the
Subversion tool)
- unit testing (using the
JUnit tool)
- automatic build process (using the
Make or Ant tool)
$Revision: 2.0 $ $Date: 2009/02/25 01:28:46 $
$Author: cwj $
|