<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9079309651501099229</id><updated>2024-09-01T12:50:37.626-05:00</updated><category term="JavaOne"/><category term="MDD"/><category term="NetBeans"/><category term="OMG"/><title type='text'>Model Driven Developers</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devblog.intelliun.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-1619047307532148766</id><published>2008-10-20T20:37:00.005-05:00</published><updated>2008-10-20T21:23:22.919-05:00</updated><title type='text'>VE 6.1 featured in NetBeans Webinar</title><content type='html'>We announced the release of VE 6.1 today (Press release &lt;a href=&quot;http://www.intelliun.com/Company/PressRoom/PressReleases?find=dXNlcnBvcnRhbC9mZXRjaC52P19vYmo9dmVfb2lkOnBvaWQ6dExjT3BiNlRiejJLb0xzU3A5TFBpTE1PcExjRW4wM0NuMCE=&quot;&gt;here&lt;/a&gt;).  It is primarily a point release that provides several usability enhancements and takes advantage of the latest features in &lt;a href=&quot;http://www.netbeans.com/&quot;&gt;NetBeans&lt;/a&gt; 6.1 IDE.&lt;br /&gt;&lt;br /&gt;In addition, VE 6.1 is also being featured in an on-demand, joint webinar hosted by NetBeans as part of the NetBeans 10th birthday (Congratulations to NetBeans on it&#39;s 10th Birthday !).  In this webinar, I demonstrate the capabilities of VE 6.1, built on NetBeans 6.1, and show you how VE simplifies the development of web based applications and web services using Model Driven Development approach.&lt;br /&gt;&lt;br /&gt;Intelliun&#39;s webinar is part of the NetBeans &lt;a href=&quot;http://www.netbeans.org/birthday/decathlon.html&quot;&gt;Decathlon &lt;/a&gt;- ten interactive tasks for the NetBeans community to show and share what NetBeans means to them.  You can watch the webinar by taking part in the decathlon or if you would like to just watch the webinar, you can find it &lt;a href=&quot;https://sun-developersondemand.webex.com/ec0600l/eventcenter/recording/recordAction.do;jsessionid=L94HBQ3QdpHyZQfkSNF1h20DPrhFzB2MhTK0KyyhDHjFsnFWn7nY%21504952347?theAction=poprecord&amp;amp;actname=%2Feventcenter%2Fframe%2Fg.do&amp;amp;renewticket=0&amp;amp;renewticket=0&amp;amp;apiname=lsr.php&amp;amp;actappname=ec0600l&amp;amp;cid=&amp;amp;entappname=url0106l&amp;amp;needFilter=false&amp;amp;&amp;amp;isurlact=true&amp;amp;rID=27564367&amp;amp;entactname=%2FnbrRecordingURL.do&amp;amp;rKey=A8D1349C1E32A6B6&amp;amp;recordID=27564367&amp;amp;siteurl=sun-developersondemand&amp;amp;rnd=7999840614&amp;amp;SP=EC&amp;amp;AT=pb&amp;amp;format=short&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You will also be able to download an evaluation copy of VE 6.1 platform later on this week from the &lt;a href=&quot;http://www.intelliun.com/Developers/Downloads&quot;&gt;Intelliun&lt;/a&gt; web site.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/1619047307532148766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1619047307532148766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1619047307532148766'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/10/ve-61-featured-in-netbeans-webinar.html' title='VE 6.1 featured in NetBeans Webinar'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-1471008632800242563</id><published>2008-09-30T12:56:00.002-05:00</published><updated>2008-09-30T13:48:41.603-05:00</updated><title type='text'>OMG September Technical Meeting</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNjn5BoCgoroAMjIF6q2n3Fsh7oN5GDQwIfitEqExT9g7DAfVJLbTjDecqi-otaQOfGbZrkN2HnGybz-8ugIBhaq6iE9MCk7DqD13C3Hc4ND7pms3XDsJuXUxi5gimfDLncD8cSTynmQk/s1600-h/omg-home.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNjn5BoCgoroAMjIF6q2n3Fsh7oN5GDQwIfitEqExT9g7DAfVJLbTjDecqi-otaQOfGbZrkN2HnGybz-8ugIBhaq6iE9MCk7DqD13C3Hc4ND7pms3XDsJuXUxi5gimfDLncD8cSTynmQk/s320/omg-home.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5251888204287667202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Intelliun is ramping up its participation in the Object Management Group, and as part of that effort I attended the &lt;a href=&quot;http://www.omg.org/news/meetings/tc/orlando/info.htm&quot;&gt;OMG September Technical Meeting&lt;/a&gt; in Orlando, Florida. The conference hotel was actually inside the Disney World property, but it was on the opposite side from the Magic Kingdom, and a busy schedule didn&#39;t allow time to go frolic with the mouse.&lt;br /&gt;&lt;br /&gt;Even without the full Disney experience, it was pretty fun. Aside from my presentation (a bit more on that below) there is exciting news on the Executable UML front, with the &lt;a href=&quot;http://www.omg.org/docs/ad/08-08-03.pdf&quot;&gt;Semantics of a Foundational Subset for Executable UML Models&lt;/a&gt; being recommended for adoption and an RFP for a &lt;a href=&quot;http://www.omg.org/docs/ad/08-08-01.pdf&quot;&gt;Concrete Syntax for a UML Action Language&lt;/a&gt; being recommened for issuance. The documents are slow-going, but I especially liked the appendix with a mapping of the formal semantics onto Java.&lt;br /&gt;&lt;br /&gt;My presentation at the MDA Users SIG was &lt;span style=&quot;font-style: italic;&quot;&gt;How MDD              Changes Software Development Processes&lt;/span&gt;. In short: you should be able to use your existing process (especially if it&#39;s an iterative approach), but there are some differences in scheduling, resource allocation and testing that you should probably take into account. I&#39;ll post the slides soon.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/1471008632800242563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1471008632800242563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1471008632800242563'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/09/omg-september-technical-meeting.html' title='OMG September Technical Meeting'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNjn5BoCgoroAMjIF6q2n3Fsh7oN5GDQwIfitEqExT9g7DAfVJLbTjDecqi-otaQOfGbZrkN2HnGybz-8ugIBhaq6iE9MCk7DqD13C3Hc4ND7pms3XDsJuXUxi5gimfDLncD8cSTynmQk/s72-c/omg-home.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-482620760231850424</id><published>2008-05-16T15:47:00.006-05:00</published><updated>2008-05-16T16:39:01.161-05:00</updated><title type='text'>JavaOne 2008 : Gee whiz mister, that&#39;s kinda neat.</title><content type='html'>I&#39;ve been using VE for long enough that the &quot;gee whiz&quot; feeling has worn off, but seeing people react to the demos I did at JavaOne brought it all back.&lt;br /&gt;&lt;br /&gt;There were a couple of features people responded to especially strongly. The simplicity of getting a model-driven application up and running was one of the biggies. I suspect people have been conditioned to think &quot;model driven&quot; means &quot;long term benefits at the cost of a nasty short term learning curve&quot;. It was fun showing how you can going in just a couple of minutes.&lt;br /&gt;&lt;br /&gt;Web developers liked the continuation[1]-based workflows that let you specify a complex linked set of interactions without having to do your own state management or routing, and everybody got a kick out of the &quot;execute&quot; button that lets you run the model even if you&#39;ve just specified a couple of incomplete classes.&lt;br /&gt;&lt;br /&gt;OK, evidently when I&#39;m enthusiastic I write stuff that reads like a sales brochure, but if you can get past that definitely check out the continuations-based stuff. It means your web application code looks like ordinary desktop application code (do something, get some input, based on input decide to get more input, etc). It doesn&#39;t hit you how much easier that approach is until you have to go back to coding the usual way. It&#39;s probably worth a whole blog post just on that.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href=&quot;http://en.wikipedia.org/wiki/Continuation#Continuations_in_Web_development&quot;&gt;http://en.wikipedia.org/wiki/Continuation#Continuations_in_Web_development&lt;/a&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/482620760231850424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/482620760231850424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/482620760231850424'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/05/ive-been-using-ve-for-long-enough-that.html' title='JavaOne 2008 : Gee whiz mister, that&#39;s kinda neat.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-7671704006070671747</id><published>2008-05-14T18:35:00.001-05:00</published><updated>2008-05-15T10:21:12.503-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaOne"/><category scheme="http://www.blogger.com/atom/ns#" term="MDD"/><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans"/><category scheme="http://www.blogger.com/atom/ns#" term="OMG"/><title type='text'>Intelliun @ JavaOne 2008 (Continued)....</title><content type='html'>&lt;p class=&quot;MsoNormal&quot;&gt;JavaOne 2008 is over and thanks to all the folks that visited us at our booth, it’s been a great success ! &lt;span style=&quot;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;At the show, we’ve announced the release of The Virtual Enterprise 6.0 Beta (link to the press release).&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;VE 6.0 is the latest generation of The Virtual Enterprise product suite, packed with a host of new features and enhancement(&lt;a href=&quot;http://www.intelliun.com/Company/PressRoom/PressReleases?find=dXNlcnBvcnRhbC9mZXRjaC52P19vYmo9dmVfb2lkOnBvaWQ6dExjT3BiNlRiejJLb0xzU3A5TFBpTE1PcExjRXMwSkM=&quot;&gt;Press release&lt;/a&gt;).&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;Response to our product features and demo at the booth has been terrific and it was great to see the interest and enthusiasm expressed by the developer community.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;We had a lot of traffic at the booth and hopefully all of you had an opportunity to watch the demo and experience the simplicity and productivity offered by VE 6.0 in building enterprise class business applications and web services.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;In case any of you didn’t get a chance to see the demo in person, here is the &lt;a href=&quot;http://www.intelliun.com/Products/OnlineDemonstrations/Flash?find=dXNlcnBvcnRhbC9mZXRjaC52P19vYmo9dmVfb2lkOnBvaWQ6dExjT3BiNlRiem9Ka25NUWtMNkhicnNSdzgzQ24wIQ==&quot;&gt;link&lt;/a&gt; to the demo from our web site.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;The new beta release will be publicly available for download shortly – so keep an eye out for updates regarding that in the next few days.&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;Intelliun is now an official strategic partner of NetBeans !&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;We are quite excited to be a NetBeans partner and look forward to a mutually rewarding partnership between Intelliun and NetBeans.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;VE/Designer 6.0 is built on top of NetBeans 6.1 IDE and leverages many great features and extensibility offered by the NetBeans platform.&lt;span style=&quot;&quot;&gt;  &lt;/span&gt;If you were at CommunityOne on May 5, you might have seen our CEO, Iyad Jabri, giving a lightning talk on Service Oriented development using MDD during one of the lightening talk sessions.&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;In addition, Intelliun is now a member of OMG and I fully expect Intelliun to be involved and contribute to the model driven development initiatives undertaken by OMG moving forward.   &lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/7671704006070671747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/7671704006070671747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/7671704006070671747'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/05/intelliun-javaone-2008-continued.html' title='Intelliun @ JavaOne 2008 (Continued)....'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-6956212100676574259</id><published>2008-05-04T19:15:00.002-05:00</published><updated>2008-05-05T00:19:30.712-05:00</updated><title type='text'>Intelliun @ JaveOne 2008</title><content type='html'>The Intelliun team will be in Booth # 640 on the pavilion floor at the JavaOne 2008 conference, scheduled to to start on Tuesday (May 6, 2008).  Please do stop by the booth and visit us if you are going to be at the conference this year.  In addition to watching a demo on how to build business applications and web services in a matter of minutes using Model Driven Development, you might win some cool give aways ! &lt;br /&gt;&lt;br /&gt;Also, don&#39;t miss the lightning talk session on building service oriented business applications using model driven development by an Intelliun team member during CommunityOne sessions on Monday, May 5, 2008.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/6956212100676574259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/6956212100676574259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/6956212100676574259'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/05/intelliun-javeone-2008.html' title='Intelliun @ JaveOne 2008'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-5033552319038912187</id><published>2008-04-02T20:30:00.000-05:00</published><updated>2008-04-02T20:31:10.412-05:00</updated><title type='text'>What is MDD? (Part 3)</title><content type='html'>Executable Models is one of the approaches for MDD. This post concentrates specifically on UML-based models. The idea is to use the minimum but necessary set of models to capture the domain logic, and make it immediately executable without further coding, compilation, and deployment.&lt;br /&gt;&lt;br /&gt;As a quick background to set the context, developing a piece of software (whether done formally or informally) starts with capturing the functional requirements, analyzing it to better understand the problem and identify wholes and contradictions, then developing the abstract design to prescribe a solution to the problem independent of the underlying technologies and target architecture. The non-functional requirements are used for developing the target architecture including specifying the involved technologies, approach, patterns, etc. The marriage between abstract design and architecture results in the detailed design that can be coded, compiled and executed.&lt;br /&gt;&lt;br /&gt;Accordingly, if you specify the target architecture upfront, then you’re able to automate the process of going from the abstract design to details design, coding and compilation. And, with a little of dynamic loading techniques, you can also eliminate deployment and blur the line between development and runtime.&lt;br /&gt;&lt;br /&gt;So this takes care of the executable part. Now for the minimum but necessary set of models, a close study of any object-oriented programming language would reveal that it offers three constructs for development: static constructs like a class definition, dynamic constructs like the implementation of an operation with various flow-of-control statements (e.g. if-then-else, looping, etc.), and an expression syntax. Accordingly, if we identify the equivalent models in UML then we’re equally able to develop any application.&lt;br /&gt;&lt;br /&gt;For the static construct, the UML Class Diagram is a great substitute for the text-based class definition code. You’re able to define one or more classes with their attributes, relationships to other classes, and operations (the declaration part only). For example, with a single line from one class to another, you’re able to specify the class member and type (including a typed-collection if it’s one to many), ownership (if any), the directionality (i.e. uni- vs. bi-directional), and visibility. And with a little bit of rule annotation, and you’re able to have a semantically complete model, that is ready to execute. A simple diagram that takes minutes to draw and comprehend can easily replace pages of code.&lt;br /&gt;&lt;br /&gt;As far as the dynamic model to provide the implementation of operations, the UML Activity Diagram has all of the elements necessary to capture the flow-of-control similar to code statements. The Activity element is used to capture simple expressions, and you’re ready to execute the model. The operation declaration provides the signature including in/out parameters, and the Activity Diagram captures activities to traverse and manipulate the state of instances of the object model including by calling operations on other objects. Granted that the Activity Diagram might get crowded, but if the developer is experienced, your operation implementations should have no more than two to six activities (common metrics for quality of OO code).&lt;br /&gt;&lt;br /&gt;Finally, expression syntax is very important. UML includes the Object Constraint Language (OCL), yet doesn’t prescribe a specific syntax. Regardless, pick your favorite expression syntax, say Java for example, add higher level operators that assist in the navigation and traversal of your object model, and you’re in compliance with OCL.&lt;br /&gt;&lt;br /&gt;Now if you strip out all interface (specifically user interface) and persistence logic and focus on the domain logic, your models using the above can be readily executable. This changes the development paradigm altogether, where you’re able to use very small increments to model different parts (use cases) of the application and execute it for a quick validation. If you don’t like the results, quickly change the model and hit execute! This has a huge productivity gain that go far beyond even Smalltalk with its ability to immediately execute the logic by highlighting it and clicking Run It.&lt;br /&gt;&lt;br /&gt;Going back to the interface logic, since it’s an important part of any application, the static model has the semantics necessary to render an instance of any class to a target client device (e.g. a web browser). If you limit the communication of an external entity (an actor) on the system to the execution of operations and the interchange of objects, you’re able to directly interact with instances of your model and validate the behavior of the system without any further coding. As far as personalizing the look and feel, there are many WYSIWYG approaches that can be used to control the rendering of an object instance to a specific look with a fraction of the time compared to normal development since you always start with the model (hence, no tedious wiring code).&lt;br /&gt;&lt;br /&gt;As far as persistence, the static model (Class Diagram) also has all the necessary semantics to drive the generation of the data model (that can be automatically deployed to a live database instance), along with the SQL statements and the Object-Relational Mapping to transform the data back and forth. OR-Mapping is mainstream today even for hand coded applications.&lt;br /&gt;&lt;br /&gt;This is getting to be a long post, so Part 4 will discuss the advantages and disadvantages of Executable Models.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/5033552319038912187' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/5033552319038912187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/5033552319038912187'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/04/what-is-mdd-part-3.html' title='What is MDD? (Part 3)'/><author><name>Iyad Jabri</name><uri>http://www.blogger.com/profile/06052301199538431532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-1408943752951847138</id><published>2008-03-18T15:48:00.005-05:00</published><updated>2008-03-18T15:55:55.035-05:00</updated><title type='text'>Why MDD Works (Part 2)?</title><content type='html'>I know it’s been a little while since Part 1, but I didn’t foresee the “writers strike”...just kidding. It has been incredibly busy and exciting here at Intelliun, and time just flew by. Hopefully I will be able to block weekly time to add to this blog on a moving forward basis.&lt;br /&gt;&lt;br /&gt;Picking up from where we left off, but before we get into the specifics of MDD, we need to take a closer look at programming, and analyze the types of code we usually write to develop a typical piece of software. If you strip out all of the standards, jargons and layers of complexity, you will find that code in any software falls into three categories: logic, interface and language/libraries.&lt;br /&gt;&lt;br /&gt;Let me explain. Logic is “what” you wanted the software to do in the first place, regardless of technology or the “how”. This is usually where you have the value add (behind the software) and the innovation. However, it would make for useless software if it cannot interface with any external entities.&lt;br /&gt;&lt;br /&gt;Interface code takes care of that problem. For example, if you want a human to interact with the logic, you have to build a user interface. If you need the logic to use another piece of software, you will have to build an interface, and so on.&lt;br /&gt;&lt;br /&gt;Language and libraries are necessary to make your development easier. Instead of building the logic from scratch, you can use a set of libraries that save you time. Also, programming language specific syntax can save you a lot of work compared to programming in machine code. One statement can replace a page worth of machine code, and the higher level of programming language (the higher level of programming abstraction), the higher the productivity.&lt;br /&gt;&lt;br /&gt;Here is a quick example to illustrate the above. To write a program in Java that would calculate the simple logic of adding two numbers, say 2 + 2, you would have to write:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color:#666666;&quot;&gt;public class TwoPlusTwo&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;public static void main( String args[] )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#3333ff;&quot;&gt;System.out.println(&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;2 + 2&lt;/span&gt; &lt;span style=&quot;color:#3333ff;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#666666;&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Where the gray code is your language/library code, the blue code is the user interface code, and the red code is the original desired logic.&lt;br /&gt;This should seem very obvious, but we don’t often think about it this way. It’s really important though so we can understand where we’re spending our programming time, and what we can change to make us more productive. Here are few opportunities for that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Raise the level of abstraction for the programming language focusing more on the what and not the how (declarative programming)&lt;/li&gt;&lt;li&gt;Provide richer libraries and programming syntax&lt;/li&gt;&lt;li&gt;Eliminate the need for interface code, maybe for 80% of the cases &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Model-Driven Development capitalizes on these opportunities, keeping the focus on the logic itself. The different flavors of MDD, however, follow different approaches of getting there at varying degrees of success. Part 3 will examine Executable Models in more details and how it capitalizes on these opportunities.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/1408943752951847138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1408943752951847138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/1408943752951847138'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/03/why-mdd-works-part-2.html' title='Why MDD Works (Part 2)?'/><author><name>Iyad Jabri</name><uri>http://www.blogger.com/profile/06052301199538431532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-7294741609554644583</id><published>2008-03-18T11:35:00.002-05:00</published><updated>2008-03-18T12:01:59.119-05:00</updated><title type='text'>Re-launch of Intelliun&#39;s Products group</title><content type='html'>After almost four years of focusing on professional services and helping several companies reap the benefits of Model Driven Development using &lt;b&gt;The Virtual Enterprise (VE)&lt;/b&gt;, Intelliun&#39;s Model Driven Development platform, I am excited that we are turning our attention back to the products group (Check out the related &lt;a href=&quot;http://www.intelliun.com/Company/PressRoom/PressReleases?find=dXNlcnBvcnRhbC9mZXRjaC52P19vYmo9dmVfb2lkOnBvaWQ6dExjT3BiNlRiejJLb0xzU3A5TFBpTE1PcExjRW8wWkM=&quot;&gt;press release&lt;/a&gt; and the brand &lt;a href=&quot;http://www.intelliun.com/&quot;&gt;new web site&lt;/a&gt;).  We are actively working on a new product release and a new product line offering.  Watch this space and our web site for more exiting product announcements in the next few months.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/7294741609554644583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/7294741609554644583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/7294741609554644583'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2008/03/re-launch-of-intelliuns-products-group.html' title='Re-launch of Intelliun&#39;s Products group'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-771979735388728658</id><published>2007-07-14T15:10:00.000-05:00</published><updated>2007-07-14T15:22:17.045-05:00</updated><title type='text'>Why MDD Works (Part 1)?</title><content type='html'>When I started Intelliun in 1999, I wanted to develop a radically new programming paradigm that allows a large number of developers to concurrently and independently build small applications. These applications can be quickly assembled to solve large and complex problems including business/enterprise, scientific and even mobile applications. In a matter of fact, the name Intelliun stood for INTELLIgent UNiverse, which is the environment to run intellets (i.e. small units of intelligence).&lt;br /&gt;&lt;br /&gt;I remember I was reading &lt;a href=&quot;http://www.amazon.com/Crossing-Chasm-Marketing-High-Tech-Mainstream/dp/0066620023&quot;&gt;&quot;Crossing the Chasm&quot; by Geoffrey A. Moore&lt;/a&gt;, and one of the things it warns against is starting a business that introduces a paradigm shift. I did agree with the rational, and I had another idea I also wanted to develop anyway. That idea was MDD (didn&#39;t use the term at the time though). I figured it would be much easier to promote and gain traction with MDD, but to my surprise, that was not the case.&lt;br /&gt;&lt;br /&gt;Around the middle of 2000, at JavaOne, we introduced VE 2.0 beta, our first public release of  &lt;a href=&quot;http://www.intelliun.com/technology/&quot;&gt;The Virtual Enterprise&lt;/a&gt;. The conference was a blast! We got a lot of interest and intrigue and generated many leads…after all we were still at the height of the dot com bubble. Following up on those leads, however, was a different story.&lt;br /&gt;&lt;br /&gt;Managers and business people loved us. We are demonstrating a technology that will radically cut their development time and cost, and help reduce their pain of hiring more highly scarce developers. Even ones that came up through the technical ladder were very impressed. I remember flying to NY with our VP of Sales and meeting with a director at Lockheed Martin that we were introduced to by a visitor to our booth at JavaOne. He brought in his chief architect, who was an older gentleman with many years of experience and the gray hair to prove it. I still remember the look on his face when he walked into the room.&lt;br /&gt;&lt;br /&gt;Here this little kid that is going to tell us how to develop software better. After all, he has seen it all, from punch cards to CASE tools to this new Java thing. Nevertheless, he patiently sat down and went through the presentation and the demo. At the end of the demo, he was so impressed that he stood up and shook my hand with both hands. He saw enough to accept that it can be done and that it was different.&lt;br /&gt;&lt;br /&gt;Developers, on the other hand, hated us. We got significant skepticism and push back, some because of job security and fear of change, but the majority was out of the lack of understanding. It seemed to them like a major leap from how they&#39;re developing applications, and even if it worked, it will only be able to handle simple applications.&lt;br /&gt;&lt;br /&gt;What I would like to do in the next couple of entries is to explain MDD from my point of view and demonstrate how it is really an incremental improvement and not a radical departure on current software development practices.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/771979735388728658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/771979735388728658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/771979735388728658'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2007/07/why-mdd-works-part-1.html' title='Why MDD Works (Part 1)?'/><author><name>Iyad Jabri</name><uri>http://www.blogger.com/profile/06052301199538431532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-3774796973204227779</id><published>2007-07-03T12:33:00.000-05:00</published><updated>2007-07-03T12:33:31.573-05:00</updated><title type='text'>Scaling Model Driven Development : Introduction</title><content type='html'>Demos for software tools usually involve some sort of toy project so you can get up to speed with the environment and concepts without having to worry about the details of a complex application. Unfortunately, it&#39;s exactly those complex details that rise up to bite you when you adopt a new tool or process and try to use it on a real-world project.&lt;br /&gt;&lt;br /&gt;I&#39;m going to do a series of postings about the stuff you don&#39;t always notice in the demos, and how it can make the difference between a big mess and a clean scalable model.&lt;br /&gt;&lt;br /&gt;You know those scotch-taped-together wall-sized database diagrams with hundreds of tables and an impenetrable maze of relationships between them? Don&#39;t do that. There&#39;s nothing that says all your classes have to be on the same canvas. You can divide up analysis-level classes into packages exactly the same way you&#39;d divide your Java implementation classes into packages. The familiar principle of reducing coupling between packages applies to models.&lt;br /&gt;&lt;br /&gt;A totally standalone model has very low coupling but is otherwise pretty useless. After you divide up your model, you need to hook the pieces back together somehow. But if you just add back in direct relationships then you&#39;ve simplified the visual design but not the underlying complexity.&lt;br /&gt;&lt;br /&gt;In the next post in this series I&#39;ll talk about the kinds of coupling that should be allowed between pieces of the model, and the specific modeling artifacts that allow you to incrementally add complexity without breaking previous work. Hopefully it will all lead up to some posts of how to write reusable models, but it depends on how ambitious I&#39;m feeling.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/3774796973204227779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/3774796973204227779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/3774796973204227779'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2007/06/scaling-model-driven-development.html' title='Scaling Model Driven Development : Introduction'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-4245633521090860810</id><published>2007-06-28T09:37:00.000-05:00</published><updated>2007-06-29T10:23:29.898-05:00</updated><title type='text'>What is MDD?</title><content type='html'>&lt;p&gt;Model Driven Development is a software development approach that raises the level of abstraction or method of programming from textual code to visual models, with a great emphasize on focusing the developer concerns on the problem domain and less on the underlying technologies.&lt;/p&gt;&lt;p&gt;The evolution of programming languages from machine languages (1GL) to assembly (2GL) to the ever evolving human-understandable languages (3GL) like Basic, COBOL, Pascal, C, C++, Java and C#, all focus on making programming simpler, quicker and easier to understand and maintain. This is accomplished by raising the level of abstraction by&lt;/p&gt;&lt;ul&gt;&lt;li&gt;providing more semantically rich vocabularies to accomplish common and repetitive tasks (i.e. patterns),&lt;/li&gt;&lt;li&gt;shifting programming from imperative to more declarative constructs (i.e. focusing on the what and less than on the how)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;4GL’s took a detour by focusing on data-oriented (or database) applications and introduced artificial and often proprietary artifacts like forms and tables to capture these common and repetitive tasks and provide more declarative constructs. 4GL’s did very well on the presentation (user interface) and persistence (database) layers, but fell short on the application logic layer. They simply didn’t have a continuous paradigm that spans the different aspects of programming artifacts.&lt;/p&gt;&lt;p&gt;5GL, describing visual programming languages, had limited success in the past, which contributed to the misconceptions surrounding visual programming. The failures of 5GL had nothing to do with the visual aspect of 5GL and all to do with:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the lack of a standard and ubiquitous modeling notation&lt;/li&gt;&lt;li&gt;high complexity of the visual models&lt;/li&gt;&lt;li&gt;proprietary architectures&lt;/li&gt;&lt;li&gt;high price points (or vendor business models in general)&lt;/li&gt;&lt;li&gt;limited availability of high-end computing horsepower required to operate&lt;/li&gt;&lt;li&gt;heavy focus on code generation&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Today, with the wide adoption of UML as a standard notation for expressing application logic, the convergence of software architectures and the great advancements in computing power and memory, the perfect storm is forming to make MDD the first mainstream 5GL.&lt;/p&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/4245633521090860810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/4245633521090860810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/4245633521090860810'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2007/06/what-is-mdd.html' title='What is MDD?'/><author><name>Iyad Jabri</name><uri>http://www.blogger.com/profile/06052301199538431532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9079309651501099229.post-4077580348632796027</id><published>2007-06-21T17:28:00.000-05:00</published><updated>2007-06-29T10:24:54.235-05:00</updated><title type='text'>Welcome to MDD</title><content type='html'>Welcome to the Model Driven Developer blog by &lt;a href=&quot;http://www.intelliun.com/&quot;&gt;Intelliun&lt;/a&gt;. After years of pushing the envelope in Model Driven Development (MDD), both as a technology vendor and a user of the technology, we felt that we&#39;ve accumulated a wealth of experience and lessons that we would like to share with the greater development community.&lt;br /&gt;&lt;br /&gt;Yes, you will hear about our company and products, but mostly this blog is about sharing ideas about MDD, Object-Oriented development, and Software Engineering in general. We will talk about processes, architectures and patterns; solve real-life problems using MDD; and discuss some of the misconceptions and skepticism surrounding MDD.&lt;br /&gt;&lt;br /&gt;Combining the increased complexity in software development, increased demand for web services and applications, and the limited supply of developers, we believe that MDD is the next inevitable evolution in software development. We applied it to many projects and reaped the productivity rewards, worked out a lot of the kinks, and with your collaboration are going to push MDD into mainstream software development.&lt;br /&gt;&lt;br /&gt;The development team here at Intelliun and I are very excited about this blog and we hope that you find it educational, informative and engaging.</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9079309651501099229/4077580348632796027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/4077580348632796027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9079309651501099229/posts/default/4077580348632796027'/><link rel='alternate' type='text/html' href='http://devblog.intelliun.net/2007/06/welcome-to-mdd.html' title='Welcome to MDD'/><author><name>Iyad Jabri</name><uri>http://www.blogger.com/profile/06052301199538431532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>