INF5120 ”Modellbasert Systemutvikling” ”Modelbased System development”

Lecture 10: 18.03.2013 Arne-Jørgen Berre

[email protected] or [email protected]

Telecom and Informatics 1 Content n Oblig 1 and 2 – details n MOF and EMF n Model transformations, EMFText, MOFScript, Java n Model to Model, ATL, Java n Enterprise Architecture - MagicDraw n ISO RM/ODP n UPDM for MODAF/DODAF n SysML

Telecom and Informatics 2 INF5120 - Lecture plan - 2013

n 1 (14/1): Introduction – overview Enterprise Architecture with UML and BPMN and DSLs n 2 (21/1): Service Innovation and Design, AT ONE method/workshop – myServiceFellow (Marika Lüders) n 3: (28/1): Value Networks/VDML BPMN, vs. UML Activity diagrams - Oryx n 4 (4/2): User experience and Touchpoints/UI Design – Balsamiq – (Amela Karahasanovic) n 5 (11/2): UML and Req.Modeling –Agile User stories versus Use cases n 6 (18/2): Business-SoaML, Requirements Modeling, Goal Modeling, BMM, and Non Functional requirements n 7 (25/2): Model driven engineering – Metamodels, DSL, UML Profiles etc. NAV on NFR n 8 (4/3): UML Service Modeling – SoaML, UML 2.0 Service composition, MagicDraw n 9 (11/3): Method Engineering, SW Process frameworks , SPEM/EPF, ISO 24744, FACESEM/ESSENCE (Brian Elvesæter) n 10(18/3): Model driven engineering, transformation technologies, (USDL, ISO 19119) n 11(8/4): MDE and DSL in practice, i.e. CloudML/ThingML – Franck Fleurey n 12(15/4): BPMN and Business Process Management and CMMN and Case Management n 13(22/4): UML and Entity and Information modeling, UML, ISO 19103 n 14(29/4): UML and Semantic models, Facts, SBVR, Ontologies, Rules n 15(6/5): UML and Platform models, realisation, migration, Java, Apps, CloudML n 16(13/5): Conclusion and Summary for INF5120 - Preparation for Exam n Exam: Monday June 3rd, 2013, (4 hours)

Telecom and Informatics 3 INF5120 – Oblig plan - 2013 n 1 (14/1): Introduction n 2 (21/1): myServiceFellow/Service Design n 3: (28/1): Oryx n 4 (4/2): Balsamiq n 5 (11/2): Use cases 2.0 n 6 (18/2): Oblig 1 – Group work n 7 (25/2): EMF and Eclipse – Group (3) presentation – Business Model, Business-SoaML n 8 (4/3): Oryx– Group (3) presentation - User stories/use cases, UI, NFR n 9 (11/3): Group presentation(s) on Oblig 1: User stories/use cases, UI/Balsamiq n 10(18/3): Group presentation on Oblig 1 – NFR 1 – Parallell Start on Oblig 2 (individual) and Oblig 3 (group) n - 22/3 : Delivery of Oblig 1 n EASTER n 11(8/4): Walk through of Oblig 1 – Questions on Oblig 2 and 3 n 12(15/4): Delivery of Oblig 2 – “Value Network editor in Eclipse” n 13(22/4): Group work, Oblig 3 – Group (x) presentation n 14(29/4): Group work, Oblig 3 – Group (x) presentation n 15(6/5): Delivery of Oblig 3 – “Concierge – SA Model” n 16(13/5): Walk trough of Oblig 3 - Preparation for Exam n Exam: Monday June 3rd, 2013, (4 hours)

Telecom and Informatics 4 Oblig 2 (individual) n Value Network – with Eclipse EMF - “Graphical Domain Specific Language (DSL) Editor for Value Networks” n Create a metamodel for Value Networks in EMF n Create a graphical editor for Value Networks – using Eugenia – (as front end for GMF)

Telecom and Informatics 5 MDA-compliant Eclipse technologies n Eclipse Modeling Tools: http://www.eclipse.org/downloads/ n Eclipse Modeling Framework (EMF) n http://www.eclipse.org/emf/ n EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. n Eclipse Graphical Editing Framework (GEF) n http://www.eclipse.org/gef/ n The Graphical Editing Framework (GEF) allows developers to take an existing application model and quickly create a rich graphical editor. n Eclipse Graphical Modeling Framework (GMF) n http://www.eclipse.org/gmf/ n The Eclipse Graphical Modeling Framework (GMF) provides a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF. n Eugenia n EuGENia is a tool that automatically generates the .gmfgraph, .gmftool and .gmfmap models needed to implement a GMF editor from a single annotated Ecore metamodel n http://www.eclipse.org/epsilon/doc/eugenia/ n Atlas Transformation Language n http://www.eclipse.org/gmt/atl/ n The ATL project aims at providing a set of transformation tools for GMT. These include some sample ATL transformations, an ATL transformation engine, and an IDE for ATL (ADT: ATL Development Tools). n Eclipse Process Framework (EPF) n http://www.eclipse.org/epf/ n To provide an extensible framework and exemplary tools for software process engineering - method and process authoring, library management, configuring and publishing a process.

Telecom and Informatics 6 EMFText - MOF to text

n http://www.emftext.org/index.php/EMFText

Telecom and Informatics 7 Introduction

ATHENA Model-Driven Interoperability (MDI) Framework

MDA & Interoperability

Metamodelling Reusable MDI Assets

UML Profiles & DSLs • Method chunks • Tools and services • Models and metamodels Model Transformations • Model transformations • DSLs and UML profiles • Reference examples Method Engineering

