Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben...

37
www.sparxsystems.com Extending the IEC Common Extending the IEC Common Information Model (CIM) with Information Model (CIM) with Enterprise Architect Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems IM Users Group Meeting, Milan 2010
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    222
  • download

    1

Transcript of Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben...

Page 1: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Extending the IEC Common Extending the IEC Common Information Model (CIM) withInformation Model (CIM) withEnterprise ArchitectEnterprise Architect

Ben Constable

Chief Operations Officer

Sparx Systems

CIM Users Group Meeting, Milan 2010

Page 2: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

OverviewOverview Review of Concepts

UML

CIM

Enterprise Architect

Getting Started with CIM and Enterprise Architect

Obtaining and Navigating the CIM model

Dealing with legacy: Can I reuse or import existing models?

Modeling with UML, CIM and Enterprise Architect:

Achieving TraceabilityCreating CIM extensions in Enterprise Architect Sharing Model Information

Q & A

Page 3: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: UMLReview of Concepts: UML

UML: Unified Modeling Language“…provide[s] system architects, software engineers, and software developers with tools for analysis, design, and implementation of software based systems as well as for modeling business and similar processes.” – UML Specification

Graphical language, not a methodology!Has syntax rulesProfiles provide extensibility

Current version: 2.3First UML spec in 1997Object Management Group (OMG)

More InfoUML, OMG: http://www.uml.org, www.omg.org Sparx Tutorials: http://www.sparxsystems.com/resources

Page 4: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: Value of UMLReview of Concepts: Value of UML

Manage complexity

Plan and mitigate risk

Facilitate communication

Page 5: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: UMLReview of Concepts: UML

UML supports 13 diagrams to visualize:Structure (Package, Class, Component etc.)Behavior (Use Case, Activity, State Machine)Interaction (Sequence, Timing etc.)

UML structural diagrams most relevant to CIM:

Class PackageComponentParent

- attribute1: string

Child

- attribute2: int

Part+part

1

Pkg A

+ Child

Pkg B

+ Parent

+ Part

Component1

Component2

Page 6: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: CIMReview of Concepts: CIM

Common Information Model (CIM) implemented in UML

As a standard reference model, CIM provides:

A foundation for business process integration

Enterprise-level, logical data model to reduce the need for point-to-point data translation and method mappings among applications.

“The most developed and widely accepted model for describing an electrical network.” - Scott Neumann, CIM Road Map Task Force.

CIM download and more info: http://cimug.ucaiug.org

EnergySchedulingFinancialMarketOperations

CombinedVersion{root}

+ date: AbsoluteDateTime [0..1] = 2009-04-13 {readOnly}+ version: String [0..1] = iec61970CIM14v0... {readOnly}

Reservation

IEC61970

IEC61968

Page 7: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: Enterprise Review of Concepts: Enterprise ArchitectArchitect

UML 2 modeling platform:Supports standard 13 UML 2 diagramsCustomization framework for Domain Specific Modeling (UML profiles, patterns, templates)XML Meta-data Interchange (XMI) for interoperability and model serializationSupports large models, versioning, collaboration and sharing(requisites for CIM modeling)

Current Version: 8

Available from: http://www.sparxsystems.com

Page 8: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: Enterprise Review of Concepts: Enterprise ArchitectArchitectRelationship to CIM:

CIM standard hosted and maintained in an Enterprise Architect project

In 2008, model migration from legacy tools was completed

Enterprise Architect provides editing capabilities for maintainers of CIM UML model

Extension models can be defined from CIM base project

Sparx Systems UCAIug member

Page 9: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Review of Concepts: Enterprise Review of Concepts: Enterprise ArchitectArchitect

Page 10: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

OverviewOverview Review of Concepts

UML

CIM

Enterprise Architect

Getting Started with CIM and Enterprise Architect

Obtaining and Navigating the CIM model

Dealing with legacy: Can I reuse or import existing models?

Modeling with UML, CIM and Enterprise Architect:

