University of Technology Sydney

41093 Software Engineering Studio 1A

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 2021 is available in the Archives.

UTS: Engineering: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 36 credit points of completed study in Bachelor's Degree owned by FEIT OR 36 credit points of completed study in Bachelor's Honours Embedded owned by FEIT OR 36 credit points of completed study in Bachelor's Combined Degree owned by FEIT OR 36 credit points of completed study in Bachelor's Combined Honours owned by FEIT

Recommended studies:

48260 Engineering Project Management; 31257 Information System Development Methodologies; 31282 Systems Testing and Quality Management

Description

It is challenging to develop a real-world software with millions of lines of code that cannot afford to fail. The early stages of development must balance problem exploration and design with convergence toward an implementable solution. Developing real-world systems that work perfectly requires a number of practices to ensure the development happens in a controlled manner. Developing the professional discipline to use and maintain all of the necessary practices is best done through experience.

In this subject students design and begin developing a basic software system following agile methodology and implement a number of professional practices required to support such critical software systems. They learn to explore the problem efficiently to develop solution designs that support rapid convergence to the best alternative. To ensure that any proposed solution is feasible, at least one iteration is developed.

The focus of this subject is to develop the professional work practices and processes necessary to coordinate and control development and modification of large, complex code bases through the selection, configuration and application of appropriate software engineering processes and tools.

Subject learning objectives (SLOs)

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

1. Apply engineering techniques, tools and resources to practice agile software development.
2. Apply systematic engineering synthesis and design processes to foster iterative learning.
3. Apply systematic approaches to conduct and manage engineering projects.
4. Work effectively in a team to solve real-world problems.

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)

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. Students are encouraged to attend all studio sessions in order to facilitate collaboration and peer learning.

Content (topics)

During this subject students will cover the following topics:
1. System requirements elicitation and analysis
2. System architecture design
3. User interface design
4. Data management
5. System construction
6. Support documentation
7. Software and system testing
8. Project planning and management
9. Risk management
10. Reviewing the work of another team
11. Working as a team

Assessment

Assessment task 1: Pre-implementation preparation

Intent:

To match requirements of project specifications to tools that are building blocks for the project.

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, D.1 and E.1

Type: Report
Groupwork: Group, group assessed
Weight: 20%
Length: 1000-2000 words

Assessment task 2: Process reports

Intent:

To challenge, clarify, critique, question and provide, and respond to, ongoing feedback developing capability to mentor and become reflective designers.

Objective(s):

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

1, 2, 3 and 4

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

C.1 and F.1

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

no more than 500 words

Assessment task 3: Product Demonstration

Intent:

To validate the quality of software product based on stakeholder requirements.

Objective(s):

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

1 and 2

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

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

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

Approximately 10 to 20 minutes for presentation, critique and discussion.

Assessment task 4: Technical and User Manual

Intent:

To prepare a consolidated support manual to help operational teams to take over application support responsibilities..

Objective(s):

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

2 and 4

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

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

Type: Report
Groupwork: Group, individually assessed
Weight: 30%
Length: > 1500 words

Minimum requirements

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

Recommended texts

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