An ASN.1 Profile Anders Ek Motivation / Scenarios Profile Basics A Draft ASN.1 Profile Example Summary
Motivation: Usage Scenarios Access to ASN.1 module from UML models Visualization of ASN.1 Modules Design of ASN.1 Modules
Accessing ASN.1 Modules Precond: Actions: ASN.1 module exist Application design using UML Need to use type definitions Actions: Import the ASN.1 module into UML as a package Access the ASN.1 types from the UML code
Visualization of ASN.1 Module Precond Complex ASN.1 modules exists Need to understand the modules Actions Import ASN.1 modules into UML Use UML graphics (mainly composition hierarchies in class diagrams) to explain & understand the module.
Design of ASN.1 Modules Precond: Actions No existing ASN.1 module Need to produce one Like UML graphics!! Actions Design using UML class diagrams Tag with ASN.1 concepts Generate the ASN.1 module
Motivation: Summary Accessing ASN.1 type defs from UML models Visualization of ASN.1 Modules Design of ASN.1 Modules
Profile Definition Basics Purpose: To define how to associate extra information with model elements in a UML model. Basics A ’profile’ is a UML package stereotyped by <<profile>>. A profile contains stereotypes that define tagged values (the attributes of the stereotype) what model element to extend (the ’extends’ relation to a metaclass) Often includes a ModelLibary (package with data types) A profile contains constraints that give static semantics A profile typically comes with dynamic semantics usually informally definined implemented as tool feature, often a code generator
Simple Profile Example <<profile>> package metaclass from appropriate metamodel extention definition stereotype definition tag definitions (stereotype attributes) <<profile>> package UseCaseDetails <<metaclass>> UML::UseCase 1 <<stereotype>> UseCaseDef Precondition : Charstring ActionSequence : Charstring Alternatives : Charstring Postcondition : Charstring
Using the Profile Apply the profile activate addin load & use model profile Select ’Tagged values...’ for a use case
Profiles Summary Extends UML Stereotypes / tagged values Model library Semantics Constraints Dynamic semantics
A (Very) Incomplete ASN.1 Profile
Profile
Model Library
Example Module ExampleASN1Module ::= BEGIN EMPLOYEES ::= SEQUENCE OF PERSON PERSON ::= SEQUENCE { name VisibleString, age INTEGER, car CAR, house HOUSE } CAR ::= SEQUENCE { licenseNo INTEGER, manufacturer VisibleString HOUSE ::= SEQUENCE { address VisibleString END
ExampleModule
Example Application
Example Application, cnt
Summary Purpose Profile Issues Usage of ASN.1 modules in UML applications Visualization / Design Profile Stereotypes / tagged values etc Constraints Semantics Issues Information classes and objects Inline type definitions Parametrized classes Values and value syntax