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
This is version 1.0 of the COMP2801 course profile, dated 12 July 2004.
Changes since the last version
|Contact Hours:||5 hours per week (2L1T2P)|
|Purpose:||COMP2801 is a practical course emphasising the design and testing phases
of the software lifecycle.
|Dr David Carrington (Course Coordinator)
Phone: (07) 3365-3310
Fax: (07) 3365-4999
Consultation Time: to be advised
|Dr Doug Goldson
Phone: (07) 3365-1127
Fax: (07) 3365-4999
Consultation Time: to be advised
to be advised
This course aims to:
Demonstrate the concepts and practice of software design and testing, the UML notation, patterns, software maintenance, code refactoring and configuration management.
Extend students' experience, particularly in software design, testing and maintenance, but also in the use of additional program structures and configuration management.
Provide students with positive experiences of collaborative learning and some appreciation of the need for life-long learning skills.
Students who master the material in this course will be able to:
- represent the design of a software product using UML notation,
- document the design decisions underlying a software design,
- describe software structures in terms of architectures and design patterns,
- extract an abstract design representation from source code,
- manage an evolving software product using configuration management tools,
- apply refactoring strategies to improve the quality of existing designs and code,
- develop sets of test cases from the specification of a software system (or some component),
- choose appropriate test strategies for test case design, and
- participate effectively as a member of a small software development team.
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.
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.
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.
Pre: COMP2500 Inc: COMP2501 C: COMP2502
Students are expected to have:
- some experience programming in Java
- Unix and X11 user skills
- some knowledge of unit testing of individual Java classes
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.
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.
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.
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.
Copies of lecture slides and all other course materials will be available on the web via the COMP2801 home page.
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 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.
The course web site is available at http://www.itee.uq.edu.au/~comp2801.
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.
There is one (2 hour) lecture each week: Monday 10-12 (room 7-222)
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).
|Ta||Monday||4 pm - 5 pm|
|Tb||Wednesday|| 9 am - 10 am
||10 am - 11 am
|| 2 pm - 3 pm
|| 3 pm - 4 pm
|| 2 pm - 3 pm
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).
|Pa||Monday||2 pm - 4 pm|
|Pb||Tuesday|| 8 am - 10 am
||10 am - 12 pm
|| 8 am - 10 am
||10 am - 12 pm
|| 2 pm - 4 pm
||10 am - 12 pm
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
|4||Software design overview|
|3||9 August||5||UML -1
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 due
|6||30 August||11||Refactoring Example||UML tools
|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
Mid-semester break (one week)
||Components and Frameworks||TM review due|
|12||18 October||possible guest lecture||A3 preparation|
||Exam & course review
|| A3 presentations
|| A3 due
|1 November||Revision Period|
|Exam Week 1||8 November||Final Exam|
|Exam Week 2||15 November|
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.
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|
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).
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 >= 85 and Exam >= 80
Final >= 75 and Exam >= 70
Final >= 65 and Exam >= 60
Final >= 50 and Exam >= 45
Final >= 45 and Exam >= 40
Final >= 20
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.
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.
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:
Submission of plagiarised work, i.e. work that contains content copied from an unacknowledged source.
Submission of work without academic merit, i.e. work that adds little or nothing to material available from reference sources such as textbooks, websites, etc., even where this is appropriately acknowledged.
Engaging in collusive behaviour, i.e. inappropriate working together with other students where individual work is required, or working with people outside your team where team work is required.
Copying work done by other students.
Failing to adhere to the School's regulations concerning behaviour in laboratories, in particular occupational health and safety regulations.
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.
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.