UQ Students should read the Disclaimer & Warning

Note: This page dates from 2005, and is kept for historical purposes.

The University of Queensland
School of Information Technology and Electrical Engineering
Semester 2, 2004

COMP2801- Software Engineering Studio

Course Profile

Version

This is version 1.0 of the COMP2801 course profile, dated 12 July 2004.

Changes since the last version

Not applicable.


Course Summary

Course Code(s): COMP2801 
Unit Value: #2
Contact Hours: 5 hours per week (2L1T2P) 
Purpose: COMP2801 is a practical course emphasising the design and testing phases of the software lifecycle.

Teaching Staff

Dr David Carrington (Course Coordinator)
Office: 78-323
Phone: (07) 3365-3310
Fax:     (07) 3365-4999
Email: davec[at]itee.uq.edu.au
Consultation Time: to be advised
Dr Doug Goldson
Office: 78-315
Phone: (07) 3365-1127
Fax:     (07) 3365-4999
Email: goldson[at]itee.uq.edu.au
Consultation Time: to be advised

Tutors

to be advised


Course Goals

This course aims to:

Students who master the material in this course will be able to:


Graduate Attributes Developed

The University of Queensland has defined a set of graduate attributes to specify broad core knowledge and skills associated with all undergraduate programs (http://www.uq.edu.au/hupp/contents/view.asp?s1=3&s2=20&s3=5). This course addresses these attributes as follows:

Attribute Contributions from this Course

In-depth knowledge of the field of study

Software design, the UML notation, design patterns, code refactoring, software testing, practical configuration management, software engineering tools.

Effective Communication

Report writing through assignments; group interactions in practicals and assignments; practical presentations

Independence and Creativity

Assignment and practical problems provide opportunities for generating ideas and receiving feedback from peers and teaching staff, software design is viewed as problem solving, self-directed learning is required for assignments.

Critical Judgement

The team-based group-work provides a context for defining and analysing the assignment and practical exercises with opportunities for evaluating opinions, making decisions and reflecting critically on the justifications; design assessment requires critical judgement; time monitoring assists self management skills.

Ethical and Social Understanding

This course exposes students to the open source software movement; the teamwork provides insights into team ethics and peer assessment.


Assumed Background

Pre: COMP2500    Inc: COMP2501    C: COMP2502

Students are expected to have:


Motivation

Software design is the stage of software development that transforms a specification (formal or informal) into a structure suitable for implementation. The design process starts with an abstract description of the required software and creates a plan for a potential implementation that meets the initial requirements.

As we increase the size and complexity of the problems we attempt, so the importance of the design process increases. There are many software design methods, just as there are many programming languages. One goal of this course is for you to appreciate the role of a design method in the design process and develop the skills necessary to learn new design methods in the future. This course will introduce you to the concepts of software architecture and design patterns.

Testing has a vital role in developing software. It is a practical means of detecting errors that can be highly effective if performed rigorously. Despite the major limitation of testing: “Program testing can be used to show the presence of bugs, but never to show their absence.’’ [E. Dijkstra, Structured Programming, 1972], it is an essential verification and validation technique. In this course, you should learn some basic techniques for software testing and have some experience applying them.

Teaching and learning philosophy: (This section is intended to help you understand the assumptions that underpin this course)

Education is often presented as a transmission model with the teacher generating information and students absorbing it. I regard this model as seriously flawed since it suggests that learning can be a passive process.

I cannot make you learn (any more than I can make you happy or angry). I can do things but how you react is under your control (see Stephen Covey's book: The seven habits of highly effective people which I strongly recommend). I can provide conditions that I believe are conducive to learning, and I can be part of a dialogue to resolve issues and problems that affect your learning.

I believe that no single learning strategy suits everyone and hence variety is important to encompass individual differences. A large class such as this creates special challenges for handling individual differences but I am willing to discuss alternatives.

I think we need to be conscious of the learning strategies we use, and that we need to understand how to monitor and assess their effectiveness. I understand that some people may not be used to thinking about how they learn and that consideration of the learning process may seem to conflict with course content demands. However, to produce reflective and life-long learners, we need to go beyond Nike's “Just do it” by using reflection to “Do it better”.

I am a strong supporter of active learning that sees learning as a process of change, not just of preparation. Cooperative learning is a particular form of active learning that uses small groups to provide a supportive learning environment.

Some people may find the change in emphasis from individual to group work unsettling, confusing or arbitrary. Being able to work in groups is important; many surveys of employers both in Australia and overseas identify this as one of the most important skills expected of good employees. This course represents one of several courses where you have an opportunity to develop skills for working cooperatively.


Resources

Course Profile Copy

In the first lecture (or class meeting) students will be directed to the web address at which this course profile can be read.  Students enrolled at St Lucia who wish to retain a hard copy of the profile can use the free print quota provided each semester to students enrolled in courses in the School of Information Technology & Electrical Engineering.  For information on how to use this print quota, see the School Policy on Student Photocopying and Printing (St Lucia). Students enrolled at the Ipswich campus will either be provided with a hard copy or given directions in class on how to obtain a free copy.

Textbook

The required textbook is 

   Eric Braude. Software Design: From Programming to Architecture, Wiley, 2004.

This book is used as a basis for both lectures and tutorials.

Reference Texts

Students are not expected to purchase the following books, but may find them useful. Copies of these books are available in the library.

I. Bashir and A.L. Goel. Testing Object-Oriented Software, Springer, 1999.
R.V. Binder. Testing Object-oriented Systems: models, patterns and tools, Addison-Wesley, 2000.
D. Budgen. Software Design, 2nd edition, Addison-Wesley, 2003.
F. Buschmann et al. Pattern-oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996.
P. Coad and M. Mayfield. Java Design, 2nd edition, Yourdon Press, 1999.
J.W. Cooper. Java Design Patterns: A Tutorial, Addison-Wesley, 2000.
A. Eliens. Principles of Object-oriented Software Development, Addison-Wesley, 1995.
P. Evitts. A UML Pattern Language, MacMillan, 2000.
M. Fowler and K. Scott. UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edition, Addison-Wesley, 2003.
M. Fowler et al. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999.
E. Gamma et al. Design Patterns: Elements of Reusable Object-oriented Software, Addison-Wesley, 1995.
W.S. Humphrey. A Discipline for Software Engineering, Addison-Wesley, 1995.
W.S. Humphrey. Introduction to the Personal Software Process. Addison-Wesley, 1997.
IBM Object-Oriented Technology Center. Developing object-oriented software: an experience-based approach. Prentice Hall, 1997.
X. Jia. Object-Oriented Software Development in Java: Principles, Patterns and Frameworks, Addison-Wesley, 1999.
E. Kit. Software Testing in the Real World, Addison-Wesley, 1995.
K.  Knoernschild. Java Design: Objects, UML and Process, Addison-Wesley, 2002.
C. Larman. Applying UML and Patterns. 2nd Edition, Prentice Hall, 2002.
R.C. Lee and W.M. Tepfenhart. Practical Object-Oriented Development with UML and Java, Prentice Hall, 2002.
T.C. Lethbridge and R. Laganière. Object-Oriented Software Engineering: Practical Development using UML and Java, McGraw Hill, 2002.
J. Lions. Lion’s Commentary on Unix 6th Edition with Source Code, Peer to Peer Communications, 1996.
S. McConnell. Code complete: a practical handbook of software construction, Microsoft Press, 1993.
S.J. Metsker. Design Patterns Java Workbook, Addison-Wesley, 2002.
B. Meyer. Object-oriented Software Construction, 2nd edition, Prentice Hall, 1997.
M. Page-Jones. Fundamentals of Object-Oriented Design in UML, Addison-Wesley, 2000.
P.R. Reed, Jr. Developing Applications with Java and UML, Addison-Wesley, 2002.
A.J. Riel. Object-oriented Design Heuristics, Addison-Wesley, 1996.
A. Shalloway and J.R. Trott. Design Patterns Explained: A New Perspective on Object-Oriented Design, Addison-Wesley, 2001.
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996.
R. Wirfs-Brock, B. Wilkerson, and L. Wiener. Designing object-oriented software. Addison-Wesley, 1990.
R. Wirfs-Brock and A. McKean. Object Design: Roles, Responsibilities and Collaborations, Addison-Wesley, 2003.

Handouts

Copies of lecture slides and all other course materials will be available on the web via the COMP2801 home page.

Facilities

The UNIX laboratories are located in Rooms 78-105 and 78-121. Access to the School's UNIX machines is controlled by password. Information about passwords is available in the laboratories and from the school office, which can also supply a handout entitled "A Brief Guide to Student UNIX Facilities in GP South". External access is provided via ITS's dial-in facilities; to use this you need a secure shell (ssh) client - see the "Remote Access Guide" via the link on http://studenthelp.itee.uq.edu.au/ . Web access is enabled for COMP2801 students from moss; pick up a handout from 78-217 or see http://studenthelp.itee.uq.edu.au/ to learn how to access sites external to the University (via a proxy password).

Consultation

Consultation times will be posted on the course web page.

Distribution of Notices

Announcements will be made in lectures, via the comp2801 newsgroup and placed on the COMP2801 home page for later reference.

Web

The course web site is available at http://www.itee.uq.edu.au/~comp2801.

Newsgroup

The course newsgroup is uq.itee.comp2801. This group is available on both the University and School news servers (news.uq.edu.au and news.itee.uq.edu.au).

The newsgroup is a forum for information and discussion about topics relevant to this course. Staff will read and respond to newsgroup postings. It is preferred that you ask course related questions via the newsgroup rather than via e-mail since then all students benefit from the answers. E-mail should be used for personal issues.

Students are expected to read news regularly, at least once per week and more frequently close to assessment deadlines.


Teaching Activities

Lectures

There is one (2 hour) lecture each week:    Monday 10-12 (room 7-222)

Tutorials

Students should sign-up for and attend a weekly tutorial (commencing in week 2). Work in tutorials will be done individually and complements the hands-on practical classes.

The available tutorial sessions are listed below (subject to change).

Prac Session Day Time
Ta Monday   4 pm -   5 pm
Tb Wednesday   9 am - 10 am
Tc
Wednesday
10 am - 11 am
Td
Wednesday
  2 pm -   3 pm
Te
Wednesday
  3 pm -   4 pm
Tf
Friday
  2 pm -   3 pm

Pracs

Students should sign-up for and attend a weekly 2-hour prac session (commencing in week 1). Work in practicals will be done in small groups of three or four students. Groups will be established in the practicals in week one.

Practical participation will be assessed weekly and counts for 20% of the semester mark (2 marks x 10 practical classes). In addition, assignment presentations are performed during these class periods. Practicals are designed as group interaction time and the exercises are intended to build the skills required for the assignments.

The available prac sessions are listed below (subject to change).

Prac Session Day Time
Pa Monday   2 pm -   4 pm
Pb Tuesday   8 am - 10 am
Pc
Tuesday
10 am - 12 pm
Pg
Wednesday
  8 am - 10 am
Pd
Wednesday
10 am - 12 pm
Pe
Wednesday
  2 pm -   4 pm
Pf
Thursday
10 am - 12 pm

Attendance

You are not required to attend any of the teaching sessions (except those in which an assessment activity is taking place), however, you are strongly encouraged to do so. The lectures, tutorials and pracs have been specifically designed to aid your learning of the course material. Failure to attend a session may result in you being disadvantaged. It is up to you to find out what happened at any class session that you miss.

Teaching Plan (subject to change)

Week Number Monday's Date Lecture Number Lecture Topic Prac Session Assessment
1 26 July 1 Introduction & time monitoring  Form teams (room 78-208)
 
2 Working in teams
2 2 August 3 Configuration management
 Unix & CVS
A1 issued
4 Software design overview
3 9 August 5 UML -1
 Ant
Wed: Ekka holiday
 
6 Introduction to Ant
4 16 August 7 UML -2  A1 preparation
 A2 issued
8 Software design patterns -1
5 23 August 9 Software design patterns -2
A1 presentations
 A1 due
10 UML -3
6 30 August 11 Refactoring Example UML tools
A3 issued
12 UML -4
7 6 September 13 JUnit A2 preparation
14 Software Design Patterns -3
8 13 September 15 JUnit - a look inside   A2 due
16 Refactoring principles and practices
9 20 September 17 Object-oriented testing
JUnit  
  27 September

Mid-semester break (one week)

10 4 October 18
Software architecture    
11 11 October 19
Components and Frameworks   TM review due
12 18 October
possible guest lecture A3 preparation  
13 25 October 20
Exam & course review
 A3 presentations
 A3 due
  1 November Revision Period
Exam Week 1 8 November       Final Exam
Exam Week 2 15 November      

Assessment

Your performance in COMP2801 will be assessed by several methods as outlined below. Your final grade (on a 1 to 7 scale) will be determined by combining the marks from the various assessment components as described below. For each assessment item, reference is made to the specific learning objectives (listed in the Course goals ) which the assessment item will address.

This course will use criterion-referenced marking, meaning that students can determine their final grade from their component marks (without worrying about any “grading curves” being applied to normalise the collective results). At the discretion of the course co-ordinator, final grades may be scaled upwards but not downwards.

Assignments

The three assignments are group, rather than individual, assignments. Groups of three or four students will be established in the first practical class (week 1). The criteria for each assignment and submission details will be supplied with each assignment specification.

The mark for each group assignment will be divided between group members according to percentages agreed to collectively by the group. These percentages are normally constrained to lie in the following ranges (min, mid, max) and must sum to 100 (but variations outside these ranges can be discussed with David Carrington). The maximum mark obtainable on any one assignment is 100%.

3 member groups: 25 – 33 – 40
4 member groups: 20 – 25 – 30

Final Examination

A two hour final examination will be held during the final examination period. This exam will be open-book  and will contain both multiple-choice, short-answer and essay questions. Open-book means that you may bring any written material into the examination room. Calculators and other computing or communication devices are NOT permitted. Students may request the use of dictionaries, including bilingual dictionaries, supplied by Examinations Section. 

Assessment variation is possible for students with a disability (see HUPP 3.30.3 Special Arrangements for Examinations for Students with a Disability).

Time Monitoring

The activity associated with this assessment item is intended to help students monitor their use of time so they can improve their time management. This is an individual mark. See the separate handout for details of the weekly time submissions and the time monitoring review, which is to be submitted electronically  in week 11.

Determination of Final Grade

Semester (out of 100)  =  assignment 1 (out of 10)  +  assignment 2 (out of 20)

 +  assignment 3 (out of 35)  +  practical participation (out of 20)

 +  time submissions (out of 7)  +  time monitoring review (out of 8)

Final (out of 100)         = (Semester  +  Exam) / 2

Final grade

Performance Standard

7

Final >= 85 and Exam >= 80

6

Final >= 75 and Exam >= 70

5

Final >= 65 and Exam >= 60

4

Final >= 50 and Exam >= 45

3

Final >= 45 and Exam >= 40

2

Final >= 20

1

Final  <  20

The constraints on the final and the exam marks are to ensure that the final grade reflects corresponding achievement in both group and individual aspects of the course.


Assessment Policies

Submission

Deliverables for all assignments are to be submitted electronically via the school’s assignment submission web page: http://submit.itee.uq.edu.au. In addition, a paper cover sheet signed by all members of the group must be submitted in the assignment box for COMP2801 on level 1 of G.P. South.

Late Submission

A penalty of 10% of the maximum mark for the assignment will be deducted for each day late unless an acceptable explanation is provided to the course co-ordinator.

Return of Assignments

All assessment items will be returned through practicals. Any items not claimed in the corresponding practical may be collected from the course coordinator.

Academic Merit, Plagiarism, Collusion and Other Misconduct

The School and the wider academic community in general takes academic integrity and respect for other persons and property very seriously. In particular, the following behaviour is unacceptable:

Penalties for engaging in unacceptable behaviour can range from cash fines or loss of grades in a subject, through to expulsion from the University.

You are required to read and understand the School Statement on Misconduct, available on the ITEE website at: http://www.itee.uq.edu.au/about/student-misconduct.jsp.  This Statement includes advice on how to properly cite references and other sources in your submissions and on acceptable levels of collaboration.

If you have any questions concerning this statement, please contact your lecturer in the first instance.

Assessment Feedback

Timely feedback on all progressive assessment in this course will be available in accordance with University policy (HUPP 3.30.6 Student Access to Feedback on Assessment).  Students wishing to view examination answer scripts and/or question papers should consult with the course co-ordinator regarding arrangements.

It is a student’s responsibility to incorporate feedback into their learning; making use of the assessment criteria that they are given; being aware of the rules, policies and other documents related to assessment; and providing teachers with feedback on their assessment practices.


Support for Students with a Disability

Any student with a disability who may require alternative academic arrangements in the course is encouraged to seek advice at the commencement of the semester from a Disability Adviser at Student Support Services.