For me, model-driven methods of software development represent a promising direction of software engineering enabling, with help of transformation and code generation techniques, automatic and transparent preparation of various software artifacts. In the scope of this topic, I participate in development of a generic method generating code for software connectors, which also includes a definition of a extensible DSL called ElLang-J for writing connector code templates. Further, we proposed a step-by-step refinement of component-based application architectures to allow generation of domain-specific applications.
My current research is motivated by automatic preparation of domain-specific component systems based on product-line concepts.
Component-Based Software Engineering
From my point of view, component-based software engineering constitutes an integral part of current software development methods. Components are represented in different forms in various technologies including not only well-adopted component technologies like EJB, OSGi, but also programming languages, design tools, etc.
I consider CBSE as a way of assembling software artifacts of well-defined building blocks as well as a method of defining and preparing these blocks based on different types of models (structure, computation, behavior). The paradigm helps us to see software development in more understandable way with desired level of abstraction. I see the future of component-based development in tight coupling with various mode-driven techniques simplifying a process of preparing final software artifacts from the initial requirements.
Hence, in the scope of my PhD study I actively participate in development of the SOFA component system which serves as a testing platform for follow-up experiments including DSL support, code generation, model transformation or verification. And I also applied received knowledge in the scope of European Q-ImPrESS project.
Modeling various application domains brings a demand to express domain-specific concerns in the way which can be easily read and modified by domain experts and also which can be processed by different tools. The adopted efficient way of reflecting this demand is to design a domain-specific language determining a concrete syntax for describing the application model.
I started to work in the area of the domain-specific languages during my master study when I was working in the scope of the software connector generator project. I designed an extensible DSL for writing code-templates reflecting requirements of the software connectors domain . During my PhD study I participate in the process of designing a textual DSL for capturing requirements of Service Architecture Meta-Model as the part of the European Q-ImPrESS project. In my current work I try to focus on the collaboration of DSLs with runtime models to target evolution of application architectures as well as to verify this evolution.