Logo Students

COMP430 – Software Engineering Practices

2019 – S2 Day

General Information

Pdf icon Download as PDF
Unit convenor and teaching staff Unit convenor and teaching staff Convenor
Anthony Sloane
Contact via Email
4RPD267
By appointment
Credit points Credit points
3
Prerequisites Prerequisites
(60cp at 100 level or above) including (COMP333 and COMP255)
Corequisites Corequisites
Co-badged status Co-badged status
Unit description Unit description
This unit provides an opportunity for students to practice and demonstrate their software engineering skills within the context of a team. Students will work together to understand, design, modify, test and deliver non-trivial software using practices that are in use in the information technology industry.

Important Academic Dates

Information about important academic dates including deadlines for withdrawing from units are available at https://students.mq.edu.au/important-dates

Learning Outcomes

On successful completion of this unit, you will be able to:

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

General Assessment Information

COMP430 applies an agile method to the engineering of features in a non-trivial software project. Students work as a team on a project that uses technology with which they are already familiar or that has a relatively short learning curve. Normally the project will not be developed from scratch. Rather, COMP430 approximates the normal situation in real-world software development where a team is required to understand, enhance and fix existing software.

The three main assessment items are focused on the software artefact(s) being developed by the class in teams. The items will be assessed in a continuous manner with feedback being provided frequently by the unit convenor to each student.

Students will be asked to document their contributions and associated evidence in each of the three assessment areas of Planning and Estimation, Development and Review as the semester unfolds. E.g., documentation of a development activity might include a link to the associated commits and pull requests in the source code repository. Or documentation of planning and estimation contributions might cite the role a student has played in the discussion that took place in a class session.

Based on the supplied evidence and the convenor's own observations, these assessment items will be assessed according to the following standards:

* Distinction/High Distinction: An extremely valuable team member who makes many key contributions to many different aspects of the software that is developed by the team.

* Credit: A team member who makes useful contributions to multiple aspects of the team's software.

* Pass: A team member who makes a small number of contributions to the team's software or focuses on a single area of contribution. 

The team contribution assessment item captures contribution to the functioning of the team rather than specific contribution to development of the software artefact (which is captured by the other three assessment items). E.g., a high team contribution mark might be earned by a student who often comes up with useful suggestions in planning discussions for features proposed by other team members or who volunteers to present some useful technology to the team so everyone can learn about it. Students are encouraged to think of ways in which they would like to contribute but the unit convenor will also suggest opportunities. Students should plan to attend all classes since they are vital meetings of the software team.

Participation will be assessed according to the following standards:

* Distinction/High Distinction: An extremely valuable team member who contributes strongly in many, varied ways to the smooth and efficient functioning of the team.

* Credit: A team member who makes multiple varied contributions to the team's operations, not just in a single particular way.

* Pass: A team member who makes a small number of contributions to the way the team operates or whose contributions have a single focus.

Assessment Tasks

Name Weighting Hurdle Due
Planning and Estimation 30% No Throughout
Development 30% No Throughout
Review 30% No Throughout
Team contribution 10% No Throughout

Planning and Estimation

Due: Throughout
Weighting: 30%

This assessment item measures student contributions to team planning and estimation activities. Included are activities such as soliciting and developing client input, proposing new features or fixes, estimating how much functionality can be achieved in a development period, including taking into account review of experiences in previous periods.


On successful completion you will be able to:
  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Development

Due: Throughout
Weighting: 30%

This assessment measures student contribution to the team's software development activities, including development of tests for a proposed feature, coding the feature, debugging, ensuring that tests pass and submission to the team's version control repository.


On successful completion you will be able to:
  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Review

Due: Throughout
Weighting: 30%

This assessment item measures student contribution to team review activities. Included are activities such as code and test review of features developed by other team members, merging features into the baseline version of the system, and reflection on achievements in a development period.


On successful completion you will be able to:
  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Team contribution

Due: Throughout
Weighting: 10%

The participation assessment item captures overall contribution to the functioning of the team rather than specific contributions to the software artefact (which is captured by the other three assessment items).


On successful completion you will be able to:
  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Delivery and Resources

The focus of the unit is on development periods of a few weeks duration where milestones such as new features, bug fixes and the like are proposed, planned, delivered and reviewed. Students will develop code by themselves or in pairs, but students should aim to participate in each aspect of the project rather than focusing one or two aspects. In particular, students will be asked to review each other's code and participate in reviews of each software milestone.

Tools such as distributed version control and milestone planning software will be used throughout to coordinate activities.

In each week there is a three hour class during which the teams will meet to discuss expectations, plans and progress. Roughly speaking, the first hour or so will be devoted to general topics of interest to the whole class, while the second and third hours will be used by teams to work together on their activities. Students should plan to attend all classes since they are vital meetings of the software team.

Policies and Procedures

