Model Driven Development using Software Matrix Tilak Patel

























- Slides: 25
Model Driven Development using Software Matrix Tilak Patel Advisor: Dr. James Fawcett 21 December 2007
Research Overview • Efficient Support for software salvage using Model Driven Development approach • Salvage: lifting significant blocks of existing systems and inserting them into newly developed system • We develop a framework to facilitate Rapid Application development using Model Driven Development approach • We show the Software Matrix framework can be used for the development of such framework
Software Reuse • Not a new idea • Effective reuse promises: – Reduced development and maintenance cost – Gains in development schedule and quicker time to market – Increased robustness and quality • Prior approaches – object-oriented reuse – component-oriented reuse
Model Driven Development • Commercial products using same approach: – IBM Rational Rose – Sparx Enterprise Architect • Separate design from architecture and choosing from the best and most fitting in both domains • Existing piece of code always part of design but lack of frameworks supporting Salvage
Matrix Framework • Framework for reuse • Integrated Network of Cells with Cells supporting automated testing • Simple XML messaging interface with auto Cell discovery • Sync and Async message passing
A Closer Look at Matrix Cells • Message Queues for communication with other Cells • Unique Cell ID • Capability List for advertising services • Functionality which is the processing for the services provided
Improvements to the Software Matrix • Test Support Enabled Cells: Cells can be loaded in Automated Test Harness for automated testing • Auto Cell Discovery: Cell can now discover Cells from local Matrix for required functionality • Intelligent Loader: Loader directly registering Cells based on Cell diagram and so direct message exchange between Cells without Mediator
Athena Designer • Prototype Computer Aided Software Engineering tool • Design time support for Model Driven Development with compatibility with Visual Studio 2005 and later versions • Developed using Windows Presentation Foundation (. NET 3. 0)
Athena Designer Components • my. Canvas : provides hosting panel to create Cell Diagrams and does line routing between the Cell connections. • diagram. Info: maintains information related to diagram constructed on canvas. • code. Gen: generates code compatiable with Visual Studio 2005 and later versions
Line Routing See: Chapter 4, page 54
Line Routing See: Chapter 4, page 55
Sample Cell Diagram See: Chapter 2, page 21
Project Templates Original project file snippet Template to create empty. Cell snippet <? xml version="1. 0" encoding="Windows-1252"? > <Visual. Studio. Project. Type="Visual C++" Version="8. 00" Name=”empty. Cell” Name=" [ ! safe projectname ] " Project. GUID=”{BD 2 CE 710 -DEE 2 -4 b 4 b-869 F 4 B 6 E 0 CC 612 C 8}” Project. GUID=" { [ ! safe GUID ] } " Root. Namespace="[!safe rootnamespace ] " Root. Namespace=”matrix” See: Chapter 4, page 57
Code Generation • Mapping between Cell Diagram and Visual Studio Solution See: Chapter 4, page 49
Test Application: Process and Port Sniffer • Scans machine to observe processes running and ports currently hosting connection • We demonstrate construction of Sniffer Application using Model Driven Development approach • We construct Cell Diagram using Athena Designer and generate code to build Sniffer application
Components of Sniffer Application • Sniffer block: observes all processes running or ports hosting a connection and updates safe/unsafe process/port list • Communication block: exchange information between server-client and exchange commands from client to server to update safe/unsafe list • User interface block: accept user command display safe/unsafe process/port information. • Executive block: host Sniffer block and communication block at server
Cell Diagram: Sniffer Server See: Chapter 3, page 41
Cell Diagram: Sniffer Client See: Chapter 3, page 44
Generated Sniffer Application Project See: Chapter 3, page 43
Instance of Sniffer Application See: Chapter 3, page 45
Thesis Conclusions • Model Driven Development with effective software salvage is possible and we have developed prototype tool and framework to support it • Our work shows that effective software salvage is possible without drastic change in software development process with framework developed using Software Matrix
Thesis Conclusions • Our work shows that Model Driven Development using Software Matrix is based on system decomposition and is better suited for system development environment characterized by rapidly changing conditions and requirements • Our work shows how placeholder cells evolves into new “standard” cells easily
Thesis Conclusions • We have demonstrated that Model Driven Development with effective software salvage increases development speed and helps to ensure that quality is built into the system.
Future Work • Integrated Designer, Repository and Test Harness server • Auto Upgrading Systems with real time Cell replacement or up-gradation • Cross platform wrapper Cell to develop application with Cells developed using different languages • Load balancing • Sophisticated Network Cells
Thank You