Achieving TraceabilityCreating CIM extension in Enterprise Architect Sharing Model Information

Q & A

Page 11: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Getting started: Obtaining the CIM modelGetting started: Obtaining the CIM model

1. Download CIM model from CIMug:

http://cimug.ucaiug.org/CIM Model Releases/Forms/AllItems.aspx

2. Get Enterprise Architect:

http://www.sparxsystems.com

3. Familiarize yourself with CIM

• Project Browser to explore semantic

model hierarchy

• Advanced meta-data search facility

to find elements of interest

Page 12: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

Getting started: Dealing with Legacy Getting started: Dealing with Legacy Models Models

Page 13: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Getting started: Dealing with Legacy Getting started: Dealing with Legacy Models Models

Q: Can I import existing models from another tool?

A: Probably. Many tools support model data exchange via XMI (XML Metadata Interchange).

Enterprise Architect has robust support for importing XMI in its various ‘flavors’ including XMI produced from other modeling tools.

The CIM standard models were migrated using XMI. See: CIM Model Manager Report to WG 13 and 14 June, 2008, Kendall Demaree

Page 14: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Dealing with Legacy Models: XMI ImportDealing with Legacy Models: XMI Import

Generic XMI import process:

1. Use the legacy tool to export the entire model to XMI:

May require a plug-in and patches. For example, see: http://www.sparxsystems.com/support/faq/import_rose_model.html

Note available XMI and UML versions. Some may be better supported.

2. Import the XMI file into Enterprise Architect. Supports XMI 1.0, 1.1, 1.2 and 2.1 from numerous tools. (XMI version automatically detected)

3. Use validation tools to ensure completeness and consistency of import

Both IEC and ISO developed validation tools for step 3:

IEC TC 57: CIMinEA.exe

ISO TC 211: http://sparxsystems.com/securedownloads/HMMGPort/Compare-Files-20080313.zip

Page 15: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Dealing with Legacy Models: DiagramsDealing with Legacy Models: Diagrams

Tip on Diagram Export: XMI exported from many tools either:

1. Provides only partial diagram info or;

2. Doesn’t include diagrams at all

In Scenario 1, diagram layouts are likely to be lost. In scenario 2, diagrams need to be recreated from scratch.

In both cases, there are tools to help automate the process…

Page 16: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

TransformerWinding{leaf}

+ b: Susceptance+ insulationU: Voltage+ connectionType: WindingConnection+ emergencyS: ApparentPower+ g: Conductance+ grounded: Boolean+ r: Resistance+ r0: Resistance+ ratedU: Voltage+ ratedS: ApparentPower+ rground: Resistance+ shortTermS: ApparentPower+ windingType: WindingType+ x: Reactance+ x0: Reactance+ xground: Reactance

Core::PowerSystemResource

HeatExchanger{leaf}

BusbarSection{leaf}

VoltageControlZone{leaf}

ShuntCompensator{leaf}

+ aVRDelay: Seconds+ impedance: Impedance+ maxU: Voltage+ maximumSections: Integer+ minU: Voltage+ reactivePerSection: ReactivePower+ nomU: Voltage+ nomQ: ReactivePower+ normalSections: Integer+ switchOnCount: Integer+ switchOnDate: AbsoluteDateTime+ voltageSensitivity: VoltagePerReactivePower+ yPerSection: Admittance

ACLineSegment{leaf}

DCLineSegment{leaf}

+ dcSegmentInductance: Inductance+ dcSegmentResistance: Resistance

LoadBreakSwitch{leaf}

+ ratedCurrent: CurrentFlow

Core::VoltageLev el{leaf}

+ highVoltageLimit: Voltage+ lowVoltageLimit: Voltage

TapChanger{leaf}

+ highStep: Integer+ initialDelay: Seconds+ lowStep: Integer+ neutralU: Voltage+ neutralStep: Integer+ normalStep: Integer+ stepPhaseShiftIncrement: AngleDegrees+ stepVoltageIncrement: PerCent+ subsequentDelay: Seconds+ tculControlMode: TransformerControlMode

