Units
Agile Software Development
Unit code: INN372
Contact hours: 3 per week
Credit points: 12
Information about fees and unit costs
This unit examines the theory, techniques, and technologies associated with the specification, design, construction and testing of software systems. It integrates specialist knowledge from previous units to prepare you to become a professional software engineer. By the end of this unit, you will have a firm understanding of the principles of software development processes, and the detailed practices of a modern agile methodology. This will extend and refine your knowledge of the traditional software development lifecycle and testing, and putting your new knowledge into practice. You will work together in small teams of four to six people to build a project using an agile methodology and using test-driven development strategies. You will thus be well-prepared to become a member of a professional development team.
Availability
| Semester | Available |
|---|---|
| 2013 Semester 2 | Yes |
Sample subject outline - Semester 2 2013
Note: Subject outlines often change before the semester begins. Below is a sample outline.
Rationale
Software projects are notorious for falling behind schedule and running over budget. Researchers and practitioners have spent over forty years improving how we conduct software development projects. A key factor in successful projects is that the development team not only understands the client's needs but is also flexible enough to cope with the changing nature of the client's business environment.
Modern agile software engineering practice is characterised by rapid iterative and incremental development; where short development cycles deliver small sets of features chosen according to their potential business value. Agile software engineering methodologies emphasise the value of people (both developers and clients) over rigid processes. Agile methodologies are seldom revolutionary, but instead are based on careful selection of principles and practices from many years of software project experience.
In this unit, you will be introduced to professional software engineering practice and agile methodologies. You will learn about:
- the business context of software development - no project can be successful unless it solves a client's need;
- modern software engineering processes - the framework within which software development takes place, and a key factor in ensuring higher levels of quality;
- the principles of agile methodologies - how to manage the risk of large scale development by breaking it up into smaller chunks and emphasising a disciplined integration of testing from the start of the project;
- working in teams - how to manage the team environment, to contribute to collective decisions, to bring new knowledge to your colleagues and to manage team conflicts.
More importantly, however, you will learn about software engineering by doing - by working in a team to build a system of substantial size, while following a modern agile software development process.
Aims
This unit examines the theory, techniques, and technologies associated with the specification, design, construction and testing of software systems. It integrates specialist knowledge from previous units to prepare you to become a professional software engineer. By the end of this unit, you will have a firm understanding of the principles of software development processes, and the detailed practices of a modern agile methodology. This will extend and refine your knowledge of the traditional software development lifecycle and testing, and putting your new knowledge into practice. You will work together in small teams of four to six people to build a project using an agile methodology and using test-driven development strategies. You will thus be well-prepared to become a member of a professional development team.
Objectives
On successful completion of this unit you should be able to:
1. understand the goals and principles of software engineering, and its importance to society (GC1, GC6);
2. demonstrate knowledge of tasks involved in delivering a quality product in a timely and cost effective manner, both at a technical and management level (GC1);
3. understand both traditional sequential and modern incremental and iterative software engineering process models (GC1);
4. choose and apply appropriate techniques and tools to each activity in a substantial software development project (GC1, GC2);
5. communicate effectively in a software development context (GC3);
6. work effectively in a team (GC5).
Key: Graduate Capabilities
GC1 - Knowledge and Skills
GC2 - Critical and Creative Thinking
GC3 - Communication
CG4 - Lifelong Learning
GC5 - Independence and Collaboration
GC6 - Social and Ethical Responsibility
GC7 - Leadership and Change
Content
The unit will be predominately project based, with supporting lectures and demonstrations focusing on the principles and technologies used for the project and in later professional practice. These will include:
- Software Engineering Processes, including Iterative and Incremental Development
- Agile Methodologies: Principles and Practices
- Requirements Analysis
- Capture, document and manage system requirements
- Plan and perform system testing to verify and validate a system
- Analyse and design a software system and clearly document the design
- Test Driven Development Strategies
- Application of Tools to Manage the Development Process
- Software Engineering as a Discipline
Approaches to Teaching and Learning
This unit has an emphasis on the theory of modern software engineering and the practical application of that theory. Teaching and learning will be conducted through formal lecture delivery, readings, and through your participation in a semester-long group project. Lectures will be delivered in an intensive mode over the first 4-6 weeks of the semester. This will be scheduled as two lecture sessions each week. There will be very few lectures in the second half of the semester. Lectures will consist of both presentation of theory and practical exercises. You will have a weekly 25 minute meeting with a project demonstrator, starting in week one. . These project consultations with your demonstrator will be used to help you to see how to apply the theory to your project. Throughout the semester your group will make regularly scheduled presentations to the class to demonstrate your progress and current issues.
You are expected to be self-directed in your learning and actively explore and research topics related to your project. You will be expected to learn technical skills, which are extensions of material learnt in earlier units, through your own research. Within the team environment you are expected to help each other learn these technical skills.
The project will not only aid you in learning how to apply and understand the theory presented in this unit, it will also be used as a vehicle to improve your generic capabilities mentioned under 'Learning outcomes'. You will conduct the project with a small group of fellow students collaborating together to form an effective team to solve the project. You will be provided with a process to follow for the project. This will aid you in working together. Throughout the project you will record your progress and on how well you follow the process. These records are to be written as professional documents. You will be provided with templates and examples of these documents. You will be required to log and report the amount of time you personally spend on project tasks.
Assessment
Criterion-Referenced Assessment
Appropriate assessment criteria will be made available to students in the introduction to the assessment items.
Concurrent Teaching
This unit is being taught concurrently with an undergraduate offering of the same subject. University policy permits postgraduate and undergraduate students to attend the same lectures. Separate workshop sessions will be provided for postgraduates students where student numbers allow. As a postgraduate student you will be required to complete assessment tasks to a more advanced level that reflect your advanced knowledge and understanding of the subject. You will demonstrate your advanced mastery of the subject material through critical evaluation in your progress reports and final demonstration.The project will be reviewed on a weekly basis by your team's demonstrator. This review will consider how your team is following the software engineering process, as well as the particular deliverable the team is working on at that time. The majority of the feedback will be given verbally by the demonstrator during these meetings. When each deliverable is completed it will be submitted to the demonstrator for a more detailed evaluation. Feedback will be provided both in written and verbal form.
You can also obtain feedback on your progress throughout the unit through the following mechanisms:
- ask the teaching staff for advice during lectures
- private consultation with teaching staff
Assessment name:
Project
Description:
A multi-phase, semester long group project.
Relates to objectives:
1 to 6
Weight:
60%
Internal or external:
Internal
Group or individual:
Group
Due date:
Throughout Semester
Assessment name:
Project Progress Report
Description:
At regularly staged intervals throughout the semester you will give a progress report to the class, demonstrating your progress and current issues.
Relates to objectives:
1 to 6
Weight:
15%
Internal or external:
Internal
Group or individual:
Group
Due date:
Throughout Semester
Assessment name:
Project Demonstration
Description:
After completing your project your group will demonstrate your product to the class, explaining what value you delivered and how effectively your team followed its process.
Relates to objectives:
1, 3, 5, 6
Weight:
25%
Internal or external:
Internal
Group or individual:
Group
Due date:
End of Semester
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: TBA
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: 06-Feb-2013