www.sparxsystems.com extending the iec common information model (cim) with enterprise architect ben...
Post on 22-Dec-2015
225 views
TRANSCRIPT
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
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
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
www.sparxsystems.com
Review of Concepts: Value of UMLReview of Concepts: Value of UML
Manage complexity
Plan and mitigate risk
Facilitate communication
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
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
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
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
www.sparxsystems.com
Review of Concepts: Enterprise Review of Concepts: Enterprise ArchitectArchitect
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
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
Getting started: Dealing with Legacy Getting started: Dealing with Legacy Models Models
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
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
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…
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…
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…
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
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
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?
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
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 …
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
thank you for your attention!