Abstract:
Model bir sistemin ya da sistem parçasının soyut halidir ve modeller aracılığı ile sistemlerin daha yüksek soyutlama seviyelerinden kontrolleri ve yönetimleri sağlanır. Model Yönelimli Mimari (MDA) yazılım süreçlerindeki tüm aşamaları tek bir görsel model üzerinden yürütmeyi amaçlayan ve standartları Object Management Group (OMG) tarafından belirlenen bir mimaridir. MDA ile birlikte yazılımdaki soyutlama seviyeleri tarihindeki en yüksek noktaya gelmiş bulunmaktadır. MDA yazılımdaki soyutlama seviyelerini birden fazla seviyeye bölerek, her bir seviyenin kendine has problemler ile ilgilenmesi fikrini getirmiştir. Bu soyutlama seviyeleri en soyuttan en az soyuta olacak şekilde şöyle sıralanabilir: bilgisayar bağımsız model (CIM), platform bağımsız model (PIM), platform bağımlı model (PSM)._x000B_Görsel modellemedeki gelişmeler bir yana, şu aşamada halen mevcut programlama yaklaşımları ile modüler biçimde çözülemeyen problemler bulunmaktadır. Bu problemlerin mevcut programlama yaklaşımları ile çözümünde, mevcut uygulama tekrarlayan kod bloklarından dolayı karışık ve anlaşılması zor bir hal almaktadır. Bu problemlere enine kesen (cross-cutting) problemler denmektedir. İlgi Yönelimli Programlama (AOP), bu türden problemlerin yazılım seviyesinde modüler biçimde çözümü için etkili mekanizmalar içermektedir. Bu mekanizmalara birleşim noktaları, birleşim nokta kümeleri, tavsiyeler, ilgiler, ilgi dokuyucuları örnek olarak gösterilebilir. AOP yaklaşımını gerçekleştiren en yaygın ve hakim programlama dili AspectJ dilidir. Bu dil aracılığı ile, mevcut uygulamayı enine kesen problemlerin çözümü kodda karışıklık sağlamayacak şekilde yapılabilmektedir._x000B_İlgi yönelimli programlama ile ilgili çalışmaların sadece programlama dilleri seviyesinde kalmasından dolayı, programlama dillerine göre bir üst soyutlama seviyesinde yer alacak olan, ilgilerin görsel olarak modellenmesi konusuna yeterli ilgi gösterilmemiştir. Bu konu ile ilgili çeşitli çalışmalar bulunmakla birlikte, standartlaşmanın henüz olmamasından dolayı, bir üründe üretilen bir modelin başka bir üründe kullanılmasında zorluklar yaşanmaktadır. Bu durum da, ilgilere yönelik modellemenin ilerlemesine engel oluşturmaktadır. Model is an abstraction of a system or a part of it and provide us a way to control and manage systems from higher abstraction levels. Model Driven Architecture (MDA) is a framework defined by Object Management Group (OMG) to use visual models as a single resource for software developers. Abstraction levels has reached the highest point in software industry with the evolution of MDA framework. MDA defines some abstraction levels in models where each level corresponds to a different concern. Abstraction levels from the highest to the lower can be listed as follows: Computation Independent Model (CIM), Platform Independent Model (PIM) and Platform Specific Model (PSM)._x000B_Aside from modeling, there are still programming problems, which are named cross-cutting concerns, that can not be solved clearly using traditional programming techniques such as Object Oriented Programming (OOP). Aspect Oriented Programming (AOP) approach provides some mechanisms to solve these cross-cutting concerns in a more effective and modular way. Aspect-oriented constructs: join point, pointcut, advice, aspect, aspect weaver make it possible to better program cross-cutting concerns. AspectJ is the most popular general purpose AOP implemention which offers a great deal of power and improved modularity._x000B_Because the most attention is being made on the programming languages level (AspectJ, Hyper/J ... etc ) in AOP environment, this has been an hindrance on the evolution of Aspect Oriented Modeling (AOM) which aims to make modeling of aspects in an easy and effective way. AOM is still in process and there are works for AOM which focus on techniques for the identification, analyses, management and representation of cross-cutting concerns in the modeling phase. Because solutions from different tool vendors are different than each other, this hinders the full adoption of Aspect Oriented Modeling to the software modeling area.