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

XVCL: A Tool for reusing software

  • Upload
    hera

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

XVCL: A Tool for reusing software. Soe Myat Swe Software Engineer (CAP Dept.). Presentation overview. Background What is XVCL? Our experiences Current status Conclusion. Background. SES (Domain Knowledge). Waterloo University (Reliability). Work on XVCL. need more than Frame offer. - PowerPoint PPT Presentation

Citation preview

Page 1: XVCL: A Tool for reusing software

1

XVCL: A Tool for reusing software

• Soe Myat Swe • Software Engineer (CAP Dept.)

Page 2: XVCL: A Tool for reusing software

2

Presentation overviewPresentation overview

• BackgroundBackground

• What is XVCL?What is XVCL?

• Our experiencesOur experiences

• Current statusCurrent status

• ConclusionConclusion

Page 3: XVCL: A Tool for reusing software

3

BackgroundBackground

(1998)

NUS(Reusability)

Netron Inc.(Experties in

Frame)

Waterloo University(Reliability)

SES(Domain Knowledge)

NUS + Paul Bassett (Netron Inc.)

XVCL1.0

need more than Frame offer

Work on XVCL

XVCL 2.0

Experiment with CAD

More improvements

CAD = Computer Aided Dispatch System

XVCL = XML-based Variant Configuration Language

More experiments

SES(Domain Knowledge)

Page 4: XVCL: A Tool for reusing software

4

What is XVCL?What is XVCL?

XML-based Variant Configuration XML-based Variant Configuration LanguageLanguage

• building generic reusable and building generic reusable and customizable components (meta-customizable components (meta-components)components)

• deriving concrete components from deriving concrete components from generic components by customizing generic components by customizing through configurationthrough configuration

Page 5: XVCL: A Tool for reusing software

5

What is XVCL?What is XVCL?

<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>

XVCL processor

HelloHello1

Hello2

Hello3

Customization Process

customization

script

class Hello1 { public static void main(String[] args) { System.out.println(“Hello world!”); System.out.println(“This is XVCL.”); }}

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

Page 6: XVCL: A Tool for reusing software

6

Pilot project: summaryPilot project: summary

• Command and control (C2) application Command and control (C2) application

• Developed in C# on .NET platformDeveloped in C# on .NET platform

• The scope of the pilot application:The scope of the pilot application:– 13 domain entities (User, Task, Resource, etc.)13 domain entities (User, Task, Resource, etc.)

– GUI, service / entity / DB classesGUI, service / entity / DB classes

• Results: we eliminated 68% of codeResults: we eliminated 68% of code

Page 7: XVCL: A Tool for reusing software

7

High-level redundancies: High-level redundancies: an examplean example

• each entity (User, Task) needs similar each entity (User, Task) needs similar operations:operations:

• operations (operations (create, update, etc.) create, update, etc.) follow the follow the same pattern independently of the entity same pattern independently of the entity

entities:

operations:

User Task Resource

create update find list save

Page 8: XVCL: A Tool for reusing software

8

FormUserCreation<<form class>>

UserService<<service class>>

DBUser<<DB class>>

User<<entity class>>

executes

access

manipulates

visualizes

persists

FormTaskCreation<<form class>>

TaskService<<service class>>

DBTask<<DB class>>

Task<<entity class>>

persists

executes

manipulates

access

visualizes

GUI

Service

Entity

DB

Operation Operation createcreate for User, Task for User, Task

Page 9: XVCL: A Tool for reusing software

9

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

LayerLayer ExamplesExamples # classes# classes

GUIGUI forms, controls, buttonsforms, controls, buttons 5959

ServiceService Create, Delete, Update Create, Delete, Update 1919

EntityEntity Task, User, ResourceTask, User, Resource 26 26

DBDB database access classesdatabase access classes 1313

Page 10: XVCL: A Tool for reusing software

10

Our experienceOur experience

• experimented on a prison prototype systemexperimented on a prison prototype system– 112 classes in GUI, service, entity, db access 112 classes in GUI, service, entity, db access

