Presentation is loading. Please wait.

Presentation is loading. Please wait.

Model Driven Development using

Similar presentations


Presentation on theme: "Model Driven Development using"— Presentation transcript:

1 Model Driven Development using
Software Matrix Tilak Patel Advisor: Dr. James Fawcett 21 December 2007

2 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 how the Software Matrix framework can be used for the development of such framework Developing a prototype Computer-Aided Software Engineering tool for software development with effective software salvage Advantages: reduced development cost and maintenance cost, gains in development schedule and quicker time to market, increased robustness and quality Message Passing to achieve loose coupling between various system blocks

3 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 Neither software reuse nor CASE is new idea however if we didn't re-invent the wheel from time to time, we still be riding on stone wheels

4 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 Old saying about the shoemaker’s children: the shoemaker is so busy making shoes for others that his children don’t have shoes of their own. Many software developers are “shoemaker’s children” Although these technical professionals build complex systems and products that automates the work of others, they used very little automation themselves. Differences between approaches and concepts used to realize designs and the concepts and technologies used to realize architectures Definition of Model Driven Development: The Model Driven Development approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language. Then, given a platform definition model (PDM) corresponding to CORBA, .NET, the Web, etc., the PIM is translated to one or more platform-specific models (PSMs) that computers can run. The PSM may use different Domain Specific Languages, or a General Purpose Language like Java, C#, Ruby, Python, etc. (ref: wikipedia) Various Model Driven Development Approaches (commercial products like rational rose and Sparx) Software Reuse models (Object Oriented Reuse, Component Oriented Reuse)

5 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 Loosely coupled code blocks for effective software salvage Heterogeneous network of Cells possible Auto cell discovery on in local Matrix

6 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 Dispatcher thread monitoring blocking queue and processing messages GUID as unique ID Switch-case for different message types

7 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

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

9 Athena Designer Components
myCanvas : provides hosting panel to create Cell Diagrams and does line routing between the Cell connections . diagramInfo: maintains information related to diagram constructed on canvas. codeGen: generates code compatiable with Visual Studio 2005 and later versions Next slide has more details (Screenshot) about line routing

10 Line Routing See: Chapter 4, page 54

11 Line Routing See: Chapter 4, page 55

12 Sample Cell Diagram See: Chapter 2, page 21

13 Project Templates See: Chapter 4, page 57
Original project file snippet Template to create emptyCell snippet <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" Version="8.00" Name=”emptyCell” ProjectGUID=”{BD2CE710-DEE2-4b4b-869F- 4B6E0CC612C8}” RootNamespace=”matrix” Name=" [ ! safe projectname ] " ProjectGUID=" { [ ! safe GUID ] } " RootNamespace="[!safe rootnamespace ] " See: Chapter 4, page 57

14 Code Generation Mapping between Cell Diagram and Visual Studio Solution See: Chapter 4, page 49

15 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

16 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 and display safe/unsafe process/port information. Executive block: host Sniffer block and communication block at server

17 Cell Diagram: Sniffer Server
See: Chapter 3, page 41

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

19 Generated Sniffer Application Project
See: Chapter 3, page 43

20 Instance of Sniffer Application
See: Chapter 3, page 45

21 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

22 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

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

24 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

25 Thank You


Download ppt "Model Driven Development using"

Similar presentations


Ads by Google