300 likes | 500 Views
An Intuitive TTCN-3 Data Presentation Format. Roland Gecse and Sarolta Dibuz Ericsson Hungary, 1037 Budapest Laborc u. 1. {Roland.Gecse, Sarolta.Dibuz}@eth.ericsson.se. Motivation. Find an intuitive graphical representation format for abstract data (excluding OO)
E N D
An Intuitive TTCN-3 Data Presentation Format Roland Gecse and Sarolta Dibuz Ericsson Hungary, 1037 Budapest Laborc u. 1. {Roland.Gecse, Sarolta.Dibuz}@eth.ericsson.se
Motivation • Find an intuitive graphical representation format for abstract data (excluding OO) • Abstract data: a set of simple types with given value domain and rules for constructing complex types(e.g. ASN.1, TTCN-3) • Intuitive: Keep it super simple (e.g. introduce a minimal set of symbols)
Goals • Facilitate test suite data part development: • Help testers getting the overview of type definitions hierarchy • Provide a graphical tool for test data development (e.g. contants, templates), which are significant parts of Test Suites • Translate between different formal data description methods (e.g. TTCN, TTCN-3 and ASN.1)
TTCN-3 ASN.1 ? Profile XML Conceptual architecture • Basic Notation:Graphical representation of common language concepts • Profiles:Language-specific features • XML:Potential common data exchange format between different implementations TTCN-3 Profile ASN.1 Profile Basic Notation
Data Presentation Format • Basic Notation + TTCN-3 profile • Supports data part: Type definitions, constant declarations, signature declarations, template declarations, port type definitions, component type definitions, module parameter declarations • Dynamic parts out of scope: functions, altsteps, testcases, control • 7 disjunct parts (2+5) • Separated containers for all supported TTCN-3 constructions • Resolves context sensitivity of graphical representations(e.g. specific value template value template looks equal to a constant, but these are in different parts!)
Simple Type and Value Representation Simple-type-spec • Simple-type-spec = [ simple-type-id “:” ] base-simple-type-id [ subtype-spec ] • 4 forms of simple-type-spec: simple type reference, simple type alias, subtype definition and inline subtype definition • 3 context specific attributes: Field-identifier, value, with-attributes [Field-identifier] [with-attributes] [value]
Simple type reference A • TTCN-3 equivalent:type <record> R { … A field_a, …} field_a
Simple Type Alias C : charstring • TTCN-3 equivalent: type charstring C;
Simple Type Subtype definition I : integer(1..10) • TTCN-3 equivalent:type integer I (1..10);
Simple Type Inline subtype definition charstring(“abc”) • TTCN-3 equivalent:type <record> R { … charstring field_abc (“abc”), …} field_abc
Field identifier attribute integer • Different meaning in different contexts: • Simple value notation (together with the value attribute):identifier of that value<const> integer INT_field := 428; INT_field 428
intval1 intval2 integer integer 1 intval1 Value attribute Simple type: • Literal, e.g. true, 4, ‘10110’B, “Hello!” • Value reference Value attribute
With-attributes BER_INT : integer Location of TTCN-3 with statement’s attributes w/o braces type integer BER_INT with { encode “BER:1997” }; encode “BER:1997” with
Building Structured Types from Simple Types alternatives Model: • ordering, choice: • Consider an imaginary plane • Vertical axis – ordering • Horizontal axis – alternatives • repetition: • quantor • grouping of elements • structured type header & attributes [Field-id] [quantor] Structured-type-id [with-attributes] [value] A B C ordering
[quantor] [Field-identifier] Structured-type-spec [value] [with-attributes] Element-type-list Structured Type and Value Representation • Structured type reference has the same graphical representation than simple type reference • Context specific attributes: Field-identifier, value, with-attributes and quantor
SetType RecType A A B B C C UnionType A B C Element type list • Determines structured type content • Graphical representation depends on the format of constructed type • Record type: rectangles of neighbouring elements have joint edges along vertical axis • Set type: rectangles of neighbouring elements are encircled and have disjoint edges • Union type: rectangles of alternative elements have joint edges along the horizontal axis
SetType A B C Optional elements… …marked with dotted border Elements B and C are optional
R host charstring port integer Field identifier attribute (2) • Structured type definition: Field identifier is used to refer to a structured type element (e.g. a field of a record type)type record R { charstring host, integer port }; Field identifier in structured type element
HP2 HostPort HP1 HP1 HP3 HP2 HostPort HostPort HostPort HP1 HP1 host charstring host host charstring charstring “pauler” port port port integer integer integer 80 8080 Value attribute Structured type header: • Empty: all values MUST be provided in element’s value attribute • Structured value reference: get the value of each element by ref. • Both Reference AND some elements’ values present:elements’ values modify the referred value
1..9 SetOfType A * RecordOfType B The quantor • Used to express set-of and record-of constructions • Includes length restriction subtype type set length(1..9) of A SetOfType; type record of B RecordOfType; quantor
TTCN-3 specific constructions • These are unknown to the Basic Notation but belong to the TTCN-3 Profile (DPF) • Signature declaration • Port type definition • Component type definition • Template declaration • Module parameter declaration
SuccessIndication ErrorException IPConnection protocol inout ProtocolID srcHost in IPAddress srcPort in integer dstHost out IPAddress out integer dstPort Signature Exception Return type Parameter list Parameter type Parameter name In, out, inout
message PortType inout all in PDU_A out PDU_B Port type Port type identifier message, procedure, mixed direction Message/ signature type or “all”
MyComponentType msgPortA PortType msgPortB PortType myCompVar integer 42 T timer Component identifier Component type Port decl. Initial value Component variable Component timer
Req_line RequestLine(Method m, HostPort h, UserInfo u, GenericParam_List l) Method m SipUrl scheme charstring(“sip”) “sip” UserInfo u HostPort h urlParameters GenericParam_List l headers GenericParam_List - sipVersion charstring “SIP/1.2” Template parameter m Formal parameters Literal Omit value
Implementation • Graphical front-end for data part development • Display parts’contents in separate windows • Create and edit language entities incl. drag & drop features • Support overview of hierarchy (expand, collapse) • Resolve references on click • Create constants and templates from types and fill-in values • Syntactical/semantical check of module • Import/export module (w/o touching irrelevant parts)
RequestLine SipUrl UserInfo Method scheme charstring(“sip”) userOrTelephoneSubscriber charstring SipUrl UserInfo password charstring charstring sipVersion HostPort HostPort urlParameters GenericParam_List host charstring * GenericParam_List GenericParam_List headers port integer GenericParam Example – SIP RequestLine (view by reference)
RequestLine Method RequestLine SipUrl Method scheme charstring(“sip”) RequestLine SipUrl UserInfo Method scheme charstring(“sip”) HostPort SipUrl UserInfo urlParameters GenericParam_List headers * HostPort sipVersion charstring GenericParam_List urlParameters GenericParam_List GenericParam headers GenericParam_List sipVersion charstring sipVersion charstring Example – Embedded view Expand type SipUrl Expand GenericParam_List
Conclusion • Basic Notation complete • TTCN-3 profile ready (waiting for feedback) • Prototype implementation working • Positive feedback from testers • Productification, case study • ASN.1 profile design started