Telecom and Informatics 8 Model to Text transformation 1/2 n MDA places modelling at the heart of the software development process. n Various models are used to capture various aspects of the system in a platform independent manner. n Sets of transformations are then applied to these platform independent models (PIM) to derive platform specific models (PSM). n These PSMs need to be eventually transformed into software artefacts such as code, deployment specifications, reports, documents, etc. n It is also common to generate code directly from PIM-like models. (DSL approach)

Telecom and Informatics 9 Model to Text transformation 1/2 n QVT, ATL and MOFScript M2M addresses the need of model – to – model transformation (e.g., PIM – to – PIM, PIM – to – PSM and PSM – to – PSM) n The MOF Model to Text (mof2text) standard addresses how to translate a model to various text artefacts such as code, deployment specifications, reports, documents, etc. n Essentially, the mof2text standard needs to address how to transform a model into a linearized text representation. n An intuitive way to address this requirement is a template based approach wherein the text to be generated from models is specified as a set of text templates that are parameterized with model elements.

Telecom and Informatics 10 Motivation n Why do we need model-to-text transformation?

n Raise the level of abstraction n Systems are getting more complex n Raise of abstraction has proven useful (for instance: Assembly to COBOL) n Automation of the software development process n Decrease development time n Increase software quality n Focus on the creative part n Automatic generation of new artefacts from your models n Java, EJB, JSP, C# n SQL Scripts n HTML n Test cases n Model documentation

Telecom and Informatics 11 Alternatives n What are the alternatives? n Programming languages (e.g Java), n Template/scripting languages (e.g XSLT, OaW, Eclipse Java Emitter Templates – JET, OMG MOF Model 2 Text) n Model Transformation Languages (e.g. ATLAS Transformation Language (ATL)), proprietary UML-based script languages, DSL-based approaches, Other MOF- based text/code generators

n Properties of the alternatives: n Neither programming languages nor scripting languages tend to take advantage of source metamodels. n However, it can be done programmatically in Java (e.g. using Eclipse Modelling Framework (EMF)) n Model 2 Model Transformation languages such as ATL is metamodel-based, but is not designed with text generation in mind. However, it can be done also in ATL n UML tool script languages are tied to both UML and a vendor, and are not based on standards. n DSLs provides the flexibility of metamodel-based tools; they typically hard code code generation for each domain-specific language. n The difference between a MOF-based approach and a DSL is not significant, as transformations in MOF-based approaches also will depend on a particular metamodel. n Other MOF-based text generators have not been available, but will emerge.

Telecom and Informatics 12 OMG Request for Proposal for a model-to- text transformation language

n OMG RFP Issued in 2004 n Mandatory Requirements: n Generation from MOF 2.0 models to text n Reuse (if applicable) existing OMG specifications, in particular QVT n Transformations should be defined at the metalevel of the source model n Support for string conversion of model data n String manipulation n Combination of model data with hard coded output text n Support for complex transformations n Multiple MOF models as input (multiple source models) n Optional Requirements n round-trip engineering n detection/protection of hand-made changes for re-generation n traceability is a (possible) means of supporting the last two.

Telecom and Informatics 13 MOF to Text Overview n A template-based approach wherein a Template specifies a text template with placeholders for data to be extracted from models. n These placeholders are essentially expressions specified over metamodel entities with queries being the primary mechanisms for selecting and extracting the values from models. n These values are then converted into text fragments using an expression language augmented with a string manipulation library. n Template can be composed to address complex transformation requirements. Large transformations can be structured into modules having public and private parts.

Telecom and Informatics 14 MOF to Text Example

