Course Title: Software Engineering: Process and Tools

Part A: Course Overview

Course Title: Software Engineering: Process and Tools

Credit Points: 12.00

Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC2101

RMIT University Vietnam

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Viet3 2008,
Viet1 2009,
Viet3 2009,
Viet2 2010,
Viet1 2011,
Viet3 2011,
Viet2 2012,
Viet1 2013,
Viet1 2015,
Viet3 2015,
Viet2 2016

COSC2101

RMIT University Vietnam

Undergraduate

171H School of Science

Face-to-Face

Viet2 2019,
Viet2 2020,
Viet2 2021

COSC2299

City Campus

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 2 2006,
Sem 2 2007,
Sem 1 2008,
Sem 1 2009,
Sem 1 2010,
Sem 1 2011,
Sem 1 2012,
Sem 1 2013,
Sem 1 2014,
Sem 1 2015,
Sem 1 2016

COSC2299

City Campus

Undergraduate

171H School of Science

Face-to-Face

Sem 1 2017,
Sem 2 2018,
Sem 2 2019,
Sem 2 2020,
Sem 2 2021

COSC2361

Taylors College KL

Undergraduate

140H Computer Science & Information Technology

Face-to-Face

Offsh 1 11

COSC2428

City Campus

Postgraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 2 2007,
Sem 1 2008,
Sem 1 2009,
Sem 1 2010,
Sem 1 2011,
Sem 1 2012,
Sem 1 2015,
Sem 1 2016

COSC2428

City Campus

Postgraduate

171H School of Science

Face-to-Face

Sem 1 2017,
Sem 2 2018,
Sem 2 2019

Course Coordinator: Dr Amir Homayoon Ashrafzadeh

Course Coordinator Phone: +61 3 9925 3496

Course Coordinator Email: amirhomayoon.ashrafzadeh@rmit.edu.au

Course Coordinator Location: 14.08.06

Course Coordinator Availability: By appointment


Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Prerequisite: ISYS1117/1118 Software Engineering Fundamentals

Required Prior Knowledge: This course builds on the knowledge acquired in the first year of an undergraduate computer science or software engineering program. You will have one year of experience using a modern operating system, such as OSX, Linux, or Windows. You should have satisfactorily completed the following (or equivalent) courses:

  • COSC1284 Programming Techniques OR COSC2391 Further Programming OR COSC1295 Advanced Programming;
  • COSC2413 Web Programming.

Note it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.

For your information the RMIT Course Requisites policy can be found at Course requisites – 7.29.1.6: http://www.rmit.edu.au/browse;ID=twx09y07zi1c



Course Description

Software Engineering is more than the programming phase of an application arena. Phases of the software engineering life cycle include specialised processes and tools to ensure that real-world projects, both large and small, are delivered in a quality manner under financial constraints using processes and tools. Invariably, the software end-product is produced by a team of software engineers, stakeholders and ancillary personnel.

This course aims to develop your knowledge of the processes and associated tools required to service the software development life cycle.

This course includes a Work Integrated Learning experience in which your knowledge and skills will be applied and assessed in a simulated workplace context and where feedback from industry representatives will be provided. The type of WIL activities involved include a substantial team project to develop a practical software product, using modern Software Engineering processes  and reflective practice, and standard industry tools for code management, testing, and continuous integration and deployment (Assessment Task 1). The team project has been evaluated by the chair of the Computer Science Industry Advisory Committee and feedback provided to ensure it reflects industry best practice. Project mentors and lab/tutors are drawn from industry and support learning and provide feedback on modern Software Engineering practice; these practitioners will also act as client representatives and will mark the project in conjunction with academic staff.



Objectives/Learning Outcomes/Capability Development

Program Learning Outcomes

 

This course contributes to the following Program Learning Outcomes (PLOs) for BP096 Bachelor of Software Engineering and BP094 Bachelor of Computer Science.

  • Enabling Knowledge:

You will gain skills as you apply knowledge effectively in diverse contexts.

  • Critical Analysis:

You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to:

-- analyse and model requirements and constraints for the purpose of designing and implementing software artefacts and IT systems

-- evaluate and compare designs of software artefacts and IT systems on the basis of organisational and user requirements.

  • Problem Solving:

Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to: design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.

  • Communication:

