Software Construction COMP6442
Learning outcomes
More information may be available for enrolled students on the course website on Wattle
More information may be available for enrolled students on the course website at http://cs.anu.edu.au/courses/info/comp6442
Having successfully completed this course, students should be able to:-
- 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
- apply elementary notions of software quality criteria to critique and improve existing medium scale software
- 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
- 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
- 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.
