<?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 Models and modelling</title>
    <link>http://openlearn.open.ac.uk</link>
    <description>This RSS feed contains a list of all sections in the unit Models and modelling</description>
    <generator>Moodle</generator>
    <language>en-gb</language>
    <copyright>http://creativecommons.org/licenses/by-nc-sa/2.0/uk/</copyright>
    <lastBuildDate>Fri, 15 Jul 2011 11:15:18 GMT</lastBuildDate>
    <pubDate>Fri, 15 Jul 2011 11:15:18 GMT</pubDate>
    <dc:date>2011-07-15T11:15:18Z</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=397581</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.&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/postgraduate/course/m883.htm&quot;&gt;&lt;i&gt; Software requirements for business systems&lt;/i&gt; (M883).&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=397581</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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=397581&amp;section=__learningoutcomes</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Having studied this unit you should be able to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;explain why modelling plays a key role in eliciting requirements;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;identify the different kinds of model used in eliciting requirements;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;explain the need for modelling languages;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;interpret a data flow diagram describing a simple process;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;interpret a use case diagram describing a system's response to a business event;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;interpret an activity diagram describing the activities that make up a business system;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;interpret an entity–relationship diagram that describes the data involved in a business process;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;interpret a state machine diagram that describes how a system responds to a sequence of events.&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=397581&amp;section=__learningoutcomes</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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 Types of model</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=1.1</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;When the word model is used, you are most likely to bring to mind physical models such as those that are constructed to depict new buildings, cars or other artefacts. Such models are a precursor to actually building the artefact &amp;#x2018;for real’. However, our use of the word goes beyond physical models. For example, when a new house is built there will be a variety of plans produced to show different aspects of the house: its floor plan, a diagram of its location, a drawing of the front elevation and so on. These are also models because they show different aspects of the house (just as a physical model would do). Some of these plans are useful to prospective purchasers, some are useful to the builders, while others are required by local authorities. The point is, each model is useful to different people and helps to communicate the ideas of the developers to prospective builders, buyers and authorities, all of whom have different needs in relation to the house. Models are mechanisms for communication. But each model shows only a small amount of the totality of information about the artefact; too much information in a model makes it difficult to comprehend.&lt;/p&gt;&lt;p&gt;In this unit, we shall describe a number of different modelling techniques. But they all have one thing in common: they are all diagramming techniques that are commonly used in describing &amp;#x2018;systems’ such as business processes, manufacturing processes and software development. In such a system, particularly when it is large, a major activity is the determination of the requirements for the system (what it should do), a role undertaken by a requirements analyst who uses diagramming modelling techniques to specify the system.&lt;/p&gt;&lt;p&gt;The reason that you need to look at a variety of diagramming techniques is that each one provides a different view of a system and a complete understanding of a system cannot be obtained without a number of different views. This does not mean that every diagramming technique that we shall describe is required to describe every system. Rather, the techniques that are appropriate to a given system will depend upon the type of system and what you want the description for.&lt;/p&gt;&lt;p&gt;There are many diagramming techniques in existence and we cannot cover them all in this unit. Therefore, we shall concentrate on five of the most commonly used techniques. Our selection is sufficiently varied to provide you with a good overview of the different kinds of views that one needs for different kinds of system.&lt;/p&gt;&lt;p&gt;We shall begin our discussion by looking more deeply at what a model is and what the process of modelling is about. We shall take a brief diversion to discuss modelling languages to see why it is necessary to rigorously define a modelling technique. We then move on to the five diagramming techniques:&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001_001&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Data flow diagrams&lt;/p&gt;&lt;p&gt;Use case modelling&lt;/p&gt;&lt;p&gt;Activity diagrams&lt;/p&gt;&lt;p&gt;Entity–relationship diagrams&lt;/p&gt;&lt;p&gt;State machines&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;The material in this unit has been extracted from the Open University Masters-level course M883, &lt;i&gt;Software Requirements for Business Systems&lt;/i&gt;. While that course is primarily about software development, the modelling techniques discussed in this unit are applicable to a wide range of systems. Indeed, the main purpose of a model is to act as a mechanism for describing the requirements of an artefact (of any kind, including software).&lt;/p&gt;&lt;div class=&quot;oucontent-box oucontent-s-heavybox1 oucontent-s-box &amp;#10;        oucontent-s-noheading&amp;#10;      &quot; id=&quot;box001_001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;p&gt;&lt;b&gt;Further reading&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Occasionally, you will see reference to &lt;i&gt;&amp;#x2018;MRP’&lt;/i&gt;. This is a shorthand for the book, &lt;i&gt;Mastering the Requirements Process&lt;/i&gt; by Suzanne Robertson and James Robertson published by Addison Wesley, 1999, which is the set book for the course M883. It is not required in order to understand the materials in this unit, but can be referred to if you want to learn more about an individual topic.&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=397581&amp;section=1.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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 What is modelling?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=2.1</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;&lt;b&gt;Modelling&lt;/b&gt; is about building representations of things in the &amp;#x2018;real world’ and allowing ideas to be investigated; it is central to all activities in the process for building or creating an artefact of some form or other. In effect, a model is a way of expressing a particular view of an identifiable system of some kind. &lt;b&gt;Models&lt;/b&gt; are:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;a means of understanding the problems involved in building something;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;an aid to communication between those involved in the project, especially between the requirements analyst (a development role) and the user, as part of some deliverable;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;a component of the methods used in development activities such as the analysis of the requirements for an artefact and the design of the artefact.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A model is an &lt;b&gt;abstraction&lt;/b&gt;, which allows people to concentrate on the essentials of a (complex) problem by keeping out non-essential details. Since there is a limit to how much a person can understand at any one time, we build models to help in activities such as the development of large software systems. For example, developers build different models throughout the development process in order to verify that the eventual software system will meet the requirements.&lt;/p&gt;&lt;p&gt;Models are, in one respect, idealisations in the sense that they are less complicated than reality; they are simplifications of reality. The benefit arises from the fact that only the properties of the world relevant to the job in hand are represented. For example, a road map is a model of a particular part of the earth's surface. We do not show things like vegetation or birds' nests as they are not relevant to the map's purpose. We use a road map to plan our journeys from one place to another and so the map should only contain those aspects of the real world that serve the purpose of planning journeys.&lt;/p&gt;&lt;p&gt;A model and the real world are alike in some ways, but different in others. For example, road maps are helpful because they represent the distance between, and relative positions of, a set of places and the routes between them. They use the relevant properties of the real thing with just a change in scale; one centimetre on the road map, for instance, may be equivalent to one kilometre on the ground. A map may be unhelpful if it shows only major roads.&lt;/p&gt;&lt;p&gt;Quite often, a property of the real world may be represented by a different kind of property in a model. In the case of the road map, different colours are normally used to represent different classes or types of road. Such a road map should have a key or legend so that those who read the map can understand what the different coloured lines are intended to represent. In effect, an analogy is being used to exploit the similarity between two different properties: one in the real world and one in the model.&lt;/p&gt;&lt;p&gt;Models of a problem situation are only an approximate representation of that situation. The real world situation will have a complexity that tends to reduce your chances of achieving an exact representation. So, you need to find some way of achieving an acceptable balance between accuracy and manageability. As a project unfolds, there will be a number of practical considerations that result in some compromise. It is for this reason that several different models are built, each one representing different aspects (views) of the real world.&lt;/p&gt;&lt;p&gt;If a model is so complex that its author (or other team members) cannot use it, then that model is of little or no value. However, simplification is only of value if all simplifying assumptions, and their consequences, are made explicit. At some point in a project, any of these assumptions may need to be justified.&lt;/p&gt;&lt;p&gt;Models are subject to change. At the very least they require some form of testing so that a model can maintain its correspondence with reality. As towns and cities expand and contract, a road map must be changed to reflect the new situation. In the worst case, a change in scope necessitates a whole new model. For example, if there was a need to reflect the current status of roads and the traffic on them, a simple road map is inadequate since we would want to show, amongst other things, the changes in traffic density over time.&lt;/p&gt;&lt;p&gt;Unfortunately, not all models of a particular type share the same notation, often because they originate from different sources. For example, different publishers will have different ways of constructing and presenting road maps.&lt;/p&gt;&lt;p&gt;When developing a product, a variety of models are likely to be constructed. It is unrealistic to expect to put everything into just one model. Too much detail in a model can only be a distraction. It would be hard to use such a model as an aid to communication.&lt;/p&gt;&lt;p&gt;Each model is used to illustrate a different point of view. For example, there are two different kinds of views that modellers often distinguish:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;static models, which describe a set of elements and any relationships that exist between them;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;dynamic models, which describe the behaviour of one or more elements over time.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There is a useful discussion in Michael Jackson's &lt;i&gt;Software Requirements and Specifications&lt;/i&gt; (1995, p. 120) where he defines what he means by a model by distinguishing between a model and reality in relation to developing software. To Jackson, a model refers to the machine (what the software does when it executes on a computer), which embodies a simulation of the real thing; it is a description of a domain (that part of reality that you are interested in). A model and the domain are different so he draws attention to the difference between a description that is true in both the machine and the domain, a description that is true only of the domain, and another description that is true only of the machine. It is important to be clear whether you are talking about reality, the machine, or both.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Further reading&lt;/b&gt;: Michael Jackson, &lt;i&gt;Software Requirements and Specification&lt;/i&gt;, Addison-Wesley, 1995, ISBN 0-201-87712-0&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=397581&amp;section=2.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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 Making consistent models</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=3.1</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;It would be preferable to have a consistent way of representing the different models that one might want to construct. The notion of a modelling language allows the developer to make useful connections between different models. For the most part, models are represented diagrammatically. There are two aspects of a diagram-based modelling language that you should be aware of:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;a set of rules that defines what symbols can be used on a particular type of diagram and what can be constructed with these symbols – its &lt;i&gt;syntax;&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;one that determines what the diagrams and symbols mean – its &lt;i&gt;semantics&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It is important to recognise that you construct models to express your understanding of a particular situation in the expectation that the model will help you pass on that understanding to others. On any given project there are decisions to be made about every model. You should favour a modelling language that is:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;sufficiently expressive, so that you can be confident that your particular &amp;#x2018;take’ on a situation can be represented;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;easy enough to use, but in such a way that its notation allows you to express what you want to say (there will necessarily be some limitations on this because models are a simplification of reality);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;unambiguous, so that the number of possible interpretations of your model are minimised (ideally, that number should be one);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;supported by suitable tools, so that you can apply your modelling skills and not be constrained by your drawing skills;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;widely used, so that you can move to other problem situations without having to learn a new modelling language every time. If you leave one project team and join another that uses the same modelling language, you need only learn about the new problem situation. This advantage is amplified if you have also moved to a different company at the same time! Naturally, the team that you join will expect you to be more productive than if you had to learn a whole new modelling language.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Using an accepted language increases the chance that a component developed for one product, such as a software application or some electrical device, can become a component in another product. For example, suppose you were trying to decide which electric motor to include in a new vacuum cleaner. Clearly, you would begin by reading all the descriptions. The chances of choosing an appropriate electric motor are increased if you can understand the descriptions of its specification to be confident that it will meet your requirements.&lt;/p&gt;&lt;p&gt;For example, the development of software applications according to object-oriented principles is commonplace. The &lt;b&gt;Unified Modelling Language&lt;/b&gt; (UML) has emerged to become an industry standard. Its success is partially due to its separation from any particular method for developing software. UML is available for anyone to include in his or her own method. Although a detailed history and description of UML is beyond the scope of this unit, it is useful to know that it was derived from three of the most popular methods that were used in early projects that adopted object-oriented principles in software development. UML is intended to be a general purpose language for software development – it is not meant to be a complete language for modelling all aspects of all systems.&lt;/p&gt;&lt;p&gt;The UML is only one of many modelling languages that have been developed and which are in common use. They provide different viewpoints on the decomposition of problems. As a requirements analyst, you would need to explore other modelling notations, languages and techniques. For example, different types of model you might find useful are:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;a model to identify the key stakeholders and their relationships to one another;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;a model that shows how the intended product fits into its working environment (known as a context model);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;a model which shows the parts of the product that come about because of a particular requirement (that is, one that shows the relationships between an agreed set of requirements and the eventual product, and enables you to trace the links between the requirements and the product – such a model is an essential component of working on projects).&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=397581&amp;section=3.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.1 What is a data flow diagram?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=4.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_001bi.small.jpg" length="39604" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;A &lt;b&gt;data flow diagram&lt;/b&gt; (DFD) is a graphical description of the ebb and flow of data in a given context. A DFD allows you to identify the transformations that take place on data as it moves from input to output in the system. (DFDs pre-date UML diagrams, but still have a complementary role to play in describing systems.)&lt;/p&gt;&lt;p&gt;The &lt;i&gt;Case Study&lt;/i&gt; below provides an example of a DFD used to describe the Open University's eTMA system (electronic Tutor Marked Assignment system). It uses the notation described in Table 1 below.&lt;/p&gt;&lt;div class=&quot;oucontent-box oucontent-s-heavybox1 oucontent-s-box &amp;#10;        oucontent-s-noheading&amp;#10;      &quot; id=&quot;box001_001a&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;p&gt;&lt;b&gt;Case study: An electronic tutor-marked assignment (eTMA) system&lt;/b&gt;&lt;/p&gt;&lt;p&gt;As you may already know, the Open University (OU) operates what we call the &lt;i&gt;eTMA system&lt;/i&gt; – a system that, among other things, enables students to submit their assignments electronically. The eTMA system came about through pressure, in the mid-1990s, from both students and the University. Students had begun to use word processors to prepare their assignments and they wanted to submit them electronically rather than print out the assignments and submit them using the postal system. At the same time, the University wanted to extend its reach to non-UK residents in countries where the postal system was less reliable and less efficient than that in the UK. Both sets of goals could be satisfied by an electronic system. At much the same time, demand for an electronic system was also coming from a small number of course teams in different academic units (the Faculty of Mathematics and Computing, the Faculty of Technology and the Business School). Although there was only a small number of courses involved, these were among the largest courses in the University (one of the Technology courses had 12,000 students on its first presentation!).&lt;/p&gt;&lt;p&gt;Prior to the development of the eTMA system, the University's assignment handling system was entirely paper-based with assignments written (often by hand) on paper and posted to tutors. Paper-based TMAs were accompanied by a multipart control form (known as a PT3 form), the naming of which was lost in the sands of time, but we do know that PT stood for &amp;#x2018;part time’ and 3 indicated the third in a sequence of forms dealing with different aspects of assignment handling. The tutors mark the paper-based assignments, fill in the PT3 forms and send the amended documents to the University by post.&lt;/p&gt;&lt;p&gt;The University operates a large Assignment Handling Office headed by the Head of Assignment Handling who is responsible for ensuring that all University policies and functions relating to assignments are carried out appropriately. Among other things, assignment handling clerks (a) enter the marks into the student records database, (b) copy some assignments for monitoring (quality assurance) purposes, and (c) send the marked paper-based assignments back to the student using the postal service.&lt;/p&gt;&lt;p&gt;The paper-based system runs in parallel with the eTMA system as there are still courses for which the eTMA system is not suitable for the types of assessment materials involved, and it acts as a back-up system should the eTMA system be unavailable. However, the University wants more courses to use the eTMA system because it provides a better service to students, gives more management information and is potentially less expensive.&lt;/p&gt;&lt;p&gt;&lt;b&gt;The eTMA system&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The eTMA system allows students to submit their answers to tutor-marked assignments (TMAs) electronically, as computer files, to the University via a website. Whenever a TMA file is submitted, it is stored in a central database and a &amp;#x2018;receipt’ (a simple message containing a unique number) is sent to the student to acknowledge that the TMA has been received. Tutors (Associate Lecturers) are informed, by email, that a TMA is waiting for them to be marked.&lt;/p&gt;&lt;p&gt;The system enables tutors to download their students' submissions, mark and comment on the assignments &amp;#x2018;on-screen’ and submit the marked TMAs back to the University. A marked TMA is stored in a database and the student is informed, by email, that their TMA has been marked and is available to be retrieved electronically.&lt;/p&gt;&lt;p&gt;When the tutor downloads an unmarked TMA, she also receives an electronic version of the PT3 form on which the marks awarded for each question and the overall comments on the TMA must be entered. The completed PT3 form accompanies the TMA when it is sent to the OU database, and eventually both of them are sent electronically to the student.&lt;/p&gt;&lt;p&gt;The data flow diagram given in Figure 1 summarises the basic system.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig001_001b&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1742917.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_001bi.small.jpg&quot; alt=&quot;Figure 1&quot; longdesc=&quot;x_m883_1_longdesc_id1741868.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1742917.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;Figure 1 The basic electronic tutor-marked assignment 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_m883_1_longdesc_id1741868.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1741868&quot; id=&quot;back_longdesc_id1741868&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1742917&quot; id=&quot;back_thumbnail_id1742917&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Whilst not shown in Figure 1, the fact that both the unmarked and marked assignments are saved by the University enables it to implement a number of web-based reports that provide summary information to students and tutors on the current status of their assignments within the system, as well as providing management information for the University's Assignment Handling Office.&lt;/p&gt;&lt;p&gt;To match the existing paper-based TMA system, marks and tutor comments are extracted from marked assignments and added to the students' records. Since the number and size of eTMAs is potentially huge, the University has decided that complete marked and unmarked assignments would be stored only for a short period of time.&lt;/p&gt;&lt;p&gt;From the start, the aim was to provide a web browser interface for both students and tutors. However, for security reasons, there would be two subsystems: one for students and one for tutors.&lt;/p&gt;&lt;p&gt;Should the eTMA system ever fail and be unavailable to students, a back-up system has been implemented in which students are able to submit an assignment as an attachment to an email. The attachment is extracted by the University and fed into the eTMA system once the eTMA system is operational again.&lt;/p&gt;&lt;p&gt;The basic system has been gradually enhanced and now provides a number of facilities not shown in Figure 1. For example, one of the OU's quality control systems involves monitoring, that is, examining samples of each tutor's work to ensure that standards of marking are being maintained. In the paper-based TMA system, clerks in the central Assignment Handling Office take samples of marked TMAs, photocopy them, and send the copies to the monitors (academic staff who review the work of tutors and report back on the quality of the work). In the current version of the eTMA system, electronic copies of the tutors’ work are sent to the monitors who will send back electronic versions of their reports.&lt;/p&gt;&lt;p&gt;The eTMA system also checks a number of business rules regarding the submission of TMAs. For example, a student can make as many submissions as he likes, but only the last one will be marked (provided the submissions are made before the cut-off date or before the tutor has downloaded the eTMA).&lt;/p&gt;&lt;p&gt;The system also rejects any submission that either contains a virus or is too large.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl004_001&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Table 1 DFD notation&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot;&gt;Item&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Representation&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;External entity&lt;/td&gt;
