Skip navigation
The Australian National University

Welcome to COMP2130/6311.


Software Analysis and Design

This page provides general information only.
Please go to Wattle for news, discussions, and lecture notes.

This course builds upon COMP2100 /COMP2500 by addressing the requirements, architecture and design phases of the software development life-cycle. It has a primary focus on modeling and its central role in eliciting, understanding, analysing and communicating software requirements, architecture and design. Students will learn to use several different modeling approaches to describe complex subject matters typically involved in developing, analysing and specifying requirements, architecture and design. While most of the approaches will seem straight forward and even conceptually simple, students will discover that a good deal of effort and diligence is required to produce useful, accurate, meaningful, understandable and easily maintainable models. Through a series of practical workshops, students will develop an appreciation for the characteristics and capabilities of each approach, and will learn to make decisions as to the best approach to use for a given purpose. Students will then learn how to integrate several modeling approaches to form software requirements, architecture and design specifications that are unambiguous, consistent and understandable. At the end of the course, students will be introduced to various approaches for automating the translation of specifications (models) into operational software systems. This will include topics such as model translation, code generation and an overview of active research in the area of model-driven engineering. Upon completion of this course, students will:
  • explain the activities involved in requirements engineering.
  • describe a range of software quality attributes, explain the relationship between software architecture and software quality attributes, and describe various architectural styles and how they support particular software quality attributes.
  • explain the role and importance of modelling in software requirements, architecture and design activities.
  • demonstrate the practical application of several modeling languages, and make and defend decisions regarding the use of appropriate modelling languages for a given purpose.
  • integrate a set of models to form effective requirements, architecture and design specifications.
  • describe concepts involved in model translation and demonstrate the translation of a simple specification to form an executable program.
  • explain and analyse emerging model-driven development techniques.


  • 30%: Workshops (work handed in right at the end of the tutorial slot), assessing your ongoing ability with the course material
  • 30%: Mid-Semester Exam (probably held in week 7), assessing your ability to read and understand software lifecycle artefacts including models
  • 40%: Final Exam, assessing your ability to create software lifecycle artefacts including models

Course Organisation

We will meet each week for a 90 minute lecture (Thursdays, 9am, JD102) and a two hour workshop (in your tutorial timeslot).

Updated:  07 July 2015 / Responsible Officer:   JavaScript must be enabled to display this email address. / Page Contact:   JavaScript must be enabled to display this email address. / Powered by: Snorkel 1.4