PowerTransformer{leaf}

+ bmagSat: PerCent+ magBaseU: Voltage+ magSatFlux: PerCent+ phases: PhaseCode+ transfCoolingType: TransformerCoolingType+ transformerType: TransformerType

Fuse{leaf}

+ ampRating: CurrentFlow

StaticVarCompensator{leaf}

+ capacitiveRating: Reactance+ inductiveRating: Reactance+ sVCControlMode: SVCControlMode+ slope: VoltagePerReactivePower+ voltageSetPoint: Voltage

RegulatingCondEq

RectifierInv erter{leaf}

+ ratedU: Voltage+ bridges: Integer+ commutatingReactance: Reactance+ commutatingResistance: Resistance+ compoundResistance: Resistance+ minCompoundVoltage: Voltage+ frequency: Frequency+ maxP: ActivePower+ minP: ActivePower+ maxU: Voltage+ minU: Voltage+ operatingMode: OperatingMode

Junction{leaf}

Jumper{leaf}

Ground{leaf}

Conductor

+ b0ch: Susceptance+ bch: Susceptance+ g0ch: Conductance+ gch: Conductance+ length: LongLength+ r: Resistance+ r0: Resistance+ x: Reactance+ x0: Reactance

Disconnector{leaf}

EnergySource{leaf}

+ xn: Reactance+ rn: Resistance+ nominalVoltage: Voltage+ x: Reactance+ r: Resistance+ voltageAngle: AngleRadians+ voltageMagnitude: Voltage+ x0: Reactance+ r0: Resistance+ activePower: ActivePower

SeriesCompensator{leaf}

ProtectedSwitch

Core::IdentifiedObject

+ mRID: String+ name: String+ localName: String+ pathName: String+ aliasName: String+ description: String

Core::SubControlArea

{leaf}

Plant{leaf}

Line{leaf}

FrequencyConv erter{leaf}

+ frequency: Frequency+ maxP: ActivePower+ maxU: Voltage+ minP: ActivePower+ minU: Voltage+ operatingMode: OperatingMode

Connector

Core::Bay{leaf}

+ bayEnergyMeasFlag: Boolean+ bayPowerMeasFlag: Boolean+ breakerConfiguration: BreakerConfiguration+ busBarConfiguration: BusbarConfiguration

Switch

+ normalOpen: Boolean+ switchOnCount: Integer+ switchOnDate: AbsoluteDateTime

Core::Connectiv ityNodeContainer

Core::Substation

{leaf}

EnergyConsumer

+ customerCount: Integer+ pFexp: PU+ pVexp: PU+ qFexp: PU+ qVexp: PU+ pfixed: ActivePower+ qfixed: ReactivePower+ qfixedPct: PerCent+ pfixedPct: PerCent

GroundDisconnector{leaf}

Core::ConductingEquipment

+ phases: PhaseCode

Breaker{leaf}

+ ratedCurrent: CurrentFlow+ inTransitTime: Seconds

SynchronousMachine{leaf}

+ aVRToManualLag: Seconds+ aVRToManualLead: Seconds+ baseQ: ReactivePower+ coolantCondition: Float+ coolantType: CoolantType+ damping: Damping+ inertia: PU+ manualToAVR: Seconds+ maxU: Voltage+ maxQ: ReactivePower+ minU: Voltage+ minQ: ReactivePower+ r: Resistance+ r0: Resistance+ ratedS: ApparentPower+ x: Reactance+ x0: Reactance+ xDirectSubtrans: Reactance+ xDirectSync: Reactance+ xDirectTrans: Reactance+ xQuadSubtrans: Reactance+ xQuadSync: Reactance+ xQuadTrans: Reactance+ operatingMode: SynchronousMachineOperatingMode+ type: SynchronousMachineType+ condenserP: ActivePower+ referencePriority: Integer

Core::Equipment

Core::EquipmentContainer

CompositeSwitch{leaf}

+ compositeSwitchType: CompositeSwitchType