&lt;td&gt;A rectangle&lt;/td&gt;
&lt;td&gt;A producer or consumer of information that is outside the process being modelled.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Process or activity&lt;/td&gt;
&lt;td&gt;A circle&lt;/td&gt;
&lt;td&gt;A transformer of information that is within the scope of the system being modelled.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Data (flow)&lt;/td&gt;
&lt;td&gt;A line with an arrowhead that indicates the direction of data flow&lt;/td&gt;
&lt;td&gt;The input to, or output from, a given process, which is associated with each arrow in a DFD.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Data store&lt;/td&gt;
&lt;td&gt;Two parallel lines with the name of the data store between them&lt;/td&gt;
&lt;td&gt;A repository of data for use by one or more processes.&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;The description inside each process bubble should be as terse and as meaningful as possible. The use of an imperative verb and a simple object can easily indicate the desired transformation. In the &lt;i&gt;Case Study&lt;/i&gt; above for example, you can find processes called &amp;#x2018;Submit assignment’ and &amp;#x2018;Download unmarked assignment’.&lt;/p&gt;&lt;p&gt;It is common to use a decimal numbering system to identify each process or activity at its given level of abstraction. For example, in Figure 1, we could label the six process bubbles from 1 to 6 with &amp;#x2018;Submit assignment’ being number 1, say. Then, if we wanted to show the details of &amp;#x2018;Submit assignment’ in another DFD we would label the processes in the new diagram 1.1,1.2, and so on to show the connection with the original DFD.&lt;/p&gt;&lt;p&gt;When you decompose or refine an activity and show the result in a new DFD it is essential, for the development of a consistent set of models, that the inputs and outputs of each successive decomposition or refinement remain the same. In addition to the set of DFDs that describe something like the eTMA system, you should also prepare a dictionary or glossary of the terms you have used in the diagrams like &amp;#x2018;assignment’ and &amp;#x2018;tutor identifier’. In particular, you need to record your understanding of the content of the data associated with each arrow and the stores.&lt;/p&gt;&lt;p&gt;An important aspect of a DFD, and its main benefit in a requirements process, is that there is no explicit indication of the sequence of processing in the notation. A DFD identifies what is happening and what is being passed in and out of each activity, but it does &lt;i&gt;not&lt;/i&gt; specify the order in which things happen. In other words, you can identify the activities that take place at a given level of abstraction, such as Figure 1 above, but some other technique is needed to indicate the time-ordering of those activities. Some kind of sequence &lt;i&gt;may&lt;/i&gt; be implied by the naming of activities, as in Figure 1, although any combination of the activities may be somewhere between their starting and finishing points at a given point in time.&lt;/p&gt;&lt;p&gt;The convention followed in DFDs to minimise the number of overlapping lines is to allow external entities and data stores to be duplicated.&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=397581&amp;section=4.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_001bi.small.jpg"
             fileSize="39604"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>5.1 More information about modelling techniques</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=5.1</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;The four remaining diagramming techniques are described in separate sections below, which you should now study:&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001_i001&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot;&gt;Diagramming Technique&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Section&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Use case modelling&lt;/td&gt;