LayerLayer DescriptionDescription No. of classesNo. of classesGUI GUI Forms, controls, buttonsForms, controls, buttons 5959ServiceService Containing retrieve, update, Containing retrieve, update,

insert etc.insert etc.1919

Entity Entity operator, incident, task etcoperator, incident, task etc 2626 (counting both entity and (counting both entity and

entity list classes)entity list classes)

DBDB Database access classes for Database access classes for persisting entitiespersisting entities

1313

Page 11: XVCL: A Tool for reusing software

11

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

0

5000

10000

15000

20000

Lines of code (LOC)

Components

Lines of code comparison between XVCL and C#

XVCL LOC

C# LOC XVCL LOC 3379 75 263 450 95 1743 5910

C# LOC 12220 682 2493 3351 77 0 18823

GUI Service Entities DB Utility Others Total

Page 12: XVCL: A Tool for reusing software

12

Our Experience: ResultsOur Experience: Results

• XVCL was easier to apply than expectedXVCL was easier to apply than expected

• we got encouraging results (we got encouraging results (presented in presented in

ICSE 2003 conferenceICSE 2003 conference):):– to add a new domain entity to the application:to add a new domain entity to the application:

with XVCL (avg)with XVCL (avg) without XVCL (avg)without XVCL (avg)

133 LOC133 LOC 1440 LOC1440 LOC

2 man/hours2 man/hours 16 man/hours16 man/hours

Page 13: XVCL: A Tool for reusing software

13

Our next experienceOur next experience

• Web Portal system:Web Portal system:– e-learning systeme-learning system– 20 domain entities20 domain entities– relationships between entities relationships between entities

(aggregations, association, abstract (aggregations, association, abstract inheritance, etc)inheritance, etc)

• Time duration: Time duration: two weeks!two weeks!

• Made of: JavaScripts and ASP Made of: JavaScripts and ASP pages pages

Page 14: XVCL: A Tool for reusing software

14

Our next Experience: ResultsOur next Experience: Results

• XVCL was XVCL was eveneven easier to apply than easier to apply than

expectedexpected

• we got we got moremore encouraging results: encouraging results:– able to deliver the sample system on timeable to deliver the sample system on time

– able to create other similar portals on demandable to create other similar portals on demand

– to add a new domain entity to the web portal:to add a new domain entity to the web portal:

with XVCL (avg)with XVCL (avg) without XVCL (avg)without XVCL (avg)

50-60 LOC50-60 LOC 1000-1500 LOC1000-1500 LOC

2-5 minutes2-5 minutes 2-6 man/hours (excluding time 2-6 man/hours (excluding time for defining domain model)for defining domain model)

Page 15: XVCL: A Tool for reusing software

15

Current statusCurrent status

• Many published papers based on XVCLMany published papers based on XVCL– FSE, SSR, ICSE tool demonstration…,etc.,FSE, SSR, ICSE tool demonstration…,etc.,

• has not reached its maturity for industrial has not reached its maturity for industrial wise application:wise application:– short in Guidelines and Methodologyshort in Guidelines and Methodology– short in supporting tools (e.g., editors, reverse engineering, short in supporting tools (e.g., editors, reverse engineering,

debugger, etc)debugger, etc)

• collaborations with NUS continuescollaborations with NUS continues– Guidelines and MethodologyGuidelines and Methodology– publish paperspublish papers– more experimentsmore experiments

Page 16: XVCL: A Tool for reusing software

16

ConclusionConclusion

• reduces the development time and reduces the development time and efforteffort

• reduces code redundancies by 68% reduces code redundancies by 68% • free and open source! free and open source!

((http://fxvcl.sourceforge.net/)http://fxvcl.sourceforge.net/)

• language is simple and easy to learnlanguage is simple and easy to learn

• experimental studies gives experimental studies gives encouraging resultsencouraging results

• new and need to wait for its maturitynew and need to wait for its maturity

Page 17: XVCL: A Tool for reusing software

17

Thank you!Thank you!

Questions?Questions?