<?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: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-4186549173888246432</id><updated>2012-01-17T22:54:15.660-08:00</updated><category term='reject operation'/><category term='Bag'/><category term='WebRatio'/><category term='QVT Relations'/><category term='MVC'/><category term='EMF'/><category term='transformation'/><category term='Model Driven Architecture'/><category term='UI'/><category term='bidirectional'/><category term='PSM'/><category term='Collection'/><category term='Set'/><category term='Platform'/><category term='World Wide Web'/><category term='Web Development'/><category term='CIM'/><category term='Eclipse'/><category term='append operation'/><category term='Separation of Concern'/><category term='Tools'/><category term='QVT'/><category term='QVT Operations'/><category term='AndroMDA'/><category term='PIM'/><category term='OCL'/><category term='Meta-Model'/><title type='text'>Model Driven Development of Web Information Systems</title><subtitle type='html'>I'm a PhD candidate in computer Science at the University of Ottawa working on automated methods to generate web information systems. This weblog elaborates my work and realted background/literature in the era.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-2399203365188864894</id><published>2011-07-06T12:05:00.001-07:00</published><updated>2011-07-06T12:06:53.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QVT Operations'/><category scheme='http://www.blogger.com/atom/ns#' term='QVT'/><category scheme='http://www.blogger.com/atom/ns#' term='transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='QVT Relations'/><title type='text'>QVT Operations vs. QVT Relations</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 17px; line-height: 19px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 13.0pt; line-height: 115%;"&gt;According to OMG [1], there are two ways of expressing transformations: operations and relations. Both types are equivalent [1], [2]. The only difference is that the operational mappings provide a procedural way of expressing transformations while relational transformations are declarative. Both relational and operational transformations are equally powerful and the final selection is only affected by the skills and interests the developer(s) may have as well as the existing tool support. The operations language has received more attention because it tends to be similar to the conventional programming languages. The relations language, however, has the advantage of making the development of reverse transformations easier [3].&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif;"&gt;  &lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; line-height: 115%;"&gt;[1] OMG, MOF QVT Specification, www.omg.org/spec/QVT/1.0/PDF/, 2008-04-03&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; line-height: 115%;"&gt;[2] Romeikat, R., Roser, S., Müllender, P., Bauer, B. “Translation of QVT relations into QVT operational mappings” In the proceedings of the 1st International Conference on Model Transformations, ICMT 2008. 137-151&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.0pt; line-height: 115%;"&gt;[3] P. Stevens, A Landscape of Bidirectional Model Transformations, Generative and Transformational Techniques in Software Engineering II: International Summer School, GTTSE 2007, Pages: 408 – 424&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-2399203365188864894?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/2399203365188864894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=2399203365188864894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/2399203365188864894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/2399203365188864894'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2011/07/qvt-operations-vs-qvt-relations.html' title='QVT Operations vs. QVT Relations'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-8591981546609908177</id><published>2010-12-14T22:08:00.000-08:00</published><updated>2010-12-14T22:08:33.094-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Separation of Concern'/><title type='text'>Model-View-Controller</title><content type='html'>&lt;div class="MyText" style="text-align: justify;"&gt;&lt;span lang="EN-US"&gt;Model-View-Controller (MVC) is an architectural pattern widely used in research and practice of software development. MVC is based on the idea of separation of concern in terms of the presentation of an application from what happens behind as the logic of the application. Later, MVC was extended to cover data access and services layer and since then it has been used in web development practices by most of the industrial frameworks such as&amp;nbsp;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10.5pt; mso-ansi-language: EN-CA; mso-bidi-font-size: 12.0pt; mso-bidi-language: AR-SA; mso-fareast-font-family: SimSun; mso-fareast-language: AR-SA; mso-font-kerning: .5pt;"&gt;ASP.NET, ColdFusion on Wheels, Apache Struts, Java Server Faces (JSF), JBOSS Seams, Spring, Ruby on Rails, Aida/Web and Catalyst&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="MyText" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MyText" style="text-align: justify;"&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;Model&lt;/i&gt; contains the logic of the application while the &lt;i&gt;View &lt;/i&gt;component provides the presentation side. The &lt;i&gt;Controller &lt;/i&gt;may apply changes to both &lt;i&gt;Model &lt;/i&gt;and &lt;i&gt;View &lt;/i&gt;once it receives an event. Any change to the &lt;i&gt;Model &lt;/i&gt;side may also result in an appropriate change in the &lt;i&gt;View &lt;/i&gt;but changes in the &lt;i&gt;View &lt;/i&gt;do not necessarily affect &lt;i&gt;Model &lt;/i&gt;components.&lt;/span&gt;&lt;/div&gt;&lt;div class="MyText"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_dM5AgBRY3mE/TQhaxYU4TnI/AAAAAAAAAPE/OXkIYfxVjGI/s1600/MVC.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="163" src="http://3.bp.blogspot.com/_dM5AgBRY3mE/TQhaxYU4TnI/AAAAAAAAAPE/OXkIYfxVjGI/s320/MVC.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;MVC Pattern&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MyText" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman', serif; font-size: 16px;"&gt;In order to understand the MVC model as applied to web applications properly, one needs to realize that the most important issue for designing a web application is the separation of presentation and content. While the presentation shows the data and information, the presented content shall not be confused as a part of the &lt;i&gt;View&lt;/i&gt; component but it belongs to the &lt;i&gt;Model &lt;/i&gt;part.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-8591981546609908177?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/8591981546609908177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=8591981546609908177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8591981546609908177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8591981546609908177'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/12/model-view-controller.html' title='Model-View-Controller'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_dM5AgBRY3mE/TQhaxYU4TnI/AAAAAAAAAPE/OXkIYfxVjGI/s72-c/MVC.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-2683351175904299640</id><published>2010-11-08T07:44:00.000-08:00</published><updated>2010-11-08T07:44:37.672-08:00</updated><title type='text'>MODEWIS Toolset was a lot of programming ...</title><content type='html'>Well I've been trying to develop tools that help me out performing my research. The toolset is provided in this post. It's not user-friendly at all but supports my proof-of-concept. I did a lot of programming anyways; I used three languages: &lt;a href="http://www.omg.org/spec/QVT/1.0/"&gt;QVT Relations&lt;/a&gt;, Java and &lt;a href="http://visio.mvps.org/VBA.htm"&gt;Visual Basic for Applications (VBA)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The transformations were implemented using &lt;a href="http://www.ikv.de/index.php?option=com_content&amp;amp;task=view&amp;amp;id=75&amp;amp;Itemid=77"&gt;MediniQVT&lt;/a&gt;. In order to do this, we needed models in the form of &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;ECORE.&amp;nbsp;&lt;/a&gt;Thus, the Eclipse Modelling Framework (&lt;a href="http://www.eclipse.org/modeling/emf/"&gt;EMF&lt;/a&gt;) was used to generate the meta-models. In order to define the input, an open-source designer, &lt;a href="http://www.yworks.com/en/products_yed_about.html"&gt;yEd&lt;/a&gt;&amp;nbsp;was used. &lt;a href="http://site.uottawa.ca/~afato092/modewis_pim_generator.jar"&gt;A Java utility&lt;/a&gt; to transform the yEd files to EMF was created. Once the transformations are executed in MediniQVT, the output EMFs may be transformed to specific platforms using other utilities that perform file conversion transformations such as &lt;a href="http://site.uottawa.ca/~afato092/modewis_gwt_generator.jar"&gt;MODEWIS_GWT_Generator&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;a href="http://site.uottawa.ca/~afato092/modewis-proofread.vsd"&gt;A VBA module&lt;/a&gt; has been implemented under &lt;a href="http://office.microsoft.com/en-ca/visio/"&gt;Microsoft Visio&lt;/a&gt; to visualise the results of those transformations and hence to verify their correctness and validity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-2683351175904299640?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/2683351175904299640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=2683351175904299640' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/2683351175904299640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/2683351175904299640'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/11/modewis-toolset-was-lot-of-programming.html' title='MODEWIS Toolset was a lot of programming ...'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-3507861584046763531</id><published>2010-08-20T19:14:00.000-07:00</published><updated>2010-09-25T11:58:51.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QVT'/><category scheme='http://www.blogger.com/atom/ns#' term='AndroMDA'/><category scheme='http://www.blogger.com/atom/ns#' term='PIM'/><category scheme='http://www.blogger.com/atom/ns#' term='PSM'/><category scheme='http://www.blogger.com/atom/ns#' term='WebRatio'/><title type='text'>Automated Generation of Abstract Web Models using QVT Relations</title><content type='html'>Model-driven development (MMD) of web applications has become a popular subject. Transformations play a pivotal role in the implementation of MDD methods. QVT relations form one of the standards of formalizing model-driven transformations. In this document, three sets of QVT relations are presented. The first set transforms a high-level input model to an abstract web-specific model. The second and the third sets transform the abstract web model to specific web platforms.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/gview?a=v&amp;amp;pid=explorer&amp;amp;chrome=false&amp;amp;api=true&amp;amp;embedded=true&amp;amp;srcid=0B1mQV5IHrL2TZmRkNDEwZDUtMDc2Ny00NzBlLWEyMzctMTQyNTgzMjgyMzlm&amp;hl=en&amp;authkey=CL65kJAF&amp;amp;hl=en&amp;amp;hl=en&amp;amp;authkey=CIeE1foO&amp;amp;hl=en&amp;amp;embedded=true" style="width:400px; height:500px;" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-3507861584046763531?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/3507861584046763531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=3507861584046763531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/3507861584046763531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/3507861584046763531'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/08/automated-generation-of-abstract-web.html' title='Automated Generation of Abstract Web Models using QVT Relations'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-632515218356802923</id><published>2010-08-20T18:49:00.000-07:00</published><updated>2010-09-25T12:27:21.986-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>An Integrated Visual Language for Modeling Web UIs</title><content type='html'>The user interface (UI) of a web application is one of the most important aspects, which affects its usefulness and usability. Many developers use manual or computer-based sketches to specify the desired user interface of web applications; later, these may become UI prototypes. UI prototypes have been seen as tools of obtaining proof-of-concept for many years. Later, many IDEs such as Microsoft Visual Basic and Borland Delphi used means of generating code from UI prototypes. Recently, model-driven methods have started efforts towards obtaining fully executable code from UI models that are enriched with transformations tags and modeling stereotypes. Such methods could be greatly improved if enriched with visualized input model. Also, integrating these models with requirements helps obtaining software that is more satisfactory from the stakeholders’ viewpoint. In this document, we present a visual language for defining the UI prototype of web applications using symbols that integrate the requirements of appearance, flow, data and logic of the application.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/gview?a=v&amp;amp;pid=explorer&amp;amp;chrome=false&amp;amp;api=true&amp;amp;embedded=true&amp;amp;srcid=0B1mQV5IHrL2TZGU0ZDE1OWYtZGFmOS00MGIxLWJmMTItMDE4NGEyM2I4Yjhm&amp;hl=en&amp;authkey=CI_Ume4O&amp;amp;hl=en&amp;amp;embedded=true" style="width:400px; height:500px;" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-632515218356802923?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/632515218356802923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=632515218356802923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/632515218356802923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/632515218356802923'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/08/integrated-visual-language-for-modeling.html' title='An Integrated Visual Language for Modeling Web UIs'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-8594701186465916258</id><published>2010-02-25T19:35:00.000-08:00</published><updated>2010-02-26T15:25:26.970-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meta-Model'/><category scheme='http://www.blogger.com/atom/ns#' term='EMF'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>MetaModeling with Eclipse and a Restriction</title><content type='html'>&lt;div style="text-align: left;"&gt;This might sound stupid but I just found that when you meta-model with Eclipse Modeling Framework (EMF), you might really be bound to the number of children assigned to the root element. First &lt;a href="http://smv.unige.ch/technical-reports/pdfs/fa4b4af48f4c82a1f31611f32646d0b3.pdf"&gt;read this as an example&lt;/a&gt;. You should know, by now that, in order to create a meta-model in eclipse, one needs to have a root element, to which all other elements belong. This will serve as the context of the meta-model, which will be understood as the digram itself if you're building an instance of the meta-model using a diagram. You can of course add as many elements as your metamodel allows you but it seems that any instance model would only allow you 18 types of elements amongst all to be inserted in the target diagram. First figure shows the meta-model I've created in Eclipse and the second figure shows an instance model. As you can see not all children are listed in the add child menu. More specifically &lt;span style="font-style: italic;"&gt;hasTexts &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;hasCheckBoxes &lt;/span&gt;are missing. WOW!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dM5AgBRY3mE/S4dB1nsP17I/AAAAAAAAALI/1_JgGxI6ppA/s1600-h/WPIM+Meta-Model.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 303px; height: 320px;" src="http://3.bp.blogspot.com/_dM5AgBRY3mE/S4dB1nsP17I/AAAAAAAAALI/1_JgGxI6ppA/s320/WPIM+Meta-Model.jpg" alt="" id="BLOGGER_PHOTO_ID_5442391064143976370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dM5AgBRY3mE/S4dCCfXoQ9I/AAAAAAAAALQ/TRYWvl7iM6k/s1600-h/WPIM+Instance.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;" src="http://3.bp.blogspot.com/_dM5AgBRY3mE/S4dCCfXoQ9I/AAAAAAAAALQ/TRYWvl7iM6k/s320/WPIM+Instance.jpg" alt="" id="BLOGGER_PHOTO_ID_5442391285248312274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;P.S. I was lucky enough - and I am very delighted - that &lt;a href="http://www.blogger.com/profile/05000982591510437551"&gt;Ed &lt;/a&gt;found me here and provided a solution that helped me out of this situation. The solution is to turn the &lt;span style="font-style: italic;"&gt;containment &lt;/span&gt;feature of the child element from &lt;span style="font-style: italic;"&gt;false &lt;/span&gt;to &lt;span style="font-style: italic;"&gt;true&lt;/span&gt;. The mystery, however, is still going on because the first 18 elements' &lt;span style="font-style: italic;"&gt;containment &lt;/span&gt;feature are &lt;span style="font-style: italic;"&gt;false &lt;/span&gt;and yet they didn't suffer from the problem I mentioned. As for now, I'm going to keep the &lt;span style="font-style: italic;"&gt;containment &lt;/span&gt;feature on!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-8594701186465916258?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/8594701186465916258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=8594701186465916258' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8594701186465916258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8594701186465916258'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/02/metamodeling-with-eclipse-and.html' title='MetaModeling with Eclipse and a Restriction'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_dM5AgBRY3mE/S4dB1nsP17I/AAAAAAAAALI/1_JgGxI6ppA/s72-c/WPIM+Meta-Model.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-7213907894295283363</id><published>2010-01-17T21:13:00.000-08:00</published><updated>2010-01-17T21:23:26.210-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bag'/><category scheme='http://www.blogger.com/atom/ns#' term='OCL'/><category scheme='http://www.blogger.com/atom/ns#' term='Set'/><category scheme='http://www.blogger.com/atom/ns#' term='append operation'/><category scheme='http://www.blogger.com/atom/ns#' term='Collection'/><category scheme='http://www.blogger.com/atom/ns#' term='reject operation'/><title type='text'>Removing an Element from a Collection in OCL</title><content type='html'>You might have faced this problem. As you may know, there is the &lt;span style="font-style: italic;"&gt;append &lt;/span&gt;operation one may use to add an element to a collection (or Set, OrderedSet, Bag, ...). So for adding the element &lt;span style="font-style: italic;"&gt;elem &lt;/span&gt;to the collection &lt;span style="font-style: italic;"&gt;coll &lt;/span&gt;one would simply write &lt;span style="font-style: italic;"&gt;coll-&gt;append(elem)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Removing an element form a collection is not as straight as adding an element though. One workaround would be to query over the collection in order to create a new collection and to replace it with the existing one. Here is an example that uses the operation &lt;span style="font-style: italic;"&gt;reject&lt;/span&gt;. Suppose, the element &lt;span style="font-style: italic;"&gt;elem &lt;/span&gt;is going to be omitted from the collection &lt;span style="font-style: italic;"&gt;coll&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;coll=coll-&gt;reject(e|e=elem)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that the operation &lt;span style="font-style: italic;"&gt;reject &lt;/span&gt;does not directly drop the element but results in a collection of elements in the collection except for those that pass the condition. Therefore, the collection is required to be replaced with the resultant collection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-7213907894295283363?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/7213907894295283363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=7213907894295283363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7213907894295283363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7213907894295283363'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2010/01/removing-element-from-collection-in-ocl.html' title='Removing an Element from a Collection in OCL'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-695374046221470416</id><published>2009-04-17T15:28:00.000-07:00</published><updated>2009-04-17T15:34:36.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QVT'/><category scheme='http://www.blogger.com/atom/ns#' term='transformation'/><category scheme='http://www.blogger.com/atom/ns#' term='bidirectional'/><title type='text'>Bi-directional QVT Relations</title><content type='html'>&lt;div style="text-align: justify;"&gt;Ok! this post is a bit technical but it is still pretty understandable if you have the basic knowledge of computer science. QVT Relations [0] are one of the most popular languages used in the arena of model-driven development for writing transformations. However, the subject of bidirectional QVT transformations has not been seriously touched.&lt;br /&gt;&lt;br /&gt;- Why are bidirectional QVT relations important?&lt;br /&gt;It has been said by many authors [1, 2] that it is next to impossible to avoid manual intervention to the automatically generated application at least as the state of the art in the area of model-driven development imposes. Bi-directional relations are required to reflect changes in higher-level models automatically so that models do not become out of sync.&lt;br /&gt;&lt;br /&gt;- What bidirectional QVT relations are not?&lt;br /&gt;According to [3] a bidirectional QVT relation does not have to be bijective; that is it's not required that the transformations always result in the same model in either of the directions. In other words, the reverse order of the transformation does not necessarily need to result in the source model from where the existing target has been already generated when running the relation in straight order. The figure shows the difference.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_dM5AgBRY3mE/SekDjUYooSI/AAAAAAAAAGs/NyOFGQoK8Kc/s1600-h/QVT+Relations+bijective+versus+bidirectional+-+Ali+Fatolahi+-+April+2009.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 115px;" src="http://1.bp.blogspot.com/_dM5AgBRY3mE/SekDjUYooSI/AAAAAAAAAGs/NyOFGQoK8Kc/s400/QVT+Relations+bijective+versus+bidirectional+-+Ali+Fatolahi+-+April+2009.jpg" alt="" id="BLOGGER_PHOTO_ID_5325791939644662050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The other thing bidirectional transformations are not, is doubly-enforced relations. A QVT relation is normally projected from a source domain to a target domain. If the target of the relation is checked only, the engine will only check the target to see if it matches the required mapping, if not it would report an error but if the target is enforced any mismatch would result in the required change to make the target match the required pattern. A bidirectional relation does not need to be enforced in both directions. Being bidirectional doesn't have anything to do with the nature of the act that must be taken but only the fact that the mapping must be traceable in both directions.&lt;br /&gt;&lt;br /&gt;[0] OMG (Object Management Group), Meta-Object Facility (MOF) 2.0 Query/View/Transformation Specification, November 2005.&lt;br /&gt;[1] Bran Selic: The Pragmatics of Model-Driven Development. IEEE Software 20(5): 19-25 (2003)&lt;br /&gt;[2] Antonio Cicchetti, Davide Di Ruscio, Amleto Di Salle: Software customization in model driven development of web applications. SAC 2007: 1025-1030&lt;br /&gt;[3] Perdita Stevens   , A Landscape of Bidirectional Model Transformations, Generative and Transformational Techniques in Software Engineering II: International Summer School, GTTSE 2007, Pages: 408 - 424&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-695374046221470416?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/695374046221470416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=695374046221470416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/695374046221470416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/695374046221470416'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2009/04/bi-directional-qvt-relations.html' title='Bi-directional QVT Relations'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_dM5AgBRY3mE/SekDjUYooSI/AAAAAAAAAGs/NyOFGQoK8Kc/s72-c/QVT+Relations+bijective+versus+bidirectional+-+Ali+Fatolahi+-+April+2009.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-4751169219906534086</id><published>2009-02-23T21:15:00.000-08:00</published><updated>2009-02-23T21:17:29.914-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AndroMDA'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>AndroMDA</title><content type='html'>&lt;a href="http://www.andromda.org"&gt;AndroMDA &lt;/a&gt;is a model-driven development framework that provides facilities for application development in a model-driven manner. The framework is based on Maven. The process is composed of defining state machines representing use cases. Modeling is done at the PSM level. The transformation spans a PSM-to-Code mapping, which generates executable code. However, one needs to write customized code for a desired functionality. An advantage of the framework is its ability to work with different modeling tools, databases and web servers. It is also possible to define customized cartridges plugged into the environment in order to perform personalized transformations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-4751169219906534086?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/4751169219906534086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=4751169219906534086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/4751169219906534086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/4751169219906534086'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2009/02/andromda.html' title='AndroMDA'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-7609380879459339906</id><published>2009-01-14T17:23:00.000-08:00</published><updated>2009-01-14T17:27:38.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='WebRatio'/><title type='text'>WebRatio</title><content type='html'>This is a tool for model-driven development of web applications on tomcat. Working with this tool, you'd know how amazing model-driven development could be. It provides you nice graphical user interface to define almost everything in terms of models.The main idea is to define the web page and its elements as the data and appearance as well as other features regarding web applications. WebRatio is based on a web modeling language named WebML. Recently there has been efforts to adapt the suite with MDA and UML 2.x. WebRatio is available from &lt;a href="http://www.webratio.com/"&gt;www.webratio.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-7609380879459339906?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/7609380879459339906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=7609380879459339906' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7609380879459339906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7609380879459339906'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2009/01/webratio.html' title='WebRatio'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-397881886853226922</id><published>2008-12-06T18:04:00.000-08:00</published><updated>2008-12-07T19:01:41.612-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Platform'/><category scheme='http://www.blogger.com/atom/ns#' term='PIM'/><category scheme='http://www.blogger.com/atom/ns#' term='PSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Model Driven Architecture'/><title type='text'>Platform is a …</title><content type='html'>The notion of platform is one of the most confusing concepts in MDA. Platform could mean anything from a virtual Java machine to a very abstract sense of World Wide Web, from Windows operating system to Apache Tomcat server. As a matter of fact the flexibility of platform causes different understandings of both PIM and PSM – and eventually CIM. A decade ago, if you named something platform-specific, you’d mean a detailed model that describes every technological aspects of that thing. But in MDA it could be different.&lt;br /&gt;&lt;br /&gt;Consider Web as the Platform. This is a very general type of platform, something that I like to name Abstract Platform. Obviously models that describe the application in terms of this platform should be named PSM because they are Platfrom(=Web)-specific. But as you can guess, such a model does not support details related to any specific technology. For example, it would say page A contains a submit button B but does not specify if this button fires a Java Servlet or a .Net Server Page.&lt;br /&gt;&lt;br /&gt;Now If I get this Web-specific model but consider something else as my platform such as a J2EE environment; things would change dramatically. The model we already knew as a PSM turns out to be Platform(=J2EE)-independent in this new era. Instead, another model that I create (hopefully using an automated method) to contain J2EE-related details will play the PSM role. It could even be worse! Even this last PSM may be considered PIM if you use a conception of platform as an Oracle database server. Again you would need to add Oracle-related details to the model to create a PSM.&lt;br /&gt;&lt;br /&gt;Hence, it is critical and necessary for every research or practice in model-driven area to specify the accurate conception of Platform before going through further work. Alternatively, you may make everything easy by defining your platform as a combination of all the technologies you’ll implement. However, this is against the idea of MDA or at least what I call MDA!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_dM5AgBRY3mE/STsv82BzyNI/AAAAAAAAAFE/u6O6sWgypIA/s1600-h/The+Notion+of+Platform+in+MDA+-+Ali+Fatolahi+-+December+2008.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5276864110736427218" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 172px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_dM5AgBRY3mE/STsv82BzyNI/AAAAAAAAAFE/u6O6sWgypIA/s320/The+Notion+of+Platform+in+MDA+-+Ali+Fatolahi+-+December+2008.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-397881886853226922?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/397881886853226922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=397881886853226922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/397881886853226922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/397881886853226922'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2008/12/platform-is.html' title='Platform is a …'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_dM5AgBRY3mE/STsv82BzyNI/AAAAAAAAAFE/u6O6sWgypIA/s72-c/The+Notion+of+Platform+in+MDA+-+Ali+Fatolahi+-+December+2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-846606410212525226</id><published>2008-12-03T12:23:00.000-08:00</published><updated>2008-12-03T12:24:12.051-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIM'/><category scheme='http://www.blogger.com/atom/ns#' term='CIM'/><category scheme='http://www.blogger.com/atom/ns#' term='PSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Model Driven Architecture'/><title type='text'>CIM, PIM, PSM</title><content type='html'>A model is an abstraction of the real world. If we consider software as a real thing (is it?), the same abstraction may be applied to software applications. The real stuff is the code, which is a collection of binary, text or formal documents the once put in a platform may run. There could be various ways of abstracting software applications but the mechanism of MDA framework is as follows:&lt;br /&gt;&lt;br /&gt;Platform-Specific Model (PSM): The model may not be executed but it contain all required information regarding a specific platform that developers may use to implement the executable code.&lt;br /&gt;&lt;br /&gt;Platform-Independent Model (PIM): The model describes the behavior and structue of the application regardless of the implementation platform.&lt;br /&gt;&lt;br /&gt;Computation-Independent Model (CIM): The most abstract model in MDA framework, which represents the context and purpose of the model without any computational complexities.&lt;br /&gt;&lt;br /&gt;Later, I’ll discuss the most challenging concept of MDA being the notion of platform but as of now, please accept this example: A firm wants to implement a customer appreciation process. At the CIM level the process is defined as a representative contacting the customer by email, phone or letter. At the PIM level the mechanism that software application will do some parts of the job will be defined in terms of information and behavior models (the email and phone could be fully automated but the letter requires a clerk to mail the printed letter). At the PSM level, it will be identified that for example for implementing the email version developers will use JMail package and the corresponding sequence diagrams will be depicted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-846606410212525226?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/846606410212525226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=846606410212525226' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/846606410212525226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/846606410212525226'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2008/12/cim-pim-psm.html' title='CIM, PIM, PSM'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-7475471174358151514</id><published>2008-11-29T08:01:00.001-08:00</published><updated>2008-12-02T17:54:14.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Model Driven Architecture'/><title type='text'>MDA Framework</title><content type='html'>&lt;div&gt;Model driven development is based on the idea of shifting the focus of development from coding towards modeling. In ideal case, a developer will be able to generate a full application without writing a piece of code. However, in most cases we are still way behind such a full-automated approach, although we’re getting closer. Obviously, transformations play a critical role to manage the whole chain of development by generating what used to be manually created by programmers.&lt;br /&gt;&lt;br /&gt;Different approaches to model-driven development exist. Model-driven architecture was provided by OMG as a way of standardizing model driven development. Nowadays, basic terms and concepts of MDA are used globally and are well-known in the community. Following figure depicts MDA framework. I’ll discuss the nature of each level in upcoming comments. It’s based on dividing the collection of models into four sets that start from computation-independent models, going through, platform-independent models, reaching platform-specific models and finally code.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_dM5AgBRY3mE/STFn2I1Lf6I/AAAAAAAAAE8/S7GHZw4HeWc/s1600-h/MDAFramework-Ali+Fatolahi-Fall+2008.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5274110818408693666" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 168px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_dM5AgBRY3mE/STFn2I1Lf6I/AAAAAAAAAE8/S7GHZw4HeWc/s320/MDAFramework-Ali+Fatolahi-Fall+2008.png" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-7475471174358151514?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/7475471174358151514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=7475471174358151514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7475471174358151514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/7475471174358151514'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2008/11/mda-framework.html' title='MDA Framework'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_dM5AgBRY3mE/STFn2I1Lf6I/AAAAAAAAAE8/S7GHZw4HeWc/s72-c/MDAFramework-Ali+Fatolahi-Fall+2008.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-8020506095186486383</id><published>2008-11-26T08:31:00.000-08:00</published><updated>2008-12-02T17:53:27.544-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Developing Web-based Applications: Challenges</title><content type='html'>Well! There seems to be a great need for web-based development. But not so fast! There are problems, here’s a summary of the existing issues:&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Requirements-related issues&lt;/strong&gt;: As in the case with other types of software systems the process of reflecting business requirements within the context of lower-level design and implementation models is a challenging process for web-based applications.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Technology-related difficulties&lt;/strong&gt;: These mainly refer to the variety of technologies on the web and challenges related to configuring applications to adapt with existing platforms. The diversity of technologies and the quick rate of incoming new technologies also affect the cost and time of web development because of the need to learn new technologies and processes.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Architecture-related challenges&lt;/strong&gt;: Lack of standard architectures makes it difficult for developers to build robust applications. Most of the current architectural patterns and standards including &lt;a href="http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html"&gt;Model-View-Controller (MVC)&lt;/a&gt; come from a transactional or stand-alone background and have insufficiencies to support modern web-based development. Furthermore, due to the rapid change of technologies and of customers needs, web-based applications require a great deal of flexibility that can cause high maintenance cost and failures.&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;Process-related problems&lt;/strong&gt;: These challenges come from the lack of mature processes and tools for web-based development. Such processes must address the characteristics of web-based applications and provide a set of guidelines for developers to facilitate the development process. Current methods mainly originate from general software engineering approaches and are not customized for web-based development. This results in repetitive tasks that could actually be avoided or automated. As a result, the final process is costly, error-prone and time-consuming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-8020506095186486383?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/8020506095186486383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=8020506095186486383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8020506095186486383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/8020506095186486383'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2008/11/developing-web-based-applications.html' title='Developing Web-based Applications: Challenges'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4186549173888246432.post-4484029539855497042</id><published>2008-11-22T11:06:00.001-08:00</published><updated>2008-12-02T17:52:14.264-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='World Wide Web'/><title type='text'>How big is web?</title><content type='html'>This blog is dedicated to elaborate my research in model-driven development of web information systems. We know there are so many web pages out there and it’s a very good reason to be working on better methods to develop them but how many are exactly there? Some nice measures are here: In July 2008, &lt;a href="http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html"&gt;Google announced&lt;/a&gt; that the number of pages their servers marked has reached the magnificent number of 1 trillion, 1,000,000,000,000! &lt;a href="http://news.netcraft.com/archives/web_server_survey.html"&gt;Netcraft &lt;/a&gt;is another guy in the town counting web pages. They keep consistent stats regarding web. They send regular messages to web servers around the net and this month there has been 185,167,897 responses, amongst which they estimate less than 74,400,000 be active unique web servers. This is roughly more than 2.5 million new pages in a month! The numbers talk for themselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4186549173888246432-4484029539855497042?l=modewis.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://modewis.blogspot.com/feeds/4484029539855497042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4186549173888246432&amp;postID=4484029539855497042' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/4484029539855497042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4186549173888246432/posts/default/4484029539855497042'/><link rel='alternate' type='text/html' href='http://modewis.blogspot.com/2008/11/how-big-is-web.html' title='How big is web?'/><author><name>Ali Fatolahi</name><uri>https://profiles.google.com/105182486812676181575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-q9vki0XqJAs/AAAAAAAAAAI/AAAAAAAAAXU/IXQPPGCCXCo/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry></feed>
