Enterprise Architect

Enterprise Architect

Enterprise Architect ⤳ headlines

Enterprise Architect ⤳ agenda (1/3)

Enterprise Architect ⤳ agenda (2/3)

Enterprise Architect ⤳ agenda (3/3)

Enterprise Architect ⤳ fundamentals*

*Keyboard shortcuts: -ctrl + S- (within diagram), -ctrl + Z- (within diagram), -ctrl + A- (within diagram) ⤳ selection of all elements

Enterprise Architect ⤳ “Package”

Enterprise Architect ⤳ “Element”

Enterprise Architect supports different options depending on the fact an element is handled from a diagram or from the repository.

Enterprise Architect ⤳ type of “Element”

Any element, e.g., Payer, has a type, e.g., UseCase, that can be known when clicking on the element and looking at the bottom left corner.

Enterprise Architect ⤳ utilities

Enterprise Architect ⤳ Style

Enterprise ArchitectModel Builder (pattern library)

Enterprise Architect ⤳ project conversion

Reference Data ⤳ example (Image Manager)

Enterprise Architect ⤳ import/export

Exercise
  1. Download Enterprise Architect Quote.qea BPMN project ver. 17.x
  2. Export Quote package for testing interoperability within bpmn.io and liveBPMN.com

Requirements engineering

Requirements engineering ⤳ supports

UML versus SysML*

*More on requirements management in SysML here

Requirements engineering
UML Use Case Diagram, use case narrative, Specification Manager, Relation Matrix
Restaurant

Requirements engineering
Specification Manager, Relationship Matrix, Feature Matrix, user stories, SysML Requirement Diagram
New York City Museum Of Modern Art -MOMA-

Modeling

Modeling
Best practices
Download UML.qea Enterprise Architect project ver. 17.x

UML ownedBehavior meta-association*

*Classifier Behavior (UML Class): -right click- (class) Properties… -Properties- Classifier Behavior -Details- (dedicated to SysML block)

Child composite diagram (“glasses” icon ⇒ “has child”)

Child composite diagram cont'd

List view

-right click- (diagram within browser) Switch View Switch to List View

Diagram view ⤳ specification

-right click- (diagram within browser) Switch View Switch to Specification View

UML modeling “consistency”

Set Operation…

Information Item Conveyed

Link to feature of element (1/2) (or left curly brace from selected feature)

Link to feature of element (2/2)

Link to feature of element ⤳ Feature Matrix

Modeling widget ⤳ aliasing (e.g., internationalization)

Modeling widget ⤳ annotating

-right click- (element within diagram) Set Bookmark Value Enable Bookmark

Exercise

