XVCL A Tool for reusing software Soe Myat

  • Slides: 17
Download presentation
XVCL: A Tool for reusing software • Soe Myat Swe • Software Engineer (CAP

XVCL: A Tool for reusing software • Soe Myat Swe • Software Engineer (CAP Dept. ) 1

Presentation overview • Background • What is XVCL? • Our experiences • Current status

Presentation overview • Background • What is XVCL? • Our experiences • Current status • Conclusion 2

Background Waterloo University (Reliability) SES (Domain Knowledge) Work on XVCL need more than Frame

Background Waterloo University (Reliability) SES (Domain Knowledge) Work on XVCL need more than Frame offer XVCL 1. 0 (1998) Netron Inc. (Experties in Frame) NUS (Reusability) NUS + Paul Bassett (Netron Inc. ) More experiments More improvements XVCL 2. 0 CAD = Computer Aided Dispatch System XVCL = XML-based Variant Configuration Language Experiment with CAD SES (Domain Knowledge) 3

What is XVCL? XML-based Variant Configuration Language • building generic reusable and customizable components

What is XVCL? XML-based Variant Configuration Language • building generic reusable and customizable components (metacomponents) • deriving concrete components from generic components by customizing through configuration 4

What is XVCL? <set var=“classname” value=“Hello 1”/> <set-multi var=“message” value=“Hello world, This is XVCL.

What is XVCL? <set var=“classname” value=“Hello 1”/> <set-multi var=“message” value=“Hello world, This is XVCL. ”/> customization script Hello 3 XVCL processor Customization Process Hello 2 Hello 1 <x-frame> class <value-of expr = “? @classname? ”/> { public static void main(String[] args) { <while using-items-in=“messages”> System. out. println( <value-of expr = “? @messages? ”/>); </while> } } </x-frame> class Hello 1 { public static void main(String[] args) { System. out. println(“Hello world!”); System. out. println(“This is XVCL. ”); } } 5

Pilot project: summary • Command control (C 2) application • Developed in C# on.

Pilot project: summary • Command control (C 2) application • Developed in C# on. NET platform • The scope of the pilot application: – 13 domain entities (User, Task, Resource, etc. ) – GUI, service / entity / DB classes • Results: we eliminated 68% of code 6

High-level redundancies: an example • each entity (User, Task) needs similar operations: entities: User

High-level redundancies: an example • each entity (User, Task) needs similar operations: entities: User operations: create Task update Resource find list save • operations (create, update, etc. ) follow the same pattern independently of the entity 7

Operation create for User, Task GUI <<form class>> Form. User. Creation <<form class>> Form.

Operation create for User, Task GUI <<form class>> Form. User. Creation <<form class>> Form. Task. Creation executes Service executes visualizes <<service class>> User. Service manipulates Entity manipulates <<entity class>> User access persists DB <<DB class>> DBUser visualizes <<service class>> Task. Service <<entity class>> Task access persists <<DB class>> DBTask 8

Summary of the classes • 112 classes in GUI, service, entity, DB access Layer

Summary of the classes • 112 classes in GUI, service, entity, DB access Layer Examples # classes GUI forms, controls, buttons 59 Service Create, Delete, Update 19 Entity Task, User, Resource 26 DB database access classes 13 9

Our experience • experimented on a prison prototype system – 112 classes in GUI,

Our experience • experimented on a prison prototype system – 112 classes in GUI, service, entity, db access Layer Description GUI Forms, controls, buttons Service Containing retrieve, update, insert etc. Entity operator, incident, task etc No. of classes 59 19 26 (counting both entity and entity list classes) DB Database access classes for persisting entities 13 10

Our Experience: XVCL vs. original C# solution) 11

Our Experience: XVCL vs. original C# solution) 11

Our Experience: Results • XVCL was easier to apply than expected • we got

Our Experience: Results • XVCL was easier to apply than expected • we got encouraging results (presented in ICSE 2003 conference): – to add a new domain entity to the application: with XVCL (avg) 133 LOC without XVCL (avg) 1440 LOC 2 man/hours 16 man/hours 12

Our next experience • Web Portal system: – e-learning system – 20 domain entities

Our next experience • Web Portal system: – e-learning system – 20 domain entities – relationships between entities (aggregations, association, abstract inheritance, etc) • Time duration: two weeks! • Made of: Java. Scripts and ASP pages 13

Our next Experience: Results • XVCL was even easier to apply than expected •

Our next Experience: Results • XVCL was even easier to apply than expected • we got more encouraging results: – able to deliver the sample system on time – able to create other similar portals on demand – to add a new domain entity to the web portal: with XVCL (avg) 50 -60 LOC without XVCL (avg) 1000 -1500 LOC 2 -5 minutes 2 -6 man/hours (excluding time for defining domain model) 14

Current status • Many published papers based on XVCL – FSE, SSR, ICSE tool

Current status • Many published papers based on XVCL – FSE, SSR, ICSE tool demonstration…, etc. , • has not reached its maturity for industrial wise application: – short in Guidelines and Methodology – short in supporting tools (e. g. , editors, reverse engineering, debugger, etc) • collaborations with NUS continues – – – Guidelines and Methodology publish papers more experiments 15

Conclusion • reduces the development time and effort • reduces code redundancies by 68%

Conclusion • reduces the development time and effort • reduces code redundancies by 68% • free and open source! (http: //fxvcl. sourceforge. net/) • language is simple and easy to learn • experimental studies gives encouraging results • new and need to wait for its maturity 16

Thank you! Questions? 17

Thank you! Questions? 17