170 likes | 316 Views
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.
E N D
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 XVCL1.0 (1998) NUS + Paul Bassett (Netron Inc.) Netron Inc. (Experties in Frame) NUS (Reusability) More experiments More improvements XVCL 2.0 Experiment with CAD CAD = Computer Aided Dispatch System XVCL = XML-based Variant Configuration Language SES (Domain Knowledge)
What is XVCL? XML-based Variant Configuration Language • building generic reusable and customizable components (meta-components) • deriving concrete components from generic components by customizing through configuration
What is XVCL? <set var=“classname” value=“Hello1”/> <set-multi var=“message” value=“Hello world, This is XVCL.”/> customization script XVCL processor Hello3 Hello2 Customization Process Hello Hello1 <x-frame> class <value-of expr= “?@classname?”/> { public static void main(String[] args) { <whileusing-items-in=“messages”> System.out.println( <value-of expr= “?@messages?”/>); </while> } } </x-frame> class Hello1 { public static void main(String[] args) { System.out.println(“Hello world!”); System.out.println(“This is XVCL.”); } }
Pilot project: summary • Command and control (C2) 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
User Task Resource entities: operations: create update find list save High-level redundancies: an example • each entity (User, Task) needs similar operations: • operations (create, update, etc.) follow the same pattern independently of the entity
<<form class>> FormTaskCreation GUI <<form class>> FormUserCreation executes executes visualizes <<service class>> TaskService Service visualizes <<service class>> UserService manipulates <<entity class>> manipulates access Task <<entity class>> Entity access User persists <<DB class>> persists DBTask <<DB class>> DB DBUser Operation create for User, Task
Summary of the classes • 112 classes in GUI, service, entity, DB access
Our experience • experimented on a prison prototype system • 112 classes in GUI, service, entity, db access
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:
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: JavaScripts and ASP pages
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:
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
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
Thank you! Questions?