[template public classToJava(c : Class)] class Employee class [c.name/] { { // Attribute declarations // Attribute declarations [attributeToJava(c.attribute)] String name; // Constructor Department dept; [c.name/] () { Double salary; } } // Constructor [/template] Employee() { [template public attributeToJava(a : Attribute)] [a.type.name/] [a.name/]; } [/template] }

Telecom and Informatics 15 Language details 1/3

n Instead of defining two templates separately, a template can iterate over a collection by using the for block. n Using the for block preserves WYSIWYG-ness and improves readability. n For example the classToJava template can use the for block as shown below:

[template public classToJava(c : Class)] class [c.name/] { // Attribute declarations [for(a : Attribute | c.attribute)] [a.type.name/] [a.name/]; [/for] // Constructor [c.name/] () { } } [/template] The for block declares a loop variable ‘a’ of type Attribute and produces for each Attribute in the collection c.attribute the text between the [for] and [/for].

Telecom and Informatics 16 Language details 2/3 n A template can have a guard that decides whether the template can be invoked. For example, the following classToJava template is invoked only if the class is concrete. [template public classToJava(c : Class) ? (c.isAbstract = false) ] n Complex model navigations can be specified using queries. The following example shows use of a query allOperations to collect operations of all abstract parent classes of a class in a class hierarchy. [query public allOperations(c: Class) : Set ( Operation ) =c.operation->union ( c.superClass->select(sc|sc.isAbstract=true)->iterate(ac : Class; os:Set(Operation) = Set{}| os->union(allOperations(ac)))) /]

Telecom and Informatics 17 Language details 3/3 n As we have seen, a template has WYSIWYG nature with the text to be output being specified in exactly the way it should look in the output. n There may be cases where the quantity of the text producing logic far outweighs the text being produced. In this case, it is more intuitive to specify the text producing logic without use of special delimiters. @code-explicit

@code-explicit @text-explicit template public classToJava(c : Class) [template public classToJava(c : Class)] ‘class ‘c.name ‘ { class [c.name/] { // Constructor // Constructor ‘c.name’ () { [c.name/] () { } } }’ } /template [/template]

Telecom and Informatics 18 OMG Standard for model-to-text

n MOF2Text: A merge of the different model to text proposals, where MOFScript was one of several

n Many similarities with MOFScript: n imperative language w/ explicit rule calls n reusing selected parts of QVT/OCL

n Differs from MOFScript: n Mainly syntactical n Context type does not have its own slot, inserted in the parameter list n More traditional for-statements instead of forEach n Escaping direction is flexible: The transformation code can be escaped, or the output text can be escaped (as in MOFScript).

Telecom and Informatics 19 Tool Support

n Eclipse M2T Project: n Acceleo MTL: n http://www.eclipsecon.org/2009/sessions?id=387 n MOFScript M2T: n Parser, model and editor that uses the MOFScript runtime n http://modelbased.net/modelplex/mof2text/index.html

Telecom and Informatics 20 MOFScript Model to Text language and Tool

Telecom and Informatics 21 Introduction n Model Driven Development (MDD) emphasizes the use of models as first class artifacts n CIM <--> PIM <--> PSM <--> TEXT / CODE n MOFScript bridges Model à Text

Public class a extends x ……………….. B.wsdl ………………

z Z association type Simple c.Html

Telecom and Informatics 22 MOFScript placed in the 4-layer architecture

M3 MOF

conforms to conforms to

Source MOFScript M2 Metamodel based on language

conforms to conforms to

Source MOFScript M1 model transformation

executed by input MOFScript Target tool output text engine

Telecom and Informatics 23 What is MOFScript? n The MOFScript tool is an implementation of the MOFScript model to text transformation language n Developed at Sintef ICT in the EU-supported MODELWARE project n An Eclipse plug-in n Mapping of model artifacts to a multitude of textual languages n Was part of standardization process within OMG n OMG RFP MOF Model to Text Transformation process

Telecom and Informatics 24 MOFScript a transformation language n Language for writing model to text transformations n Rules / Operations are called explicit (Procedural language) n Partly based on the current QVT specification (keeps it within the family) n Transforms input models to output text files n Generate text from any MOF-based model, e.g., UML models or any kind of domain model.

Telecom and Informatics 25 MOF Script - background n Usability n Ease of use: Writing and understanding n Few constructs n End user recognizability n Similar to programming and scripting languages n Imperatively oriented n Sequential execution semantics n Rules are called explicitly n Might also support pattern matching execution n Contents of rules is executed sequentially n Compatibility n Alignment with latest QVT (QVTMerge) specification

Telecom and Informatics 26 MOFScript in action

MOF MODELS LEXICAL OUTPUT

UML Program code MOFScript RDBMS XML

BPMN Documentation

Telecom and Informatics 27 MOFScript architecture

Telecom and Informatics 28 MOFScript a model to text tool

n Provides the means of: n Editing, compiling and executing n Syntax high-lightning n Content assist n Outline n MOFScript Console

Telecom and Informatics 29 The main steps of using the MOFScript tool n Task: Define a transformation from source model A to text t. (Aèt) 1. Import or define the source metamodel for A. 2. Write the MOFScript to transform A to t in the MOFScript editor 3. Compile the transformation. Any errors in the transformation will be presented. 1. Fix errors, if any 4. Load a source model corresponding to A’s metamodel. 1. Using the Eclipse plugin, this is prompted by the tool when trying to execute. 5. Execute the MOFScript in the MOFScript tool. 1. The transformation is executed. Output text / files are produced.

Telecom and Informatics 30 Built-in operations n String operations n Various string manipulation operations, such as: n size, substring, subStringBefore|After, toLower, toUpper, indexOf, trim, normalizeSpace, endsWith, startsWith, replace, equals, equalsIgnoreCase, charAt, isLowerCase, isUpperCase n Collection library n Standard collection operations… n Hashmap: put, get, clear, size, keys, values, isEmpty, forEach, n List: add, size, clear, isEmpty, first, last, forEach n Model: size, first, isEmpty, forEach n System and utility operations n Various utility functions, such as n time, date, getenv, setenv, position, count n UML2 Operations n Operations available when UML2 models are loaded n hasStereoType, getAppliedStereotypes, getAppliedStereotype

Telecom and Informatics 31 Textual syntax n Textmodule textmodule UML2Java (in myMod:uml2) n Rules myMod.Package::mapPackage () { 'package ' self.name ';' } n Files file f2 (c.name + “.java”) ' package ' c.ownerPackage.name';' n Escaped output f2.println (“public class” + c.name);

'public class ' c.name ' extends Serializable {'

Telecom and Informatics 32 Textual syntax

myMod.Model::main () { n Entry point rule // code for entry point }

self.ownedMember->forEach(c:myMod.Class) '' n Iterators }

if (self.hasStereotype(“Feature”) { ' This is a feature type ' n Conditional statements } else if (self.hasStereotype(“Product”)) { ' This is a product type ' } else { ' this is neither ' }

Telecom and Informatics 33 Textual syntax n Collections

var packageNames_List:List var packageName_Hashtable:Hashtable

self.ownedMember->forEach(p:uml.Package) { packageNames_List.add (p.name) packageName_Hashtable.put (p.id, p.name) }

if (packageName_Hashtable.size () > 0) { ' Listing the package names that does not start with ‘S’ ' packageName_Hashtable->forEach (s:String | not(s.startsWith(“S”)) { ' Package: ' s } }

Telecom and Informatics 34 Textual syntax

uml.Package::interfacePackages () { if (self.getStereotype() = “Service”){ file (self.name.toLower() + ".wsdl") n Invoking rules self.wsdlHeader() self.wsdlTypes() self.ownedMember->forEach(i:uml.Interface) { i.wsdlMessages() i.wsdlPortType() i.wsdlBindings() i.wsdlService() } self.wsdlFooter() } } n Return results uml.Package::getPackageNameToLower(): String { result = self.name.toLower() }

Telecom and Informatics 35 Uml2Java Example

//Context class self.ownedAttribute->forEach(p : uml.Property | p.association = null) { p.attributeGetterSetters() } // Generate Getter and Setters uml.Property::attributeGettersSetters () { 'public ' self.type.name ' get' self.name.firstToUpper() ' () {' 'return ' self.name ';\n }\n' 'public void set' self.name.firstToUpper() '(' self.type.name ' input ) { ' self .name ' = input; \n } ' }

public String getBookTitle(){ return bookTitle; } public void setBookTitle(String input){ bookTitle = input; } public Integer getNumberOfPages(){ return numberOfPages } public void setNumberOfPages(Integer input){ numberOfPages = input; }

Telecom and Informatics 36 FamilyModel example

uml.Class::outputGeneralization(){ self.generalization->forEach(g: uml.Generalization){ if(not g.target.isEmpty()){ g.target->forEach(c: uml.Class){ stdout.println("Generalization target name: "+ c.name ) } //g.target forEach }//if target if(not g.source.isEmpty()){ g.source->forEach(c:uml.Class){ stdout.println("Generalization source name: "+c.name) }//g.sourse forEach }//if source }//self.generalization Generalization target name: Individual }//outputGeneralization() Generalization source name: Male

Telecom and Informatics 37 MOFScript Example

Telecom and Informatics 38 Example Model

Telecom and Informatics 39 Example Transformation uml.Class::main(){ file(self.name+ ".java") 'package ‘ packageName';\n import java.util.*;\n' self.visibility' class ' self.name'{ ' self.ownedAttribute->forEach(p:uml.Property | p.association = null ){ '' p.visibility' ' p.type.name' ' p.name';\n'

} self.ownedAttribute->forEach(p:uml.Property | p.association !=null ){ ' // Association: authors:Author(1..-1)' '\t ‘ p.visibility‘ HashMap<‘ p.type.name', ‘ p.name '>_' p.name.toLower()';' }

Telecom and Informatics 40 Example Generated Java Code package org.sintef.no; import java.util.HashMap; public class Book { private String _title ; // Association: authors:Author(1..-1) protected HashMap_authors; // Association: category:Category(1..-1) protected HashMap_category; }

Telecom and Informatics 41 uml.Class::main(){ Overview file(self.name+".java") 'package 'packageName';\n import java.util.*;\n' self.visibility' class ' self.name'{ ' self.ownedAttribute->forEach(p:uml.Property | p.association = null ){ ' ' p.visibility' ' p.type.name' ' p.name';\n'

} self.ownedAttribute->forEach(p:uml.Property | p.association !=null ){ ' // Association: authors:Author(1..-1)' '\t 'p.visibility'HashMap<'p.type.name', 'p.name '>_' p.name.toLower()';' package org.sintef.no; } import java.util.HashMap; public class Book { private String _title ; // Association: authors:Author(1..-1) protected HashMap_authors; // Association: category:Category(1..-1) protected HashMap_category; }

Telecom and Informatics 42 Model transformation service n http://www.modelbased.net/tools/model-transformation- service

Telecom and Informatics 43 References n OMG MOF Model to Text Transformation RFP n http://www.omg.org/cgi-bin/apps/doc?ad/04-04-07.pdf n MOFScript submission n http://www.omg.org/cgi-bin/apps/doc?ad/05-05-04.pdf n MOFScript tool n http://www.modelbased.net/mofscript n http://www.eclipse.org/gmt/mofscript n MOFScript lecture: n http://www.modelware- ist.org/index.php?option=com_remository&Itemid=79&func=fileinfo&id=94 n OMG MOF to Text n http://www.omg.org/docs/ptc/06-11-01.pdf n http://modelbased.net/modelplex/mof2text/index.html

Telecom and Informatics 44 Enterprise Architecture and System Architecture –

with MagicDraw – and Cameo Enterprise Architecture

Telecom and Informatics Oblig 3 – group work continued n “Concierge” – System Architecture n Use UML (and MagicDraw) n Create and Architecture model for “Concierge” n Create an Information/semantic model for “Concierge”

Telecom and Informatics 46 Content n MagicDraw – Enterprise Architecture n Download MagicDraw from NoMagic full EA version n Cameo Enterprise Architecture 17.0.3 FR Enterprise Edition n http://www.nomagic.com/products/cameo-enterprise-architecture.html n (Full license file until September 1, 2013 will be provided to each student)

Telecom and Informatics 47 MagicDraw Cameo Enterprise Architecture

Telecom and Informatics 48 Telecom and Informatics 49 Content n EA and the Zachman Framework n Architectural Frameworks - (IEEE/ 1471/ISO 42010, ADL, UML 2.x, TOGAF, UPDM (DODAF/MODAF), SoaML (SHAPE), DSLs) n UPDM n Service modeling and Service oriented views n Tool support , Metamodels and UML profiles – No Magic, Magic Draw

Telecom and Informatics 50 Zachman Framework – for Enterprise Architecture (IBM, 1987)

VA Enterprise DATA FUNCTION NETWORK PEOPLE TIME MOTIVATION Based on work by Architecture What How Where Who When Why John A. Zachman SCOPE Things Important Processes Business Important Ev ents Significant Business Goals SCOPE (CONTEXTUAL) to the Business Performed locations Organizations to the Business and Strategy (CONTEXTUAL)

Planner Entity = Class of Function = Class of Node = Major People = Major Time = Major Ends/Means = Planner Business Thing Business Process Business Locations Organizations Business Event Major Business Goals ENTERPRISE Semantic Model Business Process Business Logistics Work Flow Model Master Schedule Business Plan ENTERPRISE MODEL Model System MODEL (CONCEPTU AL) (CONCEPTU AL)

Owner Ent = Business Entity Proc = Business Process Node = Business Location People = Organization Unit Time = Business Event End = Business Objectiv e Owner Rel = Business Relationship I/O = Business Resources Link = Business Linkage Work = Work Product Cycle = Business Cycle Means = Business Strategy SYSTEM MODEL Logical Data Application Distributed System Human Interface Processing Business Rule SYSTEM MODEL (LOGICAL) Model Architecture Architecture Architecture Structure Model (LOGICAL)

Designer Ent = Data Entity Proc = Application Function Node = IS Function People = Role Time = System Event End = Structural Assertion Designer Rel = Data Relationship I/O = User Views Link = Line Characteristics Work = Deliv erable Cycle = Processing Cycle Means = Action Assertion TECHNOLOGY Physical Data System Technology Presentation Control Rule TECHNOLOGY MODEL Model Design Architecture Architecture Structure Design MODEL (PHYSICAL) (PHYSICAL)

Builder Ent = Segment/Table Proc = Computer Function Node = Hardware/Software People = User Time = Ex ecute End = Condition Builder Rel = Pointer/Key I/O = Data Elements/Sets Link = Line Specifications Work = Screen Format Cycle = Component Cycle Means = Action DETAILED Data Program Network Security Timing Rule DETAILED REPRESENTATIONS Definition Architecture Architecture Definition Design REPRESENTATIONS (OUT-OF-CONTEXT) (OUT-OF-CONTEXT)

Sub-Contractor Ent = Field Proc = Language Statement Node = Addresses People = Identity Time = Interrupt End = Sub-Condition Sub-Contractor Rel = Address I/O = Control Block Link = Protocols Work = Job Cycle = Machine Cycle Means = Step FUNCTIONING Data Function Network Organization Schedule Strategy FUNCTIONING ENTERPRISE ENTERPRISE

Ent = Proc = Node = People = Time = End = Rel = I/O = Link = Work = Cycle = Means = DATA FUNCTION NETWORK PEOPLE TIME MOTIVATION What How Where Who When Why

Telecom and Informatics 51 Zachman Framework

n Row 1 – Scope External Requirements and Drivers Business Function Modeling What How Where Who When Why n Row 2 – Enterprise Model Contextual Contextual Business Process Models 1 2 Conceptual Conceptual n Row 3 – System Model Logical Logical Logical Models 3 Requirements Definition 4 Physical Physical n Row 4 – Technology Model Physical Models 5 As Built As Built Solution Definition and Development 6 Functioning Functioning n Row 5 – As Built What How Where Who When Why As Built Deployment n Row 6 – Functioning Enterprise Functioning Enterprise Evaluation

Telecom and Informatics 52 Many Architectural Frameworks ….

ARIS ZACHMAN GERAM

EKA - POPS

EN/ISO 19439 Athena OEA NIST

Telecom and Informatics 53 TOGAF 9 (The Open Group)

Telecom and Informatics 54 Open Group ADM

Telecom and Informatics 55 Telecom and Informatics 56 Building block evolution

Telecom and Informatics 57 Service categories

Telecom and Informatics 58 ISO RM/ODP (ISO 10746)

Telecom and Informatics Why and When: Historical Development of AF’s.

DNDAF NAF MODAF NAF v1.7 v3.1 Meta-Model (M3) v1.0 expressed using UML Notation 2008 2005 2007

MODAF MODAF MODAF DoDAF C4ISR v1.0 v1.1 v1.2 V2.0 Architectur e Framework 2005 2008 2009 v2.0 2007 1997 DoDAF DoDAF C4ISR v1.0 v1.5 Scope of UPDM 2.0 Architectur Started Sept 2009 e Framework Scope of UPDM 1.0 2003 2007 v1.0 MACCIS Approved Sept 2008 1996 Norway TOGAF1 - … TOGAF9

Telecom and Informatics Towards a Unified Architecture Framework

Telecom and Informatics 61 Three Views in DOD Architecture Framework and C4ISR-AF

Telecom and Informatics 62 DODAF 2.0 - viewpoints

Telecom and Informatics 63 EAEA – European Air Traffic Management Enterprise Architecture

Telecom and Informatics 64 IEEE 1471, ISO 42010

Telecom and Informatics 65 Zachman with OMG standards

Data Function Network People Time Motivation (What) (How) (Where) (Who) (When) (Why)

List of things important List of processes that List of locations which List of organizations List of events/cycles List of business Scope to business the business performs the business operates important to the businessimportant to the business goals/strategies (Contexts) SBVR VDM VDM OSM DTFV BMM

Semantic Model Business Process Business Logistics Workflow Model Master Schedule Business Business ODM, Model System OSM, BPMN, BPMN, CMPM, Plan (Concepts) IMM (CWM) BPMN, CMPM BPMN, CMPM CMPM DTFV SBVR

System Logical Data Model Application Distributed Human Interface Process Structure Business Rule ODM, Architecture System Architecture Architecture BPMN, CMPM, Model (Logic) IMM (CWM), UML SoaML, UML SoaML, UML BPMN, CMPM DTFV SBVR

Technology Control Structure Rule Technology Physical Data Model System Design Presentation Architecture BPMN, CMPM, Design IMM (CWM), UML SoaML, UML Architecture (Physics) SoaML, UML DTFV SBVR

Network Timing Rule Data Definition Program Component Architecture Security Definition Definition Architecture (Assemblies) IMM (CWM), UML UML UML DTFV SBVR

Operation Data Function Network Organization Schedule Strategy (Instances)

Telecom and Informatics 66 OMG standards coverage

Data Function Network People Time Motivation (What) (How) (Where) (Who) (When) (Why)

List of things List of processes List of locations List of organizations List of events/cycles Scope SBVR VDM OSM ListBMM of business important that the business which the business important to the important to the goals/strategies (Contexts) to business performs operates business business

Business Business Business BPMN Workflow Master Business Semantic Model Process Logistics Model Schedule Plan (Concepts) ODM Model System

Distributed CMPM Human System Application Process Business Rule Logical Data Model System Interface Architecture Structure SBVRModel (Logic) Architecture Architecture

Technology SoaML TechnologyUML Presentation Control Rule PhysicalIMM Data Model System Design Architecture Architecture DTFVStructure Design (Physics) (CWM)

Component Network Security Timing Rule Data Definition Program (Assemblies) Architecture Architecture Definition Definition

Operation Data Function Network Organization Schedule Strategy (Instances)

Telecom and Informatics 67 UPDM coverage

Data Function Network People Time Motivation (What) (How) (Where) (Who) (When) (Why)

Scope (Contexts) BPMN UPDM Business (Concepts) SoaML System (Logic)

Technology (Physics)

Component (Assemblies)

Operation (Instances)

Telecom and Informatics 68 Model Based Systems Engineering and Interoperability BMM BPMN VDM CaseMgmt Business Architecture OSM (SysML Context + BPMN SBVR 2.0/BMM)

Enterprise Architecture (EA) for Systems of Systems (UPDM)

System & IT Service oriented Interoperability (MDI) Architecture Architecture (UML&SysML/SoaML) UML 2.0

ModelDriven (MDA,Oslo) Architecture SoaML SysML

Telecom and Informatics What is UPDM? - Summary n UPDM 1.0 is a standardized way of expressing DoDAF 1.5 and MODAF 1.2 artefacts using UML and SysML n UPDM is NOT a new Architectural Framework n UPDM is not a methodology or a process n UPDM 2.0 is scheduled to address DoDAF 2.0, MODAF 1.2, NAF 3.x, and DNDAF 1.7 n UPDM 1.0 was developed by members of the OMG with help from industry and government domain experts. n UPDM 1.0 has been implemented by multiple tool vendors. n Tools supporting UPDM 1.0 are available now.

Telecom and Informatics UPDM: UML Profile for DoDAF and MODAF n Context NAF Meta Model DoDAF 1.5 Concepts CADM 1.5 n Stakeholders MODAF Meta Model DoDAF 2.0 Ontology n US DoD n UK MOD UPDM Domain Meta Model n NATO UPDM Profile Meta Model n Canada/Australia n OMG, INCOSE CADM n OMG UPDM Profile UJTL AP233 n XMI, UML, SysML & XMI n BPMN SF List Library IDEF n UPMS, BMM CDD <> n End Users CONOPS UML n Aerospace UML4SysML SysML n Commercial SSDD SysML Extensions n Tool Vendors BPMN etc. SoaML, BMM, SoaML n Software SBVr Extensions Transformations BMM n Systems External References n Enterprise Products -- Reports -- Simulations

Telecom and Informatics UPDM - – Unified Model for DODAF and MODAF

Telecom and Informatics 72 UPDM

Telecom and Informatics 73 Enterprise Architecture Modeling with UPDM

Telecom and Informatics Introduction

nEnterprise Architecture modeling nNo rocket science! nIt's a standard! nUPDM: nUnified Profile for MODAF and DoDAF

Telecom and Informatics What is Enterprise Architecture?

Telecom and Informatics Enterprise Architecture nBusiness, partners, customers nApplication ecosystem nSystem of system architecture nThe world nNot: application or device n

Telecom and Informatics Enterprise Architecture Frameworks nZachman nTOGAF nFederal enterprise architecture Framework (FEAF) nDoDAF/MODAF/DNDAF/NAF Etc

Telecom and Informatics UML EA Framework nSemantic classification nExtra rules for construction nAdditional data nTraceability between views

Telecom and Informatics UPDM

n Unified Profile for DoDAF and MODAF (UPDM) n Developed by OMG with DoD support n Created by multiple vendors, governments, customers n Implements architecture for DoD, MOD, and others

Telecom and Informatics UPDM 2.0 Standard

n Approved by the OMG September, 2011 with DoD/MOD support n Implements DoDAF 2.0 guidance and traced to DM2 metamodel as a UML extension n Submitted to DISR as Emerging September, 2011 (in registry 14 November 2011) n Beta from existing UPDM vendors n UPDM 1.0 to 2.0 conversion available now

Telecom and Informatics Advantages of UPDM

n Leverages existing UML tools and capabilities n Automated completeness/correctness of models n Supported by multiple vendors in consistent form n Customizable via standard-based methods/interoperability n Supports executable architecture via executable UML n

Telecom and Informatics Structure

Telecom and Informatics Simple Example

nTwo things (very simple model) nPresentation not in build order nKey elements of UPDM used

Telecom and Informatics High Level Operational Concept

n Elevator Speech of the architecture n Summarizes the key concepts of the architecture n Picture, not a model n Usually one diagram per project, but there may be many if required. n HLOC can be composite diagram

Telecom and Informatics OV-1 Thing Concept

Telecom and Informatics Thing HLOC

Telecom and Informatics Operational Resource Flow (OV-2)

n Documents logical view of performers and logical data interactions n Summarizes the architecture's business viewpoint n Business, not the implementation of the business n Also used to build OV-3 (Operational Exchange Matrix) and others

Telecom and Informatics Thing World

Telecom and Informatics A Sign of Things to Come

n Key concept: Integrated model n Not just pretty pictures n Trace to other concepts n Show what you need to communicate n Goal: Executable

Telecom and Informatics More Things

Telecom and Informatics Whole/Part Hierarchy

n Composite can show detailed communication paths n Further details added via ports n Same thing as Internal Block Diagram n

Telecom and Informatics Part Design Method

Telecom and Informatics Operational Exchanges

Telecom and Informatics The World

Telecom and Informatics Operational Resource Flow Matrix (OV-3) n Report of operational exchanges n Business-level Interface Exchange Requirement (IER) n Performance and Information Assurance parameters n Shows who, what, how n

Telecom and Informatics OV-3 Operational Resource Flow Matrix

Telecom and Informatics All Exchanges

Telecom and Informatics Organization Chart (OV-4)

n Organization Structure n Roles in organization n Example or actual organizations n Part of the system architecture

Telecom and Informatics OV-4 Organizational Chart Typical

Telecom and Informatics Operational Activity Decomposition Tree

n Hierarchy of Operational Activities n Relationship of activities to sub-activities n Reuse of activities n Related resources

Telecom and Informatics Decomposition of Activity

Telecom and Informatics Other Information

Telecom and Informatics Operational Activity Flow

n Behavior definition n Use of other activities (calls) n Logic/constraints of behavior n Swimlanes for orchestration across performers (see Interaction Overview)

Telecom and Informatics Send

Telecom and Informatics Receive

Telecom and Informatics Interaction Overview

Telecom and Informatics OV-5b Overview

Telecom and Informatics OV-6a Operational Rules

n Constraints of the architecture n What the architecture must do n UML Constrains used throughout the architecture n Includes agreements, guidance, policy etc.

Telecom and Informatics OV-6a Operational Rules

Telecom and Informatics OV-6b Operational State

nValid states of performers nOwned by the subject performer nUML State machine

Telecom and Informatics Thing Two

Telecom and Informatics OV-6c Operational Event Trace

n Validates operational use of architecture n Roles are instances of performers n Can use methods on performers for further detail n Flows can be displayed from OV-2 n Usually owned by a contextual performer

Telecom and Informatics Thing World

Telecom and Informatics Capability Related

Telecom and Informatics CV-3 Capability Phasing

Telecom and Informatics CV-4 Capability Dependencies

Telecom and Informatics CV-6 Capability to Operational Activity Mapping

Telecom and Informatics Systems Interface Description

nShows how systems communicate nCan include humans and organizations nPhysical manifestation of the Operational Resource Flow

Telecom and Informatics Widgets

Telecom and Informatics Implementation Matrix

Telecom and Informatics SV-2 Widget Network

Telecom and Informatics SV-3 System to System Matrix

Telecom and Informatics SV-4a

Telecom and Informatics System Overview

Telecom and Informatics SV-5a Operational Activity to System Funtion Traceability Matrix

Telecom and Informatics System Resource Matrix

Telecom and Informatics SV-7 Typical Measures

Telecom and Informatics SV-8 Evoloution of Widgets

Telecom and Informatics Services View

Telecom and Informatics Service Context

Telecom and Informatics UPDM IN PRACTICAL USE

n Relevant approach for Enterprise Architecture n Agile: Iterative model development n Accepted and promoted by the DoD n Reporting and traceability n Integrated architecture and development n Useful tool for capturing customer requirements

Telecom and Informatics OV-1a: Operational Context Graphic

OV-1a [High Level Operational Concept] Maritime Rescue

control trackInfo Rescue Helo : Aircraft

assistance Yacht : Boat

trackInfo

distressSignal

Monitor Unit : Monitor Rescue Boat : Boat Naval Ship : Boat

trackInfo control control

C2 Center : Control Center

Telecom and Informatics OV-1: Operational Context Graphic

Telecom and Informatics OV-2 Operational Nodes

OV-2 [Node] Search and Rescue (With Ports)

TCN POS «PerformerRole» WO : warningOrder «PerformerRole» SN : Search PoS : Place of Safety SN SAC RN PID Stat : status DS2 : distressSignal SN1 SN Tsk : tasking SN2 «PerformerRole» PID RN «PerformerRole» RN : Rescue DS3 : distressSignal PiD : Person in Distress Ctrl : control TCN SAC DS1 : distressSignal Tsk : tasking Ctrl : control SN RN RN PID

«PerformerRole» Rqst : request «PerformerRole» TI : trackInfo «PerformerRole» SAR AC : SAR Asset Control TC2N : Tactical C2 MN : Monitoring TCN SAC MN TCN

SN

Telecom and Informatics OV-5 Activity Diagram

OV-5 [Architectural Description] Operational Activities

«Activity(Operational)» Search

«ActivityPerformedByPerformer»

«ActivityPerformedByPerformer» «ActivityPerformedByPerformer» «Performer» «Activity(Operational)» «StandardOperationalActivity» «block» Receive Distress Signal Find Victim Search

«Activity(Operational)» «ActivityPerformedByPerformer» «ActivityPerformedByPerformer» «StandardOperationalActivity» Send Warning Order Monitor Health

«Activity(Operational)» Rescue

«ActivityPerformedByPerformer» «ActivityPerformedByPerformer» «ActivityPerformedByPerformer» «StandardOperationalActivity» «Performer» «Activity(Operational)» «block» Recover Victim Receive Distress Signal Rescue

«StandardOperationalActivity» Provide Medical Assistance «ActivityPerformedByPerformer»

Telecom and Informatics OV-5 Activity Diagram

reportedLocation reportedCondition «Activity(Operational)» Search

: Send Distress Signal Distress

PiD : Person in Person PiD : distressSignal «PerformerRole»

distressSignal location condition : Receive Distress Signal : Send Warning Order : Find Victim : Monitor Health

warningOrder SN : Search «PerformerRole» «block» «Performer»

: Search and Rescue and Search : distressSignal : Receive Distress Signal : Provide Medical Assistance : Recover Victim

condition location RN : Rescue : RN «PerformerRole»

warningOrder : Process Warning Order : Transit To SAR Operation Safety PoS : PlacePoS :of «PerformerRole»

updatedCondition udpatedLocation

Telecom and Informatics SV-1: Resource Interaction Specification

SV-1 [System] Maritime Rescue Unit v1 «SystemRole» MRT : Maritime Rescue Team «DataExchange» «ItemFlow» «SystemRole» BI : boatInstruction «OrganizationRole» MR Boat : Boat Driver : MRT Boat Driver

«DataExchange» «ItemFlow» BCI : beaconInstruction «SystemRole» «OrganizationRole» Med Beacon : Lighting Device Searcher : MRT Searcher Mon «DataExchange» «ItemFlow» «SystemRole» RI : radioInstruction «OrganizationRole» Radio : Communication Device Radio Operator : MRT Communicator Comm «DataExchange» «ItemFlow» «SystemRole» LPI : lifePreserverInstruction «OrganizationRole» Life Preserver : Life Saving Device Rescue Swimmer : MRT Swimmer

«DataExchange» «ItemFlow» «SystemRole» AI : aircraftInstruction «OrganizationRole» MR Aircraft : Aircraft Pilot : MRT Helicopter Pilot Air

Telecom and Informatics SV-2: Resource Interaction Specification

SV-2 [System] Maritime Rescue Architecture v1 «SystemRole» Rescue Unit : Maritime Rescue Unit v1

Src

Rsc DS : distressSignal «SystemRole» MR Boat : Boat

«SystemRole» Yacht : Boat «SystemRole» MR Aircraft : Aircraft «MaterielRole» Src Monitor : ESM System dsIn Rsc trkIn dsIn trkIn «MaterielRole» dsOut «MaterielRole» Distress Beacon : Lighting Device DS : distressSignal Monitor : ESM System TRK2 : track TRK1 : track

trkOut TD1 : TDM trkOut RI1 : radioInstruction transmitter tdmReceiver tdmTransmitter «MaterielRole» «MaterielRole» «MaterielRole» «MaterielRole» receiver Radio : Communication Device Digital Service : Link 16 Digital Service : Link 16 Radio : Communication Device RI2 : radioInstruction TD2 : TDM

receiver tdmTransmitter tdmReceiver transmitter

Telecom and Informatics SysML Example: Requirements Traceability

req [Package] SAR Initial Requirements «requirement» UNCLOS 1982

txt The United Nations Convention on the Law of the Sea (UNCLOS), Article 98: Every State shall require the master of a ship flying its flag, in so far as he can do so without serious danger to the ship, the crew or the passengers to render assistance to any person found at sea in danger of being lost to proceed with all possible speed to the rescue of persons in distress, if informed of their need of assistance, in so far as such action may reasonably be expected of him after a collision, to render assistance to the other ship, its crew and its passengers and, where possible, to inform the other ship of the name of its own ship, its port of registry and the nearest port at which it will call.

«deriveReqt»

«requirement» US NSP

txt The primary framework for the U.S. SAR system is provided in the NSP. This key document, which is produced by the «Capability» National Search and Rescue Committee (NSARC) and signed by high-level officials within the Federal government, «block» should be familiar to all SAR personnel, and is included as Appendix A to this Supplement. The NSP describes the U.S. Recovery SAR organization, key authorities and their responsibilities, and primary principles and policies upon which our SAR system is based. The NSP was developed taking into account the provisions of the IAMSAR Manual, Volume 1, Chapter 5 and its Appendix I. «Capability» «block» subRequirements Assistance «requirement» Proceed to Rescue «requirement» Render Assistance «trace» «requirement» Post Collision «trace»

«requirement» «requirement» «requirement» Render Assistance Proceed to Rescue Post Collision

txt txt txt The ship master shall render assistance The ship master shall proceed with all possible speed to The ship master shall render assistance to the other ship, its to any person found at sea in danger of the rescue of persons in distress, if informed of their need crew and its passengers and, where possible, to inform the being lost of assistance, in so far as such action may reasonably be other ship of the name of its own ship, its port of registry tracesFrom expected of him and the nearest port at which it will call. «Capability» Recovery parentRequirement tracesFrom «Capability» Assistance «requirement» US NSP «Capability» Inform «Capability» Assistance

«refine» «refine» «trace» «refine» «trace» «trace»

«StandardOperationalActivity» «StandardOperationalActivity» «Capability» «StandardOperationalActivity» «Capability» «Capability» Assist Victim Find Victim «block» Track Victim «block» «block» Search Assistance Inform

Telecom and Informatics Associated Analysis Tools

Telecom and Informatics Related Elements

n Traceability Matrix n Dependency Matrix n Related elements display n Show relationships n Show ports n Show internal structure

Telecom and Informatics