<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>RSS Feed for the unit Modelling object-oriented software – an introduction</title>
    <link>http://openlearn.open.ac.uk</link>
    <description>This RSS feed contains a list of all sections in the unit Modelling object-oriented software – an introduction</description>
    <generator>Moodle</generator>
    <language>en-gb</language>
    <copyright>http://creativecommons.org/licenses/by-nc-sa/2.0/uk/</copyright>
    <lastBuildDate>Fri, 29 Jul 2011 13:33:27 GMT</lastBuildDate>
    <pubDate>Fri, 29 Jul 2011 13:33:27 GMT</pubDate>
    <dc:date>2011-07-29T13:33:27Z</dc:date>
    <dc:publisher>The Open University</dc:publisher>
    <dc:language>en-gb</dc:language>
    <dc:rights>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/</dc:rights>
    <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/</cc:license>
    <item>
      <title>Introduction</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;This material introduces the first steps in modelling a software system. Software development is made up of phases, which are often organised into cycles. The first of these phases is requirements specification. In this particular unit you will explore how to analyse the requirements document (the output from the requirements specification phase) to arrive at an understanding of how the proposed software system will be structured.&lt;/p&gt;&lt;p&gt;This unit is an adapted extract from the Open University course &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/undergraduate/course/m256.htm&quot;&gt;&lt;i&gt;Software development with Java&lt;/i&gt;
(M256)&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>Learning outcomes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__learningoutcomes</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;After studying this unit you should be able to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;describe and use each of this unit's key terms (summarised in the Glossary section at the end);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;list the components that make up a conceptual model of a system domain, and describe briefly the form and purpose of each component;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;explain why a conceptual model forms the basis for modelling the structure of the system, i.e. gives an initial structural model of the system;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;use various techniques and guidelines to identify an appropriate set of classes and associations from a requirements document, including their attributes and multiplicities;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;identify situations where a generalisation relationship between classes exists, and decide on appropriate parent and child classes, and their attributes and associations;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;use various criteria to decide whether an event should be modelled as a class or as an association;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;identify invariants and express them in terms of classes, associations and attributes, and distinguish between valid and invalid combinations of objects and links;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;identify and reason about derived attributes and associations;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;draw simple object and class diagrams using the diagrammatic notations introduced in this unit.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__learningoutcomes</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>1.1 Conceptualising the system domain as classes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;The first step in structuring the system is to model the system domain in terms of a collection of classes and the relationships between them. The system domain is the real-world context specific to the software system being developed. These classes are &lt;i&gt;conceptual&lt;/i&gt; classes – not the software classes that will eventually form part of a working system. They are modelling elements, corresponding to real-world entities mentioned in the requirements document. The relationships between them represent connections that are important in the system domain. The classes and relationships should all be ones that the client who has commissioned the software can easily relate to. You will see that, although building this initial model takes expertise, the result ought to be meaningful to someone who is non-technical but who knows about the system domain. So, for instance, if the requirement was for a system to administer a chain of shops, we might have classes such as 'shop', 'manager' and so on. Relationships such as &amp;#x2018;works at’, and &amp;#x2018;manages’. This picture of the system domain as a collection of related conceptual classes will be referred to as the &lt;b&gt;conceptual model&lt;/b&gt;.
&lt;/p&gt;&lt;p&gt;Once you have drawn up the conceptual model, you will use it as the basis for a series of models of the structure of the system, which will lead eventually to a specification of the software that is to be implemented.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>1.2 The aims of this unit</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Starting with the requirements document for a hospital based system dealing with teams of doctors, patients and wards (see the 'View document' link at the foot of this page), the main aim of this unit is to construct a conceptual model for that system. In drawing up this model, the unit:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;sets out some of the key activities and concepts that are involved in developing a conceptual model (&lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_2_1.html&quot;&gt;Section 2.1&lt;/a&gt;);&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;introduces techniques for analysing the requirements document to identify conceptual classes and their attributes (&lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html&quot;&gt;Section 3.1&lt;/a&gt;);&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;outlines the different types of relationship that can exist between classes, and how to identify them (Sections &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html&quot;&gt;Section 3.1&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_4_1.html&quot;&gt;Section 4.1&lt;/a&gt;);&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;describes how the model can include other kinds of information which is discovered from analysis, such as events and constraints (&lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html&quot;&gt;Section 5.1&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html&quot;&gt;Section 6.1&lt;/a&gt;);&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;shows you how to identify information that can be derived from other information in the model 
&lt;/p&gt;&lt;/li&gt;&lt;li&gt;
&lt;p&gt;in the process of doing all the above, develops a conceptual model for the Hospital System &lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;UML-like class and object diagrams will be used to help you develop and think about the conceptual model. These diagrams can be used to describe the &lt;i&gt;software&lt;/i&gt; classes and objects that will eventually be implemented in code, but they can equally well be used for &lt;i&gt;conceptual&lt;/i&gt; models that deal with entities from the system domain. The UML is flexible enough for both purposes.&lt;/p&gt;&lt;p&gt;Click the 'View document' link below to view the requirements document for the Hospital System. You'll be provided with further links to this document as it's required.&lt;/p&gt;&lt;div id=&quot;pdf002-4&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
    </item>
    <item>
      <title>1.3 Studying this unit</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.3</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;This unit contains a number of self-assessment questions and activities, which are designed to reinforce your understanding of the concepts presented. These form an important part of the teaching strategy and you should work through them as they arise, and read the solutions provided before moving on. This unit contains no practical exercises requiring the use of a computer. Some exercises will require you to produce diagrams. You could use a drawing package for this, or simply hand-draw the diagrams.&lt;/p&gt;&lt;p&gt;
We expect you to spend about half your time on &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html&quot;&gt;Section 3.1&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_4_1.html&quot;&gt;Section 4.1&lt;/a&gt; of this unit, which cover the basic ideas involved in building a conceptual model. &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html&quot;&gt;Section 5.1&lt;/a&gt;and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html&quot;&gt;Section 6.1&lt;/a&gt; are shorter, but cover concepts that you might find more challenging. The final section simply brings together the work you have done earlier in the unit.&lt;/p&gt;&lt;p&gt;In studying this unit, you will need to refer to a PDF document containing information on the Hospital System, which will be linked to within the text when required.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=1.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>2.1 Main activities in developing a conceptual model</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;In this section you will learn about:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;the activities involved in developing a conceptual model;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;the role and purpose of the conceptual model;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;the position of the conceptual model in the wider context of the system that is being developed.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The process of constructing a conceptual model starts with an analysis of the requirements document, to identify those entities which are of key significance to the system, excluding any that are irrelevant or peripheral to its core functionality. In the case of the Hospital System, for example, key entities will include things such as patients and wards.&lt;/p&gt;&lt;p&gt;One category of entity that will be excluded at this stage is that which deals with details of input and output – the way in which information will be provided by and to human users of the systems. It is standard practice to separate the development of the user interface from that of the core system, and keep the two as independent of one another as possible. This is because it is quite likely that the user interface will need to be changed after the software has been delivered, for example to accommodate additional types of user or to take advantage of improved technology. This will be much easier to do if the user interface can be altered without requiring changes to the core system. Conversely, changes to the implementation of the core system should be possible while still keeping the user interface the same.&lt;/p&gt;&lt;p&gt;Having identified entities that are of key significance to the system, we need to identify their properties and the various relationships between them. For example, patients are likely to have properties such as their name and age, and to be related to wards by virtue of the fact that each patient is on a particular ward.&lt;/p&gt;&lt;p&gt;It is also necessary to identify &lt;b&gt;constraints on the system domain&lt;/b&gt; (i.e. limitations on the entities, their properties and relationships) and decide what conditions such constraints will impose on the model.&lt;/p&gt;&lt;p&gt;The completed conceptual model will consist of a diagram representing the system domain, together with text describing important features of the model.&lt;/p&gt;&lt;p&gt;In summary, the process which takes you from the requirements document to the conceptual model involves the following activities.&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Identification of those real-world entities described in the requirements document which are concerned with the core functionality of the system, leaving out considerations of the user interface. These will become the conceptual classes in the model.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Identification of the properties of the entities and the relationships between the entities.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Identification of the conditions that will be imposed on the model.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Representation of the model using diagrams and associated text.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>2.2 The role of the conceptual model</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sshop.gif" length="94" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_001i.jpg" length="21426" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;At the very heart of object-oriented programming is the philosophy that software objects can usefully correspond to real-world entities. This is why we create a conceptual model that &amp;#x2018;looks’ object-oriented: it includes &lt;i&gt;modelling elements referred&lt;/i&gt; to as &amp;#x2018;classes’, which have instances referred to as &amp;#x2018;objects’ and so on. Having a conceptual class such as shop, for example, makes it sensible to consider having a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sshop.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class as part of the software. Thus the conceptual model will provide an initial basis for the structure, or architecture, of the software – the classes and objects that make up the system and the way in which they fit together. That is, the conceptual model gives rise to an &lt;b&gt;initial structural model&lt;/b&gt; for the system under development. It is important to recognise that whilst on paper the conceptual model and the initial structural model may &amp;#x2018;look’ the same, they are not. They model different things, from different perspectives. A conceptual model is a representation of the system domain, whilst an initial structural model is a plan – an early model – of the software itself.&lt;/p&gt;&lt;p&gt;The initial structural model does not deal with the behaviour of the system – the way in which objects interact. Behaviour is addressed by designing &lt;i&gt;dynamic&lt;/i&gt; models, which you will study in later units. The way in which the conceptual and initial structural models fit into a full software development process is illustrated in Figure 1.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_001&quot;&gt;&lt;img src=&quot;m256_1_001i.jpg&quot; alt=&quot;Figure 1&quot; longdesc=&quot;x_m256_1_longdesc_id2790409.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 1 The place of the conceptual and initial structural models in the software development process&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2790409.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2790409&quot; id=&quot;back_longdesc_id2790409&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The initial structural model is what is taken forward to the next stage of development. It will become the basis for designing the software system, and as you go along many of the conceptual classes you identify initially will crystallise into corresponding software classes (written in Java in this unit). But it is important to recognise that not all the conceptual classes will necessarily have software counterparts, and also that the software is likely to include classes which had no conceptual equivalent but which are needed in order to achieve a good software design.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sshop.gif"
             fileSize="94"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_001i.jpg"
             fileSize="21426"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>2.3 The conceptual model in the context of the wider system</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.3</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;The broad real-world context in which the software under development is to operate is known as the &lt;i&gt;business area&lt;/i&gt;. This encompasses all the entities and processes, systems and subsystems that contribute to the activities of a business or other organisation, as well as the communication between them. For example, the Hospital System could be viewed as one subsystem in the general business area which covers everything that goes on in hospitals: the dispensing of medicines, the training of nurses and doctors, and so on. Each of these activities may constitute a subsystem, which may or may not be computerised, but which will need to communicate with other subsystems in the broader area.&lt;/p&gt;&lt;p&gt;The &lt;i&gt;system domain&lt;/i&gt; is the particular sub-part of a business area for which a software system is being developed. The entities in the system domain are those of potential significance for that system. For example, you know from the requirements document that the entities which form part of the system domain for the Hospital System include doctors, patients and wards, but not nurses and medicines.&lt;/p&gt;&lt;p&gt;Finally, that part of the software that is separate from the user interface and that contains objects corresponding to those in the system domain is referred to as the &lt;i&gt;core system&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;In the real world, a system which dealt with the admission and treatment of patients might need to communicate with systems such as those controlling nursing shifts and the stock control of medicines. This unit will not be concerned with communication between separate systems; it will consider only the communication between the system and its human users – the staff who will be interacting with the system.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq002&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 1&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;A computer system is required for booking badminton and squash courts in a sports centre which provides a number of other facilities for its members.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Of what general business area might this system domain be a part?&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Suggest another system domain from the same business area for which a separate computer system might be needed.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h3&gt;
&lt;p&gt;There is no single correct answer to these questions, and your solutions may be different from ours but equally valid.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; The system domain could be seen as belonging to the general business area of sports-centre management or administration; alternatively you could have seen it as belonging to a broader business area such as administration of leisure facilities.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Taking the business area of sports-centre administration, other required systems might include things such as a membership database, a staff records system or a facilities maintenance system.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In this section you have learnt about what is involved in the process of creating a conceptual model and how this model forms the initial structural model for the eventual software system. You also learnt about the conceptual model in the context of the wider system.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=2.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.1 Terminology and notation</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_002i.jpg" length="16997" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_003i.jpg" length="30534" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;In this section, you will learn ways of using a requirements document as the basis for identifying the conceptual classes needed to represent entities from the system domain.&lt;/p&gt;&lt;p&gt;First, though, we will present some terms and notation associated with the process of analysing the requirements document. Several of these will be familiar to you from your knowledge of software implementation, although here they will be used in a slightly different context, to describe conceptual entities in the system domain.&lt;/p&gt;&lt;p&gt;A &lt;b&gt;class&lt;/b&gt; models a category of real-world entities from the system domain. Although these may be tangible real-world &amp;#x2018;things’, they may also be intangible things such as events, roles and organisational units. Whether the entities are tangible or not, the modelling elements that represent them are referred to as &lt;b&gt;objects.&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Objects of a particular class may have properties called &lt;b&gt;attributes&lt;/b&gt;, corresponding to properties of their real-world equivalents. For example, an object representing a car entity may have an attribute colour that corresponds to the colour property of a car. (Note that, since objects of a particular class all have the same attributes, we also say that the class has those attributes.)&lt;/p&gt;&lt;p&gt;At any given time an attribute of an object has a &lt;b&gt;value;&lt;/b&gt; that is, specific information that the object holds in respect of that attribute. For example, the colour red..&lt;/p&gt;&lt;p&gt;Objects may also have &lt;b&gt;links&lt;/b&gt; to one or more other objects, representing connections between real-world entities. If objects of one class can be linked to objects of another class, there is an &lt;b&gt;association&lt;/b&gt; between the classes.&lt;/p&gt;&lt;p&gt;Here is an example. Imagine a very simple system domain, where all we want to do is record information about a number of vehicles and their drivers, as follows:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;the number of wheels each vehicle has, and its colour;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;the name of each driver;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;the driver who drives a particular vehicle or vehicles.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In modelling this system domain there are two classes, vehicle and driver.Vehicle has two attributes, number of wheels and colour.Driver has one attribute. &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. If a particular driver drives a particular vehicle, the corresponding objects are linked. The classes drivers and vehicles are associated, because objects of the two classes may be linked.&lt;/p&gt;&lt;p&gt;The UML provides notation for representing classes and associations using &lt;b&gt;class diagrams&lt;/b&gt;, and objects and links using object diagrams. There they were being used to show software objects – in other words instances of software classes – but in this unit we will use them to represent entities in the system domain.&lt;/p&gt;&lt;p&gt;The class diagram in Figure 2 shows the two classes vehicles drivers, their respective attributes, and the association between them, which we have called drives.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_002&quot;&gt;&lt;img src=&quot;m256_1_002i.jpg&quot; alt=&quot;Figure 2&quot; longdesc=&quot;x_m256_1_longdesc_id2790747.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;Figure 2 A class diagram&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2790747.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2790747&quot; id=&quot;back_longdesc_id2790747&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The inclusion of attribute names in the classes which make up a class diagram is optional. In this unit we will henceforth leave them out and instead, as you will see, include them in textual class descriptions.&lt;/p&gt;&lt;p&gt;You might think that the name  in Figure 2 implies that the association has a direction (i.e. a driver drives a vehicle), but it does not. We could equally well have called the association 'is driven by', instead (i.e. a vehicle is driven by a driver).&lt;/p&gt;&lt;p&gt;Figure 3 is an object diagram. It shows particular objects of the two classes shown in Figure 2 and the links between them that are instances of the association drives.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_003&quot;&gt;&lt;img src=&quot;m256_1_003i.jpg&quot; alt=&quot;Figure 3&quot; longdesc=&quot;x_m256_1_longdesc_id2790802.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;Figure 3 An object diagram&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2790802.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2790802&quot; id=&quot;back_longdesc_id2790802&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;In this example an imaginary driver is represented by an object identified as driver 4. who drives vehicles represented by objects identified as vehicle 4. We have also invented some values for the attributes.&lt;/p&gt;&lt;p&gt;It is often, but not always, the case that the attributes identified at this stage are later implemented as instance variables, but note that, at the conceptual modelling stage, no assumption is made as to whether attribute values will eventually be implemented in the software by strings, integers or any other type. Consequently, the value of the name attribute for the object dirver 4 is not enclosed in quote marks as in Mr Jones , since this would imply that it was to be implemented by a string.&lt;/p&gt;&lt;p&gt;The links in Figure 3 are &lt;i&gt;conceptual&lt;/i&gt; links, and at this stage no conclusions can be drawn about whether  objects &amp;#x2018;know’ about vehicles, objects,  objects &amp;#x2018;know’ about driver objects, or both these things. In fact, for all that is known, &lt;i&gt;neither&lt;/i&gt; might apply! The conceptual links just mean that the real-world entities represented by the objects are related in some way. Only when deciding how the system will perform its tasks (i.e. during dynamic modelling), will it be possible to consider how the &lt;i&gt;software&lt;/i&gt; objects may need to interact,&lt;/p&gt;&lt;p&gt;There is an important relationship between the kinds of diagram in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html#fig001_002&quot;&gt;Figures 2&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html#fig001_003&quot;&gt;3&lt;/a&gt;. The first – the class diagram – is &lt;i&gt;general&lt;/i&gt;, and the second – the object diagram – is &lt;i&gt;specific&lt;/i&gt;. A class diagram, as depicted in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html#fig001_002&quot;&gt;Figure 2&lt;/a&gt;, represents &lt;i&gt;all&lt;/i&gt; the objects of the classes shown, and the association represents &lt;i&gt;all&lt;/i&gt; the links between objects of the two classes. The object diagram in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_1.html#fig001_003&quot;&gt;Figure 3&lt;/a&gt; depicts &lt;i&gt;particular&lt;/i&gt; objects and the &lt;i&gt;particular&lt;/i&gt; links between them.&lt;/p&gt;&lt;p&gt;When you go from the general to the specific like this, you refer to the specific cases as &lt;b&gt;instances&lt;/b&gt; of the general category. Thus an object is an instance of a class, and in exactly the same way a link is an instance of an association.&lt;/p&gt;&lt;p&gt;This will sound very familiar from programming – after all, you already know that classes have instances – but remember that we are not talking about software yet. At the moment we are still discussing categories and entities from the system domain.&lt;/p&gt;&lt;p&gt;The next subsection takes forward the idea of a class diagram. We begin by examining in more detail how to identify classes, attributes and associations from a requirements document.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_002i.jpg"
             fileSize="16997"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_003i.jpg"
             fileSize="30534"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>3.2 Identifying classes and attributes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;The analysis process starts with the identification of a set of conceptual classes – the categories of things which are of significance in the system domain.&lt;/p&gt;&lt;p&gt;There is not usually a single correct choice of classes to model a given system domain. Different people or different software development teams starting with the same requirements will not necessarily come up with the same set of conceptual classes. But good choices – those that accurately model the system domain – are crucial to the software development process. Inappropriately chosen classes may add complexity to later phases of the development cycle, and could make the software difficult to maintain and/or extend.&lt;/p&gt;&lt;p&gt;When identifying appropriate classes, a good understanding of the system domain is important. The software developer often gains this through discussion with the client, assumed to be an expert in the area. Possible classes for inclusion may thus emerge during the course of the requirements specification process. You are in the rather artificial situation of having no client with whom to discuss the requirements. However, there are a number of other techniques that you can use to help identify appropriate classes from a requirements document.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.1 Textual analysis</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Because a class is conceptually a set of objects of the same kind, and objects represent &amp;#x2018;things’ in the system domain, nouns and noun phrases in the requirements document can be used as an aid to identifying possible classes. A &lt;b&gt;noun phrase&lt;/b&gt; is a phrase (a sequence of words like &amp;#x2018;number of copies’) that functions as a noun – and which can be used anywhere that a noun could be used.&lt;/p&gt;&lt;p&gt;Below is an extract from the requirements document for a DVD Library System with the nouns and noun phrases underlined. We have not included the acceptance tests, as these are derived from the use cases, so do not add anything to the description of the system.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.2 System domain</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.2</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;The DVD Library holds DVDs of a number of films. It may have any number of copies of each film. The system should, for each film, hold the film's title; no two films have the same title.&lt;/p&gt;&lt;p&gt;A library member can borrow any DVD of a film that is not currently on loan. However, no member can have more than six DVDs on loan at once. A borrowed DVD must be returned within three days. When a library member returns a DVD it immediately becomes available for loan to other members.&lt;/p&gt;&lt;p&gt;Each DVD has a unique identifying number.&lt;/p&gt;&lt;p&gt;Each member of the library has a unique membership number; the system also holds each member's name.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.3 Use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.3</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;
