University of Technology Sydney

41026 Advanced Software Development

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2024 is available in the Archives.

UTS: Information Technology: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 41025 Introduction to Software Development

Recommended studies:

competence in programming and software development methods and tools

Description

This subject discusses the advanced software development principles, methods, tools and techniques. In this subject students learn how to design, develop and evaluate a commercially realistic software system meeting predefined functional and non-functional requirements. The project is performed by highly autonomous teams that, while supervised and directed, are ultimately responsible for the project and delivery of the expected outcomes. The students experience, understand the importance of, and can apply sound practices of software development from team formation and management, project planning and management; and all the primary processes of software design, construction, evaluation and delivery. The students must also make informed design decisions, describe how those decisions were reached and justify those decisions.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Elicit and manage customer requirements throughout the project. (B.1)
2. Design, construct and evaluate software to meet the customer requirements. (C.1)
3. Evaluate alternative methods and designs to ensure the best outcome in the circumstances. (C.1)
4. Plan and manage the software development project to completion. (C.1)
5. Collaborate with team members for all project and development activities. (E.1)
6. Monitor and manage team health to ensure a productive and collaborative team environment. (E.1)
7. Communicate relevant and timely project, software and team information to all stakeholders. (E.1)

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Socially Responsible: FEIT graduates identify, engage, interpret and analyse stakeholder needs and cultural perspectives, establish priorities and goals, and identify constraints, uncertainties and risks (social, ethical, cultural, legislative, environmental, economics etc.) to define the system requirements. (B.1)
  • Design Oriented: FEIT graduates apply problem solving, design and decision-making methodologies to develop components, systems and processes to meet specified requirements. (C.1)
  • Collaborative and Communicative: FEIT graduates work as an effective member or leader of diverse teams, communicating effectively and operating within cross-disciplinary and cross-cultural contexts in the workplace. (E.1)

Contribution to the development of graduate attributes

Engineers Australia Stage 1 Competencies

This subject contributes to the development of the following Engineers Australia Stage 1 Competencies:

  • 1.3. In-depth understanding of specialist bodies of knowledge within the engineering discipline.
  • 1.5. Knowledge of engineering design practice and contextual factors impacting the engineering discipline.
  • 2.3. Application of systematic engineering synthesis and design processes.
  • 2.4. Application of systematic approaches to the conduct and management of engineering projects.
  • 3.2. Effective oral and written communication in professional and lay domains.
  • 3.5. Orderly management of self, and professional conduct.
  • 3.6. Effective team membership and team leadership.

Teaching and learning strategies

Students will learn professional advanced software development practices through hands-on workshops supported by online lecture videos and reading material. Students are expected to prepare for the workshop by watching online lecture videos and studying required material in order to participate fully in the workshop activities.

This is a project based subject in which teams of students will develop a software system to meet customer requirements. So far as possible the customer requirements will be commercially realistic and the project will be performed in a commercially realistic manner. Periodically students will present their work for review before presenting the finished product for evaluation.

Teams are expected to meet their tutor on campus regularly to present their progress and planned activities, and meet as a team at other times to ensure that the project progresses toward its scheduled completion.

Content (topics)

  • Project management
  • Team formation and management
  • Software development environments
  • Software development tools
  • Requirements management
  • Software design
  • Software construction
  • Software evaluation
  • Software deployment

Assessment

Assessment task 1: Project Release 0

Intent:

Demonstrate the ability to analyse, plan, architect and design a software development project and setup the DevOps environment before commencing the actual development in small releases and iterations.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4, 5, 6 and 7

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and E.1

Type: Project
Groupwork: Group, individually assessed
Weight: 20%
Length:

This is a technical report, thus there is no compulsory minimum and maximum word limit. For a general guidance, the recommended word limit for this assignment is maximum 5000 words excluding diagrams, bibliography, logbooks and appendices. Word limit will be regarded as recommended rather than compulsory, and no student will be disadvantaged by being under or over the recommended word limit.

Assessment task 2: Project Release 1

Intent:

Demonstrate the ability to implement a software application using the professional software development practices, DevOps and automated testing tools.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4, 5, 6 and 7

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and E.1

Type: Project
Groupwork: Group, individually assessed
Weight: 30%

Assessment task 3: Project Release 2

Intent:

Demonstrate the ability to implement an advanced software application using the professional software development practices, DevOps and automated testing tools.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4, 5, 6 and 7

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and E.1

Type: Project
Groupwork: Group, individually assessed
Weight: 30%

Assessment task 4: Online Quiz

Intent:

Demonstrate the ability to understand the theory and practice of software development.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4 and 7

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

B.1, C.1 and E.1

Type: Quiz/test
Groupwork: Individual
Weight: 20%
Length:

There is no word limit.

Minimum requirements

To pass this subject, students must achieve an overall mark of 50 or greater.

Required texts

This is a dynamic and practical subject. There is no fixed or single textbook for this subject; however, students may choose to buy and consult the relevant recommended books and references.

References

Agile Manifesto. 2001, Manifesto for Agile Software Development. http://agilemanifesto.org/.

Agile Modelling. http://www.agilemodeling.com/.

Agile Videos and Tutorials. http://www.tvagile.com/

Smart, J.F. 2015, BDD in Action: Behaviour-Driven Development for the Whole Software Lifecycle. Manning Publications Co.

Bou Ghantous, G. and Gill, A., 2017. DevOps: Concepts, Practices, Tools, Benefits and Challenges. PACIS2017.

Ghantous, G.B. and Gill, A.Q., 2018, July. DevOps Reference Architecture for Multi-cloud IOT Applications. In 2018 IEEE 20th Conference on Business Informatics (CBI) (Vol. 1, pp. 158-167). IEEE.

Gill, A.Q., Loumish, A., Riyat, I. and Han, S., 2018. DevOps for information management systems. VINE Journal of Information and Knowledge Management Systems, 48(1), pp.122-139.

Len Bass, Ingo Weber, and Liming Zhu, DevOps: A Software Architect’s Perspective. Addison-Wesley.

Daniel Bryant and Abraham Marín-Pérez, Continuous Delivery in Java: Essential Tools and Best Practices for Deploying Code to Production. O’Reilly.

Gill, A.Q. 2015, Adaptive Cloud Enterprise Architecture, World Scientific.

Gill, A.Q. & Bunker, D. 2013, SaaS Requirements Engineering for Agile Development in Xiaofeng Wang, Nour Ali, Isidro Ramos, Richard Vidgen (eds), Agile and Lean Service-Oriented Development: Foundations, Theory, and Practice, IGI, USA, pp. 64-93.

Kent Beck, Extreme Programming Explained: Embrace Change, Addison-Wesley Professional.

Len Bass, Paul Clements, and Rick Kazman, Software Architecture in Practice, 3rd Edition, Addison-Wesley.