Units
Software Development
Unit code: INB370
Contact hours: 3 per week
Credit points: 12
Information about fees and unit costs
Understanding software development is an integral part of the IT industry for software engineers. Software development relies on object technologies, programming techniques and numerous code libraries provided by language developers and third party vendors. Integrated Development Environments, unit testing frameworks, automated and continuous build tools and versioning systems are all becoming part of the tool set modern software developers must be familiar with. This unit is designed to introduce these technologies and techniques to show how software can be rapidly developed.
Availability
| Semester | Available |
|---|---|
| 2013 Semester 1 | Yes |
Sample subject outline - Semester 1 2013
Note: Subject outlines often change before the semester begins. Below is a sample outline.
Rationale
Understanding software development is an integral part of the IT industry for software engineers. Software development relies on object technologies, programming techniques and numerous code libraries provided by language developers and third party vendors. Integrated Development Environments, unit testing frameworks, automated and continuous build tools and versioning systems are all becoming part of the tool set modern software developers must be familiar with. This unit is designed to introduce these technologies and techniques to show how software can be developed rapidly.
Aims
The aim of this unit is to introduce you to a range of modern software development tools and techniques that will allow you to rapidly develop software systems. The concepts covered are especially relevant to software developed as part of a modern 'agile' process.
Objectives
On completion of this unit you should be able to:
- Design software solutions to large and complex problems (GC2);
- Use modern programming techniques to solve complex problems in software development (GC1, GC4);
- Apply abstraction techniques to manage the complexity of large-scale software development (GC1, GC2);
- Use design patterns to implement standardised solutions to common software design issues (GC1);
- Use modern design techniques to understand and model software solutions (GC1, GC2);
- Express software design and development ideas in terms of modern programming processes (GC3).
Key: Graduate Capabilities
GC1 - Knowledge and Skills
GC2 - Critical and Creative Thinking
GC3 - Communication
GC4 - Lifelong Learning
GC5 - Independence and Collaboration
GC6 - Social and Ethical Responsibility
GC7 - Leadership and Change
Content
This unit introduces you to programming techniques for solving common issues that arise in modern software development. These techniques make use of design concepts and programming language features to make software designs easier to implement and understand. A key theme of this unit is the use of abstraction to allow you to solve complex problems and to understand how different parts of a software system work together.
Examples of topics that may be covered in this unit include:
- Parameterised types (generics)
- Collections
- Custom attributes or annotations
- Unit testing and test driven development using the xUnit framework
- Refactoring
- Design patterns
- Automated build tools
- Graphical user interfaces
- Event handling
- Reflection
Each of these topics will be taught in the context of the Java programming language.
Approaches to Teaching and Learning
This unit will use lectures and practical sessions to focus on the techniques and principles of software development. Practical exercises will develop your understanding of the topics covered by this unit and will aid your preparation of assignment tasks.
Assessment
All assessment contributes to your grade.You can obtain feedback on your progress throughout the unit through the following mechanisms:
- Ask the teaching staff for advice and assistance during lectures and practical sessions.
- Your major assignments will be returned to you before the end of semester with comments on your progress.
- Private consultation with teaching staff.
Assessment name:
Project (applied)
Description:
You will implement and test a small-scale Java-based system that demonstrates object-oriented programming and unit testing techniques.
Relates to objectives:
2, 3, 5
Weight:
20%
Internal or external:
External
Group or individual:
Individual
Due date:
Before mid-semester
Assessment name:
Project (applied)
Description:
In partnership with another student, you will design, implement and test a solution for a Java-based software system demonstrating your ability to choose the appropriate programming and design techniques for the problem.
Relates to objectives:
1 to 6
Weight:
30%
Internal or external:
External
Group or individual:
Group
Due date:
Week 12
Assessment name:
Examination (Theory)
Description:
Written exam, short answer questions.
Relates to objectives:
1 to 6
Weight:
50%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Exam Period
Academic Honesty
QUT is committed to maintaining high academic standards to protect the value of its qualifications. To assist you in assuring the academic integrity of your assessment you are encouraged to make use of the support materials and services available to help you consider and check your assessment items. Important information about the university's approach to academic integrity of assessment is on your unit Blackboard site.
A breach of academic integrity is regarded as Student Misconduct and can lead to the imposition of penalties.
Resource materials
No extraordinary charges or costs are associated with the requirements for this unit.
Required text:
Online materials as indicated in the lecture notes.
Risk assessment statement
There are no unusual health or safety risks associated with this unit.
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.
Last modified: 24-Oct-2012