+Contains_CompositeSwitches 0..*+MemberOf_Substation 0..1

+HeatExchanger 0..1

+PowerTransformer 1

+Contains_TransformerWindings 1..*

+MemberOf_PowerTransformer 1

+TapChangers 0..*

+TransformerWinding 1

+BusbarSection 1

+VoltageControlZone 0..1

+MemberOf_Substation 1

+Contains_VoltageLevels 0..*

+CompositeSwitch 0..1

+Switches 0..*

+Contains_Bays 0..*+MemberOf_Substation 0..1

+MemberOf_VoltageLevel 0..1

+Contains_Bays 0..*

+MemberOf_EquipmentContainer

0..1

+Contains_Equipments

0..*

Dealing with Legacy Models: DiagramsDealing with Legacy Models: Diagrams

If diagram info exported from your legacy tool is poor or incomplete, after import you might see…

Page 17: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

TransformerWinding{leaf}

+ b: Susceptance+ insulationU: Voltage+ connectionType: WindingConnection+ emergencyS: ApparentPower+ g: Conductance+ grounded: Boolean+ r: Resistance+ r0: Resistance+ ratedU: Voltage+ ratedS: ApparentPower+ rground: Resistance+ shortTermS: ApparentPower+ windingType: WindingType+ x: Reactance+ x0: Reactance+ xground: Reactance

Core::PowerSystemResource

HeatExchanger{leaf}

BusbarSection{leaf}

VoltageControlZone{leaf}

ShuntCompensator{leaf}

+ aVRDelay: Seconds+ impedance: Impedance+ maxU: Voltage+ maximumSections: Integer+ minU: Voltage+ reactivePerSection: ReactivePower+ nomU: Voltage+ nomQ: ReactivePower+ normalSections: Integer+ switchOnCount: Integer+ switchOnDate: AbsoluteDateTime+ voltageSensitivity: VoltagePerReactivePower+ yPerSection: Admittance

ACLineSegment{leaf}

DCLineSegment{leaf}

+ dcSegmentInductance: Inductance+ dcSegmentResistance: Resistance

LoadBreakSwitch{leaf}

+ ratedCurrent: CurrentFlow

Core::VoltageLevel{leaf}

+ highVoltageLimit: Voltage+ lowVoltageLimit: Voltage

TapChanger{leaf}

+ highStep: Integer+ initialDelay: Seconds+ lowStep: Integer+ neutralU: Voltage+ neutralStep: Integer+ normalStep: Integer+ stepPhaseShiftIncrement: AngleDegrees+ stepVoltageIncrement: PerCent+ subsequentDelay: Seconds+ tculControlMode: TransformerControlMode

PowerTransformer{leaf}

+ bmagSat: PerCent+ magBaseU: Voltage+ magSatFlux: PerCent+ phases: PhaseCode+ transfCoolingType: TransformerCoolingType+ transformerType: TransformerType

Fuse{leaf}

+ ampRating: CurrentFlow

StaticVarCompensator{leaf}

+ capacitiveRating: Reactance+ inductiveRating: Reactance+ sVCControlMode: SVCControlMode+ slope: VoltagePerReactivePower+ voltageSetPoint: Voltage

RegulatingCondEqRectifierInverter{leaf}

+ ratedU: Voltage+ bridges: Integer+ commutatingReactance: Reactance+ commutatingResistance: Resistance+ compoundResistance: Resistance+ minCompoundVoltage: Voltage+ frequency: Frequency+ maxP: ActivePower+ minP: ActivePower+ maxU: Voltage+ minU: Voltage+ operatingMode: OperatingMode

Junction{leaf}

Jumper{leaf}

Ground{leaf}

Conductor

+ b0ch: Susceptance+ bch: Susceptance+ g0ch: Conductance+ gch: Conductance+ length: LongLength+ r: Resistance+ r0: Resistance+ x: Reactance+ x0: Reactance

Disconnector{leaf}

EnergySource{leaf}

