diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 4a36c25..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: ci
-on:
- push:
- branches:
- - master
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
- with:
- python-version: 3.x
- - run: pip install mkdocs-material
- - run: mkdocs gh-deploy --force
\ No newline at end of file
diff --git a/.github/workflows/generate-pdf.yml b/.github/workflows/generate-pdf.yml
index 78d5f39..2281347 100644
--- a/.github/workflows/generate-pdf.yml
+++ b/.github/workflows/generate-pdf.yml
@@ -1,32 +1,23 @@
name: Generate CIM Modeling Guide PDF
-on:
- push:
- release:
- types: [published]
- pull_request:
- branches: [ "master" ]
+on: workflow_dispatch
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout this repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- name: Install/setup Python
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v5
with:
- python-version: 3.x
- - name: Install mkdocs documentation tool
- run: pip install mkdocs-material
- - name: Install PDF export plugin dependency (Pango)
- run: sudo apt install libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0
- - name: Install PDF export plugin for mkdocs
- run: pip install mkdocs-pdf-export-plugin
+ python-version: 3.9
+ - name: Install mkdocs documentation tool and plugins
+ run: pip install -r requirements.txt
- name: Build the documentation including PDF
run: mkdocs build
env:
ENABLE_PDF_EXPORT: 1
- name: Upload CIM Modeling Guide PDF as artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: CIM_Modeling_Guide.pdf
- path: site/CIM_Modeling_Guide.pdf
\ No newline at end of file
+ path: site/pdf/CIM_Modeling_Guide.pdf
\ No newline at end of file
diff --git a/.github/workflows/publish-site.yml b/.github/workflows/publish-site.yml
new file mode 100644
index 0000000..9483a72
--- /dev/null
+++ b/.github/workflows/publish-site.yml
@@ -0,0 +1,27 @@
+name: Publish website
+on: workflow_dispatch
+permissions:
+ contents: write
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout this repository
+ uses: actions/checkout@v4
+
+ - name: Install/setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: 3.9
+
+ - name: Install mkdocs documentation tool and plugins
+ run: pip install -r requirements.txt
+
+ - name: Configure Deploy
+ run: |
+ git config --global user.name "Admin CIMug"
+ git config --global user.email "cimug.dev@gmail.com"
+ git fetch origin gh-pages --depth=1
+
+ - name: Build Docs Website
+ run: mike deploy --branch gh-pages --remote origin --push 1.1
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9b72d31
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+site/
+venv/
\ No newline at end of file
diff --git a/README.md b/README.md
index 576da38..9ec0577 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,72 @@
# CIM Modeling Guide
-UCAIug CIM Modeling Guide, © 2019 - 2023. All rights reserved by the UCA International CIM Users Group
+
+
+
+UCAIug CIM Modeling Guide, © 2019 - 2024. All rights reserved by the UCA International CIM Users Group
This repository hosts the publically available **CIM Modeling Guide** made available by the UCA International CIM Users Group. This official guide is managed and maintained by the CIM Model Management Team and can be viewed online [here](https://cim-mg.ucaiug.io/).
+The final documentation published online is generated using [Material for MkDocs](https://squidfunk.github.io/mkdocs-material).
+
+## CIM Modeling Guide Discussion Forums
+
+For general questions or discussions related to this UCAIug publication or specific rules therein please post directly to the [CIM Modeling Guide Discussion](https://github.com/cimug-org/cim-modeling-guide/discussions) forums for this repository.
+
+## Submitting Issues
+For any identified issues with this **CIM Modeling Guide** please submit them via the [CIM Modeling Guide Issues](https://github.com/cimug-org/cim-modeling-guide/issues) tracker. Be sure to add an appropriate "version" label on your issue (e.g. v1.1) corresponding to the publication version of the modeling guide.
+
## Contributing
-CIM Modeling Guide is documented using [Material for MkDocs](https://squidfunk.github.io/mkdocs-material). If you need to do work on the CIM Modeling Guide you can do so by editing the files directly in the `docs` folder of this repo.
+To run the site locally use [Python](https://www.python.org/). This is cleanest if you use a Python virtual environment as shown below to install the dependencies.
+```cmd
+python -m venv venv
+venv\Scripts\activate
+pip install mkdocs-material mkdocs-with-pdf mike mkdocs-enumerate-headings-plugin
+```
+For exact (known working) versions of dependencies, run `pip install -r requirements.txt` instead.
+
+Once installed, you can then run the documentation site locally with `mkdocs serve`
+```cmd
+mkdocs serve
+```
+You can view the site by navigating to http://localhost:8000 in your browser.
-## Offline Viewing
-There are two options for offline viewing of the latest CIM Modeling Guide. You can download the latest release of the PDF of the CIM Modeling Guide at [releases](https://github.com/cimug-org/cim-modeling-guide/releases).
+This project also publishes a PDF version of the site. The easiest way to generate the PDF is with the [Generate CIM Modeling Guide PDF](https://github.com/cimug-org/cim-modeling-guide/actions/workflows/generate-pdf.yml) GitHub Action. However, if you need to run it locally, first set the `ENABLE_PDF_EXPORT` environment variable then run the build command.
-Alternatively, to serve the modeling guide locally as a live-reloading web page, use [Docker](https://www.docker.com/) or [Python](https://www.python.org/).
+```cmd
+set ENABLE_PDF_EXPORT=1
+mkdocs build
+```
+The output will indicate the PDF file location.
-For Docker, do `docker pull squidfunk/mkdocs-material` then `mkdocs serve` is default command so you can just do the following from repo root to start the site:
+## Publishing
+This project uses the [mike](https://github.com/jimporter/mike) plugin to publish multiple versions of the documentation to the https://cim-mg.ucaiug.io site. Under the hood it is using [GitHub Pages](https://pages.github.com/) to host the site which effecitvely just stores the site content in a dedicated git branch called `gh-pages`.
- docker run --rm -it -p 127.0.0.1:8000:8000/tcp -v %CD%:/docs squidfunk/mkdocs-material
+You can push new versions using the `mike deploy [version]` command. This will replace the existing version of the documentation on the `gh-pages` branch with whever the currently checkout version is and give it a label of `[version]`. So for example to publish a new version of 1.0 you first want to pull the latest published changes down from the remote site
+```cmd
+git remote add origin https://github.com/cimug-org/cim-modeling-guide
+git fetch origin
+git switch gh-pages
+git pull origin gh-pages
+```
+Then switch to the branch you want to update and run the deploy command giving it the name you want, for example let's say we're going to publish version "1.0" which is in branch "v1.0".
+```cmd
+git switch v1.0
+mike deploy 1.0
+```
-For Python, do `pip install mkdocs-material` then once installed, the basic commands are:
+When you need to update which version is considered the "latest" (e.g. when going from 1.0 to 2.0) run the following
+```cmd
+mike deploy 2.0 latest --update-aliases
+```
+Note that mike will always update the version and any aliases (latest) when you run a `mike deploy [version]` command. So you only need to do the `mike deploy -u [version] latest` when the latest version is changed.
-* `mkdocs serve` - Start the live-reloading docs server.
-* `mkdocs build` - Build the documentation site (for deployment).
-* `mkdocs -h` - Print help message and exit.
+To view the site locally before publishing it to https://cim-mg.ucaiug.io, run
+```cmd
+mike serve
+```
+Then to publish it to https://cim-mg.ucaiug.io, you will want to push your local `gh-pages` branch to the remote https://github.com/cimug-org/cim-modeling-guide repo using
+```cmd
+mike deploy 1.0 --push
+```
-Once you have it running with either Docker or Python, you can view it by navigating to http://localhost:8000 on your browser.
+Refer to [mike documentation](https://github.com/jimporter/mike) for more information.
\ No newline at end of file
diff --git a/docs/images/media/image2.jpeg b/docs/images/media/image2.jpeg
index 76a3e9e..f5af660 100644
Binary files a/docs/images/media/image2.jpeg and b/docs/images/media/image2.jpeg differ
diff --git a/docs/index.md b/docs/index.md
index 5a09251..6193739 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,34 +8,36 @@
**13-February-2021**
+The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.org/cimdocs/model-manager-documents/?wpcp_link=JTdCJTIyc291cmNlJTIyJTNBJTIyNjVmNzM0NTkyN2U5OTk1YjliZDI0YzlmOTBjNWJhMWMlMjIlMkMlMjJhY2NvdW50X2lkJTIyJTNBJTIyMTg2MDYxNzEwNTYlMjIlMkMlMjJsYXN0Rm9sZGVyJTIyJTNBJTIyMzA3OTY4MzMwMzc0JTIyJTJDJTIyZm9sZGVyUGF0aCUyMiUzQSUyMld5SXpNRGM1Tmpnek16QXpOelFpWFElM0QlM0QlMjIlMkMlMjJmb2N1c19pZCUyMiUzQSUyMjE3ODA3MjMwMjYzMjElMjIlN0Q%3D) at the UCAIug SharePoint site.
!!! Note
When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest visit [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io).
+ The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf) at the UCAIug SharePoint site or [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) at the UCAIug's official Github site.
+
**UCA International Users Group**
+### RIGHT TO DISTRIBUTE AND CREDIT NOTICE
-> **RIGHT TO DISTRIBUTE AND CREDIT NOTICE**
->
-> This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © November 2021. All rights reserved by the UCA International Users Group”.
+> This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”.
-DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES
+### DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES
> THIS DOCUMENT is a work product of THE UCA International Users Group. it was prepared by the CIM Model Managers and approved by the UCA International Users Group leadership. NEITHER the CIM Model Managers, the UCA International Users Group leadership, the CIM users group, NOR ANY PERSON ACTING ON BEHALF OF ANY OF THEM:
>
-> \(A\) MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, EXPRESS OR IMPLIED, (I) WITH RESPECT TO THE USE OF ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR (II) THAT SUCH USE DOES NOT INFRINGE ON OR INTERFERE WITH PRIVATELY OWNED RIGHTS, INCLUDING ANY PARTY'S INTELLECTUAL PROPERTY, OR (III) THAT THIS DOCUMENT IS SUITABLE TO ANY PARTICULAR USER'S CIRCUMSTANCE; OR
+> (A) MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, EXPRESS OR IMPLIED, (I) WITH RESPECT TO THE USE OF ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR (II) THAT SUCH USE DOES NOT INFRINGE ON OR INTERFERE WITH PRIVATELY OWNED RIGHTS, INCLUDING ANY PARTY'S INTELLECTUAL PROPERTY, OR (III) THAT THIS DOCUMENT IS SUITABLE TO ANY PARTICULAR USER'S CIRCUMSTANCE; OR
>
-> \(B\) ASSUMES RESPONSIBILITY FOR ANY DAMAGES OR OTHER LIABILITY WHATSOEVER (INCLUDING ANY CONSEQUENTIAL DAMAGES, EVEN IF the UCA International Users Group OR ANY UCA International Users Group REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RESULTING FROM YOUR SELECTION OR USE OF THIS DOCUMENT OR ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT.
+> (B) ASSUMES RESPONSIBILITY FOR ANY DAMAGES OR OTHER LIABILITY WHATSOEVER (INCLUDING ANY CONSEQUENTIAL DAMAGES, EVEN IF the UCA International Users Group OR ANY UCA International Users Group REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RESULTING FROM YOUR SELECTION OR USE OF THIS DOCUMENT OR ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT.
>
-> \(C\) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group.
+> (C) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group.
-THIRD PARTY INTELLECTUAL PROPERTY
+### THIRD PARTY INTELLECTUAL PROPERTY
-> The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. the UCA International Users Group has a liaison d relationship with the iec that provides access rights to the cim standards for software development. the common information model (CIM) is Open Source and is rendered in the Unified Modeling Language.
+> The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. The UCA International Users Group has a Liaison D relationship with the IEC that provides access rights to the CIM standards for software development. The Common Information Model (CIM) is Open Source and is rendered in the Unified Modeling Language.
-Acknowledgements
+## Acknowledgements
In preparing this specification, the UCAIug recognizes the special contributions of the following CIM Subcommittee and their organizations.
@@ -55,11 +57,11 @@ In preparing this specification, the UCAIug recognizes the special contributions
- Tatjana Kostic - *ABB*
-Abstract
+## *Abstract*
> *This document specifies the rules and recommendations on how to use the UML to create and maintain a standardized Common Information Model (CIM) of the electric grid and other related business domains. Such models are called Domain Models. The primary goal of this document is to facilitate communication and understanding among people working with the CIM domain models. The primary goal of the rules is to specify the structure and modeling constraints applied to the CIM. The primary goal of the recommendations is to provide guidelines on how to extend the CIM as more of the model is elaborated by working groups within the International Electrotechnical Commission (IEC) and by the CIM user community. The intent of the recommendations is to facilitate the incorporation of new model elements into the CIM.*
-Foreword
+## Foreword
Exchanging power systems data between utility companies is always problematic when proprietary formats are used. In the past a company would traditionally use a single software system, whether it is a custom in-house solution, or purchased from a large software company, and there would be a single proprietary data standard and format used. With the deregulation of the power industry and the emergence of smarter grids, there is now a greater need to be able to share such power system data between companies and systems.
@@ -67,7 +69,7 @@ The increase in choice provided by the number of power system software vendors a
The Common Information Model (CIM) is an open standard for representing power system components originally developed by the Electric Power Research Institute (EPRI) in North America. The CIM provides the basis of a series of standards developed under the auspices of the International Electrotechnical Commission (IEC). The CIM standard was started as part of the Control Centre Application Programming Interface (CCAPI) project at EPRI with the aim of defining a common definition for the components in power systems for use the Energy Management System (EMS) Application Programming Interface (API). The EMS API is now maintained by IEC Technical Committee 57 Working Group 13 as IEC 61970-301. The format has been adopted by the major EMS vendors to allow the exchange of data between their applications, independent of their internal software architecture or operating platform.[^1]
-About the UCA International CIM Users Group
+## About the UCA International CIM Users Group
The UCA International Users Group (UCAIug) is a not-for-profit corporation focused on assisting users and vendors in the deployment of standards for real-time applications for several industries with related requirements. The UCAIug does not write standards, however it works closely with those bodies that have primary responsibility for the completion of standards (notably IEC TC 57: *Power Systems Management and Associated Information Exchange*).
diff --git a/docs/revision-history.md b/docs/revision-history.md
new file mode 100644
index 0000000..5d204ec
--- /dev/null
+++ b/docs/revision-history.md
@@ -0,0 +1,7 @@
+# Revision History
+
+| **Rev. #** | **Rev Date** | **Author** | **Description** |
+|------------|--------------|------------|-----------------|
+| 1.0 | 25-Nov-2019 | H. Dotson, et al. | Initial Release |
+| 1.1 | 13-Feb-2021 | H. Dotson, et al. | Update to Rule 197 |
+
diff --git a/docs/section1-introduction.md b/docs/section1-introduction.md
index 69a2282..08d9113 100644
--- a/docs/section1-introduction.md
+++ b/docs/section1-introduction.md
@@ -1,6 +1,6 @@
-# Section 1 - Introduction
+# Introduction
-## 1.1 Document Overview
+## Document Overview
The CIM has been growing and more groups are extending it with new functionality. Currently the following IEC TC57 working groups are working with the CIM:
@@ -12,13 +12,13 @@ The CIM has been growing and more groups are extending it with new functionality
Initially only WG13 and WG14 were working with the CIM. Each group worked with a local copy of the UML model file and the two copies were synchronised as needed. With three working groups the synchronisation process becomes more complex. This document describes how to manage CIM across multiple working groups and provides best practices for applications wanting to extend the CIM.
-### 1.1.1 Document Purpose
+### Document Purpose
The purpose of this document is to provide guidance to individuals working with the CIM UML on how to modify the CIM in accordance with the CIM modeling rules and CIM change management. The rules and process are maintained and enforced by the CIM model managers.
The goals of this document are to: 1) facilitate communication and understanding among individuals working with CIM domain models; and 2) streamline the incorporation of new content into the CIM UML.
-### 1.1.2 Document Scope
+### Document Scope
The scope of this document includes providing:
@@ -36,7 +36,7 @@ The scope of this document includes providing:
7) A description of the UML tool (Sparx EA) used for CIM Management.
-### 1.1.3 What this Document Does Not Cover
+### What this Document Does Not Cover
*This Document Does Not Cover All UML Concepts*
@@ -58,7 +58,7 @@ The detailed tool procedures used to accomplish CIM Management tasks are not in
The tools used to create CIM Profiles are not in the purview of CIM Management. This document does provide rules and recommendations for transforming the CIM UML (a semantic information model) into a canonical data model that can then be used as input to a tool to create CIM Profiles.
-### 1.1.4 Who this Document Is For
+### Who this Document Is For
This document has the following intended audience:
@@ -84,7 +84,7 @@ This document has the following intended audience:
- Researchers interested in learning about the CIM UML and conducting CIM UML research.
-## 1.2 How this Document Is Organized
+## How this Document Is Organized
This document begins with Sections 1, 2, and 3 providing introductory content, references, and definitions, respectively.
@@ -102,7 +102,7 @@ Section 9 identifies and describes the artifacts under CIM Management. This incl
Section 10 discusses the tools used for CIM UML model management. Tools include Enterprise Architect, jCleanCIM, and the CIMug Website.
-## 1.3 Symbols, Figures, and Style Conventions
+## Symbols, Figures, and Style Conventions
**Conventions**
@@ -128,7 +128,7 @@ The Unified Modeling Language is used
2. Square brackets (\[ \]) are used as delimiters for referenced works cited in this document.
-## 1.4 Document Control
+## Document Control
This document will be reviewed periodically by the CIM Model Managers and updated as needed. Lessons learned will be captured with each CIM UML update and used to improve this document. If the document is written in an older format, the document should be revised into the latest CIM Users Group template format.
diff --git a/docs/section10-cim-management-tools.md b/docs/section10-cim-management-tools.md
index 80fbbec..a9015ee 100644
--- a/docs/section10-cim-management-tools.md
+++ b/docs/section10-cim-management-tools.md
@@ -1,18 +1,22 @@
-# Section 10 - CIM Management Tools
+# CIM Management Tools
This section gives a brief description of the software tools used to help carry out the responsibilities of CIM Management.
-## 10.1 Sparx Enterprise Architect
+## Sparx Enterprise Architect
Sparx Systems Enterprise Architect modeling tool is the tool used to maintain the CIM UML. CIM Management leverages the tool support for partitioning a model into several model files, which allows working groups to develop top-level package model content separately, and then merge the model changes into a complete version of the CIM UML.
Enterprise Architect can also be used to generate CIM Profiles with its Schema Composer tool.
-## 10.2 jCleanCIM
+## CIMTool
+
+CIMTool is an open source tool for working with the CIM to produce design artifacts such as database schemas, RDF Schema, XSD Schema, JSON Schema, source code classes, reference documentation, etc. from a contextual profile.
+
+## jCleanCim
jCleanCim is a Java application that is used to auto generate draft model standards from the CIM UML. It uses a Word document template, a configuration file, and a CIM UML project file to create the 61970-301, 61968-11, and 62325-301 model documents.
-## 10.3 CIMug Website
+## CIMug Website
The CIMug website serves as the tool that provides online access to artifacts under CIM Management. The CIMug website provides unrestricted access to the CIM UML and controlled access (security credentials required) to artifacts that fall under the Liason D relationship UCA has with the IEC.
diff --git a/docs/section2-references.md b/docs/section2-references.md
index 9def986..b19601c 100644
--- a/docs/section2-references.md
+++ b/docs/section2-references.md
@@ -1,6 +1,6 @@
-# Section 2 - References
+# References
-## 2.1 Normative References
+## Normative References
The following IEC documents, and the other identified references herein contain information which, through reference in this text, constitute normative provisions of this document. At the time of publication, the editions indicated were valid. All IEC documents, and other normative references are subject to revision. All users of this document are therefore encouraged to investigate the possibility of applying the most recent edition of the references listed below.
@@ -12,7 +12,7 @@ The following IEC documents, and the other identified references herein contain
| TC57-Glossary | IEC TC57 Glossary |
| UML-2.5.1 | Unified Modeling Language Specification Version 2.5.1. Object Management Group December 2017 |
-## 2.2 Informative References
+## Informative References
The following documents referenced herein contain information which is not binding and does not constitute provisions of this document. The information referenced in this text is informative and supportive information intended to enhance the comprehension of this document.
diff --git a/docs/section3-definitions.md b/docs/section3-definitions.md
index 8eb46a2..4ebf660 100644
--- a/docs/section3-definitions.md
+++ b/docs/section3-definitions.md
@@ -1,5 +1,5 @@
-# Section 3 - Definitions
+# Definitions
For the purposes of this document the following definitions apply:
diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md
index e966916..05d4f48 100644
--- a/docs/section4-cim-overview.md
+++ b/docs/section4-cim-overview.md
@@ -1,4 +1,4 @@
-# Section 4 - CIM Overview
+# CIM Overview
**Background**
@@ -25,7 +25,7 @@ In order to achieve these two goals, the UCAIug leadership has decided that the
For the past two years the IEC TC57 CIM working groups have emphasized the importance (to their productivity) of having access to documented rules and recommendations for creating new CIM content. Up until the release of this document, CIM management guidelines resided in draft documents owned by CIM Model Managers.
-## 4.1 CIM UML Scope
+## CIM UML Scope
The CIM UML is semantic information model that represents real-world physical electric grid objects and information entities. The CIM UML is the basis for data that is exchanged between systems to:
@@ -74,11 +74,11 @@ The CIM UML is semantic information model that represents real-world physical el
-## 4.2 CIM Management Business Context
+## CIM Management Business Context
CIM Management is a business function performed by the CIM Subcommittee of the UCAIug Technical Oversight Committee (see Figure 4‑1).
-
+
Figure 4‑1. UCA International Users Group Organization Chart
@@ -122,42 +122,41 @@ The CIM Technical Subcommittee is responsible for handling all technical and mai
- Maintain repositories for sample CIM/XML/RDF power system model files
-## 4.3 CIM Management Functions
+## CIM Management Functions
-### 4.3.1 Model Change Management
+### Model Change Management
Model change management (MCM) is the ongoing process of identifying and managing CIM UML change requests. A model change management plan (MCMP) is developed to define, document and track the information required to effectively manage change requests throughout the CIM UML development life cycle.
-### 4.3.2 Model Change Validation
+### Model Change Validation
Model change validation (MCV) is the ongoing process of ensuring proposed CIM UML changes are in compliance with CIM modeling rules.
-### 4.3.3 Model Change Implementation
+### Model Change Implementation
Model change implementation (MCI) is the ongoing process of making changes to an existing CIM UML baseline to create a new CIM UML baseline.
-### 4.3.4 Configuration Management
+### Configuration Management
Configuration management (CM) is the ongoing process of identifying and managing changes to the CIM UML and other work products. A configuration management plan (CM Plan) is developed to define, document, control, implement, account for, and audit changes to the various CIM configuration items. The CM Plan provides information on the requirements and procedures necessary for CMP activities and establishes the methodology for configuration identification and control of releases and changes to configuration items. It also describes the process for maintaining status accounting and verifying the completeness and correctness of configuration items throughout the CIM UML development life cycle.
-### 4.3.5 Model Distribution
+### Model Distribution
Model distribution (MD) is the ongoing process of distributing CIM UML baselines to official repositories and authorized consumers of the CIM UML.
-### 4.3.6 Continuous Process Improvement
+### Continuous Process Improvement
Continuous process improvement (CPI) is the ongoing process of improving the CIM management processes through incremental and breakthrough improvements. The goal of CPI is to improve the quality of the CIM UML or the efficiency of the CIM management processes.
-### 4.3.7 CIM Management Function Mappings
+### CIM Management Function Mappings
Mapping of the CIM management functions includes two (2) mappings of the CIM management functions. The first shows the mapping between CIM management functions and CIM management responsibilities assigned to the CIM Subcommittee with the UCAIug. The second shows the mapping between CIM management functions and the CIM management processes that realize those functions. The first mapping is shown in Figure 4‑2. The second mapping is discussed in Section 4.4 and shown in Figure 4‑9
-
-
+
Figure 4‑2. CIM Management Functions-to-UCA CIM Responsibilities Mapping
-## 4.4 CIM Management Processes
+## CIM Management Processes
CIM management processes are the realization of CIM management functions. There are five (5) CIM management processes. The CIM management processes are shown in Figure 4‑3. A list of the processes and their descriptions are provided in Table 4‑2.
@@ -179,7 +178,7 @@ CIM management processes are the realization of CIM management functions. There
Figure 4‑4. Model Development Process Flow
-
+
Figure 4‑5. Change Management Process
@@ -195,31 +194,31 @@ CIM management processes are the realization of CIM management functions. There
Figure 4‑8. Continuous Process Improvement Process Flow
-### 4.4.1 CIM Management Process Mappings
+### CIM Management Process Mappings
The mapping between CIM management functions and the CIM management processes are shown in Figure 4‑9.
-
+
Figure 4‑9. CIM Management Process-to-CIM Management Functions Mapping
The CIM Model Managers perform most of the tasks within the CIM management processes. There are however, other roles within the CIMug and IEC working groups that also perform CIM management tasks. The following table provides a description of each role and its mapping to CIM management processes.
| **Role** | **Role Description** | **MDP** | **CMP** | **DGP** | **ADP** | **CPIP** |
-|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|---------|---------|---------|----------|
-| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. |
| | | | |
-| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. |
| | | | |
-| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. |
| | | | |
-| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. |
| |
| | |
-| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. |
| |
| | |
-| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | |
| | |
|
-| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. |
|
|
|
|
|
+|----------|----------------------|---------|---------|---------|---------|----------|
+| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | **X** | | | | |
+| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | **X** | | | | |
+| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | **X** | | | | |
+| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. | **X** | | **X** | | |
+| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. | **X** | | **X** | | |
+| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | | **X** | | | **X** |
+| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. | **X** | **X** | **X** | **X** | **X** |
Table 4‑3. Role-to-CIM Management Process Mapping
-## 4.5 CIM Management Process Integration with the IEC Standards Process
+## CIM Management Process Integration with the IEC Standards Process
-### 4.5.1 IEC Standards Development Process
+### IEC Standards Development Process
As IEC standards, the CIM standards must go through the IEC international standards development process to be published. An IEC International Standard is the result of an agreement between the National Committees of the IEC. The IEC standard development process and the documents created in the process are shown in Figure 4‑10. A description of the IEC stages is provided in Table 4‑4.
@@ -275,7 +274,7 @@ As IEC standards, the CIM standards must go through the IEC international standa
-### 4.5.2 Process Integration Points
+### Process Integration Points
The CIM management processes integrate with the IEC standards development process because the CIM UML provides the basis for IEC CIM standards. There are two types of integration points between the two processes: 1) draft standards preparation; and 2) draft standards submission.
@@ -284,16 +283,16 @@ A mapping between the applicable IEC standards development stages and the CIM Ma
Table 4‑5. CIM Management Processes-to-IEC Standard Development Stage Mappings
| | Proposal Stage | Preparatory Stage | Committee Stage | Enquiry Stage | Approval Stage | Publication Stage |
-|-------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
-| Model Development Process |
|
|
|
|
| |
-| Change Management Process |
|
|
|
|
| |
-| Document Generation Process | | |
|
|
| |
-| Artifact Distribution Process | |
|
|
|
|
|
+|-|----------------|-------------------|-----------------|---------------|----------------|-------------------|
+| Model Development Process | **X** | **X** | **X** | **X** | **X** | |
+| Change Management Process | **X** | **X** | **X** | **X** | **X** | |
+| Document Generation Process | | | **X** | **X** | **X** | |
+| Artifact Distribution Process | | **X** | **X** | **X** | **X** | **X** |
-#### 4.5.2.1 Draft Standards Preparation
+#### Draft Standards Preparation
The intermediate draft standards submitted to the IEC are produced during the execution of the Model Development process and the Document Generation process. CIM UML changes are incorporated to form the basis of the draft standards. Therefore, the Change Management process is also part of draft standards preparation.
-#### 4.5.2.2 Draft Standards Submission
+#### Draft Standards Submission
The submission of the draft standards to the IEC takes place during the Artifact Distribution process. The IEC is considered one of the subscribers for the draft standards in the process.
diff --git a/docs/section5-cim-uml-modeling-rules-and-recommendations.md b/docs/section5-cim-uml-modeling-rules-and-recommendations.md
index 2921e45..e07fedd 100644
--- a/docs/section5-cim-uml-modeling-rules-and-recommendations.md
+++ b/docs/section5-cim-uml-modeling-rules-and-recommendations.md
@@ -1,6 +1,6 @@
-# Section 5 - CIM UML Modeling Rules and Recommendations
+# CIM UML Modeling Rules and Recommendations
-## 5.1 Overview
+## Overview
This section describes rules and recommendations on how to use the UML to model electric utility domain information. The UML does not include a step-by-step model development process. It is a general-purpose modeling language that all modelers can use. The primary goal behind CIM UML modeling rules and recommendations is to ensure a well-formed, consistent semantic information model is maintained in order to facilitate communication and understanding among people working with the CIM.
@@ -12,25 +12,25 @@ Due to the evolving nature of the CIM, there are notable rule exceptions through
- special circumstances warrant the need for an exception
-### 5.1.1 UML Concepts Used in the CIM
+### UML Concepts Used in the CIM
The CIM uses a very small subset of UML concepts. UML concepts and models can be grouped into the following concept areas: 1) static structure; 2) dynamic behavior; 3) implementation constructs; 4) model organization; and 5) extensibility mechanisms. The CIM only uses UML concepts in the static structure and model organization concept areas.
-### 5.1.2 UML Static Structure Concepts
+### UML Static Structure Concepts
The CIM uses UML concepts that model utility domain concepts, their internal properties, and their relationships to each other. Utility domain concepts are modeled as classes, each of which describes a set of discrete objects that hold information. Utility domain concept properties are modeled as class attributes. The relationships between utility domain concepts are modeled as class associations or generalisations. Many classes share common structure using generalisation. Static structure concepts are viewed using class diagrams.
-### 5.1.3 UML Model Organization Concepts
+### UML Model Organization Concepts
The CIM uses UML packages to organize modeling information. Packages are general-purpose hierarchical organizational units of UML models. The purpose of packages in the CIM is mainly for controlling working group ownership, with sub-packages mainly representing conceptual organization. This usage of the package structure allows for relatively easy movement of classes among packages without impacting concrete implementations. It also defines the area of responsibility for model managers.
The CIM also uses UML dependencies among packages to impose an overall model architecture. The contents of the packages must conform to the package dependencies and to the imposed model structure.
-## 5.2 Model Structure Rules
+## Model Structure Rules
Model structure rules address UML metamodel rules, and the structure, dependencies, and assembly of CIM packages.
-### 5.2.1 UML Metamodel Rules
+### UML Metamodel Rules