These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science and Engineering, University of Mälardalen, Västerås, Sweden and at the Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia (year 2003/2004). For all other purposes, authors’ written permission is needed! The purpose of these materials is to help students in better understanding of lectures in DSD and not their replacement! NOTICE!
Selected Topics in Software Engineering - Distributed Software Development
ASN1 to CSV converter generator ASN2CSV project team
About project Telecommunication industry Might be used in a real enviroment Customer: Ring Datacom
Telecommunication Switching elements produce calls information – Call Detail Records (CDR) CDR's are collected and distributed to other systems, like billing system Usually, CDR's are encoded in ASN1 BER
Problem Different CDR formats (ANS1 grammars) Convert to some common format (CSV) in order to use in different systems Develop decoder for each encountered ANS1 grammar or...
Task To make an automated CDR to CSV converter for any encountered ANS1 grammar
Requirements Multiple platforms Speed Reliability Well tested and debugged
ASN1 Abstract Syntax Notation One X.400 electronic mail, X.500 and LDAP directory services, H.323 (VoIP), BACnet and SNMP,...
ASN1 Data types: boolean, null, integer, real, enumerated, bit string, octet string,... Data constructs: choice, sequence, set, sequence of, set of
ASN1 Example SGSN-R6-CDR DEFINITIONS IMPLICIT TAGS ::= BEGIN BCDDirectoryNumber ::= OCTET STRING CallDuration ::= INTEGER CallEventRecord ::= CHOICE { sgsnPDPRecord [20] SGSNPDPRecord, sgsnSMORecord [23] SGSNSMORecord, sgsnSMTRecord [24] SGSNSMTRecord }
BER Basic Encoding Rules ClassP/CNumber ClassBit 8Bit 7 Universal00 Application01 Context-specific10 Private11
BER Example e5 fe-5f f f a..._).. _%.._&.H f e 53 4d-5f RVVI_$.S VNSM_' f 1f-0e _ f-2d 05 2b _ b 82 e5 bb f f...dE_". ) e U f 2d 05 2b f 2e _ S..X f 2b b _+.21V f d f _#.MS C6dE_".) f 55-0e q.U f-2d 05 2b _ S f 2e 05-5f 2b b 33..X..... _+.21V f d _#.MSC f f 55 0e 6dE_".)4..42./U
CSV Comma Separated Values value1,value2,value3 value1,,value3 value1,value can contain spaces,value3 value1,”north, south”,value3 value1,”some ””important”” data”,value3
CSV Example 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 1, ,, ,, , +0200, 0,,, 0, 22,,, 182, HRVVI, SVNSM, , 1, ,, ,, , +0200, 0,,, 0, 22,,, 182, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 1, ,, ,, , +0200, 0,,, 0, 22,,, 182, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 1, ,, ,, , +0200, 0,,, 0, 22,,, 182, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, , 2, ,, ,, , +0200, 0,,, 0, 21,,,, HRVVI, SVNSM, ,
Project Plan 1/2 NamePeriodAvailability Guido Di Campli to % Giovanni Piemontese to % Paolo D’Amelio to % Ivan Škugor to % Željko Knežević to % Željko Krpetić to % The customer is Ring Datacom The project leader is Ivan Škugor The team leader in MDH is Guido Di Campli 16 DSD
Project Plan 2/2 ResponsabilityMember eSNACC modification and testing Guido Di Campli Giovanni Piemontese Paolo D’Amelio Project managment, CommunicationIvan Škugor Documentation, SVN, Converter generator Željko Knežević Converter generator, GUIŽeljko Krpetić Project Responsability 17 DSD
18 Communications Communication –Skype –MSN –Google group – Common language: English
Work handling 1/2 From ASN.1 to CVS file converter V0.1 documentation: “The General ASN.1 parser generation project can be divided into two subprojects that can be carried out independently providing that the interface between the two modules is clearly defined. The first part or module is a standalone GUI application that takes as an input an ASN.1 grammar and generates a configuration file for the ASN.1 to CSV file converter according to the choices made by the application user. This configuration file is used by the second module – the ASN.1 to CSV file converter that accepts a binary ASN.1 BER encoded file (conformant to the grammar in question) and generates a CSV text file with the values defined in the control file.” 19 DSD
Work handling 2/2 Subproject 1: GUI + Converter Subproject 2: eSNACC modification and testing Project Subproject 1 Subproject 2 20 DSD
Risks DSD
Estimation Time DSD
ASN.1 CSV converter generator DSD
ASN.1 CSV converter generator 1.Select output format options in user friendly GUI 2.Generate ASN.1 decoding routines by ESNACC 3.Generate a main program (ANSI C) according to configuration file 4.Compile with ANSI C compiler for target platform DSD