&lt;i&gt;The DVD Library System will provide support to the library by enabling the library staff to do the following:&lt;/i&gt;
&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;A: Get Number Available.&lt;/b&gt; The staff member identifies the film. The system displays the number of copies available.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;B: List Films.&lt;/b&gt; The staff member identifies the member. The system displays a list of the film titles and return dates for the DVDs that the member has on loan.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;C: Borrow DVD.&lt;/b&gt; The staff member identifies the DVD and the member who is borrowing it. The system records the fact that this copy of the film is no longer available for loan, the fact that it is on loan to the member identified, and the date on which it was borrowed.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;D: Return DVD.&lt;/b&gt; The staff member identifies the DVD. The system records the fact that this copy of the film is now available for loan and that it is no longer on loan to the member who returned it.
&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Choosing the nouns and noun phrases is not an exact science. For example, in the second sentence of the above description, the object of the verb &amp;#x2018;have’ is the noun phrase &amp;#x2018;any number of copies of each film’. Instead of underlining this phrase as a whole we have chosen to identify &amp;#x2018;number of copies’ and &amp;#x2018;film’ separately within the phrase. In doing this we are intuitively deciding that both copies and films are likely to be of importance. Another example is the noun &amp;#x2018;loan’, which could be treated as part of the phrase &amp;#x2018;is on loan to the member’ (describing the status of a DVD) rather than as a noun in its own right. This is only the first stage of identifying classes. We will shortly analyse the &lt;b&gt;candidate classes&lt;/b&gt; in more detail.&lt;/p&gt;&lt;p&gt;Some of the nouns and noun phrases underlined are duplicates, and some simply provide different ways of referring to the same thing. For example, &amp;#x2018;member’ and &amp;#x2018;library member’ clearly refer to the same kind of entity, as do &amp;#x2018;title’ and &amp;#x2018;film title’. Such synonyms need to be grouped together to identify the distinct &amp;#x2018;things’ that might help identify potential classes. (A synonym for a word or phrase is another word or phrase that means the same as the first, and can be used in its place.) On the other hand, the same word may be used to refer to different things; for example &amp;#x2018;number’ is used to refer to the unique identifying characteristic of both DVDs and members, as well as occurring in the phrases &amp;#x2018;number of films’ and &amp;#x2018;number of copies available’.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 1&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;By grouping together nouns and noun phrases that are synonyms, list all the distinct entities that are mentioned in the requirements for the DVD Library System.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;Here is our list:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;library (also referred to as &amp;#x2018;DVD Library’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;DVD (also referred to as &amp;#x2018;copy’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of films&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of copies&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;film&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;system (also referred to as &amp;#x2018;DVD Library System’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;title (also referred to as &amp;#x2018;film title’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;member (also referred to as &amp;#x2018;library member’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;loan&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;day&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;identifying number&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;membership number&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;member's name&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;library staff (also referred to as &amp;#x2018;staff member’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of copies available&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;list&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;return date&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;fact&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;date on which it was borrowed&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;There are a couple of things worth noting about this list:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;We have used a singular noun or noun phrase to represent each group of synonyms. This is a step towards assigning class names, which are always singular.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;In the system domain, &amp;#x2018;DVD’ – a physical video disc – is synonymous with &amp;#x2018;copy’. The copies of the films are held on DVDs. (In other contexts, &amp;#x2018;copy’ might be synonymous with a recording on some other medium, e.g. a videotape or reel of celluloid). The DVDs – or copies – need to be distinguished from the films themselves, which are intangible. There may be many DVDs of a single film in the library.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The solution to Activity 1 has advanced the process of identifying the classes needed to model the system domain. In other words, it has resulted in a list of candidate classes. For example, the second item in the list, DVD, suggests that all the DVDs in the library might be modelled by means of a DVD class; every individual DVD entity would be modelled by an instance of this class. However, there clearly remains some weeding out to be done; not all the items in the list will give rise to appropriate classes. Unfortunately, there is no mechanical technique for doing this: no set of criteria could adequately deal with the complexities and vagaries of natural language. Your ability to select appropriate classes will improve with experience, but below are some guidelines that should help you to narrow down an initial list.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.4 Guidelines for rejection of candidate classes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.4</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Though there are no hard and fast rules, your answers to the following questions should give you a strong indication of whether or not an entity really should be modelled using a class. Although, strictly speaking, it is the category of entity that is modelled by a class, we shall often use the word entity as if it were a category.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Is it a property?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Is it simply a property of some other type of entity in the system domain, or does it contribute to the system domain in its own right? If the former, it is likely to be appropriately modelled by an attribute of a class rather than a class itself.&lt;/p&gt;&lt;p&gt;As you will see below, a good test of whether an entity should be modelled using a class or an attribute is whether it has or does not have properties itself. If it has properties, then it is likely to be appropriately modelled by a class; if not, then it is likely to be appropriately modelled by an attribute.&lt;/p&gt;&lt;p&gt;Some examples of attributes from the DVD Library are:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;title – an attribute of a film;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;identifying number – an attribute of a DVD;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;membership number – an attribute of a member;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;member's name – another attribute of a member;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of copies available – an attribute of film (but see further discussion below);&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;return date – an attribute of a loan;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;date on which it was borrowed – an attribute of a loan.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What about &amp;#x2018;day'? Number of days is also a property of a loan. However, as all loans are of the same duration – three days – there is no need to record this information for each loan. You will see later how this information is taken into account.&lt;/p&gt;&lt;p&gt;Having decided above that &amp;#x2018;number of copies available’ is to be modelled by an attribute of a film, should &amp;#x2018;number of copies’ (that is, the total number of copies of a film, whether on loan or not) also be modelled by an attribute of a film? As you will see below, we believe that it is more appropriate to model &amp;#x2018;number of copies’ in terms of links between films and DVDs.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Does it refer to a behaviour of the system?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Does it name some process or result of a process that the system has to carry out?&lt;/p&gt;&lt;p&gt;In the DVD Library, a &amp;#x2018;list’ (of the film titles and return dates for each DVD) is something that the system needs to produce as part of its behaviour, rather than a category of entities that is significant for the system domain itself.&lt;/p&gt;&lt;p&gt;Something else that could fit into this category is &amp;#x2018;number of copies available’. We have identified DVD (copy) as another candidate class, and the number of copies available is something that the system is required to produce. However, &amp;#x2018;number of copies available’ can also be viewed as an attribute of a film, which is how we have chosen to model it.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Is it outside the scope of the system?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Is it a word or phrase that is used to help describe the general purpose of the system or what it consists of, but that does not actually refer to significant entities in the system domain?&lt;/p&gt;&lt;p&gt;The &amp;#x2018;library’ itself falls into this category. The system will operate in the context of the library, but will not need to represent the library per se. The significant entities are those with which the library is concerned – its members, DVDs etc. You could think of the library as being the boundary of the system domain. Had the system been required to administer a group of libraries, then &amp;#x2018;library’ might have given rise to a class, since it would probably be important to know, for example, which copy of a film was held at which library.&lt;/p&gt;&lt;p&gt;Things such as &amp;#x2018;user’ or, in the case of the DVD library, &amp;#x2018;library staff, also fall into this category; although they will use the system, they are outside its boundaries. In other words, the system does not need to refer to them.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Does it refer to an aspect of the user interface?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Does it concern the interaction of a user with the system, rather than something that is part of the system itself? There are no such examples in the DVD Library System, since the requirements document does not provide details of the user interface. A more detailed requirements document might include statements such as &amp;#x2018;The librarian enters the unique identifying number of the DVD using a barcode reader.’ In this case &amp;#x2018;barcode reader’ would be rejected as a class, since it refers to an aspect of the user interface.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Does it refer to connections between other significant entities in the system domain?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Such an entity might be more appropriately modelled by an association between two classes rather than a class. For example, it might appear at first sight that an entity &amp;#x2018;loan’ in the DVD Library System could be represented as a link between a member of the library and a DVD that they borrow. However, the DVD Library System requirements indicate the need to record the date on which a DVD is borrowed, and to provide information on when DVDs are due for return. These dates are properties of a loan, so in this case we will model loans using a class, with the two dates as attributes. However, if the entity &amp;#x2018;loan’ had not had properties, then it would have been more appropriate to model it as an association. Criteria for deciding whether an event, such as a loan, should be modelled as a class or an association will be discussed later in the unit.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Is it a word or phrase that is used in talking about systems in general, rather than a reference to something in the system domain?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Words such as &amp;#x2018;system’, &amp;#x2018;behaviour’ and &amp;#x2018;requirement’ fall into this category: they do not refer to entities in the system domain.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Is it simply part of a language idiom?&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;The requirements document may contain words which are just part of general English usage. For example, &amp;#x2018;The system records &lt;i&gt;the fact&lt;/i&gt; that this copy of the film is no longer available for loan &amp;#x2026;’ could equally well have been written as &amp;#x2018;The system records that this copy of the film &amp;#x2026;’ (i.e. excluding the phrase &amp;#x2018;the fact’), and the sentence &amp;#x2018;The DVD Library holds DVDs of &lt;i&gt;a number of&lt;/i&gt; films’ would have meant exactly the same had the phrase &amp;#x2018;a number of’ been omitted.&lt;/p&gt;&lt;p&gt;A number of alternative solutions are possible when categorising and selecting from potential classes. We might, for example, have categorised &amp;#x2018;number of films available’ and &amp;#x2018;list of titles and return dates’ as aspects of the user interface (as this is where they would be displayed).&lt;/p&gt;&lt;p&gt;It may sometimes be the case that an entity in one of the above categories &lt;i&gt;does&lt;/i&gt; need to be represented by a class in the core system, or that a decision is made to introduce a class not represented by a noun or noun phrase in the requirements document, or indeed not mentioned in the requirements at all. Furthermore, the same entity may perform more than one role. For example, if library members were able to use the system to reserve and check in DVDs themselves, &amp;#x2018;library member’ would be similar to &amp;#x2018;library staff in this context (and so outside the system boundary), as well as being one of the entities being modelled.&lt;/p&gt;&lt;p&gt;Having applied the guidelines to the entities identified in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_2_3.html#exe001&quot;&gt;Activity 1&lt;/a&gt;, we are left with the following:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;DVD&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;film&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;member&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;loan&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All four of these represent significant entities in the system domain, and none of them duplicates any of the others. They therefore suggest categories of entity that can each be modelled by a different class.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.4</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.5 Notation for classes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.5</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;For reasons of clarity it will be useful to distinguish things in the real world, such as the list of categories produced above, from the conceptual classes and objects that will represent them in our model. To make this distinction clear, we will be showing, as above, categories of entity from the system domain in the same font as the rest of the text, and starting with a lower case letter unless at the beginning of a sentence (or, as in the case of &amp;#x2018;DVD’, where the entity name itself starts with an upper-case letter). However, the corresponding conceptual classes in the model (and their attributes) will be denoted in a different font dvd.  It is important to realise that the classes being dealt with are conceptual classes and not software classes.&lt;/p&gt;&lt;p&gt;Class names are always singular nouns, and each name should be a single word starting with an upper-case letter. The name chosen for a class should give some indication of the type of entity its instances are supposed to represent. Where more than one word is needed to achieve this, we will run the words together, capitalising the first letter of each word bar code reader.&lt;/p&gt;&lt;p&gt;Applying these notational rules to the list of classes we have decided to include in our model for the DVD Library System, we have dvd, film memberand loan.&lt;/p&gt;&lt;p&gt;It is important to adhere to a set of agreed conventions for naming and capitalisation.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.5</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.6 Kinds of class</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.6</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;&lt;i&gt;The material below is adapted from Schlaer and Mellor (1988), and Coad and Yourdon (1991).&lt;/i&gt;&lt;/p&gt;&lt;p&gt;As a complement to textual analysis, attempts have been made to categorise likely classes by type. Aspects of a system domain that can be modelled appropriately as classes include:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;tangible entities;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;roles;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;events;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;organisational units;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;abstract entities.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;b&gt;Tangible entities&lt;/b&gt; are the physical things in the world of the system domain: aeroplanes, vehicles, reactors, people and so on, i.e. things than can be seen or touched.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Roles&lt;/b&gt; are played by people (and other things) in the system domain: employee, student, lecturer, driver and so on. Roles differ from tangible entities in that a single person (a tangible entity) may have a number of different roles, e.g. parent, teacher, library member.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Events.&lt;/b&gt; These include any significant circumstance, episode, interaction, happening or incident, e.g. deliveries, registrations, bookings, enrolments. We will discuss the modelling of events in more detail in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html&quot;&gt;Section 5.1&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Organisational units.&lt;/b&gt; These include any parts of organisational structures to which people or things in the system domain belong – departments, faculties, branches, regions and so on.&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Abstract entities.&lt;/b&gt; These are things such as plays, novels, pieces of music, theories and political movements. They have an existence but do not correspond to tangible entities. For example, the play Hamlet is an abstract entity, while the books which contain the play are tangible entities.&lt;/p&gt;&lt;p&gt;While consideration of categories such as the above can be useful, you should always remember that the overall purpose is to identify all the classes needed to model significant aspects of the system domain. There will sometimes be classes that do not fit neatly into any of the above categories.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe002&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 2&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider each of our classes for the DVD Library System in terms of the categories above. For each class, decide whether the entities it models fit into one of the five categories, and if so which one.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;The candidate classes can be categorised as DVD tangible-entity, member-role, abstract-entity, loan-event.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.6</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>3.2.7 Identifying attributes for the classes in the DVD Library System</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.7</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/title.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif" length="930" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif" length="115" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;As a by-product of our class rejection process, we have already identified a number of entities that can appropriately be modelled as attributes. A similar font and naming convention to that for classes will be applied to attributes, except that their names will start with a lower case letter.&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Attributes of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;title.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Attributes of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Attributes of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To check whether there are any others, it is necessary to read through the requirements document to ensure that no information about the properties of classes has been missed. In fact, none of the classes that we have identified has any additional attributes.&lt;/p&gt;&lt;p&gt;For a simple system it is often possible to identify attributes in parallel with classes, particularly when all the references to attributes are nouns. But suppose a requirements document contained something like the following:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each warehouse contains a number of bar-coded products.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Here, the term &amp;#x2018;bar-coded’, although it is an adjective and not a noun, points to the need for a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;barcode.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute in the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;product.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class. Unless the noun &amp;#x2018;barcode’ appeared elsewhere in the description, this could well have been missed during the class-identification process.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.2.7</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/title.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif"
             fileSize="930"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.3.1 Identifying the classes for the Hospital System</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_004i.jpg" length="69967" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif" length="930" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif" length="115" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;Now that you have been armed with a number of techniques for identifying appropriate classes for a conceptual model, you can apply them to the requirements document for the Hospital System.&lt;/p&gt;&lt;p&gt;The requirements document for the Hospital System is set out in the PDF document below – you will need this in order to complete Activity 3. &lt;/p&gt;&lt;p&gt;Click the 'View document' link below to view the hospital requirements.&lt;/p&gt;&lt;div id=&quot;pdf002-29&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements.pdf&quot;&gt;View document&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe003&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 3&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Use the textual analysis technique described earlier in this section to identify the nouns and noun phrases in the first part of the document, headed &lt;i&gt;System domain&lt;/i&gt;, and then eliminate any duplicates or synonyms so as to produce a partial list of entities in the system domain. (To identify all the relevant entities, you would also need to analyse the section of the document entitled &lt;i&gt;Use cases&lt;/i&gt;, but you are only required to carry out part of the process).
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;
Figure 4 contains the description with the nouns and noun phrases underlined.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_004&quot;&gt;&lt;img src=&quot;m256_1_004i.jpg&quot; alt=&quot;Figure 4&quot; longdesc=&quot;x_m256_1_longdesc_id2792373.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 4 Identifying nouns and noun phrases&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2792373.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2792373&quot; id=&quot;back_longdesc_id2792373&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;This is not an exact science, so do not worry if your underlining does not exactly match ours.&lt;/p&gt;
&lt;p&gt;After eliminating duplicates, we are left with the following list of entities (synonyms are shown in parentheses):&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;hospital&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of wards&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;patient&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;type of ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;male ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;female ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;sex&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;capacity (maximum number of patients, number of beds)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;name of ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Administration department&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;information&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;doctor&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;team&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;team code&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Orthopaedics A&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Paediatrics&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;grade 1&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;consultant doctor (consultant)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;junior doctor&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;record of teams and doctors&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;care&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of doctors&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of patients&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Your list may not have been identical to ours, but we would expect you to have included most of the entities above.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Applying the guidelines for rejection to our solution to &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_3_1.html#exe003&quot;&gt;Activity 3&lt;/a&gt;, the following can be eliminated:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;hospital, Administration department (outside the scope of the system)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of wards (language idiom – the requirements document could equally well have referred to &amp;#x2018;wards’ or &amp;#x2018;some wards’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;type, capacity, name (attributes of ward)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;sex (attribute of patient)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;information (generic term referring to the behaviour of the system)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;team code (attribute of team)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;record of teams and doctors (part of the behaviour required of the system)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;number of doctors, number of patients (language idiom)&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You may have noticed that there are three nouns, &amp;#x2018;Orthopaedics A, &amp;#x2018;Paediatrics’ and &amp;#x2018;grade 1’, which have not been eliminated using the guidelines for rejection, yet which common sense suggests should not be modelled by classes. &amp;#x2018;Orthopaedics A and &amp;#x2018;Paediatrics’ are in fact given in the requirements document as example values of &amp;#x2018;team code’, which was identified above as an attribute of team, and &amp;#x2018;grade 1’ is a value of an attribute, &amp;#x2018;grade’, of junior doctor. (The grade attribute will be identified in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_3_3.html#exe004&quot;&gt;Activity 4&lt;/a&gt; below).&lt;/p&gt;&lt;p&gt;This leaves, so far, the following list of entities which give rise to candidate classes:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;male ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;female ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;ward&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;patient&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;doctor team&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;consultant doctor&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;junior doctor&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;care&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_004i.jpg"
             fileSize="69967"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif"
             fileSize="930"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.3.2 Identifying additional classes from the use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif" length="930" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif" length="115" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;To finalise the above list, it is necessary to analyse the section of the requirements document dealing with the use cases of the system, and to apply the same guidelines and criteria for rejection. This may identify the need for additional classes, or it may provide information that enables us to eliminate more classes from our existing list.&lt;/p&gt;&lt;p&gt;Having underlined all the nouns and noun phrases in the &lt;i&gt;Use cases&lt;/i&gt; section of the requirements document, eliminated classes already identified, and applied the rejection guidelines, we believe there are no additional classes. You may want to convince yourself of this by reading carefully through the &lt;i&gt;Use cases&lt;/i&gt; section.&lt;/p&gt;&lt;p&gt;However, in our view, analysing the &lt;i&gt;Use cases&lt;/i&gt; section of the requirements document allows us to replace two of the candidate classes by a single class, and reject one further class.&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;i&gt;Male and female wards&lt;/i&gt;. We initially retained these as potentially giving rise to separate classes because we could not be sure that the two types of ward played a similar role in the system. However, the &lt;i&gt;Use cases&lt;/i&gt; section of the requirements document makes clear that the two types of ward differ only in the sex of the patients that can be allocated to them. These classes can therefore be rejected in favour of a single class modelling wards with an attribute to denote the sex of the patients on the ward. (Note that in the similar case of junior doctor and consultant doctor, both classes are retained because there are differences in the role that each plays in the system domain.)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;i&gt;Care&lt;/i&gt;. The care of a patient, as described in the requirements document, is significant only in respect of which team provides that care; the description identifies no specific functionality or attributes with respect to the care itself. We conclude that (at this point) there is no need for a class modelling care, and that the care of a patient by a team can be modelled as a link between the relevant &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This leaves the following list of conceptual classes:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Notice that these classes, now accepted as conceptual classes, are in the special font for representing conceptual classes.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/barcode.gif"
             fileSize="930"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/product.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.3.3 Identifying attributes for the classes in the Hospital System</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.3</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teamcode.gif" length="121" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;The next task is to identify the attributes of the conceptual classes listed above. We have already identified some of these as a by-product of the process of identifying the classes.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe004&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 4&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;By referring to the &lt;i&gt;System domain&lt;/i&gt; and &lt;i&gt;Use cases&lt;/i&gt; sections of the requirements document, suggest attributes for each of the classes in the Hospital System.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;For each of our chosen classes, here are our lists of attributes, together with references to the relevant parts of the requirements document.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;type.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; &lt;i&gt;(System domain, use cases&lt;/i&gt; A, D, F)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; &lt;i&gt;(System domain, use cases&lt;/i&gt; A, F)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; &lt;i&gt;(System domain, use case&lt;/i&gt; G)
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;teamcode.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; &lt;i&gt;(System domain, use case&lt;/i&gt; G)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (use &lt;i&gt;case&lt;/i&gt; G)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; : &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (use &lt;i&gt;case&lt;/i&gt; G)&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Having identified a complete set of classes and attributes, they should be described formally, accompanied by short comments, as follows. Such &lt;b&gt;class descriptions&lt;/b&gt; form an important part of the conceptual model.&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A ward in the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The unique name of the ward&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;type.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;Whether the ward is for male or female (M or F) patients&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The maximum number of patients that can be on the ward at any one time&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The number of free beds on the ward&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A patient in the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The sex (M or F) of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The date of birth of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The age of the patient in years&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A team of doctors&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;code.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The unique code of the team&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A doctor at the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A junior doctor at the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the junior doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The grade (1, 2 or 3) of the junior doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A consultant doctor at the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;b&gt;Attributes&lt;/b&gt;&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the consultant doctor&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;oucontent-source-reference&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.3.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teamcode.gif"
             fileSize="121"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.4 Generalisation relationships</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.4</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscaredfor.gif" length="810" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/heads.gif" length="1132" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsibilityof.gif" length="700" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_005i.jpg" length="16991" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;We have already discussed links between particular entities in the system domain, and briefly introduced the concept of an &lt;i&gt;association&lt;/i&gt; between two classes – a relationship whereby the instances of those classes might be linked in a way that is significant for the system domain.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq003&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 2&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Suggest a possible association between any two of the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , and give it a suitable name.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h3&gt;
