understand your business domain

29
Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 1 Understand your Business Domain Systems design using Metamodels 31.Oct 2014, Frank H. Ritz, [email protected]

Upload: frank-h-ritz

Post on 09-Feb-2017

25 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 1

Understand your Business Domain

Systems design using Metamodels

31.Oct 2014, Frank H. Ritz, [email protected]

Page 2: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 2

Agenda

Foreword

What are Metamodels

What are sysML/UML Metamodels

How they are made

Why they are important

Page 3: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 4

The Trainer

Frank H. Ritz, 57

Diploma, certifications

Electrical Engineering

Electronics, HF Communication

RUP / CE

CPRE-FL

OUCP-F

HSPTP

PMI-ACP®

Methodology & Technology

C++/Java mission critical apps

7 companies founded (1988-now)

1 Son

Sailor/Skipper, Skier, Photograph

Electrical

Engineer

Experienced

in computer

science

Requirements

Engineer

Project manager

Business consultant

Methodology & value

driven

Do the right things

right = sustainable

Page 4: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 5

What I do when I start a business (new or change of existing)

You have e.g. already done:

Vision

Targets

Roadmap

Ideas, Mindmaps, Business Canvas, Boards with notes, etc.

You have typically not

Structure

Model behind this business

Glossary

… many other structured, reusable information (requirements, models, visuals)

I show you today

to structure

to define

to specify

dModels of

your

business

think about:

how to manage your

products and specs

more precise

Page 5: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 7

What is a Model, what is a Metamodel

Model .vs. Metamodel

A metamodel or surrogate model is a model of a model, i.e. a simplif ied model of an actual model of a circuit, system, or software like entity.

Metamodel can be a mathematical relation or algorithm representing input and output relations.

A model is an abstraction of phenomena in the real world; a metamodel is yet another abstraction, highlighting properties of the model itself.

A model conforms to its metamodel in the way that a computer program conforms to the grammar of the programming language in which it is written. (Wikipedia EN)

Metamodel = Foundation ?

Page 6: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 8

A small example: desk model and chair model

Desk

legs

tabletop

design attributes

Chair

legs

seat

back

design attributes

Page 7: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 9

Templates, Design Rules: Example of a Chair design

Chair has

legs

seat

back

constraints

legs

back is also leg

Design, Rules

Page 8: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 10

Templates, Design Rules: Example of a Desk design

Desk has

legs

tabletop

constraints

legs

Design, Rules

Page 9: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 11

What is the common Metamodel of Desk and Chair

Desk

legs

seat

back

constraints

legs

back is also leg

Design, Rules

Chair

legs

seat

back

constraints

legs

back is also leg

Design, Rules

Common Model: Desk & Chair

Page 10: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 12

Metamodel = Foundation for a model, or in general: how to perceive and document Requirement essence

Traditional views of knowledge are

beeing challenged. Views are not

based on real objects behavior.

An emerging “constrictivist”

perspective, suggests that to a large

degree we construct reality (by

George Kelly).

Implementation of complex Case –

Management

Modern views of knowledge are

formal, flexible, testable, extendable,

enhanceable, verifyable, inheritable

Find the essence and look behind

the things (meta behavior / steering)

The definition (or language) that

defines about a metadefinition (or

metalanguage), is the accompanying

object definition (or language)

Design

Pattern

Design

Pattern

Page 11: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 13

This is a Meta Pattern

It's a model for a framework

describes the Elements of

Requirements Engineering

it guides which elements to

be used and which

semantics exists (min, max).

structures Requirements

Engineering on User

Acceptance level

More details enrich only

semantics of relationsships

or

element attributes which are

relevant

It is not a metamodel

not

complete

Page 12: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 15

What is “meta” modeling, why we are doing that

We model

to provide a structure for problem solving

to express multiple solutions graphically with specification

to furnish abstractions to manage complexity

to reduce time-to-market, costs and risks for business solving solutions

to enable graphics power, reveals text or data (s.a. RUP)

We model with metamodel

to structure complex models

to steer modeling and model construction

to define an abstract syntax and

a static semantic for models

to define a model as an instance of a metamodel

Page 13: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 16

Basics for modeling your business domain

MOF (Meta Object Facility)

MOF defines the language for defining

meta-models

MOF concepts are meta-class, meta-

attribute, meta-association, etc.

OCL (Object Constraint Language)

OCL structures, expresses constraints

like invariant, pre-/post- conditions

UML / sysML (Unified / System

Modeling Language)

graphical language to specify, to

visualize, to construct, to document

artifacts of systems (soft-/hardware)

UML/sysML metamodel is an instance

of the MOF metamodel

Page 14: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 17