+ xn: Reactance+ rn: Resistance+ nominalVoltage: Voltage+ x: Reactance+ r: Resistance+ voltageAngle: AngleRadians+ voltageMagnitude: Voltage+ x0: Reactance+ r0: Resistance+ activePower: ActivePower

SeriesCompensator{leaf}

ProtectedSwitch

Core::IdentifiedObject

+ mRID: String+ name: String+ localName: String+ pathName: String+ aliasName: String+ description: String

Core::SubControlArea

{leaf}

Plant{leaf}

Line{leaf}

FrequencyConverter{leaf}

+ frequency: Frequency+ maxP: ActivePower+ maxU: Voltage+ minP: ActivePower+ minU: Voltage+ operatingMode: OperatingMode

ConnectorCore::Bay{leaf}

+ bayEnergyMeasFlag: Boolean+ bayPowerMeasFlag: Boolean+ breakerConfiguration: BreakerConfiguration+ busBarConfiguration: BusbarConfiguration

Switch

+ normalOpen: Boolean+ switchOnCount: Integer+ switchOnDate: AbsoluteDateTime

Core::Connectiv ityNodeContainer

Core::Substation{leaf}

EnergyConsumer

+ customerCount: Integer+ pFexp: PU+ pVexp: PU+ qFexp: PU+ qVexp: PU+ pfixed: ActivePower+ qfixed: ReactivePower+ qfixedPct: PerCent+ pfixedPct: PerCent

GroundDisconnector{leaf}

Core::ConductingEquipment

+ phases: PhaseCode

Breaker{leaf}

+ ratedCurrent: CurrentFlow+ inTransitTime: Seconds

SynchronousMachine{leaf}

+ aVRToManualLag: Seconds+ aVRToManualLead: Seconds+ baseQ: ReactivePower+ coolantCondition: Float+ coolantType: CoolantType+ damping: Damping+ inertia: PU+ manualToAVR: Seconds+ maxU: Voltage+ maxQ: ReactivePower+ minU: Voltage+ minQ: ReactivePower+ r: Resistance+ r0: Resistance+ ratedS: ApparentPower+ x: Reactance+ x0: Reactance+ xDirectSubtrans: Reactance+ xDirectSync: Reactance+ xDirectTrans: Reactance+ xQuadSubtrans: Reactance+ xQuadSync: Reactance+ xQuadTrans: Reactance+ operatingMode: SynchronousMachineOperatingMode+ type: SynchronousMachineType+ condenserP: ActivePower+ referencePriority: Integer

Core::Equipment

Core::EquipmentContainer

CompositeSwitch{leaf}

+ compositeSwitchType: CompositeSwitchType

Dealing with Legacy Models: DiagramsDealing with Legacy Models: Diagrams

What we'd like to see is more like…

Page 18: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Dealing with Legacy Models: DiagramsDealing with Legacy Models: Diagrams

You can recover diagram layout ‘semi-automatically’

Apply the 80/20 rule:

Use Auto Layout tools to do most of the work

Start with a basic layout (eg. Digraph, Circle+Spring)

‘Divide and Conquer’ by applying layouts on selected regions

Manually refine, if necessary:

Use “tree-style” connectors for inheritance hierarchy

If diagram info is actually missing from exported XMI :

1. Drop any element onto a new diagram

2. Select Element > Right-click > Add > Related Elements

3. Apply Auto Layouts as above

Page 19: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

OverviewOverview Review of Concepts

UML

CIM

Enterprise Architect

Getting Started with CIM and Enterprise Architect

Obtaining and Navigating the CIM model

Dealing with legacy: Can I reuse or import existing models?

Modeling with UML, CIM and Enterprise Architect:

Achieving TraceabilityCreating CIM extension in Enterprise Architect Sharing Model Information

Q & A

Page 20: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Extending the model with traceabilityExtending the model with traceability

Why do we need to concern ourselves with traceability?

To answer questions like these:

As maintainer/contributor of the CIM base model, what impact will I have if I change Element X?