&lt;p&gt;You might have suggested any of the following, possibly with slightly different names:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (or &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscaredfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; ;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (or &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;heads.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; ;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (or &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsibilityof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Note that associations are highlighted by use of the same font that is used for classes and attributes.&lt;/p&gt;&lt;p&gt;We will discuss associations in detail in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_4_1.html&quot;&gt;Section 4.1&lt;/a&gt; of this unit. But there is another, quite different, way in which classes can be related. In the context of the Hospital System the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; are each related to the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; by virtue of the fact that all junior doctors and all consultant doctors are also doctors. This is referred to as a &lt;b&gt;generalisation&lt;/b&gt; relationship between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and also between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;; that is, the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;i&gt;generalises&lt;/i&gt; each of the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;To put it another way, each of the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is a &lt;b&gt;specialisation&lt;/b&gt; of the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;; that is, each of the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;i&gt;specialises&lt;/i&gt; &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class is referred to as the &lt;b&gt;parent class&lt;/b&gt; or &lt;b&gt;superclass&lt;/b&gt; of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , with the latter two classes being called &lt;b&gt;child classes&lt;/b&gt; or &lt;b&gt;subclasses&lt;/b&gt; of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;You saw earlier in the unit that a conceptual class is represented in a class diagram by a rectangle containing the name of the class and (optionally) the names of its attributes. Figure 5 shows two ways of representing generalisation relationships in a class diagram.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_005&quot;&gt;&lt;img src=&quot;m256_1_005i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 5 Depicting the generalisation of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Either style of diagram is equally acceptable. In your own work you should produce whichever style is easier for you.&lt;/p&gt;&lt;p&gt;Note that the arrowhead points to the more general class. The orientation of the diagram is not significant: there is no need for a child class to appear &lt;i&gt;beneath&lt;/i&gt; its parent class in the class diagram, although it frequently does so in practice.&lt;/p&gt;&lt;p&gt;The implication of specialisation is that a specialised class has its attributes and associations defined in two ways: those that are common to all the objects of the more general class, and those that are specific to itself. When we identified attributes for the classes in the Hospital System in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_3_3.html#exe004&quot;&gt;Activity 4&lt;/a&gt;, we decided that all three of the classes representing doctors would require a name attribute. In view of what we have just said – that a specialised class has all the attributes of its parent class – this attribute can be removed from the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes, provided it is made clear in the model that both &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; specialise &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. In object-oriented parlance, the child classes in a generalisation relationship are said to &lt;b&gt;inherit&lt;/b&gt; properties from their parent class. So &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, for example, will have a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute inherited from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, as well as a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute, which is specific to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class.&lt;/p&gt;&lt;p&gt;You will see later that the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has an association with the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (representing the treatment by doctors of patients). &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; will also inherit this association. This is appropriate since, for example, the &lt;i&gt;List Patient's Treatment&lt;/i&gt; use case for the Hospital System specifies that the system must be able to list the names of doctors who have treated a patient. It does not specify a particular kind of doctor: those listed may well include both junior doctors and a consultant doctor. This relationship between doctors and patients really means that there may be links between junior doctors and patients, and between consultant doctors and patients.&lt;/p&gt;&lt;p&gt;In deciding whether a generalisation relationship is appropriate, it is necessary to consider the kind of entity each class is modelling as well as any common properties and relationships. For example, a ward has a name, but a ward is clearly not a kind of doctor! An appropriate generalisation relationship is one in which it is possible to use a real-world entity represented by an instance of the child class in place of a real-world entity represented by an object of its parent class. This property, in which an instance of one class can be substituted for an instance of another, is known as &lt;b&gt;substitutability.&lt;/b&gt; Thus in the statement &amp;#x2018;Each doctor is in exactly one team’, &amp;#x2018;junior doctor’ can be substituted for &amp;#x2018;doctor’.&lt;/p&gt;&lt;p&gt;(It is important to recognise that identifying a generalisation relationship at the conceptual level (i.e. in the conceptual model) does not necessarily mean that the developers are committed to creating a similar inheritance hierarchy at implementation.)&lt;/p&gt;&lt;p&gt;Here are the modified class descriptions for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class and its subclasses. Note the inclusion of comments to indicate the generalisation relationship.&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl002&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A doctor at the hospital. Generalises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A junior doctor at the hospital. Specialises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The grade (1, 2 or 3) of the junior doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A consultant doctor at the hospital. Specialises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;oucontent-source-reference&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.4</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscaredfor.gif"
             fileSize="810"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/heads.gif"
             fileSize="1132"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsibilityof.gif"
             fileSize="700"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_005i.jpg"
             fileSize="16991"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.5 Abstract classes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.5</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/abstract.gif" length="681" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_006i.jpg" length="16228" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_007i.jpg" length="16058" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif" length="160" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif" length="747" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif" length="173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif" length="818" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif" length="108" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg" length="14937" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif" length="114" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif" length="1196" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif" length="76" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif" length="224" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif" length="868" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif" length="211" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif" length="162" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif" length="1040" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif" length="1139" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe005&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 5&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Read the following extract from the requirements for the Hospital System:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo002&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each team is headed by a consultant doctor who is the only consultant doctor in the team; the rest of the team are all junior doctors, at least one of whom must be at grade 1. Each doctor is in exactly one team.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;What can you infer from this extract about &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;Because every doctor is in a team, and the only doctors in a team apart from the consultant are junior doctors, you can infer that each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is in fact an instance of either &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; or &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. In effect, there are no &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects as such&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;A class whose &amp;#x2018;instances’ are all actually instances of one of its subclasses is called an &lt;b&gt;abstract class.&lt;/b&gt; (The word &amp;#x2018;abstract’ is commonly used to refer to something which is intangible or not concrete.) You may already have met the concept of an abstract software class in your study of object-oriented programming. Java does not allow you to create any instances of abstract classes, since every &amp;#x2018;instance of the abstract class’ is actually an instance of one of its subclasses. Do not confuse an abstract class with a class representing &amp;#x2018;abstract entities’, which you met at the end of &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_2.html&quot;&gt;SubSection 3.2&lt;/a&gt;. An abstract class is a class which conceptually has no instances of its own, but only instances of its subclasses. A class representing abstract entities may have instances, but instances which represent intangible entities like novels.&lt;/p&gt;&lt;p&gt;In this unit we denote an abstract class in a class diagram by adding &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;abstract.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to the box representing the class, as shown in Figure 6. The &amp;lt;&amp;lt;&amp;#x2026;&amp;#x226B;&amp;gt;&amp;gt; notation in the UML is known as a &lt;b&gt;stereotype&lt;/b&gt;, which is a label giving additional information about some component of a model.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_006&quot;&gt;&lt;img src=&quot;m256_1_006i.jpg&quot; alt=&quot;Figure 6&quot; longdesc=&quot;x_m256_1_longdesc_id2795317.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 6 An abstract class with two subclasses&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2795317.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2795317&quot; id=&quot;back_longdesc_id2795317&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;By no means all parent classes are abstract. If a class is not shown as &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;abstract.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, it is assumed to be a &lt;b&gt;concrete class&lt;/b&gt;, i.e. it is intended that the class may have instances that are not instances of any of its subclasses.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe006&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 6&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider the three following excerpts from requirements documents. In each case decide whether any classes appear to be involved in a generalisation relationship. Where you decide that a generalisation relationship exists:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;make a sketch of the generalisation relationship, in either of the styles shown in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_4.html#fig001_005&quot;&gt;Figure 5&lt;/a&gt;. Your sketch should include a name for each class and should indicate which of the classes, if any, are abstract;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;suggest a set of attributes for each class involved in the generalisation relationship.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; A department store has a number of departments, each of which is headed by a manager, whose salary depends on their grade. Sales assistants are assigned to a particular department. For security purposes each sales assistant is provided with a personal code, which they need to enter into the till when they make a sale. Department managers do not conduct sales transactions, though they sometimes advise customers on products. All staff, including department managers and sales assistants, have unique employee numbers.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; A car-hire firm rents out cars and vans. The firm identifies the vehicles in its fleet by their registration numbers. Customers book rental vehicles via the company's website. When booking a car the customer needs to select a type of car, e.g. &amp;#x2018;family saloon’ or &amp;#x2018;luxury model’, whereas when booking a van the customer needs to specify the load-carrying capacity, e.g. &amp;#x2018;800 kg’ or &amp;#x2018;1.5 tonnes’.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; A university records details of all its lecturers and students, including their postal and email addresses. All lecturers must teach at least one module each year, and may not teach more than four. Students may choose to study up to six modules each year.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Here is our diagram.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_007&quot;&gt;&lt;img src=&quot;m256_1_007i.jpg&quot; alt=&quot;Figure 7&quot; longdesc=&quot;x_m256_1_longdesc_id2795454.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 7 Generalisation relationship representing staff in the department store&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2795454.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2795454&quot; id=&quot;back_longdesc_id2795454&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Figure 7 indicates a generalisation relationship with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;staffmember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; as the parent class, and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;departmentmanager.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;salesassistant.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; as its child classes. The final sentence in the extract implies that there are more categories of staff than just department managers and sales assistants. We do not know anything about these categories other than that they have an &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;employeenumber.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute, but it is reasonable to assume that they have some significance in the system domain. From the information provided, they can be modelled by the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;staffmember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class, which should therefore be a concrete class.&lt;/p&gt;
&lt;p&gt;Suitable attributes for the three classes would be:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;staffmember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;employeenumber.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;departmentmanager.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;salary.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;salesassistant.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;code.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Here is our diagram.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_008&quot;&gt;&lt;img src=&quot;m256_1_008i.jpg&quot; alt=&quot;Figure 8&quot; longdesc=&quot;x_m256_1_longdesc_id2795705.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 8 Generalisation relationship representing vehicles in the car-hire firm&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2795705.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2795705&quot; id=&quot;back_longdesc_id2795705&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;This description indicates a generalisation relationship with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;vehicle.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; as the parent class, and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;car.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;van.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; as child classes. The extract implies that all vehicles in the fleet are either cars or vans, so &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;vehicle.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; can be designated as an abstract class.&lt;/p&gt;
&lt;p&gt;Suitable attributes are as follows:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;vehicle.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;registrationnumber.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;car.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;type.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;van.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; Conceptually, there is no generalisation relationship between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;lecturer.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;; a student is not &amp;#x2018;a kind of’ lecturer, nor is a lecturer &amp;#x2018;a kind of’ student. The attributes of lecturers and students, as described in the extract, are identical, and both have a relationship with modules (though this relationship is not the same in each case – lecturers &lt;i&gt;teach&lt;/i&gt; modules and students &lt;i&gt;study&lt;/i&gt; them). However, the key point is that, conceptually, one class is not a generalisation of the other.&lt;/p&gt;
&lt;p&gt;Students and lecturers do have some things in common, and this might have led you to introduce a parent class for &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;lecturer.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes, called something like &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;universitymember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. The reason why we consider this to be an inappropriate model at this stage is explained below.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In the Hospital System we noted that both &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; are subclasses of the abstract class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Since &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is an abstract class, it will not have any instances, so it might be thought that we could do without a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class. The key reason why it should be retained is that it models a significant category of entities in the system domain.&lt;/p&gt;&lt;p&gt;The requirements document has significant things to say about doctors in general, for example:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo003&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each doctor is in exactly one team.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;And:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo004&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A patient may be treated by any number of doctors but they must all be in the team that cares for the patient. A doctor can treat any number of patients.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;As the aim is to model the system domain as closely as possible, it is entirely appropriate that a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class should be included. In contrast, the description of aspects of a university in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_5.html#exe006&quot;&gt;Activity 6&lt;/a&gt;(c) above says nothing about &amp;#x2018;members of the university’, a category which would include students and lecturers. So although students and lecturers have some shared attributes, there is no evidence to indicate that a grouping of these two categories is of significance to the system domain, and therefore no good reason for including a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;universitymember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class as a parent class of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;lecturer.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;As a further example, consider the system for booking badminton and squash courts described in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_2_3.html#saq002&quot;&gt;Self-assessment question 1&lt;/a&gt; (at the end of &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_2_3.html&quot;&gt;SubSection 2.3&lt;/a&gt;). Here is part of the system description:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo005&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A computer system is required for booking badminton and squash courts in a sports centre &amp;#x2026;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Suppose that classes identified as necessary for modelling the system domain include &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;squashcourt.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;badmintoncourt.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;booking.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Although only badminton courts and squash courts are explicitly referred to, these two entities are clearly kinds of court, and the description indicates that they have a shared significance in the system domain – the fact that they are bookable. It could therefore be appropriate to include an abstract parent class, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;court.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.5</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/abstract.gif"
             fileSize="681"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_006i.jpg"
             fileSize="16228"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_007i.jpg"
             fileSize="16058"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif"
             fileSize="160"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif"
             fileSize="747"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif"
             fileSize="173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif"
             fileSize="818"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif"
             fileSize="108"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg"
             fileSize="14937"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif"
             fileSize="114"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif"
             fileSize="1196"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif"
             fileSize="76"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif"
             fileSize="224"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif"
             fileSize="868"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif"
             fileSize="211"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif"
             fileSize="162"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif"
             fileSize="1040"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif"
             fileSize="1139"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>3.6 Class or attribute?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.6</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/institution.gif" length="759" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/institutionname.gif" length="675" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif" length="1196" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/typeofcar.gif" length="145" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif" length="160" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif" length="747" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif" length="173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif" length="818" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif" length="108" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg" length="14937" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif" length="114" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif" length="1196" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif" length="76" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif" length="224" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif" length="868" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif" length="211" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif" length="162" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif" length="1040" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif" length="1139" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;In determining suitable classes and attributes for the Hospital System, this section has presented a number of guidelines and techniques as if applying these were a fairly straightforward process:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;conduct a textual analysis;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;apply the rejection guidelines;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;complement this by considering categories of likely classes;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;identify the attributes;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;identify any generalisation relationships.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In practice, arriving at a set of appropriate classes and attributes is rarely so straightforward. Rather than working with a short, relatively simple description, you may find that a requirements document describes a system domain with much greater complexity of detail and meaning. One issue that arises time and time again is whether something is an entity or the &lt;i&gt;property&lt;/i&gt; of an entity. Should it be modelled as a class or an attribute?&lt;/p&gt;&lt;p&gt;This difficulty can be illustrated with reference to a couple of examples.&lt;/p&gt;&lt;p&gt;Suppose that during the requirements specification phase you had asked the Chief Physician what sort of detail is needed about doctors, and that she had replied:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo006&quot;&gt;&lt;blockquote&gt;&lt;p&gt;As well as a name, a doctor has a title; also, a record is kept of the institution where he or she qualified.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;It seems fairly obvious that title is just another attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, but how would you model the reference to institution? Would you introduce an &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;institution.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class or would it be sufficient, for example, to add an &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;institutionname.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class? This depends on what sort of information about institutions needs to be recorded. You would need to question the Chief Physician further. Suppose that in response to further questioning she added:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo007&quot;&gt;&lt;blockquote&gt;&lt;p&gt;I need to know how many of my junior doctors qualified at a particular institution, and the name of the Chief Physician at that institution.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;This indicates that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;institution.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is significant in its own right – it has properties – and will need to be included as a class in the model. On the other hand, her reply might have been:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo008&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Just the name of the institution will do. That will enable me to research any further details.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;In this case an &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;institutionname.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute in &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; would be all that was needed.&lt;/p&gt;&lt;p&gt;Now let's revisit the vehicle hire example in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_3_5.html#exe006&quot;&gt;6&lt;/a&gt;(b). The description contains the following statement:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo009&quot;&gt;&lt;blockquote&gt;&lt;p&gt;When booking a car the customer needs to select a type of car, e.g. &amp;#x2018;family saloon’ or &amp;#x2018;luxury model’ &amp;#x2026;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;From this information alone, it was reasonable to model &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;type.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; as an attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;car.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, but what you know about car hire might lead you to question whether the type of car might have a significance in its own right. Wouldn't the system need to record the properties of each type of car, such as its number of seats or hire cost? If so, then &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;typeofcar.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; might be a valid conceptual class. As an analyst you would need to question the client further about this.&lt;/p&gt;&lt;p&gt;One of the strengths of an object-oriented development approach such as the one adopted in this unit is that the activity of building a conceptual model forces the developer to examine the meaning of statements about the system domain. This iterative questioning is also indicative of a good analytical approach in general – an active exploration of meaning rather than a passive acceptance of &amp;#x2018;requirements’.&lt;/p&gt;&lt;p&gt;Having identified an initial set of classes and attributes for the Hospital System (and which of these classes might be generalisations of others, and/or abstract), it is now possible to move on and consider the associations between the classes. However, it is important to bear in mind that the process of developing a conceptual model is an iterative one, and that this set of conceptual classes is still provisional. It may be that the analysis of the associations between classes will require them to be revised.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=3.6</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/institution.gif"
             fileSize="759"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/institutionname.gif"
             fileSize="675"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif"
             fileSize="1196"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/typeofcar.gif"
             fileSize="145"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif"
             fileSize="160"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif"
             fileSize="747"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif"
             fileSize="173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif"
             fileSize="818"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif"
             fileSize="108"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg"
             fileSize="14937"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif"
             fileSize="114"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif"
             fileSize="1196"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif"
             fileSize="76"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif"
             fileSize="224"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif"
             fileSize="868"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif"
             fileSize="211"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif"
             fileSize="162"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif"
             fileSize="1040"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif"
             fileSize="1139"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>4.1 What is an association?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_009i.jpg" length="20999" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif" length="1027" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopiedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/typeofcar.gif" length="145" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif" length="160" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif" length="747" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif" length="173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif" length="818" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif" length="108" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg" length="14937" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif" length="114" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif" length="1196" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif" length="76" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif" length="224" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif" length="868" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif" length="211" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif" length="162" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif" length="1040" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif" length="1139" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;In the previous section you learnt how to identify conceptual classes and their attributes from a requirements document.&lt;/p&gt;&lt;p&gt;In this section you will:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;review what is meant by an association;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;learn how to identify associations.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Just as a class can be thought of as a set of objects that have common attributes and behaviour, so an &lt;i&gt;association&lt;/i&gt; between two classes is a set of links that have a common meaning. You have seen that a &lt;i&gt;link&lt;/i&gt; is a connection between a pair of objects – one from each class – that is significant for the system domain. For example, in the DVD Library System, each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may be linked to a number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, with each link between a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object representing a connection between a film and a DVD. The situation at a particular point in time can be illustrated by an object diagram, such as the one in Figure 9.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_009&quot;&gt;&lt;img src=&quot;m256_1_009i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 9 Object diagram illustrating links between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The links in Figure 9 each model the fact that the particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object at one end of the link represents a DVD which &amp;#x2018;is a copy of’ the film represented by the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object at the other end. So these links are said to be instances of an association that we might call &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, which exists between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;As with classes and attributes, the name given to an association should be a single word and should give an indication of the meaning of the association. The usual convention is for association names to start with a lower-case letter. Note that the name of an association does not imply anything about its direction. This means that naming the above association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopiedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (meaning a film is copied by a DVD) would have been just as valid as naming it &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (meaning a DVD is a copy of a film).&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_009i.jpg"
             fileSize="20999"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif"
             fileSize="1027"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopiedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/typeofcar.gif"
             fileSize="145"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffmember.gif"
             fileSize="160"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/departmentmanager.gif"
             fileSize="747"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salesassistant.gif"
             fileSize="173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/employeenumber.gif"
             fileSize="818"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/salary.gif"
             fileSize="108"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_008i.jpg"
             fileSize="14937"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/vehicle.gif"
             fileSize="114"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/car.gif"
             fileSize="1196"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/van.gif"
             fileSize="76"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registrationnumber.gif"
             fileSize="224"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/lecturer.gif"
             fileSize="868"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/universitymember.gif"
             fileSize="211"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif"
             fileSize="162"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif"
             fileSize="1040"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif"
             fileSize="1139"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>4.2 Identifying associations</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;In practice, the identification of associations often proceeds in parallel with the identification of classes. When you are considering a possible class, it is also natural to think about the connections that the entities it represents might have with other entities in the system domain.&lt;/p&gt;&lt;p&gt;However, as with classes, textual analysis can also help to identify associations. Just as nouns and noun phrases can suggest candidate classes, so the grammatical structures that connect these nouns and noun phrases in the text of a requirements document can suggest likely associations. As an example, here again is the requirements document for the DVD Library System. We have started our search for suitable associations by first highlighting the nouns and noun phrases that correspond to the conceptual classes which have already been identified (by showing them in bold italic font), and we have then underlined any grammatical structures that connect these classes.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>4.2.1 System domain</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;The DVD Library holds &lt;b&gt;
&lt;i&gt;DVDs&lt;/i&gt;
&lt;/b&gt;
of a number of
&lt;b&gt;
&lt;i&gt;films&lt;/i&gt;&lt;/b&gt;. It may have any number of &lt;b&gt;
&lt;i&gt;copies&lt;/i&gt;
&lt;/b&gt;
of each
&lt;b&gt;
&lt;i&gt;film&lt;/i&gt;.&lt;/b&gt; The system should, for each &lt;b&gt;
&lt;i&gt;film&lt;/i&gt;
&lt;/b&gt;, hold the film's title; no two &lt;b&gt;
&lt;i&gt;films&lt;/i&gt;
&lt;/b&gt; have the same title.&lt;/p&gt;&lt;p&gt;A &lt;b&gt;
&lt;i&gt;library member&lt;/i&gt;
&lt;/b&gt;
can borrow any &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;
&lt;/b&gt;
of a
&lt;b&gt;
&lt;i&gt;film&lt;/i&gt;
&lt;/b&gt; that is not currently on
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;.&lt;/b&gt; However, no &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt;
can have more than six &lt;b&gt;
&lt;i&gt;DVDs&lt;/i&gt;&lt;/b&gt; 
on 
&lt;b&gt;&lt;i&gt;loan&lt;/i&gt;
&lt;/b&gt; at once. A borrowed &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;
&lt;/b&gt; must be returned within three days. When a &lt;b&gt;
&lt;i&gt;library member&lt;/i&gt;
&lt;/b&gt;
returns a &lt;b&gt;
&lt;i&gt;DVD it&lt;/i&gt;
&lt;/b&gt; immediately becomes available for
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;
&lt;/b&gt; to other &lt;b&gt;
&lt;i&gt;members&lt;/i&gt;.&lt;/b&gt;
&lt;/p&gt;&lt;p&gt;Each &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;
&lt;/b&gt; has a unique identifying number.&lt;/p&gt;&lt;p&gt;Each &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt; of the library has a unique membership number; the system also holds each member's name.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>4.2.2 Use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_010i.jpg" length="11286" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif" length="1027" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isto.gif" length="1122" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif" length="830" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_011i.jpg" length="15736" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif" length="1202" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_012i.jpg" length="40065" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif" length="162" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif" length="1040" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif" length="1139" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;The DVD Library System will provide support to the library by enabling the library staff to do the following:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;A&lt;/b&gt;: &lt;b&gt; Get Number Available&lt;/b&gt;. The staff member identifies the &lt;b&gt;
&lt;i&gt;film&lt;/i&gt;.&lt;/b&gt; The system displays the number of &lt;b&gt;
&lt;i&gt;copies&lt;/i&gt;
&lt;/b&gt; available.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;B&lt;/b&gt;: &lt;b&gt;List Films&lt;/b&gt;. The staff member identifies the &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;.&lt;/b&gt; The system displays a list of the film titles and return dates for each &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;
&lt;/b&gt; that the &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt;
has on
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;.&lt;/b&gt;
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;C&lt;/b&gt;: &lt;b&gt;Borrow DVD&lt;/b&gt;. The staff member identifies the &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;
&lt;/b&gt; and the &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt; who is borrowing
&lt;b&gt;
&lt;i&gt;it&lt;/i&gt;.&lt;/b&gt; The system records the fact that this &lt;b&gt;
&lt;i&gt;copy&lt;/i&gt;
&lt;/b&gt;
of the
&lt;b&gt;
&lt;i&gt;film&lt;/i&gt;
&lt;/b&gt;
is no longer available for
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;&lt;/b&gt;, that &lt;b&gt;
&lt;i&gt;it&lt;/i&gt;
&lt;/b&gt;
is on
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt; to&lt;/b&gt; the &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt; identified, and the date on which &lt;b&gt;
&lt;i&gt;it&lt;/i&gt;
&lt;/b&gt; was borrowed.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;D&lt;/b&gt;: &lt;b&gt;Return DVD&lt;/b&gt;. The staff member identifies the &lt;b&gt;
&lt;i&gt;DVD&lt;/i&gt;.&lt;/b&gt; The system records the fact that this &lt;b&gt;
&lt;i&gt;copy&lt;/i&gt;
&lt;/b&gt;
of the
&lt;b&gt;
&lt;i&gt;film&lt;/i&gt;
&lt;/b&gt; is now available for &lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;
&lt;/b&gt; and that &lt;b&gt;
&lt;i&gt;it&lt;/i&gt;
&lt;/b&gt;
is no longer on
&lt;b&gt;
&lt;i&gt;loan&lt;/i&gt;
&lt;/b&gt; to the &lt;b&gt;
&lt;i&gt;member&lt;/i&gt;
&lt;/b&gt; who returned &lt;b&gt;
&lt;i&gt;it&lt;/i&gt;.&lt;/b&gt;
&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Concentrating on the nouns which represent classes allows us to disregard relationships that involve other aspects of the system, such as attributes, general behaviour and user interface, or entities outside the scope of the system. Here are some examples of the sorts of thing that can be ruled out:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;relationships involving classes and their attributes, e.g. &amp;#x2018;films have title’;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;relationships describing the behaviour of the system, e.g. &amp;#x2018;system displays number of copies';&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Relationships involving entities outside the scope of the system, e.g. &amp;#x2018;library holds DVDs’, &amp;#x2018;staff member identifies member’.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Remembering that &amp;#x2018;copy’ is a synonym for &amp;#x2018;DVD’, underlined phrases such as&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;b&gt;DVDs&lt;/b&gt;
of a number of
&lt;b&gt;films&lt;/b&gt;
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;copies&lt;/b&gt; of each &lt;b&gt;film&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;suggest an association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; representing the fact that a DVD is a copy of a film.&lt;/p&gt;&lt;p&gt;The situation involving members, DVDs and loans is a little more complicated. Here are some of the relevant phrases.&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;library member&lt;/b&gt; can borrow &lt;b&gt;&amp;#x2026; DVD&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;library member &lt;/b&gt;returns &lt;b&gt;&amp;#x2026; DVD&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;copy &amp;#x2026; &lt;/b&gt;is on &lt;b&gt;loan&lt;/b&gt; to the &lt;b&gt;member&lt;/b&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These might initially appear to indicate an association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, as in the following class diagram.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_010&quot;&gt;&lt;img src=&quot;m256_1_010i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 10 Possible association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;However, the dates on which a loan (or borrowing) is issued and is due for return also need to be modelled, and in this unit associations do not have attributes. This is why we decided to introduce a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class. Returning to the phrases above Figure 10, you can see that both members and DVDs (copies) are associated with loans: a loan is to a member and consists of a DVD. So we need two additional associations, giving us three in all:&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consistsof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These associations are illustrated in the class diagram in Figure 11.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_011&quot;&gt;&lt;img src=&quot;m256_1_011i.jpg&quot; alt=&quot;Figure 11&quot; longdesc=&quot;x_m256_1_longdesc_id2797820.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 11 Preliminary class diagram for the DVD Library System&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2797820.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2797820&quot; id=&quot;back_longdesc_id2797820&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The phrases linking entities which correspond to the classes often do more than just suggest the existence of an association; for example, phrases like &amp;#x2018;no member can have more than six DVDs on loan at once’ give us information about the number of links that are possible between an object of one class and objects of an associated class at any given time. We will return to this in the next subsection.&lt;/p&gt;&lt;p&gt;The next activity asks you to apply your new skills of identifying associations to the Hospital System.&lt;/p&gt;&lt;p&gt;The requirements document for the Hospital System is set out in the PDF document below. You will need to refer to this in order to complete Activity 7.&lt;/p&gt;&lt;p&gt;Click 'View document' to open Hospital requirements&lt;/p&gt;&lt;div id=&quot;pdf001&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe007&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 7&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Conduct a textual analysis of the requirements document for the Hospital System and draw up a list of possible associations. Remember that you are only looking for likely associations that involve the conceptual classes that have been identified: 
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. (You might want to refer back to Self-assessment question 2 in Subsection 3.4, where several of the required associations have already been identified).&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;Our list of associations is as follows. In each case we have added, in parentheses, a quote from the requirements document which supports the need for this association.&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (’&amp;#x2026; wards, each of which may&amp;#x2026; have on it one or more patients’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (&amp;#x2018;doctors &amp;#x2026; are organised into teams’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (&amp;#x2018;Each team is headed by a consultant doctor’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (&amp;#x2018;patient&amp;#x2026; is under the care of &amp;#x2026; team’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (&amp;#x2018;consultant &amp;#x2026; is responsible for&amp;#x2026; patient’)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (&amp;#x2018;A patient may be treated by &amp;#x2026; doctors’)&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The accompanying phrases indicate that all these associations appear to represent significant connections between entities in the system domain. But as with other aspects of the analysis process, identifying associations is not an exact science, so do not worry if your list was not the same as ours. At the very least, some of the names you have chosen will probably differ (though they should still be meaningful).&lt;/p&gt;&lt;p&gt;It is now possible to produce a class diagram (Figure 12) showing the set of classes and associations identified for modelling the Hospital System requirements. The diagram is not yet complete, as it still requires some additional items of information.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_012&quot;&gt;&lt;img src=&quot;m256_1_012i.jpg&quot; alt=&quot;Figure 12&quot; longdesc=&quot;x_m256_1_longdesc_id2798320.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 12 An incomplete class diagram for the Hospital System&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2798320.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2798320&quot; id=&quot;back_longdesc_id2798320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_010i.jpg"
             fileSize="11286"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif"
             fileSize="1027"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isto.gif"
             fileSize="1122"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif"
             fileSize="830"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_011i.jpg"
             fileSize="15736"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif"
             fileSize="1202"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_012i.jpg"
             fileSize="40065"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif"
             fileSize="162"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif"
             fileSize="1040"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif"
             fileSize="1139"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>4.2.3 Associations and generalisation relationships</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.3</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_011i.jpg" length="15736" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif" length="1202" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_012i.jpg" length="40065" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif" length="162" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif" length="1040" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif" length="1139" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Before moving on, it is worth considering briefly the implications of generalisation relationships for associations.&lt;/p&gt;&lt;p&gt;As with attributes, any associations involving a parent class will be inherited by its child class(es). Figure 12 shows two associations involving &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; connecting it to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; connecting it to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. The meaning of these associations is that &lt;i&gt;any&lt;/i&gt; doctor (whether a junior doctor or a consultant doctor) &lt;i&gt;may&lt;/i&gt; be linked to a team or to patients or both.&lt;/p&gt;&lt;p&gt;Notice that by including the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class the structure is simplified. If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; were omitted, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; would need to be replaced by two associations, one between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , and the other between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;; there would be similar &amp;#x2018;duplication’ of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association.&lt;/p&gt;&lt;p&gt;Because &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; inherits an association with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; from its parent class, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, there are two different associations between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. This is fine, but it does have some implications for the consistency of the model, in that a team must contain the consultant doctor that heads it. We will return to this later in the unit.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.2.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_011i.jpg"
             fileSize="15736"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif"
             fileSize="1202"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_012i.jpg"
             fileSize="40065"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/squashcourt.gif"
             fileSize="162"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/badmintoncourt.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booking.gif"
             fileSize="1040"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/court.gif"
             fileSize="1139"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>4.3 Multiplicity</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.3</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member1.gif" length="116" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member2.gif" length="115" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member3.gif" length="115" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_013i.jpg" length="35926" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/b.gif" length="2278" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/a.gif" length="2121" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutors.gif" length="99" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_014i.jpg" length="14531" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isto.gif" length="1122" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/06.gif" length="951" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/1.gif" length="1846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_015i.jpg" length="19002" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif" length="830" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/01.gif" length="878" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif" length="1027" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_016i.jpg" length="21383" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/26.gif" length="832" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/book.gif" length="1279" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/purchases.gif" length="137" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_017i.jpg" length="18134" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isenrolledon.gif" length="799" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teaches.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/course.gif" length="993" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;When discussing the associations for the DVD Library System, we noted that a requirements document frequently provides information about the number of links that are possible between objects of particular classes. For example, the requirements stated that &amp;#x2018;no &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; can have more than six DVDs on loan at once’. For the sake of simplicity we will assume that a loan involves a single DVD. Therefore, in terms of the model, this means that no &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may have links to more than six &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects at any one time (though it may have fewer such links).&lt;/p&gt;&lt;p&gt;To illustrate this, the object diagram in Figure 13 represents a situation where there are three members of the library. At the point in time depicted in the diagram, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has three DVDs on loan, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has no current loans, and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has one DVD on loan.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_013&quot;&gt;&lt;img src=&quot;m256_1_013i.jpg&quot; alt=&quot;Figure 13&quot; longdesc=&quot;x_m256_1_longdesc_id2798796.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 13 Object diagram showing isToand isOf links&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2798796.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2798796&quot; id=&quot;back_longdesc_id2798796&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The number of instances of a class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; that can be linked by a particular association to a &lt;i&gt;single&lt;/i&gt; instance of the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the other end of the association is known as the &lt;b&gt;multiplicity&lt;/b&gt; of the association at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end. For example, suppose that each student on a particular course must have a single tutor, and that each tutor must be assigned to 20 students. The multiplicities of a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutors.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; would be shown as in Figure 14.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_014&quot;&gt;&lt;img src=&quot;m256_1_014i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 14 Multiplicities for a&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutors.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Figure 14 tells us that each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object must be linked to exactly one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and that each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object must be linked to 20 &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects.&lt;/p&gt;&lt;p&gt;The multiplicity may be a single figure or a range. For example, a member of the DVD Library may, at any point in time, have any number of loans between 0 and 6. That is, the multiplicity of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is &amp;#x2018;zero to six’ and would be indicated on the class diagram by writing &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;06.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; on the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association next to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class. Although a member may have a number of loans at a particular time, each loan will be linked to only a single member, so the multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (sometimes expressed as &amp;#x2018;exactly one’). Figure 15 shows the class diagram for the DVD Library System with the multiplicities for &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; added.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_015&quot;&gt;&lt;img src=&quot;m256_1_015i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 15 Class diagram for the DVD Library System showing multiplicities for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isto.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association&lt;/p&gt;&lt;p/&gt;&lt;p&gt;Now consider the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consistsof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association. A particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object will always be linked to a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. The multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consistsof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is therefore &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end. However, a DVD may or may not be on loan, so a particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to zero or one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects and the multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consistsof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is therefore &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;01.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (described as &amp;#x2018;zero or one’).&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq004&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 3&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;What is the multiplicity of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h3&gt;
&lt;p&gt;A particular DVD is a copy of a single film, so the multiplicity at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;What about the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;iscopyof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; ? The requirements state that the library &amp;#x2018;&amp;#x2026; may have any number of copies of each film’. In other words, there may be no copies at all, but there is no upper limit. Such a multiplicity is expressed as &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (described as &amp;#x2018;zero or more’), where * indicates that there are no upper restrictions on the number. Figure 16 shows the class diagram for the system with all the multiplicities added.&lt;/p&gt;&lt;p&gt;In this context, the * is usually referred to as &amp;#x2018;star’.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_016&quot;&gt;&lt;img src=&quot;m256_1_016i.jpg&quot; alt=&quot;Figure 16&quot; longdesc=&quot;x_m256_1_longdesc_id2799572.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 16 Class diagram for the DVD Library System, showing multiplicities for all associations&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2799572.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2799572&quot; id=&quot;back_longdesc_id2799572&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Multiplicity ranges do not need to start with 0. A statement such as &amp;#x2018;Members of a book club must choose at least two books from the titles on offer each quarter, but may purchase up to six books at the offer price’ would give rise to a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;26.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (described as &amp;#x2018;two to six’) at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;book.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;purchases.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;book.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Multiplicities are always written with the smaller number in the range first.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq005&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 4&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Use Figure 17 (below) to answer the following questions.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; How many courses can a student take?&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; How many tutors teach each course?&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; How many students can enrol for a course?&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; How many courses can each tutor teach?&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_017&quot;&gt;&lt;img src=&quot;m256_1_017i.jpg&quot; alt=&quot;Figure 17&quot; longdesc=&quot;x_m256_1_longdesc_id2799740.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 17 Class diagram representing students, courses and tutors&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2799740.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2799740&quot; id=&quot;back_longdesc_id2799740&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h3&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Between 1 and 4, inclusive (i.e. 1, 2, 3 or 4).&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Exactly 1.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; Zero or more (i.e. any number).&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; Between 1 and 3, inclusive (i.e. 1, 2 or 3).&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The multiplicities of an association answer important questions about the relationship between the two classes involved. The answers to these questions will play a significant part in later phases of the software development process. Questions which are of particular relevance in this respect are:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;Must an instance of one class be linked to at least one instance of the class at the other end of the association, or is it possible that, at a certain point in time, no such links exist? For example, every &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object in the DVD Library System must be linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object (a multiplicity of 1), whereas a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may or may not be linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object at a particular point in time (a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;01.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;May an instance of one class be linked to more than one instance of the class at the other end of the association? For example, a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is always linked to a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object (a multiplicity of 1) at any one time, whereas a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may be linked to 0, 1 or more &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects (a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Is there an upper limit to the number of possible links that may exist from an object of one class to objects of the class at the other end of the association? For example, a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may have at most six links to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq006&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 5&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Using &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_4_3.html#fig001_017&quot;&gt;Figure 17&lt;/a&gt; for reference, describe in words the multiplicities at each end of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isenrolledon.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;teaches.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h3&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isenrolledon.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has a multiplicity of &lt;i&gt;zero or more&lt;/i&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end and &lt;i&gt;one to four&lt;/i&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;course.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end.&lt;/p&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;teaches.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has a multiplicity of &lt;i&gt;one to three&lt;/i&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;course.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end and &lt;i&gt;one&lt;/i&gt; (or &lt;i&gt;exactly one)&lt;/i&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member1.gif"
             fileSize="116"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member2.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member3.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_013i.jpg"
             fileSize="35926"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/b.gif"
             fileSize="2278"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/a.gif"
             fileSize="2121"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutors.gif"
             fileSize="99"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_014i.jpg"
             fileSize="14531"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isto.gif"
             fileSize="1122"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/06.gif"
             fileSize="951"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/1.gif"
             fileSize="1846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_015i.jpg"
             fileSize="19002"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif"
             fileSize="830"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/01.gif"
             fileSize="878"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/iscopyof.gif"
             fileSize="1027"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_016i.jpg"
             fileSize="21383"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/26.gif"
             fileSize="832"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/book.gif"
             fileSize="1279"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/purchases.gif"
             fileSize="137"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_017i.jpg"
             fileSize="18134"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isenrolledon.gif"
             fileSize="799"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teaches.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/course.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>4.3.1 Multiplicities for the Hospital System</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.3.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif" length="1202" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_018i.jpg" length="40551" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/015.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_019i.jpg" length="42250" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient5.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor3.gif" length="973" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif" length="830" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_016i.jpg" length="21383" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/26.gif" length="832" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/book.gif" length="1279" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/purchases.gif" length="137" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_017i.jpg" length="18134" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isenrolledon.gif" length="799" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teaches.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/course.gif" length="993" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;Consider first the association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Here are some extracts from the requirements document:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;A patient may be treated by any number of doctors &amp;#x2026;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;A doctor can treat any number of patients.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The first extract indicates that there is no upper limit on the number of doctors who have treated a patient. It is also possible that a patient has not been treated by any doctors; they may only just have been admitted to the hospital, for example. So the multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;The second extract states that a doctor can treat any number of patients. Allowing for the situation where a doctor has not yet treated any patients, the multiplicity at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is also &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Now consider the association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; . Here are some extracts from the requirements document:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;In the hospital, there are a number of wards, each of which may be empty or have on it one or more patients.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Each patient is on a single ward &amp;#x2026;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The first extract states that a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object may be linked to 0, 1 or more &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, indicating a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of the association. The second says that each patient is on one ward. Thus each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to exactly one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. The multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end is therefore 1.&lt;/p&gt;&lt;p&gt;The class diagram in Figure 18 shows the multiplicities for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_018&quot;&gt;&lt;img src=&quot;m256_1_018i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 18 Multiplicities for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations.&lt;/p&gt;&lt;p&gt;You may have wondered why the multiplicities for &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; do not take account of the statement &amp;#x2018;Every ward has a fixed capacity, which is the maximum number of patients that can be on it at any one time &amp;#x2026;’ so that in practice no ward can have the unlimited number of patients indicated by a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. This is because an association represents &lt;i&gt;all&lt;/i&gt; the links that are its instances. Different wards have different capacities, so it would not be possible for the multiplicity at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association to specify an upper limit that would apply to all &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects. If the requirements had stated, for example, that all wards have a capacity of 15, we could have dispensed with the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute in &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and modelled the limit by a multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;015.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hason.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;In general, if you do not know the upper limit for a multiplicity, then the best you can do is assign an upper limit of *. In practice this is likely to indicate an unknown – and possibly variable – upper limit rather than an infinite one.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe008&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 8&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Make a sketch of the diagram in Figure 18, and add the multiplicities for the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;You will need to refer to the requirements document for the Hospital System: click on the 'View document' link below.&lt;/p&gt;&lt;div id=&quot;pdf003&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;
Figure 19 shows our class diagram.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_019&quot;&gt;&lt;img src=&quot;m256_1_019i.jpg&quot; alt=&quot;Figure 19&quot; longdesc=&quot;x_m256_1_longdesc_id2800889.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 19 Class diagram for the Hospital System, showing multiplicities&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2800889.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2800889&quot; id=&quot;back_longdesc_id2800889&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Here is a brief justification of our solution, including relevant extracts from the requirements document:&lt;/p&gt;
&lt;p/&gt;
&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each team is headed by a consultant doctor who is &amp;#x2026; in the team.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Each doctor is in exactly one team.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Remember that consultant doctors are a kind of doctor, so that it is possible to deduce from the second extract that &amp;#x2018;Each consultant doctor is in exactly one team.’ Because the first extract specifies that a team must be headed by a consultant doctor who is in that team, it can also be deduced that each consultant doctor can only head one team.&lt;/p&gt;
&lt;p/&gt;&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each team is headed by a consultant doctor&amp;#x2026; in the team.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;The rest of the team are all junior doctors, at least one of whom must be at grade 1.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Each doctor is in exactly one team.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The first two extracts indicates that each team must contain at least two doctors – the consultant doctor that heads it, and at least one junior doctor at grade 1, so at least two in all.&lt;/p&gt;
&lt;p&gt;The third extract provides the multiplicity at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end.&lt;/p&gt;
&lt;p/&gt;&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each patient is &amp;#x2026; under the care of a single team of doctors &amp;#x2026; .&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This tells us that each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object will be linked to exactly one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. There is no information on the number of patients that can be cared for by a team, so we use * for the upper limit at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end. Since there is no information to the contrary, we assume that it is also possible that there are times when a team has no patients under its care, for example when a team is newly constituted, or when all the patients under its care have been discharged.&lt;/p&gt;
&lt;p/&gt;&lt;p&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; :&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&amp;#x2026;the consultant who heads that team is responsible for the patient.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This is similar to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association. Each patient is the responsibility of a single consultant doctor, and each consultant doctor may have responsibility for zero, one or more patients.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe009&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 9&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Suppose that a particular patient, represented as the object called &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, has been treated by a particular doctor, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, on three different occasions. In an object diagram modelling the system domain at some point after these three treatments have taken place, how many links would be needed between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;? &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; may be a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; Object, or it may be a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. The actual class is irrelevant here: any kind of doctor may be involved in treating a patient.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;There would be only one link. Although a single &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object can be linked to zero or more &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, there can, for a particular association, only ever be a single link between two particular objects. As far as the conceptual model is concerned, either a particular doctor has treated a particular patient or not. Multiple treatments are not recorded. (We will return to this in the next section.)&lt;/p&gt;
&lt;p&gt;A multiplicity specifies the number of &lt;i&gt;different&lt;/i&gt; instances of a class that can be linked to a single instance of an associated class, not the number of links between particular instances of two classes. However, it &lt;i&gt;is&lt;/i&gt; possible to have two or more &lt;i&gt;associations&lt;/i&gt; between two classes, as in the case of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consistsof.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. This might result in there being two links between two objects.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In this section you have learnt various techniques for identifying associations between classes, which represent the links between the objects of these classes. You also learnt about the important role of multiplicities, and how to identify and specify them.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=4.3.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hason.gif"
             fileSize="1202"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_018i.jpg"
             fileSize="40551"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/015.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_019i.jpg"
             fileSize="42250"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient5.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor3.gif"
             fileSize="973"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consistsof.gif"
             fileSize="830"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_016i.jpg"
             fileSize="21383"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/26.gif"
             fileSize="832"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/book.gif"
             fileSize="1279"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/purchases.gif"
             fileSize="137"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_017i.jpg"
             fileSize="18134"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isenrolledon.gif"
             fileSize="799"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/teaches.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/course.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>5.1 Criteria for modelling events</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=5.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/treatment.gif" length="133" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_020i.jpg" length="37298" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd6.gif" length="1351" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member3.gif" length="115" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan17.gif" length="1043" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor3.gif" length="973" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient5.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_021i.jpg" length="40423" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif" length="145" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif" length="927" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif" length="1300" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif" length="1209" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif" length="1465" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif" length="118" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_022i.jpg" length="35515" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ispartnerin.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif" length="113" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/participant.gif" length="153" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif" length="985" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_023i.jpg" length="31544" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/020.gif" length="1840" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registers.gif" length="134" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;In the discussion of classes earlier in the unit, we gave events as one category of &amp;#x2018;thing’ that could be modelled by classes. You saw an example of this in the DVD Library System, where the loan of a DVD by a library member was modelled as a Loan class connected to both the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes by associations. You have also seen examples where an event is modelled by an association. For example, we chose to model the treatment of a patient by a doctor in the Hospital System as a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes.&lt;/p&gt;&lt;p&gt;In this section, you will discover some criteria for deciding whether an event should be modelled as a class or as an association.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq007&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Self-assessment question 6&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Why did we choose to model the loan of a DVD as a class, but the treatment of a patient as an association?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-answer&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Answer&lt;/h4&gt;
&lt;p&gt;In the case of the loan event, there were requirements for additional information to be associated with each loan: the date on which the loan was made, and the return date. By modelling &amp;#x2018;loan’ as a class, we were able to model these additional requirements by including appropriate attributes.&lt;/p&gt;
&lt;p&gt;In the case of the treatment of a patient, there was no requirement to record or provide any information specific to a treatment, other than the patient and doctor involved. If details of each treatment had been needed, then a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class would have been a better choice.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The object diagrams in Figure 20, below, illustrate the examples that were the subject of SAQ 7.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_020&quot;&gt;&lt;img src=&quot;m256_1_020i.jpg&quot; alt=&quot;Figure 20&quot; longdesc=&quot;x_m256_1_longdesc_id2801572.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 20 Object diagrams representing loans and treatments&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2801572.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2801572&quot; id=&quot;back_longdesc_id2801572&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Figure 20(a) shows that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is on loan to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. If, at some future date, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; borrowed &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; again, the loan involving these two objects would be recorded by a different &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan17.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Figure 20(b) shows only that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has treated &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. We know nothing about that treatment, or indeed whether the doctor has treated the patient more than once. In the solution to Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_4_3_1.html#exe009&quot;&gt;9&lt;/a&gt; in the previous section, we said that it was not possible, with our chosen model, to record multiple treatments of a particular patient, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, by a particular doctor, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. If we needed to do this, we would have chosen to model the treatment of a patient by a doctor as a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class, each object of which would be linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. A class diagram and an object diagram for this possibility, showing the treatments of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , are given in Figure 21.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_021&quot;&gt;&lt;img src=&quot;m256_1_021i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 21 Modelling the treatments of a patient by a doctor with a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class&lt;/p&gt;&lt;p/&gt;&lt;p&gt;The class diagram (Figure 21(a)) shows that a doctor may provide any number of treatments, and that a patient may receive any number of treatments, but that each treatment involves exactly one doctor and one patient. The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class might have attributes to record information such as the date and nature of the treatment, or it might not. The object diagram (Figure 21(b)) shows that this model allows for multiple &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, each involving &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;The two example systems which form the basis of the next two exercises demonstrate circumstances in which events that do not have properties of their own are nevertheless modelled as classes. But before discussing these circumstances, we would like you to familiarise yourselves with the requirements of these two systems by completing their class diagrams. In completing the diagrams you will also reinforce your understanding of some of the ideas introduced in the unit so far.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe010&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 10&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Here is an excerpt from a requirements document for a Goat Breeding System.&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo010&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A farm needs to record information on the breeding of its goats during the season. The goats are organised into herds, with each goat belonging to a single herd, and a herd containing many goats. There are three sorts of goat: billy-goats (males), nanny-goats (females) and kids (which, since they do not mate in the current season, are not considered to be either billy-goats or nanny-goats). The farm needs to have a record of the mating behaviour of each nanny-goat and billy-goat during a particular season, and of the offspring which result. A billy-goat mates one or more times during the season, but only with nanny-goats that are in its own herd. A nanny-goat mates exactly once per season. A mating may produce several offspring (kids) or none. All kids remain in the same herd as their parents.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;The following classes have been identified as appropriate: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;nannygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;billygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;herd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;goat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;kid.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Notice that the class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; represents an event involving a nanny-goat, a billy-goat and (possibly) several kids.&lt;/p&gt;
&lt;p&gt;Use the above description to identify likely generalisation relationships, associations and multiplicities and draw the class diagram.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;Our class diagram is shown in Figure 22.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_022&quot;&gt;&lt;img src=&quot;m256_1_022i.jpg&quot; alt=&quot;Figure 22&quot; longdesc=&quot;x_m256_1_longdesc_id2802100.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 22 Class diagram for the GoatBreeding System&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2802100.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2802100&quot; id=&quot;back_longdesc_id2802100&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;You have almost certainly come up with different names for the associations. Incidentally, it's worth noting that there is no reason why you should not use the same name for two different associations – for example, you could have given the association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;nannygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; the same name as the association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;billygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ispartnerin.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. We have avoided the use of duplicate association names in this unit, as this would make our models more difficult to discuss.&lt;/p&gt;
&lt;p&gt;We have taken the view that a herd must contain at least two goats to exist.&lt;/p&gt;
&lt;p&gt;Note that the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;goat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class is abstract, as there are no goats per se, only billy-goats, nanny-goats and kids.&lt;/p&gt;
&lt;p&gt;Mating is an example of an event that is modelled by a class. We will return to this shortly.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe011&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 11&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Here is an extract from the requirements for a system used in organising an Open University day school, referred to as the Day School System.&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo011&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A region of the Open University needs to maintain information about a day school for M256. The day school consists of a number of sessions. Two types of participant, tutors and students, are involved in these sessions. The system must record the name and email address of each participant. Each session is taken by a single tutor, and each tutor must take at least one session, though some of the tutors will take a number of sessions. Students need to register for each session that they wish to attend. A maximum of 20 students can be catered for in each session. Once this limit is reached, no further students may register for that session. Only students who register for at least one session are recorded by the system. At each session a different booklet of exercises is used. Each booklet is written by a number of the tutors taking part in the day school, one of whom must be the tutor who is taking the session that uses the booklet.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;The following classes have been identified as appropriate: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;participant.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;booklet.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Use the above description to identify likely generalisation relationships, associations and multiplicities and draw the class diagram.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;Our class diagram is shown in Figure 23.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_023&quot;&gt;&lt;img src=&quot;m256_1_023i.jpg&quot; alt=&quot;Figure 23&quot; longdesc=&quot;x_m256_1_longdesc_id2802357.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 23 Class diagram for the Day School System&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2802357.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2802357&quot; id=&quot;back_longdesc_id2802357&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;During the period of organisation for the day school it is possible that no student has (yet) registered for a particular session; hence the multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;020.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;registers.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;A session is an example of an event modelled by a class.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In each of &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html#exe010&quot;&gt;Exercises 10&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html#exe011&quot;&gt;11&lt;/a&gt; we chose to model an event as a class – &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; in the Goat Breeding System and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; in the Day School System. But neither of these events has properties that need to be modelled as attributes.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe012&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 12&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Study the class diagrams for the Goat Breeding and Day School Systems. Can you identify any similarities in the ways in which the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes fit into their respective class diagrams?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; each have associations with &lt;i&gt;three&lt;/i&gt; distinct classes. &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  is associated with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;billygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;nannygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;kid.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;; &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is associated with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;booklet.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The two systems you have just explored illustrate a common situation – where an event involves three or more types of entity from the system domain. A single mating event in the GoatBreeding System involves a nanny-goat, a billy-goat and the offspring which result from that mating. An association between any two of the participant classes fails to capture this three-way relationship. In this unit an event that involves objects from more than two classes will always be modelled by a class, even if there are no properties associated with the event. Contrast this with the modelling of another event in the Day School System, a student registration. This involves only two classes – &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Furthermore, it has no properties of its own that need to be modelled as attributes. Registration is therefore modelled as a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;registers.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;What is really needed here is an association between &lt;i&gt;three&lt;/i&gt; classes, but as associations can involve only two classes, an event class is introduced to link all three classes.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=5.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/treatment.gif"
             fileSize="133"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_020i.jpg"
             fileSize="37298"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd6.gif"
             fileSize="1351"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member3.gif"
             fileSize="115"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan17.gif"
             fileSize="1043"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor3.gif"
             fileSize="973"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient5.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_021i.jpg"
             fileSize="40423"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif"
             fileSize="145"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif"
             fileSize="927"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif"
             fileSize="1300"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif"
             fileSize="1209"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif"
             fileSize="1465"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif"
             fileSize="118"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_022i.jpg"
             fileSize="35515"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ispartnerin.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif"
             fileSize="113"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/participant.gif"
             fileSize="153"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif"
             fileSize="985"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_023i.jpg"
             fileSize="31544"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/020.gif"
             fileSize="1840"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registers.gif"
             fileSize="134"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>5.2 Summary of criteria</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=5.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/treatment.gif" length="133" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/constituent.gif" length="751" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/committeemember.gif" length="735" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/guestspeaker.gif" length="799" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hasvisited.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/phoneconversation.gif" length="202" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/date.gif" length="1089" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issues.gif" length="973" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_024i.jpg" length="27100" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif" length="145" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif" length="927" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif" length="1300" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif" length="1209" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif" length="1465" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif" length="118" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_022i.jpg" length="35515" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ispartnerin.gif" length="746" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif" length="113" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/participant.gif" length="153" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif" length="985" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_023i.jpg" length="31544" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/020.gif" length="1840" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registers.gif" length="134" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;We will end this section by summarising the criteria to be considered when deciding whether an event is best represented by a class or an association.&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;Does the event have any properties whose values need to be recorded? For example, in the Hospital System, had there been a need to record the date of a patient's treatment or the medication that a treatment involved, we would have modelled treatment by a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class associated with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Does the event involve more than two other significant entities? For example, were nurses part of our system domain, a treatment might sometimes involve a nurse as well as the patient and the doctor. In that case too, a class would be necessary, since three objects would need to be linked rather than just two.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Do different occurrences of the event involving the same entities need to be recorded? For example, if there were a need to record each treatment of a given patient by a particular doctor, a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;treatment.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class would be appropriate, because an association only allows for one link between the same two objects.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Where none of these situations pertains – when an event involves instances of only two classes, has no significant properties of its own, and where it is not necessary to record multiple occurrences involving the same two entities – the event should normally be modelled as an association between the two classes.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe0133&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 13&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider the following excerpt from a requirements document for an Election Campaign System. Identify all the events in the description that should be represented in the conceptual model, decide which of them should be modelled by a class and which by an association, and give reasons for your decisions. Sketch a class diagram, excluding multiplicities.&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo012&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A system is required to model the organisation of an election campaign by a constituency political party. During the campaign, local activists carry out telephone canvassing and visit local community organisations from which the party hopes to gain support. The party records all the telephone calls and visits that have taken place. In the case of telephone calls the date of the call is recorded, together with a note of any issues mentioned by the constituent as likely to influence their voting behaviour. The party also organises a number of public meetings in different parts of the constituency. Each of these meetings is chaired by a member of the local committee, and involves at least two speakers, a local activist and a guest speaker selected from a panel drawn up by the national headquarters of the party.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;You may assume that the following classes have already been identified as necessary: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;localactivist.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;communitygroup.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;constituent.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;committeemember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;guestspeaker.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;The description mentions three relevant types of event – visits to local organisations, public meetings and telephone conversations.&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;The visits involve only two classes – &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;localactivist.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;communitygroup.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. There is no indication that specific information needs to be recorded about visits or that their number is significant, so it is appropriate to model them by a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hasvisited.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;localactivist.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;communitygroup.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Public meetings, on the other hand, involve instances of three other classes: &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;localactivist.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;committeemember.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;guestspeaker.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. It is therefore appropriate to model this event as a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;publicmeeting.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Telephone conversations between party activists and constituents involve only two classes, but we are told that certain details of the conversation – the date on which it took place and the issues raised by the constituent – are recorded. To model this, a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;phoneconversation.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class is needed, which will have two attributes, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;date.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issues.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;A class diagram for the system (excluding multiplicities) is given in Figure 24.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_024&quot;&gt;&lt;img src=&quot;m256_1_024i.jpg&quot; alt=&quot;Figure 24&quot; longdesc=&quot;x_m256_1_longdesc_id2803218.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 24 Class diagram for the Election Campaign System (excluding multiplicities)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2803218.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2803218&quot; id=&quot;back_longdesc_id2803218&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=5.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/treatment.gif"
             fileSize="133"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/constituent.gif"
             fileSize="751"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/committeemember.gif"
             fileSize="735"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/guestspeaker.gif"
             fileSize="799"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hasvisited.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/phoneconversation.gif"
             fileSize="202"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/date.gif"
             fileSize="1089"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issues.gif"
             fileSize="973"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_024i.jpg"
             fileSize="27100"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif"
             fileSize="145"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif"
             fileSize="927"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif"
             fileSize="1300"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif"
             fileSize="1209"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif"
             fileSize="1465"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif"
             fileSize="118"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_022i.jpg"
             fileSize="35515"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ispartnerin.gif"
             fileSize="746"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif"
             fileSize="113"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/participant.gif"
             fileSize="153"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif"
             fileSize="985"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_023i.jpg"
             fileSize="31544"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/020.gif"
             fileSize="1840"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/registers.gif"
             fileSize="134"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.1 What is an invariant?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/section3_4.pdf" length="85347" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_025i.jpg" length="30126" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif" length="155" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif" length="219" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg" length="14425" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg" length="38140" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;The aim in constructing a conceptual model is to capture all the relevant information about the system domain provided in the requirements document so that this model can form the basis for the structure of the system. To complete the process, there is one more component to add: invariants. In this section, you will learn:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;what is meant by an invariant;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;how to identify and express invariants.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;An &lt;b&gt;invariant&lt;/b&gt; is any condition on the objects of a conceptual model, their attribute values and links, which must hold for the requirements to be satisfied and the consistency of the model to be guaranteed. Such a condition represents a constraint on the real-world entities modelled (i.e. a constraint on the system domain).&lt;/p&gt;&lt;p&gt;We start by illustrating this concept with some examples from the Hospital System. You will find it easier to follow this discussion if you have the requirements document and the class diagram for the system in front of you. These can be found in Sections 3 and 4 of the PDF document below. &lt;/p&gt;&lt;p&gt;Click 'View document' link below to view section 3 and 4.&lt;/p&gt;&lt;div id=&quot;pdf004&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;section3_4.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Consider the following extracts from the requirements document for the system:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each patient is &amp;#x2026; under the care of a single team of doctors &amp;#x2026;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;A patient may be treated by any number of doctors but they must all be in the team that cares for the patient.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These extracts both imply invariants that must be true of our model at all times:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object must be linked to one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object – not zero, not more than one.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;All the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object must be linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We can express these two invariants more precisely as follows:&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to exactly one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object then any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is also linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object which is linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The first of these invariants imposes a condition on the &lt;i&gt;number of links&lt;/i&gt; that are allowable between objects of two classes. Fortunately, some invariants, such as those concerned with the numbers of links allowed between an object of one class and object(s) of an associated class, may be evident from the class diagram, and so they would not normally need to be expressed in words. For example, this first invariant is represented by the multiplicity of 1 at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association. However, other types of invariant cannot be shown using the notation used for class digrams here, and need to be included in the text which accompanies the diagram.&lt;/p&gt;&lt;p&gt;The second invariant above is one such example. It expresses a &lt;i&gt;dependency between links&lt;/i&gt; of more than one association.&lt;/p&gt;&lt;p&gt;We will shortly discuss invariants which impose other types of condition on objects, attributes and links, but we will first explore the second invariant a bit more closely, by considering, in Activity 14, how it imposes conditions on objects and links.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe014&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 14&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Figure 25 shows two object diagrams, each modelling part of the hospital system domain at a particular time. One of the diagrams depicts a combination of objects and links which is invalid with respect to the second invariant above. Which diagram is invalid and why? (You may assume that all relevant links are shown.)&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_025&quot;&gt;&lt;img src=&quot;m256_1_025i.jpg&quot; alt=&quot;Figure 25&quot; longdesc=&quot;x_m256_1_longdesc_id2803665.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 25 Object diagrams for the Hospital System, one of which depicts an invalid combination of objects and links&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2803665.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2803665&quot; id=&quot;back_longdesc_id2803665&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;Figure 25(a) is invalid. When a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (in this case a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) object are linked to each other, both must be linked to the same &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, according to the second invariant, above.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Now consider the following extract from the requirements document for the Hospital System:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo013&quot;&gt;&lt;blockquote&gt;&lt;p&gt;There are two types of ward, male wards and female wards. A ward can only have patients of the specified sex on it.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;This constraint can be represented in the conceptual model as the following invariant:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo014&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has the same value as the type attribute of the linked &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;This invariant expresses a condition on the relationship between attribute values of linked objects.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe015&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 15&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Using the requirements document for the DVD Library System given in Subsection 3.2, and its completed class diagram in Figure 16, identify two invariants on the model of the DVD Library System. One invariant should relate to the number of allowable links between two objects, and the other to the attribute values of objects of a particular class. Try to express your invariants in terms of objects, attribute values and links, but do not spend too much time getting the wording precise.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to no more than six &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the difference between the values of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attributes is 3 days.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The examples above demonstrate that invariants can involve a number of different aspects of the conceptual model. Invariants involving additional types of constraint will become evident as we carry out a detailed analysis of the system domain for the Hospital System in and consider the conditions needed to ensure the consistency of that model. First, though, we consider the forms in which invariants are included in the conceptual model.&lt;/p&gt;&lt;p&gt;As the model will contribute to the design of the system, and ultimately its implementation, it is important that invariants are expressed clearly and without ambiguity. An invariant should be formulated as a statement that can be tested for its truth. As evidenced by some of the examples already considered, this is not always easy. Furthermore, there is often more than one way of expressing a particular invariant. For example, we could equally well have stated the second invariant in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe015&quot;&gt;15&lt;/a&gt; as:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo015&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has a value that is three days later than that of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe016&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 16&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Figure 26 is a fragment from the class diagram for a university system. The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class has attributes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;staffnumber.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;region.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, while the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class has attributes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;personalidentifier.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;region.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Write down an invariant which states that the tutor allocated to a student must be from the same region as the student.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_026&quot;&gt;&lt;img src=&quot;m256_1_026i.jpg&quot; alt=&quot;Figure 26&quot; longdesc=&quot;x_m256_1_longdesc_id2804154.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 26 Fragment of class diagram for a university system&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2804154.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2804154&quot; id=&quot;back_longdesc_id2804154&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo016&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;region.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has the same value as the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;region.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of the linked &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Or:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo017&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;region.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has the same value as the region attribute of each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;student.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe017&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 17&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Study the requirements document for the DVD Library System and see whether you can identify any further constraints on the system domain that require invariants involving just the values of attributes.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;The description sets out several constraints which will give rise to invariants concerned with the uniqueness of attributes:&lt;/p&gt;
&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;No two members may have the same membership number.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;No two DVDs may have the same number.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;No two films may have the same title.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;We could express the invariants noted in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe017&quot;&gt;17&lt;/a&gt; in terms of objects and attribute values. If this were done for the first one it would read as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo018&quot;&gt;&lt;blockquote&gt;&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;member are any two distinct &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, then the value of the number&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;a member is not the same as the value of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of a member.&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Notice that the introduction of identifiers to refer to objects, e.g. &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , makes it easier to express the invariant clearly.&lt;/p&gt;&lt;p&gt;Invariants concerned with the uniqueness of attributes are so common that we will not generally ask you to identify them. However, this does not mean that they are not important. For simplicity, our models will include this information in the comments that accompany attributes in the class descriptions, as we have done for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (in &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;code.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (in &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) attributes in the Hospital System.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe018&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 18&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;There is one further invariant for the DVD Library System. Study the two object diagrams in Figure 27, which model the situation regarding two particular films at a certain point in time. One of these illustrates a combination of objects and links which is invalid with respect to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and the other a valid combination.&lt;/p&gt;
&lt;p&gt;Attributes for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects and the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects are not depicted because they are irrelevant in this exercise.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_027&quot;&gt;&lt;img src=&quot;m256_1_027i.jpg&quot; alt=&quot;Figure 27&quot; longdesc=&quot;x_m256_1_longdesc_id2804670.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 27 Object diagrams for the DVD Library System, one of which illustrates an invalid combination of objects and links&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2804670.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2804670&quot; id=&quot;back_longdesc_id2804670&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Identify which is the invalid combination and which is the valid combination, explaining your answer. (You may assume that all relevant links are shown.)&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Write down a real-world constraint that requires an invariant to ensure that invalid combinations such as the one you have identified in part (a) cannot occur.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Combination (a) is invalid. The diagram shows that the library has three copies of the film &lt;i&gt;Lord of the Flies&lt;/i&gt;, of which two are on loan. The number available for loan is therefore 1, but the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has the value 2.&lt;/p&gt;
&lt;p&gt;Combination (b) is fine, as the value of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is consistent with the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects which are linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object but not linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; The real-world constraint is that the number of copies of a film that are available is the number of DVDs of that film which are not currently on loan.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The invariant noted in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe018&quot;&gt;Activity 18&lt;/a&gt; can be written as:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo019&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects it is linked to which are not linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;We will now complete our list of invariants for the Hospital System.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/section3_4.pdf"
             fileSize="85347"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_025i.jpg"
             fileSize="30126"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif"
             fileSize="155"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif"
             fileSize="219"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg"
             fileSize="14425"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg"
             fileSize="38140"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.2.1 Uniqueness of attribute values</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;There are two of these corresponding to the constraints that the team code of each team is unique and that the ward name of each ward is unique.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>6.2.2 Constraints on the values of particular attributes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_025i.jpg" length="30126" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif" length="155" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif" length="219" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg" length="14425" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg" length="38140" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;The requirements document states:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo020&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The system displays &amp;#x2026; for each such junior doctor, their grade (1, 2 or 3).&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;This constraint could be included in the model as the following invariant:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo021&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has a value which is either 1, 2 or 3.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Similarly, there are constraints on the sex of patients and the type of ward (which must be male or female in both cases). We take the view that invariants involving the uniqueness of attribute values or the allowable values of a single attribute are most simply and clearly expressed in a comment alongside that attribute in the class description, as we have done in the case of the descriptions for the Hospital System.&lt;/p&gt;&lt;p&gt;In addition to constraints arising from the requirements document, there can be restrictions on attribute values that are just &amp;#x2018;common sense’ -such as the date of birth of a patient not being later than the current date, or the number of free beds on a ward being non-negative. It is not necessary at this stage to identify such constraints explicitly.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_025i.jpg"
             fileSize="30126"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif"
             fileSize="155"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif"
             fileSize="219"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg"
             fileSize="14425"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg"
             fileSize="38140"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.2.3 Numbers of links between objects</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.3</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif" length="155" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif" length="219" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg" length="14425" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg" length="38140" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;There are a number of invariants shown by the multiplicities of the associations in the class diagram. These do not need to be listed. However not all conditions on the number of links between objects are evident from the class diagram. As we have discussed, the relationship between teams and the doctors that comprise them has been modelled as a single association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; rather than as two separate associations, one between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and one between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Although the multiplicity at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; correctly reflects the number of doctors that can be contained in a team, it does not fully reflect the allowable number of junior doctors and consultant doctors in a team.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe019&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 19&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Using the first part of the answer to Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe015&quot;&gt;15&lt;/a&gt; as a model, write down two invariants, one which imposes a condition on the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects that may be linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, and one which imposes a condition on the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects that may be linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;h3 class=&quot;oucontent-h4 oucontent-basic&quot;&gt;Discusssion&lt;/h3&gt;
&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to exactly one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to at least one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In the first invariant given in the discussion to Activity 19, notice the inclusion of &amp;#x2018;via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;’ to identify the relevant association connecting &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. This is because there are two associations between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (namely, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;), and it is therefore necessary to be explicit about the particular association being constrained. In other words, if in stating an invariant there is more than one association between two classes involved, it is necessary to specify an association name to clarify which association is being discussed.&lt;/p&gt;&lt;p&gt;The statement from the requirements document which gives rise to the two invariants in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_3.html#exe019&quot;&gt;19&lt;/a&gt; is as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo022&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each team is headed by a consultant doctor who is the only consultant doctor in the team; the rest of the team are all junior doctors, at least one of whom must be at grade 1.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;It indicates that for both the answers to Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_3.html#exe019&quot;&gt;19&lt;/a&gt; there is a need for an even tighter condition. The single consultant doctor in the team &lt;i&gt;must be the consultant doctor that heads the team&lt;/i&gt;, and at least one of the junior doctors in the team &lt;i&gt;must be at grade 1&lt;/i&gt;. The second invariant can be extended to reflect this, as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo023&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to at least one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object for which the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute has a value of 1.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;We will return to the first invariant in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_6.html#exe021&quot;&gt;21&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.3</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif"
             fileSize="155"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif"
             fileSize="219"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg"
             fileSize="14425"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg"
             fileSize="38140"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.2.4 Relationships between attribute values</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.4</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif" length="155" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif" length="219" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg" length="14425" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg" length="38140" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;We have formulated an invariant reflecting the fact that the sex of a patient must be the same as the type of ward to which they are admitted (see the discussion following Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe014&quot;&gt;14&lt;/a&gt;). We also know that each ward has a maximum capacity. The number of free beds must be consistent with this, leading to the following invariant:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo024&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is less than or equal to the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe020&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 20&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;
The invariant we have just discussed constrains the relative values of two attributes of the same object. Write down a real-world constraint that requires a similar invariant involving attributes of another class in the Hospital System.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;A patient's age is the difference (in years) between the current date and their date of birth.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The invariant noted in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_4.html#exe020&quot;&gt;20&lt;/a&gt; could be formulated as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo025&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the difference (in years) between the current date and the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.4</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif"
             fileSize="155"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif"
             fileSize="219"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg"
             fileSize="14425"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg"
             fileSize="38140"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.2.5 Relationships between attribute values and links</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.5</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif" length="155" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif" length="112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif" length="219" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg" length="14425" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg" length="38140" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Before Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_4.html#exe020&quot;&gt;20&lt;/a&gt;, we discussed the relationship that needs to be preserved between the capacity of a ward and the number of free beds on that ward. A related factor is the number of patients already on the ward. The invariant should be extended to take account of this, as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo026&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute minus the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects to which it is linked.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.5</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/staffnumber.gif"
             fileSize="155"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/region.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/student.gif"
             fileSize="112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/personalidentifier.gif"
             fileSize="219"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_026i.jpg"
             fileSize="14425"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_027i.jpg"
             fileSize="38140"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>6.2.6 Relationships between links</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.6</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_028i.jpg" length="24454" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_029i.jpg" length="23061" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif" length="1209" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif" length="118" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif" length="1300" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amating.gif" length="1036" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif" length="145" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif" length="927" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif" length="1465" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isfemalepartnerin.gif" length="680" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ismalepartnerin.gif" length="699" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/produces.gif" length="128" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf" length="55322" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif" length="113" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif" length="985" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;You have already seen an invariant involving links of the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, connecting the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;A similar invariant arises in connection with the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. The requirements state:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo027&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each patient&amp;#x2026; is under the care of a single team of doctors; the consultant who heads that team is responsible for the patient.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;See the second invariant at the beginning of Subsection 6.1.&lt;/p&gt;&lt;p&gt;The relevant fragment of the class diagram is shown in Figure 28.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_028&quot;&gt;&lt;img src=&quot;m256_1_028i.jpg&quot; alt=&quot;Figure 28&quot; longdesc=&quot;x_m256_1_longdesc_id2806004.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 28 A loop giving rise to an invariant&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2806004.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2806004&quot; id=&quot;back_longdesc_id2806004&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The diagram represents the facts that a patient is cared for by a single team and is the responsibility of a single consultant, but there is nothing in the diagram to indicate that the consultant who is responsible for the patient must head the team that cares for that patient. This is clearly important, and we need to include it in the text that forms part of our model.&lt;/p&gt;&lt;p&gt;Remember that the association names are needed here to avoid ambiguity.&lt;/p&gt;&lt;p&gt;We can state the invariant as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo028&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;You can see from &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_6.html#fig001_028&quot;&gt;Figure 28&lt;/a&gt; that the three associations involved in this invariant form a loop, as was the case with the invariant involving the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations at the beginning of Subsection 6.1. Invariants are often (but not always) required when a number of associations in a class diagram form a loop.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe021&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 21&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;In the discussion following Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_3.html#exe019&quot;&gt;19&lt;/a&gt; we concluded that an invariant was required to reflect the constraint that the consultant doctor in a team must be the consultant that heads the team.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Which associations are involved in this invariant?&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Write down the invariant required.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; The associations involved are &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; The invariant can be written as follows:&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo029&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is linked to the same &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;The invariant which was the subject of Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_6.html#exe021&quot;&gt;21&lt;/a&gt; also involves a loop as shown in Figure 29. However, although there are three classes shown in this diagram (&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; ), the loop is between only two classes (&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; ). This is because &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; inherits the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; (since it is a specialisation of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;), and consequently is in a loop with &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; via the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_029&quot;&gt;&lt;img src=&quot;m256_1_029i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;
Figure 29 The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; classes and the associations between them&lt;/p&gt;&lt;p/&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe022&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 22&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Look again at the description of the Goat Breeding System given in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html#exe010&quot;&gt;10&lt;/a&gt; and the class diagram given in the discussion of the exercise.&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Identify an extract from the description which gives rise to one or more invariants that cannot be deduced from the class diagram.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; State the invariant(s).&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; The invariant(s) can be identified from the following extracts from the description.&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo030&quot;&gt;&lt;blockquote&gt;&lt;p&gt;A billy-goat mates several times during the current season but only with nanny-goats that are in the same herdas the billy-goat. A mating can produce several offspring, which – of course – are kids and are in the same herdas their parents.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;In other words if a billy-goat and a nanny-goat mate, they and their offspring must be in the same herd.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Here is a single invariant covering the relationships between all three kinds of goat:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo031&quot;&gt;&lt;blockquote&gt;&lt;p&gt;All the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;goat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  object are linked to the same &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;herd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;There are a number of other ways of expressing this invariant, for example:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo032&quot;&gt;&lt;blockquote&gt;&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;mating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  object, then the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;nannygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;billygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;kid.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amating.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, are linked to the same &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;herd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Alternatively the invariant could be formulated as two separate invariants, each involving two of the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isfemalepartnerin.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ismalepartnerin.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;produces.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, together with the association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Note that because &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;goat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; generalises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;nannygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;billygoat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;kid.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, all their instances are also instances of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;goat.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and so are linked to instances of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;herd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Some of the invariants we have identified above could have been avoided by choosing an alternative way of modelling the system domains concerned. For example, representing the fact that each team of doctors includes both a consultant doctor and a junior doctor could have been achieved by replacing the association between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; with two separate associations, one between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and one between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. We could even have introduced a separate class for grade 1 junior doctors and connected it to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; with a third association. However, this alternative model would have introduced more complexity into our class diagram, and would still have required some invariants, so would not have provided any advantage.&lt;/p&gt;&lt;p&gt;It is an understanding of what is significant in the system domain that should inform decisions as to which classes and associations are most appropriate. However, as we have already said, the construction of a conceptual model is not an exact science. The best advice at this stage of the modelling process is to choose the simplest option that accurately reflects the situation in the real-world system domain; any appropriate changes or improvements to the ensuing model of the system structure can be considered later in the development.&lt;/p&gt;&lt;p&gt;Having specified invariants for the Hospital System, we include these in the text which, together with the class diagram, constitutes our model. A consolidated set of the invariants for the Hospital System is given and can be found in the PDF document below. 
&lt;/p&gt;&lt;p&gt;Click on the 'View document' link below to view invariants for the hospital system.&lt;/p&gt;&lt;div id=&quot;pdf005&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements3.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe023&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 23&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider the Day School System described in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html#exe011&quot;&gt;11&lt;/a&gt;, and the class diagram given in the solution (&lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_1.html#fig001_023&quot;&gt;Figure 23&lt;/a&gt;).&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Identify an excerpt from the requirements document which gives rise to an invariant.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; State this invariant.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; &amp;#x2018;Each booklet is written by a number of tutors &amp;#x2026; one of whom must be the tutor who is taking the session that uses the booklet.’&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;tutor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;booklet.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;session.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;p&gt;As usual, there are other, equally correct, ways of expressing this invariant.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe024&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 24&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider the Election Campaign System described in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_5_2.html#exe0133&quot;&gt;13&lt;/a&gt;. Suppose that the conceptual model for the system contained the following invariant:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo033&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;localactivist.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;publicmeeting.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is also linked to two or more &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;communitygroup.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Write down the real-world constraint that this invariant would represent.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;A local activist who speaks at a public meeting must have visited at least two community groups.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;In this section, you have learnt what is meant by an invariant, and how to identify and express them. In the process, a list of the invariants for the Hospital System has been drawn up. In the next, short section you will explore some of the implications of invariants for other aspects of the model.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=6.2.6</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_028i.jpg"
             fileSize="24454"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_029i.jpg"
             fileSize="23061"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/goat.gif"
             fileSize="1209"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/mating.gif"
             fileSize="118"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/herd.gif"
             fileSize="1300"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amating.gif"
             fileSize="1036"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/nannygoat.gif"
             fileSize="145"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/billygoat.gif"
             fileSize="927"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/kid.gif"
             fileSize="1465"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isfemalepartnerin.gif"
             fileSize="680"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ismalepartnerin.gif"
             fileSize="699"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/produces.gif"
             fileSize="128"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf"
             fileSize="55322"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif"
             fileSize="113"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif"
             fileSize="985"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>7.1 Using invariants to derive attributes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=7.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif" length="1193" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif" length="141" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif" length="841" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif" length="190" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif" length="1235" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif" length="1798" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif" length="106" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif" length="993" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif" length="1003" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isfemalepartnerin.gif" length="680" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ismalepartnerin.gif" length="699" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/produces.gif" length="128" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf" length="55322" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif" length="95" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif" length="113" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif" length="985" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;In this section, you will learn:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;that some attributes and associations in a conceptual model are derivable from others;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;how invariants are involved in this process.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The need for invariants in a conceptual model arises from the fact that the entities in the system domain may be interdependent in a way that is not evident from their representation in the conceptual model's class diagram and class descriptions. Where there are constraints on some aspect of the system domain, an invariant spells out the conditions that ensure that this constraint is reflected in the model.&lt;/p&gt;&lt;p&gt;Some invariants express a relationship between two or more elements of the model. For such invariants, it may be possible, given the values of one or more elements, to work out the value of some other element. For example, given the invariant&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo034&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the difference (in years) between the current date and the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;and knowing both the current date and the value of a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object's &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute, it is possible to work out the value of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object's &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;&lt;p&gt;You might justifiably ask why the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class needs both the attributes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. The simple answer is that they are both explicitly mentioned in the requirements document.&lt;/p&gt;&lt;p&gt;However, in our final system it may not be necessary to implement both these attributes as instance variables. This is not a decision that can be made until the analysis process has advanced beyond the conceptual model. It will depend on the results of a detailed analysis of the behaviour of the system, which is yet to be carried out. This analysis may reveal that one or other of the attributes does not need to be implemented explicitly, or it may be that the context in which each is required indicates the need to retain both. The decision may also depend on other implementation issues, such as whether the implementation language and hardware contain facilities for accessing the current date in a suitable form.&lt;/p&gt;&lt;p&gt;At this stage of the development process the model needs to reflect &lt;i&gt;all&lt;/i&gt; the aspects of the system domain implied by the requirements document. This document refers to both the age and the date of birth of patients, so both these properties need to be modelled as attributes of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class. However, it is also necessary to look out for situations where one aspect of the model can be deduced from another and to flag this up as part of our model. An attribute whose value can be deduced from other element(s) of the model is known as a &lt;b&gt;derived attribute.&lt;/b&gt; Derived attributes are indicated in the UML by preceding their names with a slash, /. So we modify the entry for the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class in the class descriptions given at the end of Subsection 3.as follows:&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl003&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A patient in the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The sex (M or F) of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The date of birth of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;/&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The age of the patient in years&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;oucontent-source-reference&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe025&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 25&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Identify a derived attribute for the DVD Library System, and provide a class description for the class to which this attribute belongs.&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;In the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; can be derived from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; on the basis of the invariant discussed in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_1.html#exe015&quot;&gt;15&lt;/a&gt;, which stated that the difference between these two attributes must be three days.&lt;/p&gt;
&lt;p&gt;The class description is as follows:&lt;/p&gt;
&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl004&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The loan of a DVD
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The date of issue of the loan&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;/ &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The date by which the loaned DVD must be returned&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;oucontent-source-reference&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Alternatively, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;issuedate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; could be derived from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;returndate.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. (But note that it would not be possible to derive a patient's date of birth from their age in years.)&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Another attribute value that can be deduced from other aspects of the information in the Hospital System is the number of free beds on a ward. In the discussion following &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_6_2_4.html#exe020&quot;&gt;Activity 20&lt;/a&gt;
, we formulated the following invariant, which expresses how the number of free beds on a ward can be derived from other aspects of the model:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo035&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute minus the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects to which it is linked.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;From this invariant we see that the value of a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object's &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute can be calculated from the value of that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object's &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute and the number of links the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects. So the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute should be marked as derived.&lt;/p&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; should also be marked as derived, since it can be obtained from the type (male or female) of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to. This derivation may seem counter-intuitive – it does not seem sensible to work out the sex of a patient from the type of the ward they are on. Nonetheless it is conceptually possible, so it should be noted.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe026&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 26&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Is the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class in the DVD Library System derived? If so, how?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;Yes, the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is derived. It can be calculated from the following invariant:&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo036&quot;&gt;&lt;blockquote&gt;&lt;p&gt;For any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;film.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberavailable.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dvd.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects it is linked to which are not linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;loan.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe027&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 27&lt;/h3&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Consider the following invariant for the DVD Library System (which is actually captured in the comment on the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class):&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo037&quot;&gt;&lt;blockquote&gt;&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; are any two distinct &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects, then the value of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is not the same as the value of the number attribute of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;amember2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; .&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Does this invariant indicate that any attribute of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; class can be derived?&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h4 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h4&gt;
&lt;p&gt;No. Given the value of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;number.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute for one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;member.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, this invariant specifies what the value of any other object may &lt;i&gt;not&lt;/i&gt; be, not what it is. Invariants involving attributes are not always an indication of derived attributes. It depends on the nature of the condition specified.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;You have seen that where an invariant involves the values of attributes, the value of one of those attributes &lt;i&gt;may&lt;/i&gt; be derivable from values of other attributes(s) and/or link(s) involved in the invariant. However, it is not necessarily the case that it is the invariant that leads you to identify the derived attribute. It could be that you recognise that an attribute can be derived before you consider invariants, or that you identify both aspects of the model in parallel. The important point is to be aware of the relationship between them: where you have a derived attribute, you will also have an invariant. However, the reverse is not necessarily the case. As you saw in Activity &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_7_1.html#exe027&quot;&gt;27&lt;/a&gt; above, an invariant involving attributes does not necessarily indicate that it is possible to derive one of those attributes.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=7.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/loan.gif"
             fileSize="1193"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/returndate.gif"
             fileSize="141"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/issuedate.gif"
             fileSize="841"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberavailable.gif"
             fileSize="190"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film.gif"
             fileSize="1235"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dvd.gif"
             fileSize="1798"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/number.gif"
             fileSize="106"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/member.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember1.gif"
             fileSize="993"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/amember2.gif"
             fileSize="1003"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isfemalepartnerin.gif"
             fileSize="680"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ismalepartnerin.gif"
             fileSize="699"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/produces.gif"
             fileSize="128"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf"
             fileSize="55322"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/tutor.gif"
             fileSize="95"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/session.gif"
             fileSize="113"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/booklet.gif"
             fileSize="985"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>7.2 Using invariants to derive associations</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=7.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg" length="24912" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif" length="127" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif" length="96" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif" length="665" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg" length="21234" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg" length="25307" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif" length="664" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif" length="94" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg" length="14991" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>
&lt;p&gt;Just as there is a relationship between invariants involving attributes and derived attributes, so it is the case that invariants involving links of different associations &lt;i&gt;may&lt;/i&gt; indicate that one of those associations can be derived from the others involved in the invariant.&lt;/p&gt;&lt;p&gt;To explore the sorts of interrelationship that can occur between associations, we will start by revisiting the invariant which constrains the allowable links between the classes &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; .&lt;/p&gt;&lt;p&gt;Here is the invariant which was formulated in the previous section:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo038&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;This invariant involves the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , as shown in Figure 30.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_030&quot;&gt;&lt;img src=&quot;m256_1_030i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 30 Extract from the Hospital System class diagram&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Now consider the case of a particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, linked via the association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , which represents the team that cares for the patient. &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; will in turn be linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, say &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, which represents the consultant doctor who heads that team. What the invariant expresses is that the particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; must be linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; must be &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, as shown in the object diagram in Figure 31.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_031&quot;&gt;&lt;img src=&quot;m256_1_031i.jpg&quot; alt=&quot;Figure 31&quot; longdesc=&quot;x_m256_1_longdesc_id2809144.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;Figure 31 Links between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2809144.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2809144&quot; id=&quot;back_longdesc_id2809144&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p/&gt;&lt;p/&gt;&lt;p&gt;A situation similar to that depicted in Figure 31 holds for &lt;i&gt;all&lt;/i&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects. Given any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object representing a particular patient, it is always possible to identify the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object representing the team which cares for the patient by traversing the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; link, and then the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object representing the consultant doctor who heads that team by traversing the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; link. As this must be the consultant doctor who is responsible for the patient, it is therefore possible to infer, for any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the particular &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object representing the consultant doctor who is responsible for the patient, i.e. the link between the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object. In other words, it is possible to derive &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; .&lt;/p&gt;&lt;p&gt;The association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is called a &lt;b&gt;derived association.&lt;/b&gt; As with a derived attribute, the name of a derived association in a class diagram is preceded by a slash, /, as illustrated in Figure 32.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_032&quot;&gt;&lt;img src=&quot;m256_1_032i.jpg&quot; alt=&quot;Figure 32&quot; longdesc=&quot;x_m256_1_longdesc_id2809404.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 32 A derived association&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2809404.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2809404&quot; id=&quot;back_longdesc_id2809404&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;As with derived attributes, you might wonder why the derived association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is not simply removed; it is, in a sense, redundant. There are two reasons. The first is that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; models a relationship that is explicitly mentioned in the requirements document – the responsibility of consultant doctors for patients. It is important, at least at this stage of the development process, that this relationship is explicitly modelled.&lt;/p&gt;&lt;p&gt;The second reason for retaining &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is that its designation as a derived association is somewhat arbitrary. Consider the following invariant involving &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, which is equivalent to the one above:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo039&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a given &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Working from this version of the invariant we could equally well have said that the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association could be derived from the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; associations, and that it was therefore &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; that was redundant rather than &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. It is only when the detailed behaviours of the system are analysed in subsequent stages of the development process that we can decide which, if any, of the associations related in this way is actually redundant. However, it is important that the class diagram in the conceptual model should indicate any derived associations that we have identified.&lt;/p&gt;&lt;p&gt;For an association to be derivable, &lt;i&gt;all&lt;/i&gt; the links of the association must be derivable. With this in mind, can the association &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; be derived from the associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;?&lt;/p&gt;&lt;p&gt;We will answer this question in terms of the multiplicities of the associations involved. (It will help to refer to &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_7_2.html#fig001_031&quot;&gt;Figures 31&lt;/a&gt; and &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_7_2.html#fig001_031&quot;&gt;32&lt;/a&gt;.)&lt;/p&gt;&lt;p&gt;Suppose a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object (such as &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_7_2.html#fig001_031&quot;&gt;Figure 31&lt;/a&gt;) is linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object (&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;). Then the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object (&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;) linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient6.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; must also be linked, via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; , to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. In other words, if there is a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, then it is possible to derive the link between the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object and the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;p&gt;Consider, however, the situation depicted in Figure 33: a consultant doctor represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor7.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; heads a team represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Suppose also that this particular team does not yet have any patients under its care. This is entirely possible, as indicated by the multiplicity of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;0star.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; at the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; end of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; . In this case, the consultant represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor7.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  would not be responsible for any patients.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_033&quot;&gt;&lt;img src=&quot;m256_1_033i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Figure 33 A &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object which is not linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects&lt;/p&gt;&lt;p/&gt;&lt;p&gt;We could equally have traversed the links the other way and said, locate first a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor7.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  and then the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;&lt;p&gt;To derive the link between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor7.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; shown in Figure 33, it would be necessary to locate first a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; via the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association and then the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Neither of these links exists. Therefore it is not possible to derive the link shown in Figure 33.&lt;/p&gt;&lt;p&gt;In summary, we have shown that the link between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor5.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team3.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; in &lt;a class=&quot;oucontent-crossref&quot; href=&quot;x_m256_1_7_2.html#fig001_031&quot;&gt;Figure 31&lt;/a&gt; could be derived from the other links in the diagram, but that the link between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor7.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;  and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; in Figure 33 could not (because there are no other links from which it can be derived).&lt;/p&gt;&lt;p&gt;We therefore conclude that because it is not possible to derive &lt;i&gt;all&lt;/i&gt; the links of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; cannot be derived from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;Reviewing this example, it is instructive to note that what we did to show that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is not derivable was to consider a possible combination of objects and links, which conformed to our model, but where an &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; link could not be deduced from other information. This is a generally useful approach, as you will see in the next exercise.&lt;/p&gt;&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe028&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Activity 28&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;p&gt;Study the invariant involving the three associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; given below and the associated extract from the class diagram shown in Figure 34. Decide whether the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association can be derived from the other two associations, giving an explanation for your answer.&lt;/p&gt;
&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo040&quot;&gt;&lt;blockquote&gt;&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, then any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is also linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object which is linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_034&quot;&gt;&lt;img src=&quot;m256_1_034i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Figure 34:&lt;/b&gt; The associations &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p/&gt;
&lt;/div&gt;

&lt;div class=&quot;oucontent-saq-discussion&quot;&gt;&lt;h3 class=&quot;oucontent-h4&quot;&gt;Discussion&lt;/h3&gt;
&lt;p&gt;The association cannot be derived. The hypothetical situation portrayed in Figure 35 will demonstrate why.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_035&quot;&gt;&lt;img src=&quot;m256_1_035i.jpg&quot; alt=&quot;&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Figure 35:&lt;/b&gt; Links between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects&lt;/p&gt;&lt;p/&gt;
&lt;p&gt;Figure 35 depicts the situation where, at some point in time, the patient represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is cared for by the team represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team4.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and has been treated by one of the doctors in that team, represented by &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. This situation is perfectly acceptable within the conditions imposed on the model. The task is to decide whether, given the links from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team4.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&amp;#xFEFF;, it is possible to derive the link between &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Having traversed the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; link from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team4.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, you could traverse the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; links to identify all the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team4.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, that is, all the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects that are eligible to treat &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. However it is not possible to deduce that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor2.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has treated &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient10.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor1.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; has not.&lt;/p&gt;
&lt;p&gt;In summary, a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object that is linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is not necessarily linked to that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Now consider whether it is possible to derive the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. Given a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, if there are &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, that is, if there are patients cared for by the team represented by the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, then these &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects can be identified by traversing the relevant &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; links, while any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects corresponding to doctors who treated these patients can be identified by traversing the relevant &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; links. These &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects must be linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. However, &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects corresponding to doctors in the team who have &lt;i&gt;not&lt;/i&gt; treated any patients cannot be identified in this way. Consequently, although some of the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; links are deducible, not &lt;i&gt;all are&lt;/i&gt;, and therefore the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association is not derivable from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; .&lt;/p&gt;&lt;p&gt;Similarly, the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;caresfor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; association cannot be derived from &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;hastreated.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;What the above discussion has shown is that an invariant involving a loop indicates that it &lt;i&gt;may&lt;/i&gt; be (rather than &lt;i&gt;will be)&lt;/i&gt; possible to derive one of the associations which make up the loop.&lt;/p&gt;&lt;p&gt;Note that a loop may consist of more than three classes and associations.&lt;/p&gt;&lt;p&gt;In this section, you have learnt what is meant by derived attributes and associations, how invariants are used in the derivations, and how they are denoted in the conceptual model. This completes the task of conceptual modelling, and in the next section, all the parts will be drawn together.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=7.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg"
             fileSize="24912"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif"
             fileSize="127"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif"
             fileSize="96"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif"
             fileSize="665"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg"
             fileSize="21234"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg"
             fileSize="25307"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif"
             fileSize="664"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif"
             fileSize="94"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg"
             fileSize="14991"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>8.1 Conceptual model for the Hospital System</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf" length="55322" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg" length="24912" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif" length="127" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif" length="96" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif" length="665" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg" length="21234" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg" length="25307" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif" length="664" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif" length="94" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg" length="14991" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;We are now in a position to produce a conceptual model for the Hospital System.&lt;/p&gt;&lt;p&gt;In this unit a conceptual model comprises the following:&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;a class diagram showing:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;the classes that have been identified as appropriate;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;any generalisation relationships between the classes;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;any abstract classes;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;the associations between the classes, together with their multiplicities;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;any derived associations;&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;associated text comprising:&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;
&lt;p&gt;for each class, a class description listing the attributes, together with the identification of any derived attributes, and brief comments indicating:&lt;/p&gt;
&lt;p&gt;– the purpose of the class and of each attribute;&lt;/p&gt;
&lt;p&gt;– if the class is abstract;&lt;/p&gt;
&lt;p&gt;– any generalisation/specialisation relationships;&lt;/p&gt;
&lt;p&gt;– any restrictions on attribute values where relevant, including uniqueness constraints;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;any invariants not evident from the class diagram or class descriptions.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In producing the conceptual model we have aimed to create an appropriate representation of the system domain. However, we have had to make a number of decisions, for example, about which attributes and associations to label as derived. If we had made different decisions we would have produced a slightly different model, but one which might have been equally good at this stage. There is no one correct model (except perhaps in extremely trivial cases), and there are many debates, even among experts, about whether one model is better than another. Our concern is only that you should understand the concepts well enough to be able to produce a reasonable conceptual model.&lt;/p&gt;&lt;p&gt;All the aspects of the conceptual model for the Hospital System have now been considered. However, before presenting this conceptual model, recall the earlier discussion about the role of the conceptual model in forming a starting point for constructing the system. The conceptual model represents the system domain -the part of the real world relevant to the system. Since a key object-oriented principle is that software objects can usefully mirror real-world entities, the structure set out in the conceptual model is a sensible starting point for the structure of the system. Thus the &lt;i&gt;conceptual model&lt;/i&gt;, given below, can be taken as the &lt;i&gt;initial structural model:&lt;/i&gt; an initial representation of the software. That is, we will initially view the Hospital System as having classes such as &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, whose instances and the links between them:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;
&lt;p&gt;represent real-world entities (patients and doctors etc.), and the connections between them;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;are subject to invariants, just as their real-world equivalents are subject to real-world constraints.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here is the complete model, which is also set out in Section 4 of the PDF document below, under the heading &lt;i&gt;Hospital System initial structural model&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;Click 'View document' below to view Section 4 of the pdf.&lt;/p&gt;&lt;div id=&quot;pdf006&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements3.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf"
             fileSize="55322"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg"
             fileSize="24912"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif"
             fileSize="127"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif"
             fileSize="96"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif"
             fileSize="665"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg"
             fileSize="21234"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg"
             fileSize="25307"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif"
             fileSize="664"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif"
             fileSize="94"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg"
             fileSize="14991"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>Class diagram</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_036i.jpg" length="42169" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf" length="55322" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg" length="24912" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif" length="127" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif" length="96" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif" length="665" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg" length="21234" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg" length="25307" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif" length="664" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif" length="94" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif" length="846" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg" length="14991" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:511px;&quot; id=&quot;fig001_036&quot;&gt;&lt;img src=&quot;m256_1_036i.jpg&quot; alt=&quot;Figure 36&quot; longdesc=&quot;x_m256_1_longdesc_id2811774.html&quot;/&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 36 Class diagram for the Hospital System&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m256_1_longdesc_id2811774.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id2811774&quot; id=&quot;back_longdesc_id2811774&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_036i.jpg"
             fileSize="42169"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements3.pdf"
             fileSize="55322"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/caresfor.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_030i.jpg"
             fileSize="24912"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient6.gif"
             fileSize="127"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team3.gif"
             fileSize="96"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor5.gif"
             fileSize="665"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_031i.jpg"
             fileSize="21234"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_032i.jpg"
             fileSize="25307"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor7.gif"
             fileSize="664"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team2.gif"
             fileSize="94"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/0star.gif"
             fileSize="846"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg"
             fileSize="14991"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>8.2.2 Class descriptions</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif" length="84" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif" length="87" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif" length="1094" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif" length="1112" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg" length="14991" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl005&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;Class&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A hospital ward
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The unique name of the ward&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;type.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;Whether the ward is for male or female (M or F) patients&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The maximum number of patients that can be on the ward at any one time&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
/&amp;#xFEFF;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; 
&lt;/td&gt;
&lt;td&gt;The number of free beds on the ward&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Class&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A patient in the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The name of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
/&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The sex (M or F) of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The date of birth of the patient&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
/&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The age of the patient in years&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Class&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A team of doctors&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;code.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The unique code of the team&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Class&lt;/td&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;A doctor at the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td/&gt;
&lt;td&gt;Abstract: generalises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; and &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;name.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;The name of the doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Class&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A junior doctor at the hospital&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td/&gt;
&lt;td&gt;Specialises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;grade.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;The grade (1, 2 or 3) of the junior doctor&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Class&lt;/b&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;td&gt;A consultant doctor at the hospital. Specialises &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;
&lt;b&gt;Attributes&lt;/b&gt;
&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td/&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td/&gt;
&lt;/tr&gt;&lt;/table&gt;&lt;div class=&quot;oucontent-source-reference&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/name.gif"
             fileSize="84"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/type.gif"
             fileSize="87"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/code.gif"
             fileSize="1094"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/grade.gif"
             fileSize="1112"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_033i.jpg"
             fileSize="14991"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>8.2.3 Invariants</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif" length="69" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif" length="111" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif" length="88" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;
&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;sex.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute of any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object has the same value as the type attribute of the linked &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;age.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the difference (in years) between the current date and the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;dateofbirth.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;For each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;ward.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;numberoffreebeds.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute is equal to the value of its &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;capacity.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; attribute minus the number of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; objects to which it is linked.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Each &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked to at least one &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;juniordoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object for which the grade attribute has a value of 1.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to a &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; Object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is linked to the same &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; Object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;contains.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;The &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;consultantdoctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isresponsiblefor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is linked via &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;isheadedby.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object to which that &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object is linked.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;If &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;patient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object, then any &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;doctor.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is also linked to the &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;team.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; object which is linked to &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;apatient.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In order to complete the optional exercise below, you will need to refer to the PDF document attached below.&lt;/p&gt;&lt;p&gt;Click on the 'View document' link below to view hospital requirements.&lt;/p&gt;&lt;div id=&quot;pdf007&quot; class=&quot;oucontent-media&quot;&gt;&lt;a href=&quot;hospital_requirements.pdf&quot;&gt;View document&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-box oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;box001_001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Optional activity&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;p&gt;Our analysis of the Hospital System has been conducted in a rather artificial manner. We attempted to identify all the classes before identifying their attributes and then the associations between them. Similarly, we did not consider invariants until we had formed the class diagram and class descriptions, and did not identify derived attributes and associations until we had found all the invariants. In practice, you would use your understanding of the system domain to carry out these activities in parallel as you worked through the requirements document.&lt;/p&gt;&lt;p&gt;Here is a worthwhile activity which you can do now, if you have time. Go back to the requirements document for the Hospital System and work through it a sentence or two at a time, building up the class diagram (classes, associations and multiplicities) and class descriptions as you go, and noting any possible invariants and derived associations when they arise. You may be surprised at how easy it is to get most of the model correct in a short time. The areas requiring most thought are usually invariants and derived associations.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=8.2.2</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/sex.gif"
             fileSize="69"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient.gif"
             fileSize="111"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/ward.gif"
             fileSize="88"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>9 Summary</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=9</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;This unit has introduced you to the ideas and techniques involved in forming a conceptual model of a system domain and in particular a conceptual model for the Hospital System.&lt;/p&gt;&lt;p&gt;Starting with a requirements document for a system, you have worked through the processes necessary to produce the conceptual model. The unit has also introduced some of the UML notation for class and object diagrams.&lt;/p&gt;&lt;p&gt;In producing the conceptual model, you have learnt how to analyse a requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities. You also learnt about the value of generalisation relationships in capturing the characteristics common to related classes and how this might lead to the identification of abstract classes.&lt;/p&gt;&lt;p&gt;You have seen that objects, attribute values and links may be subject to constraints in the form of invariants, and that attributes and associations can sometimes be derived from other attributes and associations, using invariants.&lt;/p&gt;&lt;p&gt;Choices have to be made during this phase of the software development process, and you have seen that there is no one correct conceptual model for a system.&lt;/p&gt;&lt;p&gt;Finally, the unit ended by bringing together all the pieces of the Hospital System's conceptual model.&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=9</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>Glossary</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=10</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/a.gif" length="2121" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/b.gif" length="2278" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/abstract.gif" length="681" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif" length="1173" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif" length="800" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif" length="200" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif" length="921" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif" length="86" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif" length="732" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif" length="659" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif" length="916" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif" length="734" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf" length="123003" type="application/pdf" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif" length="794" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif" length="880" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif" length="851" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif" length="1023" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg" length="24841" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg" length="22027" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif" length="129" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif" length="97" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif" length="906" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif" length="898" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif" length="685" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif" length="182" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif" length="817" type="image/gif" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif" length="1091" type="image/gif" />
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;
&lt;b&gt;Abstract class&lt;/b&gt; – 
A class which cannot be instantiated, i.e. one which has no instances of its own but only instances of its child classes. An abstract class defines properties which are common to its child classes. It should not be confused with a class representing abstract entities.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Abstract entity&lt;/b&gt; – 
An entity that has an existence, but does not correspond to a tangible entity. For example, the film &lt;i&gt;Citizen Kane&lt;/i&gt; is an abstract entity, while the DVD which records the film is a tangible entity.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Association&lt;/b&gt; – 
An association represents the links that may exist between the objects of two classes. These links have a common meaning, and represent a particular relationship (connection) between these objects that is significant for the system domain.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Attribute&lt;/b&gt; – 
An attribute is a property of an object. All objects of a class have the same attributes.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Candidate class&lt;/b&gt; – 
A class that may be needed to model a category of real-world entities from the system domain.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Child class&lt;/b&gt; – 
A class that is a specialisation of some other class, known as its parent class; a subclass.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Class (in the conceptual model)&lt;/b&gt; – 
A class models a category of real-world entities from the system domain.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Class description&lt;/b&gt; – 
A formal description of a class within a conceptual model or a structural model.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Class diagram&lt;/b&gt; – 
Class diagrams are used to show structural aspects of the system domain and of a system at various stages in its development. As a model of the &lt;i&gt;system domain&lt;/i&gt;, a class diagram depicts conceptual classes and associations connecting them. As a model of the &lt;i&gt;system&lt;/i&gt;, a class diagram depicts the software classes that are involved in the system and the associations connecting them.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Conceptual model&lt;/b&gt; – 
The model which represents the significant entities in the system domain and the connections between them as a collection of classes and their attributes, associations and invariants. The conceptual model of the system domain is taken to be the initial structural model for the software system to be developed. It consists of a class diagram, class descriptions and invariants.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Concrete class&lt;/b&gt; – 
A class that, unlike an abstract class, may have instances that are not instances of any of its child classes.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Constraint (on the system domain)&lt;/b&gt; – 
A limitation on the entities in the system domain, their properties and relationships.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Derived association&lt;/b&gt; – 
An association all of whose links can be derived using other elements of the model.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Derived attribute&lt;/b&gt; – 
An attribute all of whose values can be derived using other elements of the model.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Event (in the system domain)&lt;/b&gt; – 
Any significant circumstance, episode, interaction, happening or incident, e.g. deliveries, registrations, bookings, enrolments.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Generalisation&lt;/b&gt; – 
A relationship between classes that captures the similarities and differences between two related classes. Saying that class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is a generalisation of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; means that the common (similar) structure and behaviour is defined by class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, and the distinctive (different) structure and behaviour is defined by class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;. It means that an instance of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is substitutable for an instance of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Inherit&lt;/b&gt; – 
Take on the properties (attributes and associations) of a parent class.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Initial structural model&lt;/b&gt; – 
The initial structural model is the conceptual model viewed as the first model of the structure of the proposed software system. In other words, the conceptual and initial structural models &amp;#x2018;look’ the same but have different perspectives: one models the system domain; the other is taken as the first model of the software system itself.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Instance&lt;/b&gt; – 
Refers to a particular object of a class or a particular link of an association.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Invariant&lt;/b&gt; – 
Any condition on the objects of a conceptual model, their attribute values and links that must hold for the requirements to be satisfied and the consistency of the model to be guaranteed.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Link&lt;/b&gt; – 
A link exists between two objects when there is a connection between the entities they represent that is significant for the system domain. A link is an instance of an association.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Multiplicity&lt;/b&gt; – 
The multiplicity of an association with respect to one of the classes involved defines how many objects of that class may be linked with a single object of the other class involved in the association.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Noun phrase&lt;/b&gt; – 
A noun phrase is a phrase (a sequence of words like &amp;#x2018;number of copies’) that functions as a noun and which can be used anywhere that a noun could be used.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Object (in the conceptual model)&lt;/b&gt; – 
An object models a real-world entity from the system domain.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Organisational unit&lt;/b&gt; – 
Any part of an organisational structure to which people or things in the system domain belong.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Parent class&lt;/b&gt; – 
A class that is a generalisation of one or more other classes known as its child classes; a superclass.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Role&lt;/b&gt; – 
The particular responsibility or job that a person (thing) may perform in the system domain, e.g. employee, student, lecturer, driver.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Specialisation&lt;/b&gt; – 
Saying that a class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is a specialisation of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; means that class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is a generalisation of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Stereotype&lt;/b&gt; – 
A label providing additional information about some component of a UML model. Stereotypes are enclosed in double chevrons, e.g. &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;abstract.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Structural model&lt;/b&gt; – 
A representation of the system in terms of classes and the relationships between them.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Subclass&lt;/b&gt; – 
See child class.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Substitutable, substitutability&lt;/b&gt; – 
Objects of a class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; are substitutable for objects of a class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; if anywhere that an instance of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; is required, an instance of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; can be used instead. For class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; to be a generalisation of class &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;, instances of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;b.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt; must be substitutable for instances of &lt;span class=&quot;oucontent-inlinefigure&quot;&gt;&lt;img src=&quot;a.gif&quot; alt=&quot;&quot;/&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Superclass&lt;/b&gt; – 
See parent class.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Tangible entity&lt;/b&gt; – 
A physical &amp;#x2018;thing’ in the system domain such as an aeroplane, vehicle, reactor or person, i.e. something that can be seen or touched.
&lt;/p&gt;&lt;p&gt;
&lt;b&gt;Value (of an attribute)&lt;/b&gt; – 
Specific information that an object holds in respect of an attribute.
&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=10</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/a.gif"
             fileSize="2121"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/b.gif"
             fileSize="2278"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/abstract.gif"
             fileSize="681"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/age.gif"
             fileSize="1173"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/dateofbirth.gif"
             fileSize="800"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/numberoffreebeds.gif"
             fileSize="200"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/capacity.gif"
             fileSize="921"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team.gif"
             fileSize="86"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/juniordoctor.gif"
             fileSize="732"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/consultantdoctor.gif"
             fileSize="659"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isheadedby.gif"
             fileSize="916"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/isresponsiblefor.gif"
             fileSize="734"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hospital_requirements.pdf"
             fileSize="123003"
             type="application/pdf"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/hastreated.gif"
             fileSize="794"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/contains.gif"
             fileSize="880"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/apatient.gif"
             fileSize="851"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor.gif"
             fileSize="1023"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_034i.jpg"
             fileSize="24841"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/m256_1_035i.jpg"
             fileSize="22027"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/patient10.gif"
             fileSize="129"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/team4.gif"
             fileSize="97"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor2.gif"
             fileSize="906"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/doctor1.gif"
             fileSize="898"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/localactivist.gif"
             fileSize="685"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/publicmeeting.gif"
             fileSize="182"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/communitygroup.gif"
             fileSize="817"
             type="image/gif"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2674/!via/oucontent/course/841/film5.gif"
             fileSize="1091"
             type="image/gif"
             medium=""
      />
    </item>
    <item>
      <title>Next steps</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=10.1</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;After completing this unit you may wish to study another OpenLearn Study Unit or find out more about this topic. Here are some suggestions:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk/course/view.php?id=2575&quot;&gt;Representing and manipulating data in computers (T224_2)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk/course/view.php?id=2814&quot;&gt;Data and processes in computing (M263_1)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/openlearn/science-maths-technology&quot;&gt;Science, Maths and Technology&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you wish to study formally at The Open University, you may wish to explore the courses we offer in this curriculum area:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/undergraduate/course/m256.htm&quot;&gt;Software development with Java
(M256)
&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/undergraduate/computing-and-ict/index.htm&quot;&gt;Computing and ICT&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Or find out about studying and developing your skills with The Open University:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/&quot;&gt;Ou study explained&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/skillsforstudy/&quot;&gt;Skills for study&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Or you might like to:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;Post a message to the &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk/mod/forumng/view.php?id=396461&quot;&gt;unit forum&lt;/a&gt;, to share your thoughts about the unit or talk to other OpenLearners&lt;/li&gt;&lt;li&gt;Review or add to your &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk/mod/oublog/view.php?&quot;&gt;Learning Journal&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk/blocks/rate_course/rate.php?courseid=2674&quot;&gt;Rate this unit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=10.1</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>References</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__references</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;div class=&quot;oucontent-referenceitem&quot;&gt;Coad, P. and Yourdon, E. (1991) &lt;i&gt;Object-Oriented Analysis&lt;/i&gt;, Prentice Hall PTR.&lt;/div&gt;
&lt;div class=&quot;oucontent-referenceitem&quot;&gt;Schlaer, S. and Mellor, S. (1988) &lt;i&gt;Object-Oriented Systems Analysis: Modeling the World in Data&lt;/i&gt;, Yourdon Press.&lt;/div&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__references</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
    <item>
      <title>Acknowledgements</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__acknowledgements</link>
      <pubDate>Fri, 15 Jul 2011 08:26:29 GMT</pubDate>
      <description>&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;
&lt;p/&gt;
&lt;p&gt;All materials included in this unit are derived from content originated at the Open University.&lt;/p&gt;
&lt;p/&gt;
&lt;h2 class=&quot;oucontent-h3 oucontent-basic&quot;&gt;Don't miss out&lt;/h2&gt;
&lt;p&gt;1. Join the 200,000 students currently studying with&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/&quot;&gt; The Open University&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2. Enjoyed this? Browse through our host of free course materials on &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://openlearn.open.ac.uk&quot;&gt;LearningSpace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;3. Or browse more topics on &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/openlearn&quot;&gt;OpenLearn&lt;/a&gt;.
&lt;/p&gt;
&lt;div class=&quot;oucontent-copyright&quot;&gt;&lt;p&gt;Except for third party materials and otherwise stated (see &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.open.ac.uk/conditions&quot;&gt;terms and conditions&lt;/a&gt;), this content is made available under a &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/uk/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <guid isPermaLink="true">http://openlearn.open.ac.uk/mod/oucontent/view.php?id=399426&amp;section=__acknowledgements</guid>
          <dc:title>Modelling object-oriented software – an introduction</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>classes</dc:subject>
          <dc:subject>derived_attributes</dc:subject>
          <dc:subject>model</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>modelling_events</dc:subject>
          <dc:subject>object_oriented</dc:subject>
          <dc:subject>software</dc:subject>
          <dc:subject>system</dc:subject>
          <dc:description>How do you model a software system? This unit will help you to work through the processes necessary to produce a conceptual model, by analysing the requirements document to identify classes and associations appropriate for modelling the system domain, together with their respective attributes and multiplicities.</dc:description>
          <dc:publisher>The Open University</dc:publisher>
          <dc:creator>The Open University</dc:creator>
          <dc:type>Course</dc:type>
          <dc:format>text/html</dc:format>
          <dc:identifier>M256_1</dc:identifier>
          <dc:source>Software development with Java - M256</dc:source>
          <dc:language>en-GB</dc:language>
          <dc:relation>http://www.open.ac.uk/openlearn/science-maths-technology/computing-and-ict</dc:relation>
          <dc:relation>http://www3.open.ac.uk/study/</dc:relation>
          <dc:rights>Except for third party materials and otherwise stated (see http://www.open.ac.uk/conditions terms and conditions), this content is made available under a http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence</dc:rights>
      <cc:license>Licensed under a Creative Commons Attribution - NonCommercial-ShareAlike 2.0 Licence - see http://creativecommons.org/licenses/by-nc-sa/2.0/uk/ - Original copyright The Open University</cc:license>
    </item>
  </channel>
</rss>