Example:Passenger Ticket

Excerpt part of highest

Element level of MOF

Class

Operation

Association

Package

Constraints (base for OCL)

Attribute

Attribute

Page 15: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 18

Metamodel and the Vee-Model

CIM - Requirements Level Metamodel

PIM metamodel is the design language for

a PIM design model

PSM metamodel is the design language

for a PSM design model and implements

the transformation of PIM (that is the

software model for code generation)

Page 16: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 21

Domainmodels are Metamodel

Domain Specific Language (DSL)

encapsulate complexity

lesser models

simpler understanding

Templates, Domains of a business

Feature- and Requirement- models

Process- and Behavior- models

Analysis- and Design- models

Machine readable, reusable

Business Glossary of Objects,

Constraints, Relationships

abstract syntax = easy to understand

static semantic = easy to guide

graphical representation = easy to use

Implicit validation options against

Models (of M1 level, e.g. for testing)

Page 17: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 22

Business Domain Models – Build a Payment System containingBusiness Domain Objects and the Pricing Template

Page 18: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 24

Business Object Modeling - Business Domain Model

Business Object Modeling

technique to represent things of

significance to an enterprise

is a complex technique

It requires a methodology of

abstraction

A good Business Object Model

creates and establishes a common

understanding of business semantics

between all involved parties.

The resulting common "language"

and long term understandable

documentation provide the

"organizational memory" of an

enterprise.

A Business Object represent the

abstraction of real life objects, a

machine, a value, a person, a place,

a process or a concept.

A Business Object Model is a

metamodel that contains only

abstractions of objectsPhysical Model

Logical Model

Conceptual Model

Domain Model

Enterprise Model

Page 19: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 26

UML/sysML Elements which we use for Metamodels I

Models are packaged, so we need

to use Package diagrams

Package diagrams are used to reflect

the organization of packages and their

elements, and provide a visualization

of their corresponding namespaces.

Partitioning

Big Picture

Namespace

Page 20: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 27

UML/sysML Elements which we use for Metamodels II

Class Diagrams capture logical

structure of things

Static model, describing what

exists, what attributes and their

behavior (operations).

Relationships between classes

and interfaces.

Generalizations, aggregations,

associations

Reflecting inheritance, composition

or usage, and connections,

respectively.

Classes

Abstractions (Meta Models)

Visibility: public, protected, private

Stereotypes, Tagged Values

Page 21: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 28

Example: GoF Design Pattern Metamodel: Packages and Classes

→ Implementation

in Backup

→ Complete in Backup

Page 22: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 29

GOF Design PatternPackages

Page 23: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 33

Page 24: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 34

Steering Example Check Embargobased on EAM-MM

What belongs to a

good interface

description of a

component

How must this

modeled

Which are relevant

Domain Objects

Page 25: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 35

Effects in steering with Metamodels

Metamodel / Profile is a

Framework that limits

Elements you use

Modeling technique

Framework that concretes

Abstraction level

Focus on needed things

Self control in the endless space of

modeling

Framework that enables

Verify models against Metamodel

Effectiveness doing the right things

Efficiency doing the things right

Traceability to understand parentage

Lookahead modeling. Sometimes

required so as to reduce overall risk

Why is steering needed ?

Modeling without feedback is not worth

the money, because it is not

understood or accepted by the

organization

Metamodel provides Feedback from the

beginning

Reduce complexity

Provide ground for better decisions

Agile methodology, esp. Agile

Modeling is focused on “just barely

good enough (JBGE)“ artifacts

Metamodeling can help to understand

“just barely good enough”

Limits lookahead modeling

Page 26: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 37

Business Domain Models: Example Service, Product, Tariff – Priceable Pricing Template

Service = Payments

Product = SEPA

PriceComponent = inside EU

Tariff = Flat = 0.00 CHF

BusinessDimension =

RegularCustomer

Priceable is the application interface

Simple structure of a Service,

Product, Tariff management

Business Dimension manages the

relation between Product and Price

component

Flexibility to steer Customers prices

Flexibility to manage exceptions,

marketing events and else

Page 27: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 39

ICT Enterprise Architecture Management (EAM): Project Effect on “project changes product” pattern I

Understand the effect of the

associated elements for a target

(from another diagram next slide)

Calculate target KPI for all

associated elements

e.g. calculate the effect of a project on

to the product, the organization unit,

process support, the software system

Page 28: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 40

ICT Enterprise Architecture Management (EAM): Project Effect on “project changes product” pattern II

Page 29: Understand your Business Domain

Understand your Business Domain (Metamodels) 31.Oct 2014, Frank H. Ritz, ritz@ritzeng,com Page 41