If my company extends the model, what relationships must we consider if we extend Element Y? What additional features are inherited via Element Y?

If the CIM specification changes in future, what will be the impact on my extension model?

If somebody else maintains my extension model in future, can they determine how it relates to the CIM standard?

Page 21: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Traceability: Assessing the impact of Traceability: Assessing the impact of changechange

Use Enterprise Architect’s Traceability window

Trace the selected Element’s relationships within the model.

Filter relationships and restrict hierarchy depth

Also: Relationships window, Relationship Matrix for V&V activity

Page 22: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Creating custom extensions to the CIM Creating custom extensions to the CIM

Extension goals:

Address vendor-specific concerns not included in the CIM standard

Avoid ‘reinventing the wheel’ Use CIM as reference model

Allow for future updates to CIM: Minimize manual rework of extension models and allow for merging versions

Maximize traceability to original CIM base model

See: Methodology for CIM Extensions, Neumann, DeVos et al, Jan 2007

Rationale behind CIM extensions

Alternative approaches to modeling extensions

Generating schema artifacts using CIMTool

We’ll recreate the Switch example extensions from the above presentation using the CIM base model …

Page 23: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Creating custom extensions to the CIM Creating custom extensions to the CIM

Proposed extension process:

1. Copy CIM Base Model, or import CIM XMI source into EAP

2. Create a separate UML Package for extension elements

3. Drag/Drop CIM standard elements onto extension diagrams

4. Use Generalization and Association relationships to extend and reuse CIM elements

Advantages of using a Base model:

Full traceability from extensions to CIM standard

Easier to merge popular extensions CIM standards

Future CIM versions importable directly to extension model

Page 24: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Start with the CIM base model – Step 1Start with the CIM base model – Step 1class Main

EnergySchedulingFinancialMarketOperations

CombinedVersion{root}

+ date: AbsoluteDateTime [0..1] = 2009-04-13 {readOnly}+ version: String [0..1] = iec61970CIM14v0... {readOnly}

Reservation

IEC61970

IEC61968

Page 25: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Create a new model structure to house our extension model:

Project Root node: “Vendor_X”

View: “CIM_Extensions”

Package: “SwitchX”

Diagram: “SwitchX”

Structure of extension model can be customized. Eg. separate project root node for extension packages or extension packages nested under CIM Base Model

Create extension model structure – Step Create extension model structure – Step 2 2

Page 26: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

ConductingEquipment

Wires::Switch

+ normalOpen: Boolean [0..1]+ switchOnCount: Integer [0..1]+ switchOnDate: AbsoluteDateTime [0..1]+ retained: Boolean [0..1]

Drag the existing Switch class onto a new diagram.

Inheritance from Switch to ConductingEquipment abbreviated

Standard Switch class from the Wires package (namespace)

Add new attribute to Switch

New diagram, not a change to CIM semantic model. New attribute is a semantic change…

Drag n’ Drop CIM standard elements – Drag n’ Drop CIM standard elements – Step 3Step 3

ConductingEquipment

Wires::Switch

+ normalOpen: Boolean [0..1]+ switchOnCount: Integer [0..1]+ switchOnDate: AbsoluteDateTime [0..1]+ retained: Boolean [0..1]+ y: float

Page 27: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Inherit from CIM model elements to build up extensions.

Drag n’ Drop the standard Switch class onto the diagram

Create the SwitchX class

Generalize from Switch to SwitchX

Use Generalizations and Associations – Use Generalizations and Associations – Step 4Step 4

SwitchX

ConductingEquipment

Wires::Switch

+ normalOpen: Boolean [0..1]+ switchOnCount: Integer [0..1]+ switchOnDate: AbsoluteDateTime [0..1]+ retained: Boolean [0..1]+ y: float

Page 28: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Use Generalizations and Associations – Step 4Use Generalizations and Associations – Step 4

SwitchX

+ x: int

ConductingEquipment

Wires::Switch

+ normalOpen: Boolean [0..1]+ switchOnCount: Integer [0..1]+ switchOnDate: AbsoluteDateTime [0..1]+ retained: Boolean [0..1]+ y: float

