Skip navigation

COMP6442 Software Construction

COMP6442 is only available under certain award programs.

Offered By Research School of Computer Science
Academic Career Graduate Coursework
Course Subject Computer Science
Offered in First Semester, 2012 and First Semester, 2013
Unit Value 6 units
Course Description

This course is about the implementation (construction) phase and test phase of the software construction process.It develops students' skills in programming at the pragmatic level and at an increased level of abstraction. Students will create individual practical assignments on the small scale, and read, critique, and modify medium scale software systems, in part through two major assignments over the whole semester. The system is closely specified and designed around a strong architectural structure, exemplifying abstraction and design patterns, and a graphical user interface. During the course students learn to improve their own software development practices by following the Personal Software Process to learn time management, planning, and quality control.

The following topics are covered: working with larger software systems; code review and inspections; test planning and unit testing (derived from specification and design documents); object-oriented (Java), and scripting (Bash) languages; recursive data structures; graphical user interfaces; the Personal Software Process; build tools (Make and Ant) and version control (Subversion); use of external code libraries; introductory software design patterns.

Learning Outcomes

Having successfully completed this course, students should be able to:-

  • Construct and modify: to construct and modify small to medium scale computer programs
    1. 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
    2. apply elementary notions of software quality criteria to critique and improve existing medium scale software
    3. 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, with goals of correctness (through testing) and quality of construction
    4. 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
    5. to use and analyse a personal software process in constructing small computer programs
  • 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), related software design patterns and to apply them appropriately in constructing programs.
  • 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
  • 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: 1. version control (using the Subversion tool) 2. unit testing (using the JUnit tool) 3. automatic build process (using the Make or Ant tool)
  • Reading knowledge of UML class diagrams as a design notation.
Indicative Assessment

Homeworks (15%) Assignment: (15%) mid semester exam (10%) final exam (30% practical 30% theory) (60%)

Workload

Thirty one-hour lectures and six two-hour tutorial/laboratory sessions.

Course Classification(s) TransitionalTransitional courses are designed for students from a broad range of backgrounds and learning achievements, which provide for the acquisition of generic skills; or an informed understanding of contemporary issues; or fundamental knowledge for transition to Advanced or Specialist courses.
Areas of Interest Information Technology
Assumed Knowledge and
Required Skills

Programming in an object oriented language to level of designing and implementing programs with several classes, with simple inheritance.

Requisite Statement

COMP6700 or COMP6710

Prescribed Texts

There is no required textbook for COMP6442, but a Java reference book is strongly recommended.

The information published on the Study at ANU 2012 website applies to the 2012 academic year only. All information provided on this website replaces the information contained in the Study at ANU 2011 website.

Updated:   13 Nov 2015 / Responsible Officer:   The Registrar / Page Contact:   Student Business Solutions