University of Technology Sydney

41127 Software Design Studio

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: Engineering: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): (31257 Information System Development Methodologies AND 48024 Programming 2 AND 31271 Database Fundamentals AND (72 credit points of completed study in of completed study Bachelor's Degree owned by FEIT OR 72 credit points of completed study in of completed study Bachelor's Honours Embedded owned by FEIT OR 72 credit points of completed study in of completed study Bachelor's Combined Degree owned by FEIT OR 72 credit points of completed study in of completed study Bachelor's Combined Degree co-owned by FEIT OR 72 credit points of completed study in of completed study Bachelor's Combined Honours co-owned by FEIT OR 72 credit points of completed study in of completed study Bachelor's Combined Honours owned by FEIT))
Anti-requisite(s): 41095 Software Engineering Studio 2A

Description

It is challenging to develop a large program of a few thousand lines and even more challenging to develop a system of millions of lines of code, which cannot afford to fail. The early stages of development must balance problem exploration and design with convergence toward an implementable solution. Developing large, complex systems, that must work perfectly, requires software engineering practices to ensure the development happens in a controlled manner. Developing the professional discipline to use and maintain all the necessary practices is best done through experience, for little else convinces us of their need than our failings.

The focus of this subject is to experience and understand the longer-term consequences of selected and configured software development methods, tools, and resources, then to consider, decide and implement improvements.

Subject learning objectives (SLOs)

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

1. Define business requirements within an organisational context. (B.1)
2. Demonstrate design strategies for a software system. (C.1)
3. Apply design tools and techniques such as agile, requirement analysis, to improve software quality. (D.1)
4. Work efficiently as a team using systematic project management processes. (E.1)
5. Reflect on one’s own practice as part of an overall career plan. (F.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)
  • Technically Proficient: FEIT graduates apply abstraction, mathematics and discipline fundamentals, software, tools and techniques to evaluate, implement and operate systems. (D.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)
  • Reflective: FEIT graduates critically self-review their performance to improve themselves, their teams, and the broader community and society. (F.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.1. Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline.
  • 1.2. Conceptual understanding of the mathematics, numerical analysis, statistics, and computer and information sciences which underpin 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.3. Creative, innovative and pro-active demeanour.
  • 3.5. Orderly management of self, and professional conduct.
  • 3.6. Effective team membership and team leadership.

Teaching and learning strategies

This is a studio subject that duplicates commercial software development practices suited to small projects. In small self-managed teams, students are guided through the early stages of team formation and agile project planning before adopting greater autonomy for the remainder of the project. Teams are aided and guided by tutors knowledgeable about and experienced in software development. To encourage peer learning all teams formally critique the work of another team at significant stages during the project life cycle. To encourage high technical standards, high achievement and peer learning, all teams develop a system from specified requirements but are free to decide how those requirements can be implemented to achieve greater customer satisfaction.

Tutors provide weekly feedback about progress, intended activities and achievements to date. Formal assessment of the project outcomes and deliverables occurs at mid-term and end of term. Early term team formation and skill development activities provide opportunities for feedback about essential team and technical skills. Students are also expected to participate in peer evaluations of teamwork via SparkPLUS.

Content (topics)

During the course of this subject students will cover the following topics:

  1. Software engineering environments and tools
  2. Software process
  3. Software requirements elicitation and analysis
  4. Software construction
  5. Software development and testing
  6. Project planning and management
  7. Risk management
  8. Team communication and collaboration
  9. Reviewing the work of another team

Assessment

Assessment task 1: Process reports

Intent:

Assess how well the team member has worked on the project.

Objective(s):

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

1, 2, 3, 4 and 5

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

B.1, C.1, D.1, E.1 and F.1

Type: Report
Groupwork: Individual
Weight: 30%
Length:

2500 words

Assessment task 2: Note for client meetings

Intent:

Assess how well the team has identified requirements and selected appropriate tools and resources for the project.

Objective(s):

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

1, 2 and 5

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

B.1, C.1 and F.1

Type: Report
Groupwork: Group, group assessed
Weight: 20%
Length:

1000 words

Assessment task 3: Product demonstration

Intent:

Evaluate how well the developed software has implemented the required functionality and achieved quality requirements.

Objective(s):

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

1, 2 and 3

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

B.1, C.1 and D.1

Type: Demonstration
Groupwork: Group, individually assessed
Weight: 30%
Length:

Approximately 10 to 15 minutes for presentation, demonstration, and discussion.

Assessment task 4: Teamwork assessment

Intent:

The purpose of this task is for students to understand how well they are operating in a team.

Objective(s):

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

4 and 5

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

E.1 and F.1

Type: Report
Groupwork: Individual
Weight: 20%
Length:

No word limit.

Minimum requirements

In order to pass the subject, a student must achieve an overall mark of 50% or more.

Recommended texts

Robert C. Martin (2008), Clean Code: A Handbook of Agile Software Craftsmanship

Sommerville, I. (2011), Software Engineering: Ninth Edition, Addison-Wesley

Ambler, S. W. and Lines, M. (2012), Disciplined Agile Delivery, IBM Press

Beck, K. (2003), Test-driven development: By example, Addison-Wesley, Boston

References

https://github.com/

https://en.wikipedia.org/wiki/Software_development/

https://en.wikipedia.org/wiki/Scrum_(software_development)

Other resources

https://www.lynda.com/