Créer Payer_behavior (activité + diagramme d'activité) comme comportement de Payer (processus : Choisir moyen de paiementVérifier note ⤳ [Procéder paiementQuitter table] versus [Fuir en courant])

Créer Payer_behavior (activité + diagramme d'activité) comme comportement de Payer (processus : Choisir moyen de paiementVérifier note ⤳ [Procéder paiementQuitter table] versus [Fuir en courant])

Lier Payer_behavior en tant que child diagram de Payer

Créer la classe Note_a_payer (classe active) avec l'attribut prix et l'opération payer()

Créer un information flow (UML Use Case Diagram) de Se restaurer à Payer qui convoie l'information Note_a_payer

Appeler l'opération payer() de la classe Note_a_payer dans l'action Procéder paiement

Créer un diagramme de séquence avec l'occurrence Se restaurer (use case) qui engendre une occurrence Payer (use case)


Download Restaurant_base.qea Enterprise Architect project ver. 17.x

Data engineering

Data engineering
UML Class Diagram, UML Object Diagram, OCL, Model checking (Model Validation), Database Builder, SQL, re-engineering
Prison de Nantes

Exercise
  1. Prison de Nantes ⤳ exercise, question 1
  2. Prison de Nantes ⤳ exercise, question 2

Exercise
  1. Prison de Nantes MariaDB database re-engineering (Sample Data ModelsBasic MySQL Model)

Database connection here

Data engineering
UML Class Diagram, OCL, Database Builder, Model transformation (built-in DDL transformation), XML, XSD, XSLT
Product Lifecycle Management -PLM-

Documentation

Documentation
ArchiMate, Document Template, Custom Document, Virtual Document, Dynamic Document, HTML, Report Builder
Clinique

Search
Object Model, Query Builder, Model Search
Clinique

Team work here… = Collaboration + Project management

Collaboration

Collaboration
BPMN, user, group, discuss, Model Review, Search
Quote

Project management

Project management
UML Communication Diagram, UML State Machine Diagram, UML Component Diagram, project resources, project tasks, project issues, Gantt, Search
Système de domotique

Sharing

Sharing ⤳ infrastructure

  1. File-based Repositoryeap/eapx (Jet), .feap(FireBird), .qea/qeax (SQLite)
  2. Server-based Repositorye.g., MariaDB (MySQL ODBC driver )
    • Service name: MariaDB (localhost:3306, root/fim…)
    • right click (root) Create new Database ⤳ my_project
    • right click (my_project) Run SQL file…
    • Database schema creation (+ initial data) ⤳ MySQL script(s)
  3. Cloud-based Repository (Web) ⤳ Pro Cloud Server

SharingFile-based Repository

SharingServer-based Repository

MariaDB user

Server-based Repository ⤳ database

Server-based Repository ⤳ ODBC connection (MariaDB)

Settings ODBC Data Sources -User Tools-obsolete

Server-based Repository ⤳ project transfer (MariaDB here…)

  1. Settings Integrity -Model- Project Integrity -Project Data- ⤳ check all integrity topics
  2. Enterprise Architect logo Close Project
  3. Settings Transfer -Model- Full Project Transfer via Connection -Move Data- ⤳ check File to DBMS
    • Native Connection (preferred from Enterprise Architect ver. 17.x)
    • ODBC Connection Wizardobsolete

Server-based Repository ⤳ project transfer (MariaDB ODBC connection)

Server-based Repository ⤳ project transfer (MariaDB native connection)

Server-based Repository ⤳ project transfer (MariaDB native connection)

Name and connection string

MariaDB meta-query

Exercise

1. Create P.qea Enterprise Architect project ver. 17.x, add content, and transfer it to MariaDB


2. Update Language attribute (SELECT Name, GenType, PDATA2 FROM t_object) from Java to NULL by means of HeidiSQL

UPDATE t_object SET PDATA2 = NULL;

3. Update Author attribute (SELECT Name, Author FROM t_object) from <your user id.> to Belzebuth by means of HeidiSQL

UPDATE t_object SET Author = 'Belzebuth';

4. Find 0..1 UML cardinality (Search Find text on servert_cardinality) by means of HeidiSQL

Sharing
Replication
Storage robot

Versioning

VersioningAuditing here versus Baselines

Auditing allows model evolution tracking* (possibly user-based tracking) without “true” versioning capability ⤳ commit, rollback, fork, merge

*Deferred search in particular…

VersioningAuditing versus Baselines* -package per package-

*Baselines can be externalized to a “Reusable Asset Service Registry”

Baselines ⤳ principle*

*my attribute is added in baseline 2 while it is removed in baseline 3.

Baseline 2 versus model, i.e., baseline 3 ⤳ Show Differences

Baseline 2 versus model, i.e., baseline 3*

*my attribute is annotated in red.

Exercise
  1. Download Baselines.qea Enterprise Architect project ver. 17.x
  2. Restore baseline 2

Versioning
UML Sequence Diagram, Auditing, Baselines
Railcar control system

Version Control* ⤳ versioning data in local directory

*The way about version control data have to be shared is discussed here

Version Control ⤳ versioning data in version control server

Version Control here ⤳ -package per package-

Versioning infrastructure is independent of Enterprise Architect; it is set up outside Enterprise Architect using, for instance, Subversion ⤳ server here… with login: Bab64/CIMPASAS.

Version ControlSubversion

Subversion ⤳ key actions

Note: it is strongly recommended to execute Subversion commands inside Enterprise Architect only.

Version Control ⤳ project setup

Settings Project-VC -Version Control-

Version Control ⤳ project setup (version control server)

Version Control ⤳ project setup (local directory)

Working spaces: HKEY_CURRENT_USER\Software\Sparx Systems\EA64\EA\OPTIONS\VCConfigs

Version Control ⤳ package setup

* Check In Branch… here… and Check Out Branch… here… allow finer version control.

Version Control ⤳ package version control setup

Example
New York City Museum Of Modern Art -MOMA- UML case study: version control of Requirements package (Requirements.xml file)

Example ⤳ Requirements ver. 1*

*AFTER-right click- (package within browser) Package Control Check In… here… ⤳ XMI file is committed, i.e., versioned, and next locked (i.e., delivered to other users), no change is going to occur…

Example ⤳ Requirements ver. 2*

*BEFORE-right click- (package within browser) Package Control Check Out…* here… ⤳ XMI file is unlocked (i.e., blocked for other users), change is going to occur…

Example ⤳ Requirements ver. 3

Example ⤳ Requirements ver. 4

Example

  1. -right click- (Requirements package within browser) Package Control File History… here Retrieve ⤳ Ver. 2
  2. -right click- (Requirements package within browser) Package Control Compare with Controlled Version… ⤳ compare Requirements Ver. 2 to last version, i.e., Ver. 4…
  3. -right click- (Requirements package within browser) Package Control Get latest… ⤳ Ver. 4
  4. -right click- (Requirements package within browser) Package Control Undo Check Out… ⤳ rollback change from last commit…

Example ⤳ Ver.2 (+: green, -: red) versus Ver. 4

Exercise ⤳ Requirements ver. 5

Version Controlmodel branch

Customization

General-purpose customization

People as resource

People as resource cont'd

People as resource cont'd

Default diagram

Exercise
  1. A is associated with n B and n is prime
  2. Create Belzebuth (resource) as Business Analyst (role)

Customization
Diagram Pattern, Model Template, Model Driven Generation -MDG-
Download UML_model_pattern.qea Enterprise Architect project ver. 17.x

UML Diagram Pattern

Diagram Pattern

Exercise
  1. Create Diagram Pattern for Core use cases

UML Model Template

Model Template

Download Enterprise Architect ver. 17.x Model Template (UML_model_pattern.xml ), doc. of Model Template (UML_model_pattern.rtf ), MDG technology files (FB.mts and FB.xml )

*XMI (1.1 or 2.1)! ⤳ not native XML!

Model Template ⤳ export

Model Template ⤳ creation of MDG technology

Model Template ⤳ customization of MDG technology (FB.mts)

<MDG.Selections model="UML_model_pattern --- DBType=11;Connect=Provider=SSDB;SRC=C:\Users\franc\Documents\Nextcloud\Modeling\public_html\Enterprise_Architect\UML_model_pattern\UML_model_pattern.qea;UID=;PWD=;">
	<Technology id="FB" name="FB" version="1" notes="Franck Barbier" filename="C:\Users\franc\Documents\Nextcloud\Modeling\public_html\Enterprise_Architect\UML_model_pattern\FB.xml" infoURI="BarbierDarnal.com" icon="C:\Users\franc\Documents\Nextcloud\Modeling\public_html\Enterprise_Architect\UML_model_pattern\FB.bmp"/>
    <ModelTemplates>
        <Model name="UML model pattern Franck Barbier"
            location="UML_model_pattern.xml"
            default="yes"
            icon = "34"
            isFramework="false"/>
     </ModelTemplates>
</MDG.Selections>

Model Template ⤳ import of MDG technology*

Specialize -Technologies- Publish-Technology Import MDG Technology -MDG Technology-**

*UML_model_pattern.xml and UML_model_pattern.rtf must be located in the directory FB.xml is itself located.

**User-based MDG technology has to be removed from C:\Users\franc\AppData\Roaming\Sparx Systems\EA\MDGTechnologies.

Model Template ⤳ usage of MDG technology*

*Refresh may be required ⤳ change perspective to All Perspectives

Exercise
  1. Create BPMN Model Template

Customization
UML profile, Model Driven Generation -MDG-
Système de domotique

Scripting

Scripting
Java Automation Interface, Python Automation Interface, JavaScript, Model Add-In, Add-In Search
Scripting & Automation Interface

Model checking

Model checking ⤳ headlines

Model Validation ⤳ what's wrong (BPMN)?

Model Validation ⤳ what's wrong (BPMN) cont'd?

Model Validation

Design Manage -Package Validate -Tools- Validate Current Package

Executable UML state machines ⤳ UML Signal versus UML Trigger

Executable UML state machines ⤳ UML Artifact

Executable UML state machines ⤳ key actions

Executable UML state machines ⤳ execution

Executable UML state machines ⤳ execution cont'd

Model checking
UML Activity Diagram simulation
New York City Museum Of Modern Art -MOMA-

BPMN simulation

Model checking
BPMN & Business Process Simulation Interchange Standard -BPSim- simulation
New York City Museum Of Modern Art -MOMA-

Model checking
Decision Model and Notation -DMN- simulation here

Model transformation

Model transformation
Transformation Template
Prison de Nantes (NoSQL - Mongoose)
JSON Schema

Project update (advanced issues)

P is exported in native format from A project

P is imported in empty B project ⤳ Strip GUIDs is unchecked

Changes occur in A project ⤳ P is (again) exported

P is (again) imported in non-empty B project ⤳ Strip GUIDs is unchecked

B project is updated from A project

Project update ⤳ other case

P1 package (having C1 class) is exported

C1 is moved to P2 package while P1 is deleted

P1 (having C1) is imported ⤳ conflict management

UML Activity Diagram
Download Enterprise Architect Prison_de_Nantes.qea project ver. 17.x
Download Enterprise Architect UML.qea project ver. 17.x

UML Activity DiagramCall Operation

UML Activity DiagramStructured Activity

UML Activity DiagramExpansion Region

UML Activity DiagramInterruptible Activity Region

UML Activity DiagramInterrupt Flow

UML Activity DiagramAccept Event Action

UML Activity DiagramCreate Object

© Franck Barbier