School of Computing · ANU College of Systems and Society
Real-world software development is a complex and dynamic activity involving people, technology and processes interacting within a complex environment of clients, users and other stakeholders while being observant of technological, physical, social, legal, and ethical constraints. This course will empower students with the ability and confidence necessary to exercise critical thinking and professional judgment to select and apply appropriate knowledge, practices and tools to the development of non-trivial software systems. This will be achieved by introducing students to important design methodologies. We will build on previous programming courses to deepen and broaden students' knowledge and understanding of the practices and tools used to build large software systems within complex environments. We will use real-world examples such as distributed, high-integrity, web-based systems where rigorous software engineering can demonstrably enhance business value. Students will learn how practices and tools can be adapted to suit specific project needs and contexts. Knowledge, practices and tools considered in this course will include process models, requirements engineering, design, modelling and user experience. Software engineering design methodologies evolve over time. In this course, students will study the details of one or more design methodologies and critically assess their applicability to modern software systems.
Assignment(s) (Individual)
Learning outcomes 1, 2, 6
Group Assignments & Presentation
Learning outcomes 1, 2, 3, 4, 5, 6
Final Exam
Learning outcomes 1, 3, 6
130 hours including lectures, video lectures, and tutorials and self study.
- Software Engineering @ Google -(O'Reilly) available free via this link Preliminary Reading - Engineering Software Products, Ian Sommerville (Pearson) is a recommended text - Agile! The Good, the Hype, and the Ugly, by Bertrand Meyer (by Springer) - Clean Architecture—A Craftsman's Guide to Software Structure and Design, by Robert C. Martin (Prentice Hall)