Model Driven Development using Software Matrix Tilak Patel

  • Slides: 25
Download presentation
Model Driven Development using Software Matrix Tilak Patel Advisor: Dr. James Fawcett 21 December

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 •

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

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 –

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

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

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

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

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

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 54

Line Routing See: Chapter 4, page 55

Line Routing See: Chapter 4, page 55

Sample Cell Diagram See: Chapter 2, page 21

Sample Cell Diagram See: Chapter 2, page 21

Project Templates Original project file snippet Template to create empty. Cell snippet <? xml

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,

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

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

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 Server See: Chapter 3, page 41

Cell Diagram: Sniffer Client See: Chapter 3, page 44

Cell Diagram: Sniffer Client See: Chapter 3, page 44

Generated Sniffer Application Project See: Chapter 3, page 43

Generated Sniffer Application Project See: Chapter 3, page 43

Instance of Sniffer Application See: Chapter 3, page 45

Instance of Sniffer Application See: Chapter 3, page 45

Thesis Conclusions • Model Driven Development with effective software salvage is possible and we

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

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

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

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

Thank You