You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to: present a clear, coherent and independent exposition of software applications, alternative IT solutions, and decision recommendations to both IT and non-IT personnel via technical reports of professional standard and technical presentations.

  • Team Work:

You will learn to work as an effective and productive team member in a range of professional and social situations, in particular to: work effectively in different roles, to form, manage, and successfully produce outcomes from teams, whose members may have diverse cultural backgrounds and life circumstances, and differing levels of technical expertise.

  • Responsibility:

You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning. Specifically, you will learn to: effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems.


This course also contributes to the following Program Learning Outcomes (PLOs) for MC061 Master of Computer Science.

  • Enabling Knowledge:

You will gain skills as you apply knowledge with creativity and initiative to new situations. In doing so, you will:

Demonstrate mastery of a body of knowledge that includes recent developments in computer science and information technology.

  • Critical Analysis:

You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to:

-- analyse and model requirements and constraints for the purpose of designing and implementing software artefacts and IT systems

-- evaluate and compare designs of software artefacts and IT systems on the basis of organisational and user requirements.

  • Problem Solving:

Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to: design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.

  • Communication:

You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to: Interpret abstract theoretical propositions, choose methodologies, justify conclusions and defend professional decisions to both IT and non-IT personnel via technical reports of professional standard and technical presentations.

  • Team Work:

You will learn to work as an effective and productive team member in a range of professional and social situations, in particular to: work effectively in different roles, to form, manage, and successfully produce outcomes from teams, whose members may have diverse cultural backgrounds and life circumstances, and differing levels of technical expertise.

  • Responsibility:

You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning. Specifically, you will learn to: effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems.


Course Learning Outcomes

 

Upon successful completion of this course you should be able to:

  1. Utlilize various software engineering processes and their tools as required for best-practice development of software systems.
  2. Identify, analyse, compare and contrast different processes and their assistive tools for selected phases of the software engineering life cycle.
  3. Cooperate in and contribute to a team environment, develop team dynamics, work according to an agreed team protocol, and resolve/manage conflict issues.
  4. Run and document meetings.
  5. Plan, identify and apply processes, standards and tools for phases of a software engineering life cycle for a substantial software development project.
  6. Clearly present and discuss the developed solutions with a variety of audiences.

Please note that postgraduate students are expected to demonstrate deeper knowledge and higher level application of knowledge and skills than undergraduate students.



Overview of Learning Activities

 The learning activities included in this course are:

Pre-recorded lectures will cover Software Engineering process issues and describe tools tailored towards specific scenarios, including industry professional presentations.

Other learning sessions will provide practice in the theories supporting applications to real world software engineering challenges and the application of industry-standard tools to support software engineering activities.Online tools will be used for feedback on progress and understanding.

Team assignments will help develop ability to work in teams and contribute to group work, as well as use tools used in industry to support distributed / team work.

Private study and assessment preparation will contribute to your learning.

Feedback will be regular both in response to submitted assignments, learning sessions and through interaction with teaching staff.

Attendance:

While a minimum attendance standard is not compulsory, non-attendance is correlated with lack of success in this course. Where visa conditions apply, attendance is compulsory.






Overview of Learning Resources

The course is supported by the Canvas learning management system which provides specific learning resources. See the RMIT Library Guide at http://rmit.libguides.com/compsci


Overview of Assessment

Note: This course has no hurdle requirements.

The assessment for this course comprises the following tasks.


Assessment Tasks

Assessment Task 1: Team Project

A substantial team project aims to develop a practical software product. The project will be split into 3 milestones//submissions to facilitate time-management and feedback. It will involve multiple demonstrations for the purpose of regular feedback on progress.

Weighting 50%

This assessment task supports CLOs 1, 3, 4 & 5.

Assessment Task 2: : Process and Tools Take Home Assignment

Three Individual assignments that each has to be done in 24 hours during the semester

Weighting 40%

assignments are about Scrum Process Management, Git, Testing, Logging and Docker

This assessment task supports CLOs 1 &, 2

Assessment 3: Final Demo

Weighting 10%

Each Team present their final product and achievement through the assignment to their tutor and the team will be interviewed individually by their tutor

This assessment supports CLOs 2 & 6.

Please note that postgraduate students are expected to demonstrate deeper knowledge and higher level application of knowledge and skills than undergraduate students.