Course Details

Course Code SENG3011
Course Title Software Engineering Workshop 3
Units of Credit 6
Course Website
Handbook Entry

Course Summary

The purpose of the 3rd year software engineering workshop is to give students experience with a group-based large-scale software development project involving a realistic application in the business domain (finance).

In this session, teams will be developing a complex software application and the focus is to learn about a new application domain, study the requirements, manage the project, liaise with the stakeholder and deliver high quality working solutions. Another aspect of the workshop is to reinforce skills in software design, testing, reporting and the use of support tools around these activities.

Course Timetable

The course timetable is available here .

Course Aims

This third year workshop focuses on the issues of designing and implementing a quality software system that conforms to the requirements of a stakeholder. Besides sharpening their design and coding skills, students will have to get immersed in a complex application domain, learn the basic concepts to be able to understand the requirements and continuously communicate with the stakeholder to discuss issues arising from the project such as design trade-offs, additional functionalities, new interface features etc. In addition, students will develop interpersonal communication skills by preparing correctly formatted and structured reports, negotiating technical, management and interpersonal issues within their teams and resolving problems within their development teams using effective conflict resolution techniques.

Unlike previous projects with rigid requirements, groups are encouraged to be creative in their implementation by focusing on delivering the best quality product in consultation with the stakeholder. Consequently, they have the complete freedom in choosing the implementation technologies of their choice e.g. (Java, C++, J2EE, .NET or hybrids) providing they meet the requirements of the stakeholder.

The application domain selected in this session is in the finance area. In this workshop, students will be issued with an initial requirements document outlining the essential features of a product. Additional information will be given on a needs basis throughout the workshop in a variety of ways (emails, regular meetings, class lecture). Many guest lectures will be organised with industry speakers and access to relevant data for the project will be facilitated.

Student Learning Outcomes

After completing this course, students will:

  • reinforce existing knowledge about the concepts and principles of software development associated with the implementation of quality software within an organisational context.
  • learn about the processes of requirements elicitation and engineering in a realistic context
  • acquire practical design skills, particularly in architectural design and software component integration
  • experience the process of implementing a quality software system by choosing appropriate languages, libraries and frameworks.
  • acquire additional skills involved in working as part of a project team implementing a quality software system within strict time constraints.
  • learn the process of writing reports and documentation for specific needs.
  • get introduced to a new business application domain (financial market operations in this case)

This course contributes to the development of the following graduate attributes:

Graduate Attribute Where Acquired
the skills involved in scholarly enquiry yes
an in-depth engagement with relevant disciplinary knowledge in its interdisciplinary context yes
the capacity for analytical and critical thinking and for creative problem solving yes
the ability to engage in independent and reflective learning yes
the skills to locate, evaluate and use relevant information (Information Literacy) yes
the capacity for enterprise, initiative and creativity yes
an appreciation of and respect for, diversity no
a capacity to contribute to, and work within, the international community no
the skills required for collaborative and multidisciplinary work yes
an appreciation of, and a responsiveness to, change yes
a respect for ethical practice and social responsibility no
the skills of effective communication yes

Assumed Knowledge

Before commencing this course, students should have:

  • The ability to develop complex programs from stated requirements
  • The ability to design and implement algorithms for text and data processing
  • Good knowledge of design concepts and techniques (equivalent to UML class diagrams and ER)
  • Good knowledge of database and Web technologies
  • Writing and communication skills

These are assumed to have been acquired in the previous software engineering courses and workshops

Teaching Rationale

This course adopts a project-based approach to Learning and Teaching where students learn through applying their knowledge in situations inspired from real-life. Software development in a group situation is encouraged with the lecturer and other external evaluators guiding and providing continuous feedback to each group.

Teaching Strategies

In this workshop, a set of intermediate deliverables leading to a product are specified by the stakeholder, a role assumed by the lecturer in charge. Some weekly lecture slots will be used to elaborate on the deliverables and answer general questions. During these meetings, teams are encouraged to discuss their progress and demonstrate work-in-progress. Teams can also arrange additional meetings with the stakeholder if required. A tutor will be available to assist with technical matters and answer queries related to the case study. Assistance can also given over email by the lecturer in charge.


The assessable components for the course are:

  • Functionality and technical quality of the four prototypes (5%+10%+15%+35%=65%).
  • Quality of 3 written reports: Initial, Testing and Final Reports (5%+10%+20%=35%).

Academic Honesty and Plagiarism

Plagiarism is defined as using the words or ideas of others and presenting them as your own . UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism.

Course Schedule

Weekly Schedule

  • Week1: Introductory lecture. Group Formation.
  • Week2: Guest lecture by Optiver. Finalising Groups.
  • Week3: Mentoring.
  • Week4: Mentoring. Web Site and Management Report due.
  • Week5: Guest lectures by industry.Prototype 1 due.
  • Week6: Mentoring Meeting.
  • Week7: Mentoring. Prototype 2 due.
  • Week8: Mentoring. Testing Report due.
  • Week9: Mentoring Meeting.
  • Week10: Public Demonstrations. Prototype 3 public demonstrations
  • Week11: Mentoring Meeting.
  • Week12: Final demonstrations. Prototype 4 and Final Report due.

Additional details and changes will be posted on the course's noticeboard.

Resources for Students

For domain knowledge, students are encouraged to research appropriate sources of information depending on their needs. They are also expected to learn about the basic concepts using Web sources (more information will be given).

Course Evaluation and Development

This course is evaluated each session using the CATEI system.

In the previous offering of this course, feedback was generally positive mainly because of the industry nature of the project and the involvement of industry partners. The course sponsor (optiver) gave at the end of the workshop a very clear message that this course supports software development skills being put into practice and provides a great foundation for working with industry.

Most suggestions for improvements relate to how deliverables were assessed. In response, every effort will be made at explaining the criteria used for marking in the documentation and during mentoring sessions with students.

Having said that, students must also appreciate that workshop projects are not programming assignments. They deliberately have some ambiguities in the requirements and whenever unsure, students should seek advice during mentoring sessions. In industry, it is rare that all requirements are clearly written down in advance for every project and workshops are designed to teach students to cope with uncertainty in business environments.

Here is the message that Optiver (the course sponsor) has sent us after the 2013 offering. Optiver is the proud sponsor of SENG3011. Software Developers at Optiver are fully responsible for the entire development process, working closely with Traders as end users, designing and testing their own systems and making appropriate technology choices. This course supports these skills being put into practice and provides a great foundation for working with us. We also believe an interest and passion for the domain of Finance makes people successful at Optiver and helps them enjoy their work, so the relevant project this year would help students determine if it's something they enjoy and provided them with the opportunity to consider whether they would like to start their career with us. Having been heavily involved in the course this year we were extremely impressed with the calibre of projects presented to us. The amount of work that went into this project is evident in the high quality of work they produced, and is a credit to the students involved. Due to the outstanding effort, and quality of projects we decided to offer an additional prize to the runners up. We wish to congratulate the winning group and the runners up and commend the other groups for getting involved.

Resource created Monday 30 January 2017, 01:51:05 PM, last modified Wednesday 01 March 2017, 09:59:35 AM.

Back to top

SENG3011 17s1 (Software Engineering Workshop 3) is powered by WebCMS3
CRICOS Provider No. 00098G