<?xml version="1.0" encoding="UTF-8"?>
<course>
  <academic-career-val type="integer">1</academic-career-val>
  <assumed-knowledge-and-required-skills></assumed-knowledge-and-required-skills>
  <available-through-customised-graduate-programs type="integer" nil="true"></available-through-customised-graduate-programs>
  <co-teaching-course-id type="integer" nil="true"></co-teaching-course-id>
  <consent-description></consent-description>
  <consent-required type="boolean">false</consent-required>
  <corequisites></corequisites>
  <cost-considerations></cost-considerations>
  <course-code>COMP3110</course-code>
  <course-description>&lt;p&gt;This course is one of three courses (COMP2100, COMP2110, COMP3110) which  address constructive aspects of the software development process. It has  a primary focus on modeling and its central role in eliciting,  analysing, understanding and communicating software requirements and  design. In the first part of the course, students will learn to use  several different modeling approaches to describe complex subject  matters. 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 in a given situation.  Students will then learn how to integrate several modeling approaches to  form software requirements specifications that are unambiguous,  consistent and understandable.&lt;br /&gt;&lt;br /&gt;During the second part of the course, students will be introduced to  various approaches for translating specifications (models) into  operational software systems. This will include consideration of  architectural and design issues, model translation, code generation, and  an overview of active research in the area of model-driven engineering.&amp;nbsp; &lt;br /&gt;  &lt;/p&gt;</course-description>
  <course-group>C</course-group>
  <eligibility></eligibility>
  <filled-flag type="integer">1</filled-flag>
  <first-year-course type="boolean">false</first-year-course>
  <id type="integer">10780</id>
  <incompatibility></incompatibility>
  <indicative-assessment>&lt;p&gt;Workshops (30%), Mid-Semester Exam (30%); Final Exam (40%)&lt;/p&gt; </indicative-assessment>
  <indicative-reading-list></indicative-reading-list>
  <is-active type="integer">1</is-active>
  <is-public type="integer">1</is-public>
  <learning-outcomes>&lt;p&gt;Upon completion of this course, the student will be able to:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;explain the role and importance of modelling in software analysis and design&lt;/li&gt;&lt;li&gt;demonstrate the practical application of several modeling languages&lt;/li&gt;&lt;li&gt;make and defend decisions regarding the use of appropriate modelling languages for a given purpose&lt;/li&gt;&lt;li&gt;integrate a set of models to form effective requirements and design specifications&lt;/li&gt;&lt;li&gt;describe concepts involved in model translation&lt;/li&gt;&lt;li&gt;demonstrate the translation of a simple specification to form an executable program&lt;/li&gt;&lt;li&gt;explain and analyse emerging model-driven development techniques&lt;/li&gt;&lt;/ol&gt;</learning-outcomes>
  <lock-version type="integer">0</lock-version>
  <long-title>Software Analysis and Design</long-title>
  <max-units type="integer">6</max-units>
  <min-units type="integer">6</min-units>
  <other-information></other-information>
  <preliminary-reading></preliminary-reading>
  <prescribed-texts>&lt;p&gt;There are no prescribed textbooks for COMP3110, but the following book covers many of the concepts addressed in the course.&lt;/p&gt; &lt;p&gt;Mellor, Stephen J. &amp;amp; Balcer, Marc J.&lt;em&gt; Executable UML - A foundation for Model-Driven Architecture&lt;/em&gt;,  (2002).&lt;/p&gt; &lt;p&gt;Additional references will posted as appropriate on the course &lt;a href="http://cs.anu.edu.au/student/comp3110/"&gt;web page.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;</prescribed-texts>
  <progress-units type="integer">6</progress-units>
  <quota></quota>
  <recommended-courses></recommended-courses>
  <requisite-statement>&lt;p&gt;12 units of 2000-level COMP or INFS courses including COMP2110 or COMP2510 or INFS2024; and 6 units of 1000-level MATH courses&lt;/p&gt;</requisite-statement>
  <restricted-program-entry type="integer" nil="true"></restricted-program-entry>
  <short-title>Software Analysis Design</short-title>
  <student-contribution-band>Band 2</student-contribution-band>
  <subject>Computer Science</subject>
  <technology-requirements></technology-requirements>
  <updated-by nil="true"></updated-by>
  <version type="integer" nil="true"></version>
  <workload>&lt;p&gt;Thirteen two-hour lectures and seven two-hour workshop sessions&lt;/p&gt;</workload>
  <year type="integer">2010</year>
</course>