SomeClass

+SwitchX

1

+SomeClasses

0..*

Association roles should be named at each end

Multiplicities should be defined

Use CIM naming conventions

Page 29: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Switch

+ normalOpen: Boolean [0..1]+ switchOnCount: Integer [0..1]+ switchOnDate: AbsoluteDateTime [0..1]+ retained: Boolean [0..1]+ y: float

CompositeSwitch

Fuse JumperDisconnectorGroundDisconnector ProtectedSwitch

LoadBreakSwitch Breaker

Core::ConductingEquipment

PowerSystemResource

Core::Equipment

+CompositeSwitch

0..1

+Switches

0..*

Only one of our changes actually impacts the CIM standard model

Track model changes by inspection…

Creating custom extensions to the CIM Creating custom extensions to the CIM

Page 30: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

…. or using Baseline compare

Creating custom extensions to the CIM Creating custom extensions to the CIM

Baselines stored in model as XMI ‘snapshots’ or external files

Compare utility shows details of items added, removed or changed in the model

Allows new CIM versions or CIM extensions to be selectively merged

Page 31: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Sharing Model Information Sharing Model Information

A fundamental value proposition behind modeling: Improves communication!

Not everyone consumes models directly yet

Models also realize value when used to generate useful artifacts.

Page 32: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Sharing Models: Sharing Models: XMIXMI

XMI: XML Metadata Interchange

Primary mechanism for exchanging models:

Export occurs at the Package, View and Model levels

Round-trip Enterprise Architect models using XMI 1.1 – most stable version. (UML 2.1 model data included)

Ensure shared packages are ‘self-contained’ and set ‘round-trip’ options on export or;

Apply version control to help manage dependencies across distributed, shared packages

Forms basis for Enterprise Architect compare/merge

3rd party tools consume, post-process XMI eg. CIMTool

Page 33: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Sharing Models: HTML OutputSharing Models: HTML Output

Includes model structure, diagrams and project info for online distribution (only requires a browser not Enterprise Architect client)

Model navigation via project explorer frame and diagram hot-spots

Automate generation process via API to update online doco regularly (HTML output not synched with model data in real-time)

Numerous organizations publish standards models in HTML form:

ISO/TC 211: http://www.isotc211.org/hmmg/HTML

GIEM/Govdex: https://www.govdex.gov.au/pub/

DMV: http://www.dmv.virginia.gov/csi/eahtml/index.htm

Datex II: http://www.datex2.eu/?q=node/23

Page 34: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

Sharing Models: RTF Reports Sharing Models: RTF Reports

Rich-Text Format (RTF) reports provide traditional delivery of model info in document form

RTF MS Word compatible

Provides conversion path to obtain PDF document (MS Word PDF)

Template-driven Customizable

Apply meta-data filters to selectively include/exclude model elements and sub-element information

Page 35: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

OverviewOverview Review of Concepts

UML

CIM

Enterprise Architect

Getting Started with CIM and Enterprise Architect

Obtaining and Navigating the CIM model

Dealing with legacy: Can I reuse or import existing models?

Modeling with UML, CIM and Enterprise Architect:Achieving TraceabilityCreating CIM extension in Enterprise Architect Sharing Model Information

Q & A

Page 36: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

www.sparxsystems.com

What are we going to talk about?What are we going to talk about? 1. Extending the CIM with Enterprise Architect

Modeling 101

Introduction to CIM Model and Enterprise Architect

Editing models based on CIM

2. Enterprise Architect 8 – What’s new for a CIM modeler?

Enhanced modeling, diagramming and traceability

Structured Use Case Scenarios

3. Collaborative Modeling

Achieving Traceability

Creating CIM extension in Enterprise Architect

Sharing Model Information

Page 37: Www.sparxsystems.com Extending the IEC Common Information Model (CIM) with Enterprise Architect Ben Constable Chief Operations Officer Sparx Systems CIM.

thank you for your attention!