1 03 August 2011 Edition 00.00.01 AIRM Guide For Managers Understanding the AIRM Executive Summary This guide provides overview information and practical guidance for managers and readers of the AIRM Models. The guide is intended to be informative and is focused on supporting the understanding of information models in a way that does not require deep (technical) modelling knowledge and skills. Project ID 08.01.03. Project ID 08.01.03. AIRM Guide For Managers Table of Contents 1 INTRODUCTION.......................................................................................................................................... 3 1.1 SCOPE AND APPLICATION ....................................................................................................................... 3 1.2 INTENDED READERSHIP .......................................................................................................................... 3 1.3 ACRONYMS AND TERMINOLOGY ............................................................................................................. 3 1.4 ADOPTION ............................................................................................................................................... 3 1.4.1 Normative ...................................................................................................................................... 3 1.4.2 Informative..................................................................................................................................... 3 2 AIRM MODELLING ENVIRONMENT....................................................................................................... 4 3 THE UNIFIED MODELLING LANGUAGE (UML) .................................................................................. 5 3.1 3.2 4 ORGANISING THE AIRM .......................................................................................................................... 6 4.1 4.2 5 W HAT IS UNIFIED MODELLING LANGUAGE (UML)?............................................................................... 5 MODELS V DIAGRAMS............................................................................................................................. 5 PACKAGES .............................................................................................................................................. 6 DEPENDENCY ......................................................................................................................................... 6 CLASS DIAGRAMS: THE ESSENTIALS ............................................................................................... 7 5.1 CLASS ..................................................................................................................................................... 7 5.2 PROPERTIES ........................................................................................................................................... 7 5.2.1 Attributes ....................................................................................................................................... 8 5.2.2 Associations .................................................................................................................................. 8 5.2.3 Deciding how to model properties ............................................................................................. 8 5.3 MULTIPLICITY .......................................................................................................................................... 8 5.4 GENERALIZATION .................................................................................................................................... 9 5.5 NOTES AND COMMENTS ....................................................................................................................... 10 6 CLASS DIAGRAMS: ADVANCED CONCEPTS .................................................................................. 11 6.1 6.2 6.3 6.4 6.5 7 AGGREGATION AND COMPOSITION ...................................................................................................... 11 ASSOCIATION CLASSES ........................................................................................................................ 11 ABSTRACT CLASSES............................................................................................................................. 11 ENUMERATED TYPES............................................................................................................................ 12 STEREOTYPES ...................................................................................................................................... 12 REFERENCES ........................................................................................................................................... 13 12-Feb-2016 04:39 00.00.01 1 of 13 Project ID 08.01.03. AIRM Guide For Managers List of tables Error! No table of figures entries found. List of figures Figure 1 - UML Package Diagram .......................................................................................................... 6 Figure 2 - UML Class Diagram ............................................................................................................... 7 Figure 3 - UML Class and Attributes ....................................................................................................... 7 Figure 4 - UML Association ..................................................................................................................... 8 Figure 5 - Multiplicity ............................................................................................................................... 9 Figure 6 - UML Generalization .............................................................................................................. 10 Figure 7 - Notes .................................................................................................................................... 10 Figure 8 - UML Composition ................................................................................................................. 11 Figure 9 - Abstract Class....................................................................................................................... 12 Figure 10 - Enumerated Type ............................................................................................................... 12 12-Feb-2016 04:39 00.00.01 2 of 13 AIRM Guide For Managers Project ID 08.01.03. 1 Introduction 1.1 Scope and application This guide provides overview information and practical guidance for managers and readers of the AIRM Models. The guide is intended to be informative and is focused on supporting the understanding of information models in a way that does not require deep (technical) modelling knowledge and skills. 1.2 Intended readership The target audience is: Operational Work Packages Airspace Users Non-modellers who have an interest in reading the AIRM 1.3 Acronyms and terminology Term Definition AIRM ATM Information Reference Model ATM Air Traffic Management NAF NATO Architecture Framework UML Unified Modelling Language 1.4 Adoption This section describes external documents and other artefacts that, through reference in this text, provide provisions that are considered as normative of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For each publication a description how it has been adopted/used in this set of documents is also provided. Note: If a reference is expressed with a date then only that version, of the reference, is valid since it is not possible to guarantee that newer versions, of referenced document, does not adversely impact this document. 1.4.1 Normative The following publications, documents and artefacts are considered as normative: OMG Unified Modelling Language (UML), v2.1 1.4.2 Informative There are no informative references. 12-Feb-2016 04:39 00.00.01 3 of 13 Project ID 08.01.03. AIRM Guide For Managers 2 AIRM Modelling Environment The following documents should be read before reading this Guide: AIRM Primer. This sets the scene for the AIRM and introduces the AIRM Models. 12-Feb-2016 04:39 00.00.01 4 of 13 Project ID 08.01.03. AIRM Guide For Managers 3 The Unified Modelling Language (UML) The AIRM models are represented using the Unified Modelling Language (UML). 3.1 What is Unified Modelling Language (UML)? The OMG specification [5] gives the following definition: "The Unified Modelling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components." The intention behind the language is to encapsulate best practices in software design into a standard yet extensible notation. The UML provides a number of standard diagramming notations, such as uses cases, class diagrams, sequence diagrams, and activity diagrams. In addition, the UML has a number of mechanisms, such as stereotyping, which allow modellers to tailor or extend the language to suite their circumstances [1]. However, UML is not only for programmers [2]. UML is becoming the preferred language for describing business systems. 3.2 Models v Diagrams You will see that two terms have been used: “models” and “diagramming notations”. The terms have a subtle difference: A model is a collection of model elements representing a view at some level of abstraction A diagram of that model is a way of representing the model graphically However, in practices the terms model and diagram are often used interchangeably. 12-Feb-2016 04:39 00.00.01 5 of 13 AIRM Guide For Managers Project ID 08.01.03. 4 Organising the AIRM The AIRM is organised using UML packages. The packages are illustrated using package diagrams. 4.1 Packages A UML package is a collection of model elements. In AIRM, packages are used to group the entities into a given component or Subject Field. They are used as a way of dividing the model into logical parts. A package is shown on a diagram as a rectangle with a ‘tab’ on its top edge. The tab gives the name of the package. InformationModel FoundationLibrary «trace» ConsolidatedLogicalDataModel Figure 1 - UML Package Diagram The elements contained by a package can be drawn inside the package symbol but need not be. They usually aren’t (as above), since the amount of detail required to show all the contents of a package usually makes this inconvenient: Indeed the main purpose of using a package is normally to be able to hide this detail. Packages can contain any model elements that you wish to group together. It can contain another package. The hierarchical view of the model that results can be useful in large models. In the AIRM, for example, the Information Model package contains other packages used to group the elements of each SubjectField together. 4.2 Dependency The dashed lines in Figure 1 show that the content of one package depends on the content of another. In the AIRM it means that a change in the Foundation Library may alter the elements in the Information Model or the Consolidated Logical Data Model. 12-Feb-2016 04:39 00.00.01 6 of 13 AIRM Guide For Managers Project ID 08.01.03. 5 Class Diagrams: The Essentials Class diagrams are used to illustrate the AIRM. Indeed, they are the most frequently used type of UML diagram. If someone were to come up to you in a dark alley and say, “Psst, wanna see a UML diagram?” that diagram would probably be a class diagram. [4] Figure 2 gives an example class diagram. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType +manufactures AircraftManufacturer +manufacturer 0..1 + name: CharacterString +operates +engine AircraftEngine +operator CodeAircraftType + + AircraftOperator {abstract} +wing Boeing747 AirbusA380 0..2 AircraftWing CommercialAirline MilitaryOrganisation AirAmbulanceServ ice Figure 2 - UML Class Diagram 5.1 Class A UML class is the abstraction of a concept in the application domain. In the AIRM these should derive from the information exchange requirements that are needed to support ATM operations. A class is shown in a class diagram as a rectangle giving its name e.g. Aircraft. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType Figure 3 - UML Class and Attributes 5.2 Properties Properties represent structural features of a class. Properties are a single concept but they appear in two quite distinct notations: Attributes Associations Although they look quite different on a diagram, they are really the same thing. 12-Feb-2016 04:39 00.00.01 7 of 13 AIRM Guide For Managers Project ID 08.01.03. 5.2.1 Attributes Attributes are represented as a line of text in the second compartment of the class symbol. In the example, the Aircraft class has the following attributes: stallSpeed mass type You can now say that an Aircraft: has a stallSpeed has mass and has a type. As shown Figure 3, each attribute may define its type (for example, CharacterString, Real or DateTime). Many of these types will be found in the FoundationLibrary package (hence the dependency mentioned in section 4.2). 5.2.2 Associations Associations express the relationship between classes. UML represents an association between two classes by drawing a line between their symbols. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType +manufactures AircraftManufacturer +manufacturer 0..1 + name: CharacterString Figure 4 - UML Association The associations in the example have their navigability undefined. It is not stated in which direction the relationship should be read. Indeed, associations generally can be read in two directions where the role on the association end describes how the related class is used. This makes sense in some cases. In the example you can say: The Aircraft has a property ‘manufacturer’. This is the role of AircraftManufacturer in the association. You can also say that an AircraftManufacturer ‘manufactures’ Aircraft. It is sometimes necessary to have unidirectional navigability. This is shown by adding an arrow at the destination end of the association. This means that the association is easily navigated in the direction indicated by the arrow. This does not mean that the associations cannot be navigated in the other direction but the directionality is a hint that implementations should make the navigation in the primary direction convenient and efficient. One class knows about the existence of the other in the direction of navigation but the reverse is not necessarily true. In the case of unidirectional associations it is usual to specify a role for only the destination end leaving the origin role anonymous. 5.2.3 Deciding how to model properties In general I tend to use attributes for small things such as dates and Booleans – in general, value types – and associations for more significant classes such as ‘customers’ and ‘orders’. [4] 5.3 Multiplicity The multiplicity of a property is an indication of how many values are allowed for that property. 12-Feb-2016 04:39 00.00.01 8 of 13 AIRM Guide For Managers Project ID 08.01.03. Each attribute has an optional multiplicity specification that takes the form [m..n], where m is the minimum number of values allowed for an attribute, and n is the maximum number of values. A multiplicity of * represents zero or more, and a multiplicity of [1..1] may be specified using the shorthand value of [1]. Multiplicity of [0..1] means that the attribute is optional i.e. it can appear once or not at all. An association end also specifies the multiplicity of the destination class. This is the same as for attributes but the multiplicity expression is not enclosed by [ ]. In an association, multiplicities can be given at both ends. This is one of the advantages of using an association rather than an attribute. In UML, an attribute or association with no multiplicity specification defaults to [1..1]. That means it must have exactly one value. However, the AIRM deviates from this convention as stated in AIRM Foundation rules 22 and 26. Rule 22 Attributes shall, by default, be represented with multiplicity of [0..1] (zero to one). If an operational constraint has been identified then multiplicities should be chosen to reflect such constraints. Rule 26 Relationships shall, by default, be represented with multiplicity [0..*] (zero to many). If an operational constraint has been identified then multiplicities should be chosen to reflect such constraints. Note: Further constraints may be added at “lower” levels of modelling such as in Physical Data Models. In order to save cluttering the diagrams, these defaults need not be represented. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType +manufactures AircraftManufacturer +manufacturer 0..1 + name: CharacterString Figure 5 - Multiplicity In this example: The ‘stallSpeed’, ‘mass’, ‘type’ and ‘name’ attributes attribute are all optional [0..1]. The AircraftManufacturer manufactures [0..*] Aircraft i.e. zero or more aircraft. The AIRM default is specifically overwritten for the Aircraft manufacturer property. An Aircraft has a maximum of one manufacturer. 5.4 Generalization The example model includes a generalization relationship. A generalization relationship is shown by line with an open triangle at the super-class end. The relationship can be described as a subclass being a type-of the super-class e.g. a CommercialAirline is a type-of AircraftOperator. 12-Feb-2016 04:39 00.00.01 9 of 13 AIRM Guide For Managers Project ID 08.01.03. AircraftOperator {abstract} CommercialAirline MilitaryOrganisation AirAmbulanceServ ice Figure 6 - UML Generalization Generalization relationships are also referred to as inheritance. The relationship is composed of super-classes and subclasses. The subclasses inherit their properties (attributes and associations) from their super-classes. A subclass may then specify additional attributes and associations that are not applicable to the super-class – this is referred to as specialisation. 5.5 Notes and Comments Notes are comments in the diagrams. Notes can be stand-alone or they can be linked with a dashed line to the elements they are commenting. Any machine that can derive support in the atmosphere from the reactions of the air other than the reactions of the air against the earth’s surface. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType Figure 7 - Notes 12-Feb-2016 04:39 00.00.01 10 of 13 AIRM Guide For Managers Project ID 08.01.03. 6 Class Diagrams: Advanced Concepts 6.1 Aggregation and Composition The example UML model makes uses of composition. Aggregation and composition are both ways of recording that an object of one class is part-of an object of another class. Composition means that the whole strongly owns its parts: if the whole object is copied or deleted, its parts are copied or deleted. Aggregation is represented by line with an open diamond at the “whole” end. Composition is represented by a line with a closed diamond at the “whole” end. Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType +engine AircraftEngine +wing 0..2 AircraftWing Figure 8 - UML Composition The association from Aircraft to AircraftWing is a composition type. This means that the lifetime of the associated objects is dependent on the life of the container (for example, the life of AircraftWing is tied to the life of its container Aircraft). You can read this in two ways: Aircraft is composed of zero or two AircraftWing, or AircraftWing is part-of Aircraft. By comparison, the association from Aircraft to AircraftManufacturer is not a composition so the same part-of relationship does not exist. Deleting an Aircraft does not mean deleting the AircraftManufacturer! 6.2 Association Classes Sometimes the way in which two objects are associated is just as important as the objects themselves. This amounts to treating the association between the two classes as a class in its own right. This is called an association class. 6.3 Abstract Classes An abstract class is a class that cannot be directly instantiated. Instead, you need to instantiate one of its subclasses. An abstract class is shown using the {abstract} label and has its name italicized. 12-Feb-2016 04:39 00.00.01 11 of 13 AIRM Guide For Managers Project ID 08.01.03. For example, AircraftOperator is abstract and will not be instantiated. Instead, you will need to instantiate CommercialAirline or MilitaryOrganisation or AirAmbulanceService. AircraftOperator {abstract} MilitaryOrganisation CommercialAirline AirAmbulanceServ ice Figure 9 - Abstract Class 6.4 Enumerated Types The example model includes a class named CodeAircraftType. The naming convention of ‘Code…Type’ is used to show that the class is a codelist or enumerated type. CodeAircraftType Aircraft + + + stallSpeed: Real mass: Real type: CodeAircraftType + + Boeing747 AirbusA380 Figure 10 - Enumerated Type Enumerated types are part of many programming languages and are also useful when constructing a conceptual model of an application domain. They can be used to limit the selection of attribute values to one of a predetermined list. By convention in UML, attributes are added to the enumeration class as a means to define the list of possible value tokens. No attribute types are necessary for these enumerated list values. Therefore, in this example, an Aircraft’s type attribute can only be either “Boeing747” or “AirbusA380”. 6.5 Stereotypes Stereotypes are used to extend the core UML metamodel with additional modelling constructs to visualise those extensions in a diagram. A set of related stereotypes might be grouped into a standard profile that is used to model a specialised application domain. Or, as in the case of <<enumeration>> a set of common stereotypes is defined as part of the UML specification. 12-Feb-2016 04:39 00.00.01 12 of 13 AIRM Guide For Managers Project ID 08.01.03. 7 References Title 1 2 3 4 5 Location Software Systems Architecture, Nick Rozanski, Eoin Woods Modelling XML Applications with UML, David Carlson AIRM Primer Addison Wesley UML Distilled, Martin Fowler Addison Wesley OMG Unified Modelling Language (UML), v2.1 http://www.omg.org/spec/UML/ Addison Wesley SJU extranet: Project 08.01.03 > Project Execution 12-Feb-2016 04:39 00.00.01 13 of 13