Macquarie University policies and procedures are accessible from Policy Central (https://staff.mq.edu.au/work/strategy-planning-and-governance/university-policies-and-procedures/policy-central). Students should be aware of the following policies in particular with regard to Learning and Teaching:

Undergraduate students seeking more policy resources can visit the Student Policy Gateway (https://students.mq.edu.au/support/study/student-policy-gateway). It is your one-stop-shop for the key policies you need to know about throughout your undergraduate student journey.

If you would like to see all the policies relevant to Learning and Teaching visit Policy Central (https://staff.mq.edu.au/work/strategy-planning-and-governance/university-policies-and-procedures/policy-central).

Student Code of Conduct

Macquarie University students have a responsibility to be familiar with the Student Code of Conduct: https://students.mq.edu.au/study/getting-started/student-conduct​

Results

Results published on platform other than eStudent, (eg. iLearn, Coursera etc.) or released directly by your Unit Convenor, are not confirmed as they are subject to final approval by the University. Once approved, final results will be sent to your student email address and will be made available in eStudent. For more information visit ask.mq.edu.au or if you are a Global MBA student contact globalmba.support@mq.edu.au

Student Support

Macquarie University provides a range of support services for students. For details, visit http://students.mq.edu.au/support/

Learning Skills

Learning Skills (mq.edu.au/learningskills) provides academic writing resources and study strategies to improve your marks and take control of your study.

Student Enquiry Service

For all student enquiries, visit Student Connect at ask.mq.edu.au

If you are a Global MBA student contact globalmba.support@mq.edu.au

Equity Support

Students with a disability are encouraged to contact the Disability Service who can provide appropriate help with any issues that arise during their studies.

IT Help

For help with University computer systems and technology, visit http://www.mq.edu.au/about_us/offices_and_units/information_technology/help/

When using the University's IT, you must adhere to the Acceptable Use of IT Resources Policy. The policy applies to all who connect to the MQ network including students.

Graduate Capabilities

Discipline Specific Knowledge and Skills

Our graduates will take with them the intellectual development, depth and breadth of knowledge, scholarly understanding, and specific subject content in their chosen fields to make them competent and confident in their subject or profession. They will be able to demonstrate, where relevant, professional technical competence and meet professional standards. They will be able to articulate the structure of knowledge of their discipline, be able to adapt discipline-specific knowledge to novel situations, and be able to contribute from their discipline to inter-disciplinary solutions to problems.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Assessment tasks

  • Planning and Estimation
  • Development
  • Review
  • Team contribution

Problem Solving and Research Capability

Our graduates should be capable of researching; of analysing, and interpreting and assessing data and information in various forms; of drawing connections across fields of knowledge; and they should be able to relate their knowledge to complex situations at work or in the world, in order to diagnose and solve problems. We want them to have the confidence to take the initiative in doing so, within an awareness of their own limitations.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.

Assessment tasks

  • Planning and Estimation
  • Development

Creative and Innovative

Our graduates will also be capable of creative thinking and of creating knowledge. They will be imaginative and open to experience and capable of innovation at work and in the community. We want them to be engaged in applying their critical, creative thinking.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.

Assessment tasks

  • Planning and Estimation
  • Development
  • Review

Effective Communication

We want to develop in our students the ability to communicate and convey their views in forms effective with different audiences. We want our graduates to take with them the capability to read, listen, question, gather and evaluate information resources in a variety of formats, assess, write clearly, speak effectively, and to use visual communication and communication technologies as appropriate.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Assessment tasks

  • Planning and Estimation
  • Review
  • Team contribution

Capable of Professional and Personal Judgement and Initiative

We want our graduates to have emotional intelligence and sound interpersonal skills and to demonstrate discernment and common sense in their professional and personal judgement. They will exercise initiative as needed. They will be capable of risk assessment, and be able to handle ambiguity and complexity, enabling them to be adaptable in diverse and changing environments.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.

Assessment tasks

  • Planning and Estimation
  • Development
  • Team contribution

Critical, Analytical and Integrative Thinking

We want our graduates to be capable of reasoning, questioning and analysing, and to integrate and synthesise learning and knowledge from a range of sources and environments; to be able to critique constraints, assumptions and limitations; to be able to think independently and systemically in relation to scholarly activity, in the workplace, and in the world. We want them to have a level of scientific and information technology literacy.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively communicate progress and results of the software development process.

Assessment tasks

  • Planning and Estimation
  • Development
  • Review

Commitment to Continuous Learning

Our graduates will have enquiring minds and a literate curiosity which will lead them to pursue knowledge for its own sake. They will continue to pursue learning in their careers and as they participate in the world. They will be capable of reflecting on their experiences and relationships with others and the environment, learning from them, and growing - personally, professionally and socially.

This graduate capability is supported by:

Learning outcomes

  • Understand and perform the stages of a modern software development process to achieve non-trivial outcomes.
  • Understand and make use of principles of software project management, particularly relating to teamwork, roles and responsibilities.
  • Effectively use modern software development tools such as version control systems and issue trackers.
  • Effectively communicate progress and results of the software development process.

Assessment tasks

  • Planning and Estimation
  • Development
  • Review
  • Team contribution

Changes from Previous Offering

The unit will run as in 2018 with some adjustment of class activities to adapt to the expected larger enrolment. Multiple teams will be formed instead of the one team used in 2018.