41094 Software Engineering Studio 1B
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.
Credit points: 6 cp
Subject level:
Undergraduate
Result type: Grade and marksRequisite(s): 41093 Software Engineering Studio 1A
Recommended studies:
48260 Engineering Project Management; 31257 Information System Development Methodologies; 31282 Software testing and quality management
Description
This subject builds on 41093 SES1A to enhance students’ software engineering skills in terms of design and developing their open-source tools. The subject aims to apply and practice their system programming skills and software development experience from SES1A. Particularly, the students design and develop automated source code analysis to understand, discover and detect programming errors to improve software quality. Students are assessed on the basis of their technical capabilities, understanding of software analysis via open-source software development, and their communication skills in speaking and writing, their team-working skills.
Subject learning objectives (SLOs)
Upon successful completion of this subject students should be able to:
1. | Apply system programming skills to solve complex software engineering problems. |
---|---|
2. | Learn to write high-quality source code through developing open-source software tools. |
3. | Apply systematic software engineering synthesis and design processes to develop open-source tools. |
4. | Apply systematic approaches to conduct and manage software engineering projects. |
5. | Work efficiently in a team to develop open-source software products. |
Course intended learning outcomes (CILOs)
This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):
- 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)
Teaching and learning strategies
The focus of this studio based subject is on the practical side to encourage student to build open-source tools for software analysis. 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 the course of this subject students will cover the following topics:
- Software engineering environments and tools
- Software process
- Software requirements elicitation and analysis
- Software construction
- Software development and testing
- Project planning and management
- Applying system programming skills
- Open-source software development
Assessment
Assessment task 1: Programming Practices
Intent: | To practice coding and debugging skills and make necessary preparations for developing a software analysis tool in later assessments. |
---|---|
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 D.1 |
Type: | Exercises |
Groupwork: | Group, individually assessed |
Weight: | 25% |
Length: | Well-documented software tool |
Assessment task 2: Software Analysis through Open Source Development - Part 1
Intent: | To understand open-source development methodology and to apply compiler fundamentals for source code analysis. |
---|---|
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): C.1, D.1 and E.1 |
Type: | Project |
Groupwork: | Individual |
Weight: | 20% |
Length: | Well-documented software tool |
Assessment task 3: Software Analysis through Open Source Development - Part 2
Intent: | To validate the quality and correctness of the developed software analysis tool based on the 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): C.1 and D.1 |
Type: | Project |
Groupwork: | Group, individually assessed |
Weight: | 25% |
Length: | Well-documented software tool. |
Assessment task 4: Software Analysis through Open Source Development - Part 3
Intent: | Prepare open-source software analysis tool and user manual to be evaluated by stakeholders for quality of the tool. |
---|---|
Objective(s): | This assessment task addresses the following subject learning objectives (SLOs): 3 and 5 This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs): C.1 and E.1 |
Type: | Project |
Groupwork: | Individual |
Weight: | 30% |
Length: | Well-documented software tool and report (1000 words or more). |
Minimum requirements
In order to pass the subject, a student must achieve an overall mark of 50% or more.
Recommended texts
Static Value-Flow Analysis Framework for Source Code, https://github.com/SVF-tools/SVF
Compilers: Principles, Techniques, and Tools Hardcover, https://www.amazon.com.au/Compilers-Alfred-V-Aho/dp/0321486811
LLVM Compiler, https://llvm.org/
Anders Møller and Michael I. Schwartzbach, Static Program Analysis, https://cs.au.dk/~amoeller/spa/spa.pdf
References
https://github.com/SVF-tools/SVF-Teaching