&lt;td&gt;Use Cases and Activity Diagrams&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Activity diagrams&lt;/td&gt;
&lt;td&gt;Use Cases and Activity Diagrams&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Entity–relationship diagrams&lt;/td&gt;
&lt;td&gt;Entity–relationship data modelling&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;State machines&lt;/td&gt;
&lt;td&gt;An Introduction to State Machines&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=397581&amp;section=5.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.1 Use case modelling</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_001i.jpg" length="29727" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg" length="33284" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;In this section, we take a closer look at &lt;i&gt;use case modelling&lt;/i&gt;, and show you how it can be used to model the requirements for a product that includes the development of a software application or, simply, a system. Use case models act as a discussion tool between the requirements analyst and stakeholders, and offer a common language for agreeing the functions of a proposed system. In this discussion, we shall use the Unified Modelling Language (UML) notation (diagrams) for use cases to reflect the fact that the development team are the stakeholders as well as the client and the intended users.&lt;/p&gt;&lt;p&gt;The use cases for a system are a record of the intended behaviour of the system that is visible to its users. This behaviour is what the system does when responding to the events that arise from its interactions with a set of actors. The people who use the software system will be one group of actors, but there may be other systems (some of which could be software based) and devices (including computers) that must interact with the intended (software) system, which are also actors.&lt;/p&gt;&lt;p&gt;An &lt;b&gt;actor&lt;/b&gt; is anything outside a software system that interacts with it. For example, in a system that allows people to buy goods over the Internet, the human users will be significant actors, but so too will be the credit card system that enables users to pay for their purchases. Representing other systems as actors lets you focus upon your area of concern. In UML, all actors (human or otherwise) are represented by stick figures as illustrated in Figure 2.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:444px;&quot; id=&quot;fig001&quot;&gt;&lt;img src=&quot;m883_1_001i.jpg&quot; alt=&quot;Figure 2&quot; longdesc=&quot;x_m883_1_longdesc_id1743457.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 use case model for a system for checking in and out of a hotel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1743457.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1743457&quot; id=&quot;back_longdesc_id1743457&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The contents of the use case ovals represent some &lt;i&gt;tasks&lt;/i&gt; or &lt;i&gt;coherent units of functionality&lt;/i&gt;, as the UML defines it, which the system performs. The detailed description of each use case is held elsewhere. An actor, shown by a stick figure, represents the &lt;i&gt;role&lt;/i&gt; that a human or non-human entity outside the system, often called a user, might play. The line connecting an actor figure and a use case oval indicates an association between them, which represents communication between the actor and the use case. It means that the actor &lt;i&gt;may&lt;/i&gt; be involved in carrying out the task; it does not mean that it &lt;i&gt;must&lt;/i&gt; be involved, as we shall explain later.&lt;/p&gt;&lt;p&gt;The simple notations, like those in Figure 2, for the elements of a use case diagram are intended to be intuitive, even for a lay person who is unfamiliar with the notation. It is possible to exploit this simplicity to represent the main functions of a particular business. For example, if your business was a lending library, then its main functions to be represented in a use case diagram would be the borrowing of books, videos and CDs by its members. Copies of books, films and music are the things handled or used by people; they are examples of &lt;i&gt;business objects&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;Use case diagrams deal with functional requirements (things that the system must do) alone, but it is often recommended that, as you develop a use case diagram and come across nonfunctional requirements (qualities that the product should have such as how responsive the system should be), you should record them by annotating the use case diagram with a descriptive note. In the UML, a note is shown as a rectangle with the top, right-hand corner folded down (see Figure 3). Dashed lines are used to attach the note to the model element(s) to which it refers.&lt;/p&gt;&lt;p&gt;The system boundary, denoted in the UML by a rectangle surrounding the use cases is an important conceptual line that separates the system we are interested in from the rest of the world. By drawing the boundary around the system represented in a use case diagram, you are setting the scope of your solution. Figure 3 shows a boundary for the hotel chain use cases. In simple use case diagrams, it is common to omit the system boundary as in Figure 2.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:476px;&quot; id=&quot;fig002a&quot;&gt;&lt;img src=&quot;m883_1_002i.jpg&quot; alt=&quot;Figure 3&quot; longdesc=&quot;x_m883_1_longdesc_id1743540.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 A use case model for a system for checking in and out of a hotel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1743540.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1743540&quot; id=&quot;back_longdesc_id1743540&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Figure 3 illustrates a common problem. From the diagram alone, it is not clear which of the two actors, &lt;i&gt;Guest&lt;/i&gt; or &lt;i&gt;Receptionist&lt;/i&gt;, initiates the &lt;i&gt;make reservation&lt;/i&gt; use case. It may even be that both are needed to complete the use case successfully. The UML provides several ways to deal with this problem. The simplest, which is shown in Figure 3, is to use a note to record this observation; you would then refine (that is to say, amend, improve or extend) the model when you know more about the use case.&lt;/p&gt;&lt;p&gt;The work context diagrams in &lt;i&gt;MRP&lt;/i&gt; are related to use case diagrams through business events. Inside the system boundary is the work, and the actors represent either people or autonomous cooperative adjacent systems. The actors represent the context within which the work exists. The lines joining an actor to a use case represent communication (the flow of data). In this section, we are not only interested in the context of the work, we also want to look more closely at the work itself.&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=397581&amp;section=6.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_001i.jpg"
             fileSize="29727"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg"
             fileSize="33284"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.2 Actors</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.2</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Iteration is a natural part of the modelling process. It does not matter whether you start by looking for the actors or the use cases. We have chosen to begin with the actors, since it is a way of expressing the system boundary implicitly and identifying the different views that need to be taken into account. In practice, you are likely to find that the actors are to be found in the roles that people play as employees in the problem domain, such as the hotel's receptionist or manager.&lt;/p&gt;&lt;p&gt;Actors are not intended to represent a particular individual, rather they tell us about a particular role that someone or something might adopt in order to interact with a system. For example, someone who works as a receptionist in one hotel might want to stay in another hotel as part of his or her holiday. Thus the same person will act in the role of receptionist at some times but will adopt the role of a guest at other times. Hence the two roles are modelled as different actors.&lt;/p&gt;&lt;p&gt;You could begin the task of identifying the actors by looking for the groups of people who use the current system in order to do their work. It might be easy to find those who perform the main tasks, such as the receptionists who work on the front desk of a hotel. But it might be harder to find those who use the system in support of their administrative or maintenance tasks. For example, would the maintenance engineers and cleaners in the hotel have to be considered? The answer will clearly depend on the scope of the problem being solved.&lt;/p&gt;&lt;p&gt;You can use an actor to represent an external software system. In the case of the hotel chain, it is likely that you will need to pass information about a guest's stay to an accounting system. At some later point, you may be asked to provide an interface to the restaurant side of the hotel in order to associate the costs of any meals with the guests who ate them. When the guest leaves the hotel, there may be a requirement to collect payment for the guest's stay from an external banking or credit card system. In each case, you should consider whether or not there is some value in an exchange between the use case and any identified external system. For the actors that you have chosen to include, treat them as though they were an autonomous black box. You do not need to know how they work. You only need to know about the shared phenomena that are relevant to the exchange between your system and the external system.&lt;/p&gt;&lt;p&gt;It is important to distinguish between an actor and the way that actor communicates with the system. For example, when analysing a system you should not be concerned with the mechanism used by the receptionist to check guests in and out of the hotel system. It could involve the use of a paper diary and a pen, a keyboard and a mouse to interact with a series of screens on a personal computer (PC) or even include a network connection or voice recognition software. You should concentrate on the meaning of the stimuli and the responses for any given use case, not the communication mechanism that is used. That mechanism is part of the solution, which you intend to provide.&lt;/p&gt;&lt;p&gt;In situations where two or more actors are associated with a use case, one of them must initiate the actions. The other actor(s) will play a passive role. For example, when a guest checks into a hotel in person, the receptionist typically performs the checking-in process and the guest has no direct interaction with the system. In &lt;i&gt;MRP&lt;/i&gt; this is described as a business event: the work learns that such an event has happened by the arrival of an incoming flow of data and responds to this business event.&lt;/p&gt;&lt;p&gt;When it comes to describing a use case, treat the system as a black box, as in the case of an external system. It will accept stimuli from the actors and generate responses. That is, information (data) flows between the actors and their associated use cases.&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=397581&amp;section=6.2</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.3 Describing use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.3</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg" length="33284" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg" length="33284" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;To understand the work, you need a good idea of what each use case means. To get a feel for what this might entail, look again at Figure 3 (reproduced below) which shows a simple use case model for a hotel chain reservation system. Note that Figure 3 is not intended to be an exhaustive model of the hotel domain; the scope of the problem to be solved is confined to reservations and the processes of checking in and out.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:476px;&quot; id=&quot;fig002b&quot;&gt;&lt;img src=&quot;m883_1_002i.jpg&quot; alt=&quot;Figure 3&quot; longdesc=&quot;x_m883_1_longdesc_id1743685.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 A use case model for a system for checking in and out of a hotel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1743685.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1743685&quot; id=&quot;back_longdesc_id1743685&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;What do the use cases &lt;i&gt;make reservation, check in guest&lt;/i&gt; and &lt;i&gt;check out guest&lt;/i&gt; mean? No doubt, using your own experience of reserving rooms at hotels, the names of the use cases are quite indicative of what they represent. However, you should never rely on intuition or personal experience but rather create a description of the use cases that you and the stakeholders can agree upon. For example, suppose that the following is a description of the &lt;i&gt;check in guest&lt;/i&gt; use case (for a particularly simple system).&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001_002&quot;&gt;&lt;blockquote&gt;&lt;p&gt;Upon arrival at a hotel, a guest provides the reference number for his or her reservation to the hotel's receptionist, who uses it to find the details of that reservation so that each guest can confirm them. The receptionist allocates an appropriate room to that guest and opens a bill for the duration of the stay. The receptionist issues a key for the room.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;Having read this description, you are probably thinking of all the deficiencies it contains. This is just what should happen: you need to check with the receptionist to clarify that the description contains all the necessary information. We shall not pursue this line of thought further now because we want to draw your attention to the following observations about the requirements of the &lt;i&gt;check in guest&lt;/i&gt; use case.&lt;/p&gt;&lt;p&gt;There is a condition, known as a &lt;b&gt;pre-condition&lt;/b&gt;, that must hold &lt;i&gt;before&lt;/i&gt; a room can be allocated to a guest. It is as follows.&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001_003&quot;&gt;&lt;blockquote&gt;&lt;p&gt;There must be a reservation for the guest and there must be at least one room available (of the desired type) and the hotel must be confident that the guest is able to pay for the room.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;There is another condition, known as a &lt;b&gt;post-condition&lt;/b&gt;, that must hold &lt;i&gt;after&lt;/i&gt; a room has been allocated to a guest. It is as follows.&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001_004&quot;&gt;&lt;blockquote&gt;&lt;p&gt;The guest will have been allocated to a room for the period identified in the reservation; the room will have been identified as being in use for a specific period and a bill will have been opened for the duration of the stay.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;In other words, we have captured the meaning of &lt;i&gt;check in guest&lt;/i&gt; in terms of two statements: one that must be true before the use case can be carried out – the precondition, and one that must be true once the use case has been completed – the postcondition. At some later point, the developer must decide how these conditions can be met as part of the design activity.&lt;/p&gt;&lt;p&gt;The advantage of describing a use case in terms of a pre-condition and a post-condition is that, when you go on to elaborate the use case in more detail, that is, to describe its components, you know that the components must also satisfy these same conditions. For example, it is no use if one of the components ignores the fact that there must be a vacant room &lt;i&gt;on the dates requested&lt;/i&gt; and allows the reservation to go ahead, or if a component fails to indicate that the room, once booked, cannot be booked again until it becomes free.&lt;/p&gt;&lt;p&gt;Notice that such a specification does not say &lt;i&gt;how&lt;/i&gt; a reservation must be performed; simply &lt;i&gt;what&lt;/i&gt; conditions should be satisfied. The advantage of thinking in this way is that it avoids all issues to do with software and leaves the developers (who may specialise in design and programming) to choose an appropriate implementation, which is their field of expertise.&lt;/p&gt;&lt;p&gt;The two descriptions: the first, which is entirely prose, and the second, which is more formal using pre- and post-conditions, are both equivalent descriptions (specifications) of the requirements represented by the &lt;i&gt;check in guest&lt;/i&gt; use case.&lt;/p&gt;&lt;p&gt;When something is described using natural language we often say that it is an &lt;i&gt;informal&lt;/i&gt; description. When we use a more structured approach to descriptions, such as the way in which we described the pre- and post-conditions for the &lt;i&gt;check in guest&lt;/i&gt; use case, we say that we are being more &lt;i&gt;formal&lt;/i&gt;. The ultimate level of formality, when we want to be as precise and unambiguous as possible, is the use of mathematics. There are times when the use of mathematics is essential; typically when dealing with software that controls situations which, if incorrect, can lead to death (for example, aircraft and nuclear power stations). However, you would not want to be too formal in most situations otherwise stakeholders are very unlikely to understand your requirements.&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=397581&amp;section=6.3</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_002i.jpg"
             fileSize="33284"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg"
             fileSize="33284"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.4 Scenarios</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.4</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;The purpose of a use case is to meet the goal of its associated actor(s), such as a guest making a reservation with a hotel. This implies that a use case should include everything that must be done to meet that goal. For example, if it is necessary to check the availability of rooms in the hotel for the desired length of stay before accepting a reservation, then we expect the use case to contain that check. In general, a use case contains a narrative about the flow of events that specifies a particular use of the software system.&lt;/p&gt;&lt;p&gt;A &lt;b&gt;scenario&lt;/b&gt; is a description of a sequence of actions that illustrate a piece of interesting behaviour. In the UML, a scenario is said to be an &lt;b&gt;instance&lt;/b&gt; of a use case (implying that there could be several such instances, each one describing a different situation). So, a scenario describes the interaction and dialogue between the users of a system (its actors) and the system itself. For a given use case, we expect to see one &lt;b&gt;main scenario&lt;/b&gt; that describes the flow of events leading to a &lt;i&gt;successful&lt;/i&gt; conclusion. There may be other scenarios that describe alternative or additions to the main scenario. Here, for example, are two possible scenarios for making a reservation at a hotel.&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;&lt;p&gt;Jill wants to reserve a room at the Ritz Hotel for 14 July. A room is available for that date and so the receptionist makes a reservation for the guest, Jill.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Jack wants to reserve a room at the Savoy Hotel for the first week of August. There is no single room that is free for seven days in August, but there is one room available for four days followed by another of the same type for three days. The receptionist presents that option to Jack, who rejects it.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Both scenarios are possible instances of the &lt;i&gt;make reservation&lt;/i&gt; use case. Their interactions and outcomes are different. In the first, there is a description of the use case leading to a successful outcome. In the second, there is an exception to the main success scenario. Exceptions to the normal behaviour for a use case are common, especially where actors decide to abort a use case without completing it. However, the common theme among all the scenarios is the intent of an actor to reach the goal defined by a use case. In the unsuccessful scenario above, Jack was trying to make a reservation at the Savoy Hotel. Perhaps he didn't like the idea of changing rooms during his stay. Hence, a use case should include any unusual or alternative courses of action.&lt;/p&gt;&lt;p&gt;You could start an investigation by simply identifying a use case and its main success scenario, and later refine or adapt it. You will need to decide the way in which you record the information for each use case not just for the main success scenario, but for all the relevant scenarios. At its simplest, you can record a textual description (narrative) for each use case that details each scenario together with its outcome.&lt;/p&gt;&lt;p&gt;Remember that your description of a use case expresses what the system should do without constraining how it should do it. Since the description takes an external viewpoint, all the behaviour is in the form of observable results. Later on, a developer will choose an architecture for the solution and produce a workable design and implementation. While the structure and format of a use case description may vary among the different development processes, we suggest that you include the following items as minimum details.&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;A &lt;b&gt;unique identifier&lt;/b&gt; for the use case that allows traceability throughout development.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The &lt;b&gt;name&lt;/b&gt; of the actor that initiates the use case as well as the identity of any other actors that may be associated with the main success scenario.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A short description of the &lt;b&gt;goal&lt;/b&gt; of the use case.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A single sequence of &lt;b&gt;steps&lt;/b&gt; that describe the main success scenario. You may also find it helpful to number these steps for traceability, in cases where you need to identify any extensions or variations that occur as a result of the other scenarios of a use case (we discuss this in more detail later).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A textual description of the &lt;b&gt;pre-&lt;/b&gt; and &lt;b&gt;post-conditions&lt;/b&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In some circumstances, you may have to add other information. For example, the identity of the authors may be required where there is a large team of developers. In a risk-driven process, you might be required to record an assessment of the risks, assumptions and outstanding issues to support the decision-making process. For example, it helps to record the things that the authors of a use case had assumed to be true during their analysis.&lt;/p&gt;&lt;p&gt;Opinions vary about the correct format of the description of a use case. One development process might require a detailed structure with tightly controlled phrasing and numbering of each item in the description. Another might place few or no limitations such that each use case reads like a story – with a beginning, a middle and an end.&lt;/p&gt;&lt;p&gt;However, you should use the language of the domain to formulate the use cases and identify requirements. Each requirement is part of the contract between the developer (as supplier) and the customer. Both parties need to have a clear understanding of what is captured in each use case and of what it means. Table 2 illustrates one way to structure and record a use case.&lt;/p&gt;&lt;p&gt;The main success scenario in Table 2 contains a stepwise description of what happens when nothing goes wrong; usually the most common case. It is assumed that the steps are performed in the order described with no concurrent (simultaneous) behaviour. In the next section, you will see how each step can be used as a decision point to deal with exceptional circumstances. For example, what should be done if there is no available room for the desired stay? Later, you will see how the UML can be used to model the conditional and concurrent activities of a business process. For example, what should be done at step 5 if the &amp;#x2018;guest’ had stayed in the hotel chain before and had already provided these details?&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001a&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Table 2 Textual description of a use case in the hotel domain&lt;/h2&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Identifier and name&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;UC_1 Make reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Initiator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Receptionist or Guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Goal&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Reserve a room at a hotel for a guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Pre-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;None (that is, there are no conditions to be satisfied prior to carrying out this use case).&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Post-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A room of the desired type will have been reserved for the guest for the requested period and the room will be occupied for that period.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A guest can make a reservation via the Internet. The guest is not already known to the hotel's software system (see main success scenario, step 5).&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-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001b&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;Main success scenario&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest requests a reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest selects the desired hotel, dates and type of room.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist provides the availability and price for the request (an offer is made).&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest agrees to proceed with the offer.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest provides identification and contact details for the hotel's records.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest provides payment details.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist creates a reservation and gives it an identifier.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;8&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist reveals the identifier to the guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;9&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist creates a confirmation of the reservation and sends it to the guest.&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=397581&amp;section=6.4</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.5 More about actors</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.5</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg" length="33284" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg" length="31151" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;In the hotel example, you saw two actors in the use case diagram shown in Figure 3 (reproduced below). Why is the actor &lt;i&gt;Guest&lt;/i&gt; associated with the use case for making a reservation but not associated with the use cases for checking in and out? The answer comes from an understanding of what happens when someone, a guest, arrives at a hotel. Hotels are service oriented. That is to say, they offer certain services to their guests with the intention of earning money for the business. A hotel employs its staff on this basis. In particular, a hotel will employ a receptionist, who will be the real user of the proposed software system, to deal with guests on their arrival and departure; a guest will not use the system.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:476px;&quot; id=&quot;fig002c&quot;&gt;&lt;img src=&quot;m883_1_002i.jpg&quot; alt=&quot;Figure 3&quot; longdesc=&quot;x_m883_1_longdesc_id1744234.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 A use case model for a system for checking in and out of a hotel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1744234.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1744234&quot; id=&quot;back_longdesc_id1744234&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;However, if a goal of the new system is to allow potential guests to use their web browser to make reservations in addition to contacting a hotel directly, the potential guest will be a user of the proposed software system. Hence the use case diagram must show &lt;i&gt;Guest&lt;/i&gt; as an actor for the &lt;i&gt;make reservation&lt;/i&gt; use case as in Figure 3. Since people will still be using other methods of requesting a room, such as by telephoning or sending a letter to the hotel, we should allow for a member of the hotel's staff to perform the service. Hence the use case diagram in Figure 3 and the use case description in Table 2 include both the &lt;i&gt;Receptionist&lt;/i&gt; and &lt;i&gt;Guest&lt;/i&gt; actors.&lt;/p&gt;&lt;p&gt;If you need to include some significant information about the roles that actors play, you can do so by expanding the use case diagram in the following way. Since either a guest or a receptionist can make a reservation it may be better to think of a new kind of actor, a &lt;i&gt;Reserver&lt;/i&gt;, say, who could be either a &lt;i&gt;Guest&lt;/i&gt; or a &lt;i&gt;Receptionist&lt;/i&gt;. The use case shown in Figure 3 can then be modified to the one shown in Figure 4.&lt;/p&gt;&lt;div class=&quot;oucontent-figure oucontent-media-mini&quot; id=&quot;fig003&quot;&gt;&lt;img src=&quot;m883_1_003i.jpg&quot; alt=&quot;Figure 4&quot; longdesc=&quot;x_m883_1_longdesc_id1744298.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 A use case model showing specialisation between actors&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1744298.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1744298&quot; id=&quot;back_longdesc_id1744298&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The notation used in Figure 4 indicates that &lt;i&gt;Guest&lt;/i&gt; and &lt;i&gt;Receptionist&lt;/i&gt; are &lt;b&gt;specialisations&lt;/b&gt; of &lt;i&gt;Reserver&lt;/i&gt; (or &lt;i&gt;Reserver&lt;/i&gt; is a generalisation of &lt;i&gt;Guest&lt;/i&gt; and &lt;i&gt;Receptionist&lt;/i&gt;). That is, a &lt;i&gt;Guest&lt;/i&gt; (or &lt;i&gt;Receptionist&lt;/i&gt;) can do the same thing as a Reserver (but they can do other things as well).&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=397581&amp;section=6.5</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_002i.jpg"
             fileSize="33284"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg"
             fileSize="31151"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.6 Modelling the relationships between use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.6</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;There are two situations when you would consider adding details to a use case diagram:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;to identify a common task (and its associated scenarios) that is shared between two or more use cases;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;to record any alternatives or additions to the main success scenario as separate use cases.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In both situations, the new tasks are shown as new use cases (ovals) and, as you will see below, the UML provides a suitable notation (known as a stereotype) to represent the relationship between the original use cases and the new ones.&lt;/p&gt;&lt;p&gt;The main disadvantage of this approach is the additional complexity they bring to a model in contrast to the simple use cases considered previously. The best advice for you as a requirements analyst is to remember why you are creating the model and who it is for.&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=397581&amp;section=6.6</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.7 Stereotypes</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.7</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;In the UML, a &lt;b&gt;stereotype&lt;/b&gt; is a way of adding detail to any part (element) of a model. It is a way of expressing variation or a usage distinction that tells you more about the original element. For example, the line drawn between an actor and a use case indicates that there is an association between them. We could add the stereotype &amp;#xAB;communication&amp;#xBB; to such a line to emphasise the communication that takes place between the two. In practice, this stereotype is left out because it is the only type of association between an actor and a use case.&lt;/p&gt;&lt;p&gt;In general, stereotyping is a recognised way of extending the UML. You can define your own term and place it between the angle brackets (or guillemets: &amp;#xAB;&amp;#xBB;). However, there must be some agreement in the team about the existence and documentation of such new terms.&lt;/p&gt;&lt;p&gt;The UML includes some stereotypes that you cannot redefine. Two of them are used to describe dependencies between use cases and these are discussed in Subsections 6.8 and 6.9.&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=397581&amp;section=6.7</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.8 Sharing behaviour between use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.8</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_004i.jpg" length="42603" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg" length="31151" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;For each use case there may be more than one scenario. In the process of requirements elicitation and specification, you may find a certain amount of common behaviour in two or more of your use cases. You may even find that an existing component can provide part or all of that common or &lt;b&gt;shared behaviour&lt;/b&gt;. Indeed, if you do find such an existing component, this is an example of reusing requirements which is discussed more fully in &lt;i&gt;MRP&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;You can record the shared behaviour in a new use case and connect it to the use cases that it came from with an open-headed, dashed arrow pointing from the original use case to the new one. Think of the new use case as always being included in each of the originals. Hence the dependency arrow is labelled with the &amp;#xAB;include&amp;#xBB; stereotype. Figure 5 shows some examples from the hotel domain (rooms are not normally allocated until a guest checks in for a variety of reasons: rooms need servicing, guests extend their stay, and so forth). The &amp;#xAB;include&amp;#xBB; stereotype simply shows that a use case can contain one or more &amp;#x2018;sub’ use cases and that some such sub-use cases can be reused in two or more use cases.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:494px;&quot; id=&quot;fig004&quot;&gt;&lt;img src=&quot;m883_1_004i.jpg&quot; alt=&quot;Figure 5&quot; longdesc=&quot;x_m883_1_longdesc_id1744464.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 5 Shared behaviour in a hotel 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_m883_1_longdesc_id1744464.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1744464&quot; id=&quot;back_longdesc_id1744464&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The &lt;i&gt;check for available rooms&lt;/i&gt; sub-use case is a shared piece of behaviour, a common scenario, which can be developed separately from other use cases. Note that this is &lt;i&gt;unconditional&lt;/i&gt; behaviour – the &lt;i&gt;check for available rooms&lt;/i&gt; sub-use case &lt;i&gt;must&lt;/i&gt; be performed whenever a reservation is made or a guest checks in.&lt;/p&gt;&lt;p&gt;By taking out any common or shared behaviour, you can benefit from a simplification of the original use cases and make them easier to understand. There is a further benefit in terms of the internal consistency of the final requirements specification. Instead of having two or more different scenarios for a room availability check, for example, there will be just one main success scenario for the new room availability check use case as shown in Figure 5.&lt;/p&gt;&lt;p&gt;In addition, there is a chance to consider the reuse of existing components and also the potential identification of new components.&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=397581&amp;section=6.8</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_004i.jpg"
             fileSize="42603"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg"
             fileSize="31151"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.9 Alternatives to the main success scenario</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.9</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_005i.small.jpg" length="35127" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg" length="31151" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;If a use case incorporates a scenario that is significantly different from the main success scenario, you may decide to create a new subsidiary use case. There may even be a need to create more than one subsidiary, depending on what happens in different circumstances. For example, when making a reservation in a typical hotel the receptionist would first determine whether the guest was already known to the hotel (among other advantages, this would speed up the reservation process since re-entering of all the guest's details would be avoided). Of course, in the case of a new guest and therefore not known to the hotel, all the guest's details would have to be entered.&lt;/p&gt;&lt;p&gt;Figure 6 shows a development of the hotel system use case diagram that identifies two new sub-use cases: &lt;i&gt;identify guest&lt;/i&gt; and &lt;i&gt;create new guest&lt;/i&gt;. The &lt;i&gt;identify guest&lt;/i&gt; sub-use case is part of the &lt;i&gt;make reservation&lt;/i&gt; use case and is connected to the original &lt;i&gt;make reservation&lt;/i&gt; use case because it will have to be carried out every time a reservation is made (unconditional behaviour). However, the second new sub-use case, &lt;i&gt;create new guest&lt;/i&gt;, which is connected to &lt;i&gt;identify guest&lt;/i&gt; will not be carried out every time a reservation is made. Therefore, &lt;i&gt;create new guest&lt;/i&gt; is connected to &lt;i&gt;identify guest&lt;/i&gt; with an open-headed, dashed arrow labelled with the stereotype &amp;#xAB;extend&amp;#xBB;. This is &lt;i&gt;conditional&lt;/i&gt; behaviour as it is only performed when the guest is not already known to the hotel.&lt;/p&gt;&lt;p&gt;The UML allows a number of ways to record the event that triggers the subsidiary use case. In Figure 6, we have used the general purpose notation for a note to indicate that &lt;i&gt;create new guest&lt;/i&gt; is performed when a guest is not already known to the hotel.&lt;/p&gt;&lt;p&gt;The textual description of new use case should record a description of the corresponding scenario. It should contain the following two key points:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;the condition that triggers the subsidiary use case, that is, the business event;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;the place(s) in the main success scenario where the condition is tested – these are called &lt;b&gt;extension point(s)&lt;/b&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig005a&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1744660.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_005i.small.jpg&quot; alt=&quot;Figure 6&quot; longdesc=&quot;x_m883_1_longdesc_id1744693.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1744660.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 6 Alternative behaviour in a hotel 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_m883_1_longdesc_id1744693.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1744693&quot; id=&quot;back_longdesc_id1744693&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1744660&quot; id=&quot;back_thumbnail_id1744660&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Table 3 shows how the original description of the &lt;i&gt;make reservation&lt;/i&gt; use case given in Table 2, has been changed to take into account the extension to deal with instances where the hotel has no unoccupied room available for the requested period, and the introduction of a new actor called &lt;i&gt;Reserver&lt;/i&gt;. Each step in the main success scenario acts as a potential extension point, from which the relationship to a new use case can be defined. In Table 3, step 3 is the extension point that leads to the additional steps described in steps 3.1 and 3.2. As the second extension point at step 5 shows, some work can be avoided if the potential guest for the reservation has stayed somewhere in the hotel chain before. Where such choices arise, your main success scenario should reflect the more dominant or typical flow.  Table 3 reflects an emphasis upon new guests for the hotel chain.&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl002a&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Table 3 Extending the description of a use case in the hotel domain&lt;/h2&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Identifier and name&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;UC_1 Make reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Initiator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Reserver (may be a Guest or a Receptionist).&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Goal&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Reserve a room at a hotel for a guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Pre-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;None.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Post-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest will have been allocated to a room for the requested period and the room will be occupied for that period.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The expected initiator is a guest using an Internet browser to perform the use case. The guest is not already known to the hotel's software system (see main success scenario, step 5).&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-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl002b&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;Main success scenario&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The reserver requests a reservation on behalf of a potential guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The reserver selects the desired hotel, dates and type of room.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The receptionist provides the availability and price for the request. (An offer is made.)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The reserver agrees to proceed with the offer.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The reserver provides identification and contact details for the hotel's records.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The reserver provides payment details.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The receptionist creates a reservation and gives it an identifier.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;8&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The receptionist reveals the identifier to the reserver.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;9&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The receptionist creates a confirmation of the reservation and sends it to the guest identified by the reserver.&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-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl002c&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;Extensions&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A room matching the request is not available.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3.1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The receptionist offers alternative dates and types of room.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3.2&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest selects from the alternatives.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest is already on record.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;5.1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Resume at step 6.&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=397581&amp;section=6.9</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_005i.small.jpg"
             fileSize="35127"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_003i.jpg"
             fileSize="31151"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.10 To extend or include?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.10</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg" length="31054" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg" length="32466" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Whatever kind of system you intend to develop, you will need to consider its security. Usually, we allow only trustworthy people to use a new system. Therefore, in a software solution we can envisage a log-on use case, which describes how a user gains access through some authentication procedure. How should such a requirement be included in the example of the hotel chain?&lt;/p&gt;&lt;p&gt;By analogy with natural languages, the UML allows a number of &amp;#x2018;grammatically correct’ options each of which will make more or less sense depending on the context. For example, we could show the &lt;i&gt;log-on&lt;/i&gt; use case as a component of every use case that is associated with an actor, as shown in Figure 7.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:444px;&quot; id=&quot;fig006a&quot;&gt;&lt;img src=&quot;m883_1_006i.jpg&quot; alt=&quot;Figure 7&quot; longdesc=&quot;x_m883_1_longdesc_id1745016.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 Including the log-on use case in the hotel domain&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1745016.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1745016&quot; id=&quot;back_longdesc_id1745016&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;You can also redraw Figure 7, and produce Figure 8, showing the three original use cases as variations of the &lt;i&gt;log-on&lt;/i&gt; use case. It would be &amp;#x2018;grammatically correct’ although it would be difficult for the reader to see the intended purpose of the system.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:443px;&quot; id=&quot;fig007a&quot;&gt;&lt;img src=&quot;m883_1_007i.jpg&quot; alt=&quot;Figure 8&quot; longdesc=&quot;x_m883_1_longdesc_id1745054.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 Making log-on the main use case&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1745054.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1745054&quot; id=&quot;back_longdesc_id1745054&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=397581&amp;section=6.10</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_006i.jpg"
             fileSize="31054"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg"
             fileSize="32466"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>6.11 Issues with use cases</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.11</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;There can be a tendency to make diagrams too complex. You can reduce the complexity of your use case diagram by:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;redrawing it at a higher level of abstraction;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;splitting it up into smaller modules, which the UML calls &lt;i&gt;packages&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the case of the hotel chain, we might partition our model into the following three packages:&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;reservations;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;checking guests in and out of their rooms;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;system access.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Each package may then be assigned to a separate developer for implementation. However, the project team must then deal with the dependencies between the three packages as they work towards a solution that incorporates all three packages.&lt;/p&gt;&lt;p&gt;The above example about access to the hotel system illustrates a more general modelling problem. It is often difficult to separate a problem from its solution. For example, it may seem obvious that, to gain access to the system, an authorised person would enter their name and password. However, this might not be the most appropriate method of authentication and it would be better to simply state that access to the system should be by authorised personnel only using an appropriate authorisation process. In practical terms, you should ask yourself the question, &amp;#x2018;Am I analysing the problem or designing a solution?’&lt;/p&gt;&lt;p&gt;In software development, this question can be hard to answer. You may find it easier to think of analysis as a way of investigating a problem and opening up choices, whereas design is a way of taking decisions and narrowing down the number of choices to arrive at a solution.&lt;/p&gt;&lt;p&gt;It is easy to forget that a use case diagram is part of the structural view of a system. It defines what tasks are to be supported, &lt;i&gt;not the order in which they might occur&lt;/i&gt;. Although you record a workflow in the steps of each scenario of a use case, there will have been some initial analysis of the best or preferred way to achieve the goal of that use case. We shall look at how you can explore different scenarios in the next section, where we consider how the UML allows you to represent a workflow as it unfolds over time.&lt;/p&gt;&lt;p&gt;Use case modelling has led to most disagreement among experts and practitioners when they discuss the definition and the use of the UML. Space does not permit a great deal of elaboration of the arguments, but it is worth considering the kinds of problem that developers can have with use case modelling.&lt;/p&gt;&lt;p&gt;Having decided to model a system in one or more use case models, the most important thing to consider is their intended audience. You need use cases that can be read and understood by the domain experts as well as the team of developers. The domain experts usually come from the customer's area. If you cannot demonstrate the benefits of your proposed system to them, there is little chance of it being acceptable to the customer. All technical projects of any kind are vulnerable to this risk. Your only defence comes from your skills, experience and professional ability.&lt;/p&gt;&lt;p&gt;In the same way, your use case models must be useful to the rest of your team. For example, those who will be testing the new (software) system must be able to generate their tests from your use cases and the subsequent design artefacts.&lt;/p&gt;&lt;p&gt;In terms of the content of each use case diagram, you should avoid the use of the &amp;#xAB;include&amp;#xBB; and &amp;#xAB;extend&amp;#xBB; stereotypes for an audience that is less familiar with the UML than your team members. The simple notation for actors and their associations with use cases has been a factor in their favour.&lt;/p&gt;&lt;p&gt;A common problem with use case modelling is deciding the size and scope of each use case. There is no consensus on this issue because of the wide variety of contexts and viewpoints. However, we recommend that a use case should be smaller than a business process. In the hotel chain, for example, the handling of reservations would be treated as a separate business process to checking in and out. That is to say, &lt;i&gt;make reservation&lt;/i&gt; is only one of the tasks in the process of handling reservations.&lt;/p&gt;&lt;p&gt;An associated issue is deciding whether or not you have identified &lt;i&gt;appropriate&lt;/i&gt; use cases. You should always review your model and ask yourself, &amp;#x2018;Do the actors that have been associated with a use case actually gain value from the use case?’ If the answer is &amp;#x2018;no’, omit the use case! A useful technique for identifying appropriate use cases is to determine the life history of the objects in the system. For example, in the eTMA system, the central object is an assignment. In broad outline, its life history goes something like this. The student creates the assignment and then submits it to the university. Then a tutor downloads the assignment, marks and comments on it and sends it back to the university. Finally, the student retrieves (downloads) the marked assignment and reads the tutor's comments. This leads to use cases that we might name as: &lt;i&gt;submit TMA, download TMA, mark TMA, return TMA&lt;/i&gt;, and &lt;i&gt;retrieve TMA&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;The main problem with use cases, in general, is the risk of straying into a top-down, functional decomposition and away from the object-oriented viewpoint that is embedded within the UML. It is easy to decompose each use case into smaller use cases in your search for reuse through the &amp;#xAB;include&amp;#xBB; stereotype. Indeed, if you are making your project plans according to the use cases that you identify, the urge to find a use case of a size that you can easily estimate is understandable. A good project manager will make some assessment of this risk and review it upon each iteration of the life cycle.&lt;/p&gt;&lt;p&gt;It is worth reiterating that, in the process described in &lt;i&gt;MRP&lt;/i&gt;, the purpose of use cases is to help with the understanding of the work that the product is to become a part of. There is always the danger that the use case diagram becomes a model of the product (a solution) rather than a model of the work (the problem), with the result that the product simply automates the current work and no attempt is made to identify the best product to help with the work.&lt;/p&gt;&lt;p&gt;No single technique can guarantee that you will collect and identify all the users' requirements. So, if you spend too much time modelling use cases, you can become distracted by the process of modelling and lose track of the main aim, which is to capture the functional requirements for a new system. Consequently, you should use more than one technique to produce a requirements specification.&lt;/p&gt;&lt;p&gt;You can find out more about use cases in Cockburn (2001) and about UML in Fowler (2003):&lt;/p&gt;&lt;p&gt;Cockburn, A. (2001) &lt;i&gt;Writing Effective Use Cases&lt;/i&gt;, Harlow, UK, Addison-Wesley.&lt;/p&gt;&lt;p&gt;Fowler, M. (2003) &lt;i&gt;UML Distilled: A brief guide to the standard object modelling language&lt;/i&gt; (3rd edn), Reading, MA, Addison-Wesley.&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=397581&amp;section=6.11</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.12 Self-assessment questions</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.12</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>
&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq001_001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;SAQ 1 Actors&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Explain why the actors in a use case diagram do not represent actual individuals.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Suggest a guideline that will help you decide whether or not to include an interaction with an external system on your use case model.&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;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; An actor in a use case diagram represents a particular &lt;i&gt;role&lt;/i&gt; that an individual might play when interacting with a software system. For example, a receptionist checks guests into and out of a hotel. But it could be that the person who works as a receptionist at one hotel becomes a guest at another hotel in the chain and hence takes on another role.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Show external systems as actors only if they &lt;i&gt;need&lt;/i&gt; the use case. In other words, show the external interaction if the use case needs to communicate with the actor – the subsystem.&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-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq001_002&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;SAQ 2 describing use cases&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; From your own experience, write down a description of the use case &lt;i&gt;check out guest&lt;/i&gt; shown in Figure 3.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Suggest a pre-condition and a post-condition for the use case &lt;i&gt;check out guest&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; If you were determining the requirements for a real hotel chain, what would you do next with your answers to parts (a) and (b)?&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;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; When a guest wishes to check out, he or she vacates the room and hands over the key to the receptionist. The receptionist finalises the bill and presents it to the guest. The guest pays the bill and leaves.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Pre-condition: the guest must be currently allocated to a room and have a key.&lt;/p&gt;
&lt;p&gt;Post-condition: the guest will have handed over the key, paid the bill and the room will have been designated as free to be reserved by another guest.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; Check them with real receptionist(s) to ensure that they are correct and capture the real requirements.&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-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq001_003&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;SAQ 3 Scenarios&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 relationship between a use case and a scenario?&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 use case is a related set of scenarios. Scenarios are instances of a use case in the UML. A scenario describes a sequence of interactions between the system and some specific actors. Here are two examples of scenarios. A member of a lending library may wish to borrow a book and is allowed to do that as long as she has no outstanding loans. However, another member may wish to borrow a book but has exceeded his quota of the number of books he is allowed to borrow. In either case they both want to borrow a book, but both the circumstances and outcomes of events are different for each instance. So, a use case includes a complex set of requirements that the system must meet in order to cope with every eventuality. There should be one main success scenario that helps an actor achieve the stated goal of the use case. In addition, there can be other scenarios for the same use case, each one having different outcomes depending upon circumstances.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;&amp;#10;            oucontent-saq&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;saq001_004&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;SAQ 4 To extend or include?&lt;/h2&gt;&lt;div class=&quot;oucontent-inner-box&quot;&gt;&lt;div class=&quot;oucontent-saq-question&quot;&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; What are the two stereotypes that are used to define relationships between use cases in the UML?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; What is the function of the &amp;#xAB;include&amp;#xBB; stereotype?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; What is the function of the &amp;#xAB;extend&amp;#xBB; stereotype?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; Is it necessary to place the &amp;#xAB;include&amp;#xBB; and &amp;#xAB;extend&amp;#xBB; stereotypes on all diagrams?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(e)&lt;/b&gt; How would you modify a use case model to show that you intend to employ a component that already exists? Would you show this change to a user?&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;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; The two stereotypes are &amp;#xAB;include&amp;#xBB; and &amp;#xAB;extend&amp;#xBB;. A stereotype is a way of attaching extra classifications to a model. Stereotypes can be user-defined, which is a way of extending the UML.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; The &amp;#xAB;include&amp;#xBB; stereotype indicates a situation where a use case is reused. In Figure 7, the diagram illustrates a use case &lt;i&gt;log-on&lt;/i&gt; which is used by three other use cases. The purpose is to demonstrate commonality between tasks so that reuse can be achieved. The additional use case is included unconditionally in the original or main use case.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; The &amp;#xAB;extend&amp;#xBB; stereotype indicates a conditional extension to the original use case, known as alternative behaviour. This is used to illustrate a case where there are two or more significantly different scenarios so that the main case and the additional, subsidiary cases are clearly differentiated. The main purpose of this classification is to separate out a special case. You should add a condition to each extension point to specify when the variant behaviour will be included.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; No, it is not necessary to place the &amp;#xAB;include&amp;#xBB; stereotype and the &amp;#xAB;extend&amp;#xBB; stereotype on all diagrams. In fact, in some situations they can cause confusion since their use is not at all &amp;#x2018;obvious’ and requires understanding that most users are unlikely to have. Their purpose is to illustrate reuse in the &amp;#xAB;include&amp;#xBB; stereotype and, in special cases, in the &amp;#xAB;extend&amp;#xBB; stereotype.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(e)&lt;/b&gt; The existing component must perform some useful task for the user, which adds some value to one or more use cases that you have already modelled. Each use case that benefits from the component must have a relationship to that component shown on the diagram. This relationship should have the &amp;#xAB;include&amp;#xBB; stereotype attached to it. If the use of that component would bring some benefit to the user, this should be shown in the new model. (Each change you make as a developer should make the proposed software more useful, usable, affordable, available or reliable.)&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;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=397581&amp;section=6.12</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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.13 Exercises</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=6.13</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_002i.jpg" length="33284" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_005i.small.jpg" length="35127" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg" length="31054" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg" length="32466" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg" length="44026" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg" length="55800" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>
&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe001_001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;Write down a textual description (using the format of Table 2, reproduced below) of the use case &lt;i&gt;check in guest&lt;/i&gt;, shown in Figure 3, also below. As part of your deliberations, identify any exceptions to the main success scenario.&lt;/p&gt;
&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001aa&quot;&gt;&lt;h3 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;&lt;b&gt;Table 2&lt;/b&gt; Textual description of a use case in the hotel domain&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Identifier and name&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;UC_1 Make reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Initiator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Receptionist or Guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Goal&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Reserve a room at a hotel for a guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Pre-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;None (that is, there are no conditions to be satisfied prior to carrying out this use case).&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Post-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A room of the desired type will have been reserved for the guest for the requested period and the room will be occupied for that period.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A guest can make a reservation via the Internet. The guest is not already known to the hotel's software system (see main success scenario, step 5).&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-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001bb&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;Main success scenario&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest requests a reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest selects the desired hotel, dates and type of room.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist provides the availability and price for the request (an offer is made).&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest agrees to proceed with the offer.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest provides identification and contact details for the hotel's records.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest provides payment details.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist creates a reservation and gives it an identifier.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;8&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist reveals the identifier to the guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;9&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The hotel receptionist creates a confirmation of the reservation and sends it to the guest.&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-figure&quot; style=&quot;width:476px;&quot; id=&quot;fig002&quot;&gt;&lt;img src=&quot;m883_1_002i.jpg&quot; alt=&quot;Figure 3&quot; longdesc=&quot;x_m883_1_longdesc_id1745800.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 A use case model for a system for checking in and out of a hotel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1745800.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1745800&quot; id=&quot;back_longdesc_id1745800&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;p&gt;You need to consider the exchanges that take place between each guest and the hotel's receptionist. Furthermore, you should ignore the guests who are trying to check out. The main success scenario, as shown in Table 4, describes the simplest path that leads to successfully checking a guest into a room in a hotel. There can, and will, be exceptions to the main success scenario, but these will be dealt with later.&lt;/p&gt;
&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl003a&quot;&gt;&lt;h4 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Table 4 Textual description of a use case in the hotel domain&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Identifier and name&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;UC_2 Check in guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Initiator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Receptionist.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Goal&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;A guest takes up a reservation and occupies a room at the desired hotel.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Pre-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;There is a reservation for the guest and there is, at least, one room available (of the desired type) and the guest can pay for the room.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Post-condition&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest will have been allocated to a room for the period identified in the reservation and a bill will have been opened for the duration of the stay.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;The guest is already known to the hotel's software system. The hotel is confident that the guest can pay. For example, the guest has a valid credit card.&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-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl003b&quot;&gt;&lt;table&gt;&lt;tr&gt;
&lt;th scope=&quot;col&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;Main success scenario&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;The guest provides a reservation reference number to the receptionist.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;The receptionist uses the reference number to find the reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;The receptionist states the details of the room type and the duration of the stay recorded in the reservation.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;The guest confirms the details of the room type and the duration of the stay.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;The receptionist allocates a room to the guest.&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;The receptionist opens a bill for the guest. (It could be that there is a separate billing application, which must be notified upon check in.)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;The receptionist issues a key to the guest.&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;Possible exceptions include:&lt;/p&gt;
&lt;p&gt;At step 1: The guest has forgotten or mislaid the reservation reference number.&lt;/p&gt;
&lt;p&gt;At step 5: An appropriate room is not available.&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;exe001_002&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;What are the tasks involved in preparing a use case diagram?&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;For each use case diagram:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;define the context for the model by identifying the actors involved in the aspect of the system in question;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;analyse the behaviour that each actor expects from the proposed system and identify the use cases (as units of functionality within the overall requirements);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;identify the common behaviour that may be reused by other actors and the variations on common behaviour (the stereotypes &amp;#xAB;include&amp;#xBB; and &amp;#xAB;extend&amp;#xBB;);&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;draw a model that shows the use cases, the actors and the relationships between them;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;annotate the use cases as you learn more about the requirements.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For large projects, you will need to record separately any constraints that affect more than one use case diagram. One way is to produce a use case model at a higher level of abstraction.&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;exe001_003&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;Redraw Figure 6, taking into account the information contained in Figures 7 or 8 (all figures reproduced below), to show common tasks and any extensions to the main success scenario.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig005&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746048.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_005i.small.jpg&quot; alt=&quot;Figure 6&quot; longdesc=&quot;x_m883_1_longdesc_id1746083.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746048.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 6 Alternative behaviour in a hotel 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_m883_1_longdesc_id1746083.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746083&quot; id=&quot;back_longdesc_id1746083&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1746048&quot; id=&quot;back_thumbnail_id1746048&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:444px;&quot; id=&quot;fig006&quot;&gt;&lt;img src=&quot;m883_1_006i.jpg&quot; alt=&quot;Figure 7&quot; longdesc=&quot;x_m883_1_longdesc_id1746110.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 Including the log-on use case in the hotel domain&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746110.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746110&quot; id=&quot;back_longdesc_id1746110&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:443px;&quot; id=&quot;fig007&quot;&gt;&lt;img src=&quot;m883_1_007i.jpg&quot; alt=&quot;Figure 8&quot; longdesc=&quot;x_m883_1_longdesc_id1746138.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 Making log-on the main use case&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746138.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746138&quot; id=&quot;back_longdesc_id1746138&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Do not show the &lt;i&gt;log-on&lt;/i&gt; use case, described in Figure 7 or 8.&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;Our solution is given in Figure 9, below.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig008&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746154.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_008i.small.jpg&quot; alt=&quot;Figure 9&quot; longdesc=&quot;x_m883_1_longdesc_id1746189.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746154.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 9 A use case diagram for a hotel 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_m883_1_longdesc_id1746189.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746189&quot; id=&quot;back_longdesc_id1746189&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1746154&quot; id=&quot;back_thumbnail_id1746154&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;When a guest checks in, we have identified two components: &lt;i&gt;identify reservation&lt;/i&gt; and &lt;i&gt;check for available rooms&lt;/i&gt;. We have also added a note to say that at some later point, we may decide to replace the &lt;i&gt;check for available rooms&lt;/i&gt; use case.&lt;/p&gt;
&lt;p&gt;When a guest checks out, we can identify at least one component: &lt;i&gt;prepare bill&lt;/i&gt;. A bill is assumed to exist because the &lt;i&gt;check in guest&lt;/i&gt; use case includes &lt;i&gt;open new bill&lt;/i&gt; for the guest. This is something for the analyst to check in discussions with the users. We shall also assume that the records of payments made by guests are held separately, which is a typical accounting procedure. Hence we have identified a new actor called &lt;i&gt;AccountsSystem&lt;/i&gt; that communicates with &lt;i&gt;open new bill&lt;/i&gt; and &lt;i&gt;prepare bill&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Since a room must be cleaned after a guest has checked out, we have identified a use case named &lt;i&gt;request room cleaning&lt;/i&gt;. This is the kind of detail that you are likely to discover as you find out more about the problem domain.&lt;/p&gt;
&lt;p&gt;Undoubtedly, your diagram will differ in some aspects from Figure 9, but you should be able to justify your choices. You should have used &amp;#xAB;extend&amp;#xBB; to show variant behaviour and &amp;#xAB;include&amp;#xBB; to show the potential reuse of components. We have deliberately added enough new use cases to show how easy it is for use case diagrams to become quite complicated. Such complex use case diagrams are unlikely to be shown to the intended users; they are intended for the development team.&lt;/p&gt;
&lt;p&gt;As you learn more about a problem domain, there are a number of choices to be made. You need to consider the use of the &amp;#xAB;extend&amp;#xBB; stereotype to handle the variant behaviour or extensions. At the same time, you can identify components that perform common tasks that might be used in more than one use case by applying the &amp;#xAB;include&amp;#xBB; stereotype.&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;exe001_004&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;A typical lending library keeps a stock of books for the use of its members. Each member can take out a number of books, up to a certain limit. After a given period of time, the library expects members to return the books that they have on loan.&lt;/p&gt;
&lt;p&gt;When borrowing books members are expected to hand their chosen books to the librarian, who records each new loan before issuing the books to the member. When a book is on loan to a member, it is associated with that member: possession of the book passes from the library to the member for a defined time period. The normal loan period for each book is two weeks. If the member fails to bring the book back on or before the due date, the library imposes a fine.&lt;/p&gt;
&lt;p&gt;In a proposed new system, anyone should be able to browse the stock of books held in the library, but only a member will be able to reserve a book.&lt;/p&gt;
&lt;p&gt;Draw a simple use case diagram for the proposed system and identify the constraints or assumptions that you make. (For the moment, ignore the issue of fines because you would have to find out about the library's rules before including them.)&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 good first step is to establish the context for the proposed system by identifying the actors that surround it. When you have identified the actors, you can investigate the behaviour that each one will expect from the proposed system, which will eventually form the use cases for your model.&lt;/p&gt;
&lt;p&gt;Your task is to determine the roles that people will adopt in order to use the proposed system. In general, the customer (the person who is buying the new system) will have some say in who is a legitimate user. In this problem domain, the library owns the books. One of its employees, a librarian, is responsible for issuing books to a member. Typically, a librarian will also act on the member's behalf when recording a new loan. Hence we expect the librarian to be a key user of the new system.&lt;/p&gt;
&lt;p&gt;Browsing through the library's catalogue is a common activity performed by both members and librarians. As a catalogue is only a kind of list that shows what the library offers for loan, it can be read by just about anyone – non-members are also to be allowed to browse the catalogue.&lt;/p&gt;
&lt;p&gt;There appear to be two scenarios related to the activity of reservation. In the first, a member might want to borrow a specific book, but finds that all the available copies are out on loan. In the second, a member might want to make sure that at least one copy is available in order to avoid a wasted trip to the library.&lt;/p&gt;
&lt;p&gt;We conclude that there are three basic actors:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;Member&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Librarian&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Browser.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;What is missing from the given description of the system is any indication of how people join the library and become members. We have been told that there is a possible fine for overdue books, but is there a fee to join the library? Do prospective members have to prove their identity? How do members prove their membership?&lt;/p&gt;
&lt;p&gt;Someone, a librarian we presume, will be expected to make sure that the catalogue reflects the actual stock held at the library. So, we have identified a corresponding use case for later elaboration.&lt;/p&gt;
&lt;p&gt;Our solution includes six basic use cases for the library software system:&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;issue copy of book;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;return copy of book;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;reserve book;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;look through catalogue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;update catalogue;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;enrol new member.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; Figure 10 shows a possible use case diagram for the proposed system. You may have used different names on your diagram and you may have identified more or less than six use cases. There is no one correct solution; there are many possibilities. You may have defined use cases that combine two or more of our use cases, but in doing this it is likely that you would have assumed knowledge of the internal structure of the proposed system. In a use case diagram, you should identify only the behaviour that will bring some discernible value to the actors.&lt;/p&gt;
&lt;p&gt;Finally, you should have included some notes with both the diagram and the elements in it. For example, Figure 10 shows a note with the &lt;i&gt;issue copy of book&lt;/i&gt; use case indicating the loan period. This is an excellent way to record constraints on the functional requirements.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:493px;&quot; id=&quot;fig009&quot;&gt;&lt;img src=&quot;m883_1_009i.jpg&quot; alt=&quot;Figure 10&quot; longdesc=&quot;x_m883_1_longdesc_id1746466.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 10 A use case diagram for a lending library&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746466.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746466&quot; id=&quot;back_longdesc_id1746466&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Another use of a note is to indicate something that needs further attention or revision. Figure 10 shows that both members and librarians are associated with reserving books. A note records the fact that librarians can reserve books on behalf of members.&lt;/p&gt;
&lt;p&gt;At some future point, once you have learned more about the library, you will need to revise the use case diagram. In reaching your answer, you might have gone through several iterations. This is to be expected. You should focus on getting a useful result. A rough diagram that is useful is better than a pretty one that is not!&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=397581&amp;section=6.13</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_002i.jpg"
             fileSize="33284"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_005i.small.jpg"
             fileSize="35127"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg"
             fileSize="31054"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg"
             fileSize="32466"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg"
             fileSize="44026"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg"
             fileSize="55800"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>7.1 Activity diagrams</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=7.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_010i.small.jpg" length="55948" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_005i.small.jpg" length="35127" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg" length="31054" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg" length="32466" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg" length="44026" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg" length="55800" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Each use case in a requirements model represents a unit of functionality or, more simply, a task initiated by an actor. Within each task there may be a number of identifiable actions that the software system should perform in order to complete that task successfully. In addition, it is necessary to identify what an actor does in unusual circumstances. To model these aspects of a system you can use activity diagrams.&lt;/p&gt;&lt;p&gt;In the UML, an &lt;b&gt;activity diagram&lt;/b&gt; is used to model the coordination and sequencing of actions in order to achieve a given purpose; it shows which actor is responsible for which activity. Figure 11 shows an example of an activity diagram, which is used to show the separate responsibilities of the &lt;i&gt;Receptionist&lt;/i&gt; and &lt;i&gt;Guest&lt;/i&gt; actors for the main success scenario for the use case &lt;i&gt;check in guest&lt;/i&gt;.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig010a&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746527.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_010i.small.jpg&quot; alt=&quot;Figure 11&quot; longdesc=&quot;x_m883_1_longdesc_id1746561.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746527.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 11 An activity diagram for the check in guest use case&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746561.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746561&quot; id=&quot;back_longdesc_id1746561&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1746527&quot; id=&quot;back_thumbnail_id1746527&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The aim of an activity diagram is to record the flow of control from one activity to another within the workflow of each actor and to show the interactions between actors. Time is an important concept in an activity diagram as the arrows indicate the order in which activities are carried out &lt;i&gt;(unlike&lt;/i&gt; data flow diagrams). An activity diagram is divided horizontally by vertical lines, with each vertical strip, known as a swimlane, headed by the name of the actor. A &lt;b&gt;swimlane&lt;/b&gt; contains the sequence of activities performed by an actor. Each activity is represented by a box with rounded corners containing a brief description of the activity. The &lt;b&gt;transition&lt;/b&gt; from one activity to the next is identified by an open-headed arrow, which signifies that one activity has been completed and it is time to move on to the next one.&lt;/p&gt;&lt;p&gt;An activity for an actor begins at a solid black circle (there is one at the top of the &lt;i&gt;Guest's&lt;/i&gt; swimlane) and finishes with a double circle with a black centre (there are two of these in the &lt;i&gt;Guests&lt;/i&gt; swimlane). In Figure 11, the &lt;i&gt;Receptionist&lt;/i&gt; is not shown with a start or a finish circle as theirs is a repetitive activity.&lt;/p&gt;&lt;p&gt;A diamond shape represents a &lt;b&gt;decision&lt;/b&gt; and enables you to indicate that a flow can proceed in one of two directions depending on some condition. The condition under which a particular path is taken is written inside square brackets alongside the path. Such a condition is known as a &lt;b&gt;guard&lt;/b&gt; – the path is taken only if the guard is true. In Figure 11, for example, a transition is made from the &lt;i&gt;Receptionist&lt;/i&gt; requesting for a reservation number to the &lt;i&gt;Guest&lt;/i&gt; stating the number only if the &lt;i&gt;Guest&lt;/i&gt; has a reservation number. This diagram does not show the transition if the &lt;i&gt;Guest&lt;/i&gt; does not have (or cannot remember) a reservation number (most likely we would need to draw a separate diagram to show what happens in this case).&lt;/p&gt;&lt;p&gt;The thick horizontal lines (there are two in the &lt;i&gt;Receptionist's&lt;/i&gt; swimlane) are known as &lt;b&gt;synchronisation bars&lt;/b&gt;. These indicate that the activities of the actors must be synchronised. That is, in the top-most bar, the &lt;i&gt;Receptionist&lt;/i&gt; and the &lt;i&gt;Guest&lt;/i&gt; must both be ready to continue their activities at the same time. For example, if the &lt;i&gt;Receptionist&lt;/i&gt; is already dealing with a &lt;i&gt;Guest&lt;/i&gt;, a new &lt;i&gt;Guest&lt;/i&gt; must wait until the &lt;i&gt;Receptionist&lt;/i&gt; reaches this synchronisation point in his check-in activity having completed his interaction with the first &lt;i&gt;Guest&lt;/i&gt;. Likewise, if the &lt;i&gt;Receptionist&lt;/i&gt; reaches the upper synchronisation bar and there is no &lt;i&gt;Guest&lt;/i&gt; wishing to check in, the &lt;i&gt;Receptionist&lt;/i&gt; pauses this activity and is able to do some other activity (such as check out a &lt;i&gt;Guest&lt;/i&gt; or make a reservation). There are two flows entering this bar but only one flow out; it is technically known as a &lt;b&gt;join synchronisation bar&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The lower synchronisation bar indicates that the two actors need no longer be synchronised and can go on their separate ways. There is one flow entering this bar and two flows coming out; it is technically known as a &lt;b&gt;fork synchronisation bar&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Hence, by reading down a swimlane, you can see the order of activities that an actor performs. The horizontal lines (transitions) from one swimlane to another represents an exchange of data from one actor to another.&lt;/p&gt;&lt;p&gt;A final point about the UML activity diagram notation (not illustrated in Figure 11) is that it is permitted to show two (or more) transitions going &lt;i&gt;into&lt;/i&gt; an activity, but there must be only one transition coming out of an activity.&lt;/p&gt;&lt;p&gt;Finally, we have annotated the &lt;i&gt;Guest's&lt;/i&gt; final transition with a guard to show the postcondition for this part of the &lt;i&gt;check in guest&lt;/i&gt; use case.&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=397581&amp;section=7.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_010i.small.jpg"
             fileSize="55948"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_005i.small.jpg"
             fileSize="35127"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg"
             fileSize="31054"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg"
             fileSize="32466"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg"
             fileSize="44026"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg"
             fileSize="55800"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>7.2 Exercises</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=7.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_011i.jpg" length="61493" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_010i.small.jpg" length="55948" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg" length="31054" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg" length="32466" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg" length="44026" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg" length="55800" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>
&lt;div class=&quot;&amp;#10;            oucontent-activity&amp;#10;           oucontent-s-heavybox1 oucontent-s-box &quot; id=&quot;exe002_001&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;Draw an activity diagram for the main success scenario for the &lt;i&gt;check out guest&lt;/i&gt; use case.&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;div class=&quot;oucontent-figure&quot; style=&quot;width:493px;&quot; id=&quot;fig011&quot;&gt;&lt;img src=&quot;m883_1_011i.jpg&quot; alt=&quot;Figure 12&quot; longdesc=&quot;x_m883_1_longdesc_id1746765.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 The activities in the main success scenario for the check out guest use case&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746765.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746765&quot; id=&quot;back_longdesc_id1746765&quot;&gt;&lt;/a&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;exe002_002&quot;&gt;&lt;div class=&quot;oucontent-outer-box&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Exercise 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;Examine each of the activities in the &lt;i&gt;check in guest&lt;/i&gt; activity diagram shown in Figure 11 (reproduced below) and identify any exceptions, if any.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig010&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746785.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_010i.small.jpg&quot; alt=&quot;Figure 11&quot; longdesc=&quot;x_m883_1_longdesc_id1746819.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1746785.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 11 An activity diagram for the check in guest use case&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1746819.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746819&quot; id=&quot;back_longdesc_id1746819&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1746785&quot; id=&quot;back_thumbnail_id1746785&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;p&gt;We identified the following exceptions.&lt;/p&gt;
&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;Look up reservation: there may not be a reservation corresponding to the stated reservation number.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Allocate room: a room of the required type may not be available.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Issue key: the key may be lost!&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;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=397581&amp;section=7.2</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_011i.jpg"
             fileSize="61493"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_010i.small.jpg"
             fileSize="55948"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg"
             fileSize="31054"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg"
             fileSize="32466"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg"
             fileSize="44026"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg"
             fileSize="55800"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>8.1 Introduction</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=8.1</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;One type of data model is an entity–relationship data model.&lt;/p&gt;&lt;p&gt;Experience has shown that data can be best described by &lt;i&gt;relationships&lt;/i&gt; between &lt;i&gt;entities&lt;/i&gt;. An entity is anything of interest about which data is recorded, such as roads, weather stations, trucks and weather station readings in the IceBreaker project in the book &lt;i&gt;MRP&lt;/i&gt;. In general, there will be many relationships (or associations) linking the entities. A trivial example is the fact that a given weather reading is associated with a specific weather station. The significant point is that relationships are just as much a part of the system data as are the entities. It is often useful to store characteristics of the entities. For example, a particular type of weather station transmits its signal every minute, or a specific truck has a particular capacity for the amount of gritting material it can carry.&lt;/p&gt;&lt;p&gt;Many different kinds of relationship between entities have been identified, and there are many different ways of representing those relationships. Diagrams are often used to show relationships, but there are other techniques.&lt;/p&gt;&lt;p&gt;Data modelling, that is, the production of a data model is a &amp;#x2018;formal’ representation of what data the product needs, expressed in terms that are independent of how it may be realised in software. Entity–relationship (E–R) data modelling is a particular kind of modelling that expresses data requirements in terms of entity types, attributes of entity types and relationships between entity types. It is a widely used modelling technique which is effective for displaying the important elements of a data model for human understanding and communication. However, it is only one of a number of modelling techniques available. We shall use an example to illustrate E–R data modelling.&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=397581&amp;section=8.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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>8.2 Example of a university registration data model</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=8.2</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_012i.jpg" length="28146" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_010i.small.jpg" length="55948" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg" length="31054" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg" length="32466" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg" length="44026" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg" length="55800" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Here is a statement of the data requirements for a product to support the registration of and provide help to students of a fictitious e-learning university.&lt;/p&gt;&lt;p&gt;A UK-based e-learning university needs to keep details of its students and staff, the courses that it offers and the performance of the students who study its courses. The university is administered in four geographical regions (England, Scotland, Wales and Northern Ireland).&lt;/p&gt;&lt;p&gt;Information about each student should be initially recorded at registration. This includes the student's identification number issued at the time, name, year of registration and the region in which the student is located. A student is not required to enrol on any courses at registration; enrolment on a course can happen at a later time.&lt;/p&gt;&lt;p&gt;Information recorded for each member of the tutorial and counselling staff must include the staff number, name and the region in which he or she is located. Each staff member may act as a counsellor to one or more students, and may act as a tutor to one or more students on one or more courses. It may be the case that, at any particular point in time, a member of staff may not be allocated any students to tutor or to counsel.&lt;/p&gt;&lt;p&gt;Each student has one counsellor, allocated at registration, who supports the student throughout his or her university career. A student is allocated a separate tutor for each course on which he or she is enrolled. A staff member may only counsel or tutor a student who is resident in the same region as that member of staff.&lt;/p&gt;&lt;p&gt;Each course that is available for study must have a course code, a title, and a value in terms of credit points. A course is either a 15-point course or a 30-point course. A course may have a quota for the number of students enrolled on it on any one presentation. A course need not have any students enrolled on it (such as a course that has just been written and offered for study).&lt;/p&gt;&lt;p&gt;Students are constrained in the number of courses they can be enrolled on at any one time. They may not take courses simultaneously if their combined points total exceeds 180 points.&lt;/p&gt;&lt;p&gt;For assessment purposes, a 15-point course may have up to three assignments per presentation and a 30-point course may have up to five assignments per presentation. The grade for an assignment on any course is recorded as a mark out of 100.&lt;/p&gt;&lt;p&gt;Figure 13 is one possible data model that describes the above set of requirements. The model has several parts, beginning with an E–R diagram and followed by a written description of entity types, constraints and assumptions.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:488px;&quot; id=&quot;fig001_001&quot;&gt;&lt;img src=&quot;m883_1_012i.jpg&quot; alt=&quot;Figure 13&quot; longdesc=&quot;x_m883_1_longdesc_id1746999.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 A data model for a student and staff records 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_m883_1_longdesc_id1746999.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1746999&quot; id=&quot;back_longdesc_id1746999&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Entity types&lt;/b&gt;&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;Student (Studentld, Name, Registered, Region)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Staff (StaffNo, Name, Region)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Course (CourseCode, Title, Credit, Quota)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Enrolment (Studentld, CourseCode)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Assignment (Studentld, CourseCode, AssignmentNo, Grade)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Constraints&lt;/b&gt;&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;A staff member may only tutor or counsel students who are located in the same region as the member of staff.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Students may not enrol for more than 180 points worth of courses at any one time.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The attribute Credit (of Course) has a value of 15 or 30 points.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A 30-point course may have up to five assignments; a 15-point course may have up to three assignments.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The attribute Grade (of Assignment) has a value that is a mark out of 100.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;A student has at most one enrolment on a course as only current enrolments are recorded.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;An assignment may be submitted only once.&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=397581&amp;section=8.2</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_012i.jpg"
             fileSize="28146"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_010i.small.jpg"
             fileSize="55948"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_006i.jpg"
             fileSize="31054"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_007i.jpg"
             fileSize="32466"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg"
             fileSize="44026"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg"
             fileSize="55800"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>8.3 Entities</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=8.3</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;Here is the definition of an &lt;b&gt;entity&lt;/b&gt;.&lt;/p&gt;&lt;div class=&quot;oucontent-quote oucontent-s-box&quot; id=&quot;quo001_005&quot;&gt;&lt;blockquote&gt;&lt;p&gt;An entity represents a thing that has meaning in a given context and about which there is a need to record data.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;A data model is not concerned with the individual entities. Instead, it describes particular types of entity. For example, &lt;i&gt;all&lt;/i&gt; students are represented by the same types of data (student identifier, name, whether or not registered, and region). Therefore, we simply record the &lt;i&gt;Student&lt;/i&gt; &lt;b&gt;entity type&lt;/b&gt; that defines the properties common to the collection of all students:&lt;/p&gt;&lt;p&gt;Student (Studentid, Name, Registered, Region)&lt;/p&gt;&lt;p&gt;Thus &lt;i&gt;Student&lt;/i&gt; is the name of an entity type with properties of student identifier (named &lt;i&gt;Studentid)&lt;/i&gt;, student name (&lt;i&gt;Name)&lt;/i&gt;, whether registered or not (&lt;i&gt;Registered)&lt;/i&gt; and location (&lt;i&gt;Region)&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;An entity type is given a meaningful name for future reference. In this example, there are five entity types: &lt;i&gt;Staff, Student, Course, Enrolment&lt;/i&gt; and &lt;i&gt;Assignment&lt;/i&gt;. Thus an entity type is a convenient device for representing what we know about the actual entities themselves. Table 5 contains six entities of type &lt;i&gt;Student&lt;/i&gt; (each column is headed with the name of a particular property – also known as an attribute).&lt;/p&gt;&lt;div class=&quot;oucontent-table oucontent-s-normal oucontent-s-box&quot; id=&quot;tbl001_001&quot;&gt;&lt;h2 class=&quot;oucontent-h3 oucontent-nonumber&quot;&gt;Table 5 Some entities of the entity type &lt;i&gt;Student&lt;/i&gt;&lt;/h2&gt;&lt;table&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Studentid&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Name&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Registered&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Region&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S01&lt;/td&gt;
&lt;td&gt;Akeroyd&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;England&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S02&lt;/td&gt;
&lt;td&gt;Thompson&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Scotland&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S05&lt;/td&gt;
&lt;td&gt;Ellis&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Nl&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S07&lt;/td&gt;
&lt;td&gt;Gillies&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Scotland&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S09&lt;/td&gt;
&lt;td&gt;Reeves&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;England&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;S10&lt;/td&gt;
&lt;td&gt;Urbach&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Wales&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;Entity types are represented on an E–R diagram as a box containing the name of the entity type.&lt;/p&gt;&lt;p&gt;An &lt;b&gt;attribute&lt;/b&gt; (property) is a component of an entity type that represents a single property of the entities of that type.&lt;/p&gt;&lt;p&gt;Thus &lt;i&gt;Studentid, Name, Registered&lt;/i&gt; and &lt;i&gt;Region&lt;/i&gt; are the attributes of the &lt;i&gt;Student&lt;/i&gt; entity type. Note that the term &amp;#x2018;attribute’ is a type concept, but it has become conventional to use the term &amp;#x2018;attribute’ rather than &amp;#x2018;attribute type’.&lt;/p&gt;&lt;p&gt;The values in a table such as those in Table 5 above are known as &lt;i&gt;occurrences&lt;/i&gt; or &lt;i&gt;instances&lt;/i&gt; of a particular attribute. So, S01 is an occurrence of the attribute &lt;i&gt;Studentid&lt;/i&gt;, and Gillies is an occurrence of the attribute &lt;i&gt;Name&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;An important E–R data modelling characteristic is that there is a specific way to distinguish entities of the same type, from one another, by using the idea of an &lt;i&gt;identifier&lt;/i&gt;. An &lt;b&gt;identifier&lt;/b&gt; is a particular attribute with the property of uniqueness, such that no two entities of the same type have the same value for that attribute. For example, the attribute &lt;i&gt;Studentid&lt;/i&gt; is the identifier for the &lt;i&gt;Student&lt;/i&gt; entity type and the attribute &lt;i&gt;CourseCode&lt;/i&gt; is the identifier for the &lt;i&gt;Course&lt;/i&gt; entity type. When it is not possible to find a single attribute with the uniqueness property, a combination of attributes is used as an identifier. For example, the two attributes &lt;i&gt;Studentid&lt;/i&gt; and &lt;i&gt;CourseCode&lt;/i&gt; together form an identifier for the &lt;i&gt;Enrolment&lt;/i&gt; entity type. When we write entity types as we did above, it is conventional to underline an attribute that comprises the identifier.&lt;/p&gt;&lt;p&gt;There are three roles for an identifier and they are as follows.&lt;/p&gt;&lt;ul class=&quot;oucontent-bulleted&quot;&gt;&lt;li&gt;&lt;p&gt;As an assertion of existence. An occurrence of the &lt;i&gt;Student&lt;/i&gt; entity type with the value S02 for its identifier is an assertion that a student exists and is registered with that student identification number.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;As a reference. An identifier such as S02 refers uniquely to a specific student; given this identifier, we can examine the above table to discover that the student with this identifier is named Thomson.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;As a constraint. No two students can have the same identification number.&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=397581&amp;section=8.3</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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>8.3 Relationships</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=8.4</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_013i.jpg" length="26199" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_014i.jpg" length="13295" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_015i.jpg" length="13623" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_016i.small.jpg" length="35905" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg" length="44026" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg" length="55800" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>
&lt;p&gt;A &lt;b&gt;relationship&lt;/b&gt; is an association between entities that has a meaning in a given context, which needs to be recorded.&lt;/p&gt;&lt;p&gt;In the context of our university example, one relationship that is of interest is that between a member of staff and a student being counselled. Figure 14 shows one way of representing some of this data.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:387px;&quot; id=&quot;fig001_002&quot;&gt;&lt;img src=&quot;m883_1_013i.jpg&quot; alt=&quot;Figure 14&quot; longdesc=&quot;x_m883_1_longdesc_id1747468.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 14 Counselling associations between members of staff and students&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1747468.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1747468&quot; id=&quot;back_longdesc_id1747468&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;In this diagram, the lines show that the staff member with &lt;i&gt;StaffNo&lt;/i&gt; 3158 is associated with students S01 and S07 for the purpose of counselling. The diagram also shows counselling relationships between staff member 5212 and students S02, S05, S09 and S10.&lt;/p&gt;&lt;p&gt;Drawing lines on a diagram to show all counselling relationships would make the diagram impossible to read, particularly in practical situations where there are many staff and students. So, in the same way that a data model includes entity types, which define the properties common to a collection of entities, we can define the properties common to a collection of relationships, that is, the type of the relationship. In this example, the most basic property is that of relating entities of the &lt;i&gt;Staff&lt;/i&gt; entity type to the entities of the &lt;i&gt;Student&lt;/i&gt; entity type for the purpose of counselling: we shall name this relationship &lt;i&gt;Counsels&lt;/i&gt; and depict it as follows (see Figure 15).&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:453px;&quot; id=&quot;fig001_003&quot;&gt;&lt;img src=&quot;m883_1_014i.jpg&quot; alt=&quot;Figure 15&quot; longdesc=&quot;x_m883_1_longdesc_id1747522.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 15 The Counsels relationship&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1747522.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1747522&quot; id=&quot;back_longdesc_id1747522&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;As it stands, this diagram should only be interpreted as &amp;#x2018;there is a relationship, relating to counselling, between staff and students’. But we can do better than this. There are certain kinds of useful information about relationships that can be added to such a diagram. From the problem description, we know that a member of staff can counsel more than one student so, reminiscent of the many lines between staff member 5212 and the set of students in Figure 15, we place a &amp;#x2018;crow's foot’ on the line representing the relationship to indicate this fact, as shown in Figure 16.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:458px;&quot; id=&quot;fig001_004&quot;&gt;&lt;img src=&quot;m883_1_015i.jpg&quot; alt=&quot;Figure 16&quot; longdesc=&quot;x_m883_1_longdesc_id1747566.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 The Counsels relationship with a &amp;#x2018;crow's foot’&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1747566.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1747566&quot; id=&quot;back_longdesc_id1747566&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;It is important to remember that this notation is directional. Putting the crow's foot at the Student end of the relationship line means that, reading from left to right on our diagram, one member of staff may be related (for the purpose of counselling) to many students.&lt;/p&gt;&lt;p&gt;Conversely, we know that a single student has only one counsellor. The fact that an occurrence of one entity type is related to only one occurrence of another entity type is denoted, on the diagram, by not having a special symbol at the end of the relationship line (as shown in Figure 16). So, reading from right to left, we find that an occurrence of the &lt;i&gt;Student&lt;/i&gt; entity type is related, for counselling, to only one occurrence of the &lt;i&gt;Staff&lt;/i&gt; entity type.&lt;/p&gt;&lt;p&gt;This additional information denoted by the presence or otherwise of crow's feet at the ends of the line denoting a relationship, is known as the &lt;i&gt;degree&lt;/i&gt; of the relationship. In our example, the &lt;i&gt;Counsels&lt;/i&gt; relationship is said to be one-to-many (also written 1 : n) from &lt;i&gt;Staff to Student&lt;/i&gt; (the degree is directional). We could equally well have said that the &lt;i&gt;Counsels&lt;/i&gt; relationship is many-to-one from &lt;i&gt;Student&lt;/i&gt; to &lt;i&gt;Staff&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;The degree of a relationship is not an observation of relationship occurrences as they exist at some time, but it reflects an important part of the meaning of the relationship which holds for all possible occurrences. Thus the 1 : n &lt;i&gt;Counsels&lt;/i&gt; relationship asserts that a &lt;i&gt;Staff&lt;/i&gt; occurrence &lt;i&gt;may&lt;/i&gt; be associated with many &lt;i&gt;Student&lt;/i&gt; occurrences, and a &lt;i&gt;Staff&lt;/i&gt; occurrence &lt;i&gt;may&lt;/i&gt; be associated with no more than one &lt;i&gt;Student&lt;/i&gt; occurrence via the &lt;i&gt;Counsels&lt;/i&gt; relationship.&lt;/p&gt;&lt;p&gt;Note that the assertion that a &lt;i&gt;Staff&lt;/i&gt; occurrence &lt;i&gt;may&lt;/i&gt; be associated with many &lt;i&gt;Student&lt;/i&gt; occurrences indicates what is possible, but does not constrain the allowable associations between two entity occurrences because &amp;#x2018;many’ can be any number, including zero. In contrast, the assertion that a &lt;i&gt;Staff&lt;/i&gt; occurrence &lt;i&gt;may&lt;/i&gt; be associated with no more than one Student occurrence is a constraint because it forbids any association of a &lt;i&gt;Student&lt;/i&gt; occurrence with more than one &lt;i&gt;Staff&lt;/i&gt; occurrence.&lt;/p&gt;&lt;p&gt;The degree of a relationship is not always one-to-many; two other degrees exist:&lt;/p&gt;&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;&lt;p&gt;one-to-one (written 1 : 1) in which precisely one occurrence of an entity type may be related to precisely one occurrence of another entity type;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;many-to-many (m : n) in which many occurrences of one entity type may be related to many occurrences of another entity type, and vice versa.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Another aspect of the meaning of a relationship that can be displayed on an E–R diagram is known as a &lt;i&gt;participation condition&lt;/i&gt;. An entity type has a participation condition of &lt;i&gt;optional&lt;/i&gt; if entities of that type &lt;i&gt;need not be&lt;/i&gt; involved in an occurrence of the relationship. &lt;i&gt;Staff&lt;/i&gt; provides an example of optional participation in the &lt;i&gt;Counsels&lt;/i&gt; relationship because not every member of &lt;i&gt;Staff&lt;/i&gt; need counsel a student. Conversely, a participation condition of &lt;i&gt;mandatory&lt;/i&gt; means each entity of a type &lt;i&gt;must be&lt;/i&gt; involved in an occurrence of the relationship. &lt;i&gt;Student&lt;/i&gt; provides an example of mandatory participation in the &lt;i&gt;Counsels&lt;/i&gt; relationship because every student must have a counsellor. An optional participation condition is depicted as a circle (an &amp;#x2018;O’) and a mandatory participation is depicted with a solid black circle (a black &amp;#x2018;blob’). Note that a participation condition that is optional is not a constraint because it does not forbid anything; it merely states what may be the case. In contrast, a participation condition that is mandatory for a relationship is a constraint because an entity of the type of relationship concerned cannot exist without being involved in an occurrence of the relationship.&lt;/p&gt;&lt;p&gt;With the notational conventions used on E–R diagrams, it is not possible to show more complex constraints such as each student occurrence must not be enrolled on courses having a total of more than 180 credit points. Therefore, we need a written &amp;#x2018;Constraints’ section to be part of the data model, in addition to the E–R diagram. In a similar vein, the &amp;#x2018;Assumptions’ part of the data model records any other aspect of the modelling that may not be otherwise explicitly represented in the model, and it enables the detail of the E–R diagram and entity types to be understood.&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;Exercise 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;Figure 17 is a data model for the data requirements of a hospital. Examine the model and answer the following questions.&lt;/p&gt;
&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig001_005&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1747770.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_016i.small.jpg&quot; alt=&quot;Figure 17&quot; longdesc=&quot;x_m883_1_longdesc_id1747804.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1747770.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 17 A hospital data model&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1747804.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1747804&quot; id=&quot;back_longdesc_id1747804&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1747770&quot; id=&quot;back_thumbnail_id1747770&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Entity types&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;Ward (WardNo, WardName)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Patient (PatientId, PatientName)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Nurse (StaffNo, NurseName)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Doctor (StaffNo, DoctorName, Position, Specialism)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Team (TeamCode, TelephoneNo)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Treatment (StaffNo, PatientId, StartDate, Reason)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Drug (DrugCode, DrugName)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Prescription (PrescriptionNo, Quantity, DailyDosage)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Constraints&lt;/b&gt;&lt;/p&gt;
&lt;ol class=&quot;oucontent-numbered&quot;&gt;&lt;li&gt;&lt;p&gt;A doctor responsible for a patient must have a position of consultant.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A doctor heading a team must have a position of consultant.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A doctor providing treatment for a patient must be from the same team as the consultant who is responsible for the patient.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A consultant belongs to a team via the &lt;i&gt;HeadedBy&lt;/i&gt; relationship, whereas other doctors belong to a team via the &lt;i&gt;ConsistsOf&lt;/i&gt; relationship.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Two nurses involved in an occurrence of the &lt;i&gt;Supervises&lt;/i&gt; relationship must be assigned to the same ward.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The attribute &lt;i&gt;Position&lt;/i&gt; (of &lt;i&gt;Doctor&lt;/i&gt;) may have a value of Consultant, Registrar or House Officer.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The attribute &lt;i&gt;Specialism&lt;/i&gt; (of &lt;i&gt;Doctor&lt;/i&gt;) only has a value if the value for the Position attribute is Consultant.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;Only the details of a patient's current stay in hospital are recorded (that is, only as an inpatient).&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; Explain (in words) the &lt;i&gt;OccupiedBy&lt;/i&gt; relationship type between &lt;i&gt;Ward&lt;/i&gt; and &lt;i&gt;Patient&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; Why are there two relationship types between &lt;i&gt;Team&lt;/i&gt; and &lt;i&gt;Doctor&lt;/i&gt;?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; Describe the relationship type named &lt;i&gt;Supervises&lt;/i&gt; between the entity type &lt;i&gt;Nurse&lt;/i&gt; and itself.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; What do you understand by the entity type &lt;i&gt;Team&lt;/i&gt;?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(e)&lt;/b&gt; How many nurses can staff a ward?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(f)&lt;/b&gt; Can a patient receive more than one drug at a time?&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;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(a)&lt;/b&gt; Patients occupy wards. A ward can be occupied by many patients (although it may be empty). An occurrence of a &lt;i&gt;Patient&lt;/i&gt; type must occupy one and only one ward.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(b)&lt;/b&gt; There are two relationship types between &lt;i&gt;Team&lt;/i&gt; and &lt;i&gt;Doctor&lt;/i&gt; because there are two different associations that need to be recorded: one dealing with the composition of a team and the other dealing with the head of a team. The &lt;i&gt;HeadedBy&lt;/i&gt; relationship tells us about the fact that a single occurrence of &lt;i&gt;Doctor&lt;/i&gt; heads a team, but every doctor need not head a team. A team need not have a head. The &lt;i&gt;ConsistsOf&lt;/i&gt; relationship type says that a team consists of many doctors, although a team may exist that does not have any doctors in it! Every doctor must belong to a team.&lt;/p&gt;
&lt;p&gt;Constraint 4 states that the &lt;i&gt;HeadedBy&lt;/i&gt; relationship involves only consultants whereas the relationship type &lt;i&gt;ConsistsOf&lt;/i&gt; involves only doctors that are not consultants. Thus a consultant can only be a member of a team if that consultant is the head of the team. You may feel that this is somewhat bizarre, but that is one of the advantages of building data models – they can reveal mistakes in thinking which one would like to avoid prior to the design and implementation of software.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(c)&lt;/b&gt; The &lt;i&gt;Supervises&lt;/i&gt; relationship says that several nurses may be supervised by another nurse. There is no compulsion for nurses to have a supervisor. Constraint 5 says that two nurses involved in an occurrence of the &lt;i&gt;Supervises&lt;/i&gt; relationship must be assigned to the same ward.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(d)&lt;/b&gt; The &lt;i&gt;Team&lt;/i&gt; entity type consists of zero, one or more doctors. If a team has a head, the head of the team must be a doctor with the position of consultant.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(e)&lt;/b&gt; A ward can be staffed by many nurses and there must be at least one nurse.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;(f)&lt;/b&gt; Yes, a patient can receive more than one drug. The &lt;i&gt;Receives&lt;/i&gt; relationship between &lt;i&gt;Patient&lt;/i&gt; and &lt;i&gt;Treatment&lt;/i&gt; says that an individual patient must have at least one, possibly more, treatments. A treatment requires at least one, possibly more, prescriptions and a prescription is for a drug. Thus different drugs will require different prescriptions, but a single treatment is permitted to have several prescriptions.&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;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=397581&amp;section=8.4</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_013i.jpg"
             fileSize="26199"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_014i.jpg"
             fileSize="13295"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_015i.jpg"
             fileSize="13623"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_016i.small.jpg"
             fileSize="35905"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_008i.small.jpg"
             fileSize="44026"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_009i.jpg"
             fileSize="55800"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>9.1 What is a state machine?</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=9.1</link>

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_017i.jpg" length="18842" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_018i.jpg" length="20901" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_019i.jpg" length="24420" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_020i.small.jpg" length="21995" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_021i.small.jpg" length="21736" type="image/jpeg" />

<enclosure url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_022i.small.jpg" length="20342" type="image/jpeg" />
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p&gt;An event is an occurrence of a phenomenon at a certain moment in time. The occurrence of the event itself is assumed to have no duration. Typically, when an event occurs, it affects the state of an object. A state machine is a model of the behaviour of a single object over time and helps you to understand how that object's state affects its reactions to events.&lt;/p&gt;&lt;p&gt;Figure 18 shows a state machine diagram (known as a statechart diagram in the UML) relating to the occupancy of a room in a hotel. In this problem a room has two states: unoccupied and occupied. An unoccupied room becomes occupied when a guest checks into the hotel, and reverts to being unoccupied when the guest checks out.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:434px;&quot; id=&quot;fig002_001&quot;&gt;&lt;img src=&quot;m883_1_017i.jpg&quot; alt=&quot;Figure 18&quot; longdesc=&quot;x_m883_1_longdesc_id1748216.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 18 Two simple states for a room object&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748216.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748216&quot; id=&quot;back_longdesc_id1748216&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The states are represented by rectangles with rounded corners containing their names. Transitions from one state to another are represented by arrows identified by the events that give rise to them. The solid black circle shows the initial state and indicates the starting state – that is, it says that a newly created room starts in the unoccupied state.&lt;/p&gt;&lt;p&gt;The events that fire the transitions have been given simple names: guest checks in and guest checks out. However, we can do better than this by specifying the event and the subsequent action. For example, one kind of event is the receipt of a message by an object which may cause the object to respond by sending a message to another object. Such a response is known as an action. Thus, if the event &amp;#x2018;guest checks out’ is initiated by a message being sent to the room object saying &amp;#x2018;vacate room’ and the room's response is to remove its association with a particular guest by sending itself the message &amp;#x2018;removeOccupant’ we could write:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;vacateRoom / removeOccupant&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Figure 19 shows a revised version of Figure 18 in which event / actions have been used.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:436px;&quot; id=&quot;fig002_002&quot;&gt;&lt;img src=&quot;m883_1_018i.jpg&quot; alt=&quot;Figure 19&quot; longdesc=&quot;x_m883_1_longdesc_id1748274.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 Adding detail to a state machine for a room object&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748274.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748274&quot; id=&quot;back_longdesc_id1748274&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;In general, there can be several actions that result from a single event.&lt;/p&gt;&lt;p&gt;Sometimes an event might take place, but you only want a transition to fire under certain conditions. In the UML, conditions are modelled by guards. A guard is evaluated when an event occurs and a transition will only take place if the guard evaluates to &amp;#x2018;true’. For example, suppose that guests are only allowed to check into a room if they already have a reservation. We can indicate this on the state machine of Figure 19 by writing:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;accept(aGuest) [reservation exists] / setOccupant(aGuest)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;where, as usual, the guard is placed inside square brackets. This expression means &amp;#x2018;when the message (event) accept(aGuest) is received by the room object, the transition from the unoccupied state to the occupied state will only occur if the guest (denoted by aGuest) already has a reservation’.&lt;/p&gt;&lt;p&gt;Sometimes the same event can give rise to different transitions and actions depending on the prevailing conditions. To illustrate this, consider what happens when a hotel becomes full. If we identify two simple states &amp;#x2018;full’ and &amp;#x2018;not full’ for a hotel object, what happens as guests check in and check out? At some point the hotel will be unable to accept any more guests. This situation is shown in Figure 20.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:441px;&quot; id=&quot;fig002_003&quot;&gt;&lt;img src=&quot;m883_1_019i.jpg&quot; alt=&quot;Figure 20&quot; longdesc=&quot;x_m883_1_longdesc_id1748339.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 A simple state machine for a hotel object&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748339.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748339&quot; id=&quot;back_longdesc_id1748339&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;The hotel is not full provided that there is at least one room that is unoccupied. Checking out is not a problem in this example. Both instances of the event checkOut(aGuest) lead to the not full state. However, an occurrence of the event checkln(aGuest) can lead to either the &amp;#x2018;not full’ state or the &amp;#x2018;full’ state depending on whether or not the hotel has at least one room unoccupied. Hence, the guard conditions are mutually exclusive, [last room] and [not last room].&lt;/p&gt;&lt;p&gt;Figure 20 contains two instances of a special kind of transition, known as a self-transition, that originates in one state and returns to the same state.&lt;/p&gt;&lt;p&gt;From the perspective of checking in and checking out, the state machine in Figure 20 is incomplete because it does not deal with the empty state. If every guest in the hotel checks out, the hotel is empty. Figure 21 illustrates one way of following the checking in and out of guests into a hotel that might be full, empty or somewhere in between. The maximum number of rooms in the hotel is denoted by hotelLimit and a simple counter, called availableRooms, keeps track of the number of unoccupied rooms in the hotel.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig002_004&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748364.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_020i.small.jpg&quot; alt=&quot;Figure 21&quot; longdesc=&quot;x_m883_1_longdesc_id1748400.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748364.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 21 Is the hotel full or empty or somewhere in between?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748400.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748400&quot; id=&quot;back_longdesc_id1748400&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1748364&quot; id=&quot;back_thumbnail_id1748364&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;If the same event is used on more than one transition, you must make sure that no more than one guard can evaluate to true. At most, you want just one transition to fire in such situations. For example, which transition will fire if the hotelLimit is 100 and the value of availableRooms is two when the event checkln(aGuest) occurs and the Hotel object is in the &amp;#x2018;not full’ state? First of all, we do not need to worry about the hotelLimit under these conditions. There are two possibilities, the Hotel object either moves to the full state or remains in the not full state. Since the value of availableRooms is greater than one, it is the self-transition that is triggered.&lt;/p&gt;&lt;p&gt;It is recommended that you provide a guard on each event as illustrated in Figure 21. Doing so enables you to check that when the same event occurs more than once, for example, checkOut(aGuest) occurs three times in Figure 21, the associated guards are mutually exclusive (only one can be true at any one time).&lt;/p&gt;&lt;p&gt;You can view the diagram in Figure 21 as showing the normal processing, omitting exceptional cases such as what happens when the event checkln(aGuest) occurs and the hotel object is in the full state, or the event checkout(aGuest) occurs and the hotel object is in the empty state. It would be reasonable to view these cases as errors. You could represent such cases on the state machine by introducing an Error state and adding appropriate transitions. However, doing so makes the state machine more complex and hence more difficult to read and understand. There is always a trade-off between completeness and complexity and you may be better off by dealing with exceptional cases separately from the state machine.&lt;/p&gt;&lt;p&gt;In the UML, there is a simple device for reducing the complexity of some state machines by using two special events associated with each state:&lt;/p&gt;&lt;ul class=&quot;oucontent-unnumbered&quot;&gt;&lt;li&gt;&lt;p&gt;an entry event that occurs every time an object enters a state, and&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;an exit event that occurs every time an object leaves a state.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Instead of writing the same action on two or more transitions leading to or from the same state, that action can be associated with the state's entry or exit event. For example, Figure 19 can be redrawn by adding an action to both an entry and an exit event, as shown in Figure 22.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig002_005&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748452.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_021i.small.jpg&quot; alt=&quot;Figure 22&quot; longdesc=&quot;x_m883_1_longdesc_id1748488.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748452.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 22 Using entry and exit events for a room object&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748488.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748488&quot; id=&quot;back_longdesc_id1748488&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1748452&quot; id=&quot;back_thumbnail_id1748452&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Whenever you are tempted to use an entry event, you must remember that &lt;i&gt;all&lt;/i&gt; transitions into the state will cause the entry event to occur. This means that the entry event must be appropriate for &lt;i&gt;all&lt;/i&gt; incoming transitions. Similarly, an exit event must be appropriate for &lt;i&gt;all&lt;/i&gt; outgoing transitions. In the case of a self-transition, both the entry and the exit events will occur, so you must take care to ensure that they are consistent with each other. A restriction on entry and exit events is that they may not have guards (simply because these events must occur, unconditionally).&lt;/p&gt;&lt;p&gt;We have shown that a state machine starts with a single initial state, denoted by a solid black circle. But what do we use to show that processing has completed or an object's life history has ended? The UML uses a final state, signified by a black circle surrounding a solid black circle to show that processing has terminated. An initial state has only one outgoing transition whereas a final state can have many incoming transitions but no outgoing transitions.&lt;/p&gt;&lt;p&gt;On a state machine there can be only one initial state but there can be more than one final state. For example, Figure 23 shows the life history of books in a lending library in which newly purchased copies of a book are put on the shelf for lending to the library's members. Damaged copies are removed from stock. At certain times of the year, the library is allowed to select copies of unwanted books to go on sale to the public.&lt;/p&gt;&lt;div class=&quot;oucontent-figure&quot; style=&quot;width:400px;&quot; id=&quot;fig002_006&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748525.html&quot; title=&quot;View larger image&quot;&gt;&lt;img src=&quot;m883_1_022i.small.jpg&quot; alt=&quot;Figure 23&quot; longdesc=&quot;x_m883_1_longdesc_id1748561.html&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;oucontent-figure-text&quot;&gt;&lt;div class=&quot;oucontent-thumbnaillink&quot;&gt;&lt;a href=&quot;x_m883_1_thumbnail_id1748525.html&quot;&gt;View larger image&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-caption oucontent-nonumber&quot;&gt;&lt;span class=&quot;oucontent-figure-caption&quot;&gt;
Figure 23 The life history of a book copy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;oucontent-longdesclink oucontent-longdesconly&quot;&gt;&lt;a href=&quot;x_m883_1_longdesc_id1748561.html&quot;&gt;Long description&lt;/a&gt;&lt;/div&gt;&lt;a name=&quot;longdesc_id1748561&quot; id=&quot;back_longdesc_id1748561&quot;&gt;&lt;/a&gt;&lt;a name=&quot;thumbnail_id1748525&quot; id=&quot;back_thumbnail_id1748525&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;As with any other kind of model, you should try to keep each state machine as simple as possible. The more often an attribute of an object changes, the more likely you are to want to model the object's behaviour in a state machine.&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=397581&amp;section=9.1</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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/2447/!via/oucontent/course/161/m883_1_017i.jpg"
             fileSize="18842"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_018i.jpg"
             fileSize="20901"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_019i.jpg"
             fileSize="24420"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_020i.small.jpg"
             fileSize="21995"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_021i.small.jpg"
             fileSize="21736"
             type="image/jpeg"
             medium=""
      />
      <media:content
             url="http://openlearn.open.ac.uk/file.php/2447/!via/oucontent/course/161/m883_1_022i.small.jpg"
             fileSize="20342"
             type="image/jpeg"
             medium=""
      />
    </item>
    <item>
      <title>Next steps</title>
      <link>http://openlearn.open.ac.uk/mod/oucontent/view.php?id=397581&amp;section=10</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 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://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/postgraduate/course/m883.htm&quot;&gt;Software requirements for business systems (M883) &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www3.open.ac.uk/study/postgraduate/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=396387&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=2447&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=397581&amp;section=10</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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=397581&amp;section=__references</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;div class=&quot;oucontent-referenceitem&quot;&gt;Michael Jackson, &lt;i&gt;Software Requirements &amp;amp; Specifications&lt;/i&gt;, Addison-Wesley, 1995. ISBN 0–201–87712–0.&lt;/div&gt;
&lt;div class=&quot;oucontent-referenceitem&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;oucontent-referenceitem&quot;&gt;Suzanne Robertson and James Robertson, &lt;i&gt;Mastering the Requirements Process&lt;/i&gt;, Addison-Wesley, second edition, 2006. ISBN 0–321–41949–9&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=397581&amp;section=__references</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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=397581&amp;section=__acknowledgements</link>
      <pubDate>Fri, 15 Jul 2011 10:12:07 GMT</pubDate>
      <description>&lt;p/&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;p&gt;Grateful acknowledgement is made to the following sources for permission to reproduce material in this unit:&lt;/p&gt;
&lt;h2 class=&quot;oucontent-h4 oucontent-basic&quot;&gt;Unit Image&lt;/h2&gt;
&lt;p&gt;Courtesy of: AviatorDave &lt;a class=&quot;oucontent-hyperlink&quot; href=&quot;http://www.flickr.com/photos/aviatordave/18543116&quot;&gt;www.flickr.com/&lt;span class=&quot;oucontent-hidespace&quot;&gt; &lt;/span&gt;photos/&lt;span class=&quot;oucontent-hidespace&quot;&gt; &lt;/span&gt;aviatordave/&lt;span class=&quot;oucontent-hidespace&quot;&gt; &lt;/span&gt;18543116&lt;/a&gt; &lt;/p&gt;
&lt;p/&gt;
&lt;p&gt;All other materials included in this unit are derived from content originated at the Open University.&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=397581&amp;section=__acknowledgements</guid>
          <dc:title>Models and modelling</dc:title>
          <dc:subject>Computing and ICT</dc:subject>
          <dc:subject>communication</dc:subject>
          <dc:subject>diagramming</dc:subject>
          <dc:subject>flow_diagrams</dc:subject>
          <dc:subject>modelling</dc:subject>
          <dc:subject>models</dc:subject>
          <dc:subject>state_machines</dc:subject>
          <dc:subject>systems</dc:subject>
          <dc:description>Models are mechanisms for communication. This unit looks at what a model is and what the process of modelling is about. The techniques discussed here are applicable to a wide range of systems and have one thing in common: they are all commonly used diagramming techniques. The five techniques are: data flow diagrams, use case modelling, activity diagrams, entity–relationship diagrams and state machines.</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>M883_1</dc:identifier>
          <dc:source>Software Requirements For Business Systems - M883</dc:source>
          <dc:language>en-GB</dc:language>
          <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>
