Caution
Copyright © Monash University 1996
ISBN 1320-6222
Authorised by Academic Registrar, April 1996
Programming and software technology subjects have been offered by the department since the early 1980s and the programming courses date back to 1969 when Caulfield offered Australia's first commercial computing degree.
The department can now focus entirely on software engineering issues. Its first-semester undergraduate courses have about 350 new students each year. Higher degree courses are provided for practitioners and academics.
The department is recognised throughout Australia for its dedication to object-oriented software engineering, a rapidly expanding area of software development skills, methods and tools - of high relevance in industry, government and academia.
The department contributes in substantial ways to the following courses offered by the faculty:
+ Bachelor of Computing, particularly with a major in software development
+ Graduate Diploma in Computing
+ Graduate Diploma in Information Technology
+ Master of Computing by coursework
+ Master of Computing by research
+ Doctor of Philosophy (PhD).
The overlap areas of object technology, distributed systems and artificial intelligence, ie intelligent distributed objects, are of special interest in the department's research profile. Most of the department's student and grant research projects fall into at least two of these overlapping areas.
Research expertise in intelligent distributed objects has given rise to a number of research scholarships, funded projects and national and international collaboration with industry and academia.
Interest groups centred around object-oriented software engineering, distributed object technology and artificial intelligence shape the department's research culture, seminar series and active working groups. From within these working groups the department leads two faculty initiatives, the Monash Artificial Intelligence Consortium and the Monash Software Engineering Consortium. These research groups also provide the basis for the department's contribution to various regional, national and international working groups, interest groups, conference program committees and journal editorial boards.
The distributed object technology group focuses on parallel and distributed object-oriented methods, languages, systems and standards. Issues related to modeling and developing client-server applications, adaptive parallelism, fault tolerance in distributed systems, interoperability and semantics of objects and processes are at the heart of the projects in this area.
The object-oriented software engineering group focuses on three major aspects of software engineering: formal aspects of software engineering, software architecture and reuse, and software quality metrics and standards conformance. Current research in the group tries to bridge the gap between traditional informal requirements and formal or semi-formal specification. To this end the group studies means of computer supported specification and design, interactive specification acquisition, and reasoning about objects.
The artificial intelligence group works on knowledge-based approaches to engineering large software systems, and on intelligent objects or agents, which combine features of object-oriented and rule-based systems.
Abductive inference; deduction of induction results; interactive programming; practical theorem proving.
Academic staff: Dr J Chen, Dr T Menzies, Dr X Wu
Software agents and machine learning
Integration of rules and objects; intelligent adaption machines; knowledge discovery; specifying and refining intentional agency; specifying multi-agent test beds.
Academic staff: Mr B Durnota, Ms S Ramakrishnan, Professor H Schmidt, Dr X Wu
Intelligent multimedia
Intelligent hypermedia systems; intelligent text retrieval.
Academic staff: Professor H Schmidt, Dr X Wu
Object-oriented concurrency: languages and implementation, applications, reasoning, modelling, tools support.
Academic staff: Dr J Chen, Dr A Sajeev, Professor H Schmidt
Distributed systems
Adaptive fault tolerance; object request brokers and traders; interoperability; visualisation.
Academic staff: Dr A Sajeev, Professor H Schmidt
Semantic analysis of object-oriented specification; testing based on formal specifications; requirements capture and conceptualisation; integrating specifications and implementations.
Academic staff: Dr J Chen, Mr B Durnota, Dr A Sajeev
Reuse and re-engineering
Object frameworks and restructuring; documentation evolution; object-oriented databases and persistence; class libraries; CASE tools.
Academic staff: Dr J Chen, Dr T Menzies, Ms C Mingins, Ms S Ramakrishnan, Dr A Sajeev, Professor H Schmidt
Object-oriented software process and measurements
Design and project metrics; object-oriented complexity.
Academic staff: Dr T Menzies, Ms C Mingins, Dr A Sajeev, Professor H Schmidt
Members of the department participate in several professional organisations such as the Australian Computer Society (ACS) and its international counterparts, the ACM and IEEE.
The department has strong links with a number of local and national companies and government institutions, particularly through its leadership roles in the:
+ Object Oriented Special Interest Group (OOSIG) of the Victorian ACS
+ International Technology of Object Oriented Languages and Systems (TOOLS) conferences
+ ACS Software Engineering Research Consultative Council (SERCC)
+ Non-Profit International Consortium for Eiffel (NICE).
In these groups the department seeks to promote understanding of public concerns with respect to software technology and dissemination of the values and benefits of software technology.
The department cooperates with several European and North-American universities and research institutes including the German Distant-University Hagen and University Aachen, University Karlsruhe, and the Californian International Computer Science Institute affiliated to the University of California at Berkeley, and the Open University (UK).
The department offers technology transfer packages in the form of industry courses taken on-campus or on-site. These professional courses are offered and packaged through the Pearcey Centre and the department office.
The department also takes a leading role in university initiatives to present and shape the faculty's future teaching and research profile in the areas of software engineering and artificial intelligence, by chairing the Monash Software Engineering Consortium (MSEC) and the Monash Artificial Intelligence Consortium (MAIC), and by networking with the broader community in these areas at a national and international level.
For more information, contact the relevant staff member. Postgraduate research coordinator: Dr A S M Sajeev, telephone (03) 9903 2181; Master of Computing and Graduate Diploma in Information Technology coordinator: Sita Ramakrishnan, telephone (03) 9903 2702; honours coordinator: Jan Miller, telephone (03) 9903 2700.
The aim of the major is to provide undergraduate students in computing and other disciplines with the intellectual tools to enable them to apply state-of-the-art knowledge, skills, methods and techniques to the design, implementation, maintenance and modification of software systems. It will also provide the theoretical understanding for learning and for using new methods in the future, and the attitude which sees the constant updating of knowledge as required professional behaviour.
On completion of the major in software development, students will be able to:
+ specify, design, construct, verify, test, maintain and modify programs, program components and software systems;
+ evaluate and select alternative software methods and tools in the construction of systems;
+ communicate effectively with clients, users and other professionals;
+ work constructively within a team environment;
+ appreciate commercial and ethical issues arising in software development projects.
Students completing this sequence will have knowledge of:
+ the different conceptual models of software development;
+ the methods used in applying conceptual models to software development;
+ the processes followed by software developers in constructing systems;
+ the techniques and notations used in designing and implementing software systems.
They will have an understanding of:
+ the software development process, both in the sense of abstract models and in the various instances of the process as practised in industry;
+ the activities and aspects of the software development process;
+ the issues that are motivating the growth and evolution of information technology;
+ the differences between personal programming and professional software development; in particular, they should understand that professional software development involves the production of software systems under the constraints of control and management activities;
+ a working set of principles, models, representations, methods and tools and the role of analysis and evaluation in software development;
+ the architectures of many common and well-understood classes of software systems;
+ the content of appropriate standards and their application in software development;
+ the basic economic, legal and ethical issues of software development.
They will be able to:
+ apply fundamental principles in the performance of various software development activities;
+ apply appropriate methods to achieve results by using appropriate programming languages;
+ develop and use appropriate tools covering all activities of the software process;
+ collect appropriate data and metrics for project management purposes, and for analysis and evaluation of both the process and the product;
+ design data for and structures of software tests;
+ execute a plan, including the performance of various kinds of software tests;
+ apply documentation standards in the production of all kinds of documents;
+ evaluate new technologies and tools to determine their applicability in a particular context.
They will have developed attitudes which allow them to:
+ understand their role and work effectively as a team member within the organisation;
+ be a professional contributor to the information technology industry.