Bedir Tekinerdogan
Bilkent University
Department of Computer Engineering-
Software Engineering

Research
Education
Background
Professional Activities
Projects
Publications
Personal
Address

Bilsen

 

 

 

 

 

 

 

Research

I have more than twenty years of experience in research in different topics of software engineering, and hence have gained a broad vision about the state-of-the-art and the overall research directions. My key focus has been primarily on software design, and in particular software architecture design. Below I explain in more detail my research activities in my career together with my aimed research vision and directions. The topics and the relation among these topics are shown in Figure 1.

 

Figure 1. Some of the important research topics in my career

 

In my early years of research within the software engineering group (TRESE) at the University of Twente in The Netherlands I have focused on different aspects of object-oriented software engineering including object-oriented programming, object-oriented design, object-oriented design patterns, object-oriented frameworks and method engineering. We were one of the first groups in the world who applied object-oriented frameworks, object-oriented design patterns and domain-driven design.

 

In my research activities related to object-oriented software engineering I have also focused on the obstacles and the need for better programming language and design abstractions. In this context, I have collaborated on the design and realization of the so-called composition filters approach, which aimed to solve the modularity problems in object-oriented programming, and which is one of the primary approaches for aspect-oriented software development.

 

Aspect-oriented software development is an important software development paradigm to enhance the software modularity and likewise the overall quality of software systems. I have both practical and in-depth theoretical knowledge on aspect-oriented software development including aspect-oriented programming, aspect-oriented design, aspect-oriented architecture, and aspect-oriented requirements. Based on my background on both aspect-oriented software development and software architecture design I did research on identifying and modeling crosscutting concerns (aspects) at the software architecture design level. I developed an approach for identifying aspects and modeling aspects at the architecture design level.

 

An important focus in my career has always been software architecture design in which I did research on different topics including, software architecture modeling, software architecture design methods software architecture analysis, model-driven software architecture and middleware architectures. I have defined a novel approach on software architecture design, called synthesis-based architecture design approach that integrates domain-driven approaches and the synthesis concepts that we know from mature engineering disciplines. We have successfully applied this method in architecting many software systems in different large software companies such as Embedded Systems Institute, Philips Research, Philips Semiconductors, Thales, Siemens, Aselsan, TAI, Cybersoft, Milsoft, and Havelsan. I have also focused on designing, modeling and analyzing software architecture for quality concerns including adaptability, reliability, and safety.

 

I did research on architecting publish subscribe systems including High Level Architecture (HLA) and Data Distribution Service for Real-Time Systems (DDS) which are of primary importance for data centric applications such as in the defense industry. In this context we have defined an approach for depicting, analyzing and selecting feasible architecture deployment alternatives. In our research so far we have primarily focused on deriving feasible alternatives with respect to performance quality factor but we aim to focus also on multi-objective optimization including other quality factors such as fault-tolerance and safety to be used in the context of mission critical and safety-critical systems.

 

In the context of cloud computing I have focused on designing feasible design alternatives for Software as a Service (SaaS) architectures. We are now doing research  on trade-off analysis and optimization of cloud systems with respect to multiple quality factors.

 

The increasing size and complexity of software systems has resulted in the broadened scope of the products. In practice this has led to the notion of software product line engineering (SPLE) which aims to develop the products of a product portfolio using a systematic software reuse approach. In fact, concepts from industrial engineering are applied to support the industrialization and mass customization of software. I have worked on the topics of product line architectures, domain engineering, variability management for large scale systems, system product line engineering, multiple product line engineering, and software verification and validation of SPLE. I have also collaborated in unique large scale national projects on SPLE with Philips, Havelsan and Aselsan.

 

Global Software Development (GSD), is a software development approach that can be considered as the coordinated activity of software development that is not localized and central but geographically distributed. Together with the Turkish software industry I have worked on challenging research problems  in the context of GSD. Much useful work has been published in the literature of GSD approaching social aspects and intercultural communication. Complementary to this, we have focused on the technical aspects of GSD and considered the architectural design and evaluation of GSD systems. We have defined the required related architectural viewpoints and domain specific languages, and defined the analysis approaches. Initiated by industrial concerns, an important issue is the integration with software reuse that has led to the notion of global software product line engineering. From a business and strategic perspective we have defined a roadmap and vision report that can be used to introduce and support GSD in Turkey. 

 

In my research the notion of software modeling was always an important recurring issue. Historically, models have had a long tradition in software engineering and have been widely used in software projects. The primary reason for modeling is usually defined as a means for communication, analysis or guiding the production process. With the recent development in model-driven software development, models are considered to be executable which can be interpreted by model compilers and hence provide support for automatic transformations and analysis of the system. In my research on model-driven software development I have focused on software language engineering, domain specific languages, model transformations, model-driven architecture, model-based UI design, and model-driven high performance computing. I explored model-driven software development for defining executable architecture views and for model-driven software product line engineering. I also wish to focus on automated product generation, automated consistency analysis and model-based testing using architectural descriptions.

 

One of my recent research is also model-driven high performance computing in which we defined a model-driven approach for analyzing the mapping of parallel algorithms to parallel computing platforms. The majority of the work in this domain seems to focus on algorithmic issues. The papers that we published in this domain are pioneering in the sense that these aim to tackle high performance computing from a system engineering design perspective and likewise fill an important gap. One of the important lessons that we can derive from the research and practice in system development is that an overall system engineering approach is needed that aligns and integrates software, hardware and the organizational concerns to build systems that meet the overall functional and non-functional requirements. Likewise in my future research I aim to focus on system engineering in which my key concern will be again the (system) architecture design, modeling and analysis. Important topics in system engineering are system engineering design and analysis, systems-of-systems, software ecosystems, and crowd computing. These topics are not only important from an industrial perspective but also relate to challenging research questions that demand new language abstractions, techniques and methods.

 

I consider software verification and validation as an important topic in software engineering. With my research on software design and analysis we have necessarily entered in this domain to support quantitative analysis of both the code and the architecture. We have already some papers in this domain but in the near future I aim to tackle important aspects in software testing, run-time verification, model-checking, static analysis and model-based testing. In particular we will do this by using executable architecture description languages.  

 

To support the evidence for the proposed research outcome I have applied empirical software engineering approaches. In particular we have carried out systematic mapping study, systematic literature review and case study research. Further we plan to apply action research to selected projects.

 

I did many research projects in different industrial domains including enterprise systems, embedded systems, mission critical systems, safety critical systems and business critical systems. In this context my research was very often based on the industry-as-laboratory approach, which aims to identify relevant research problems and solutions through close interaction with the industry. I believe that this approach is fundamental for realizing frontier research that is relevant for the society.

 

I have published in all of the above discussed domains. Many publications will follow. Please check my publication list for this.

 

To be continued... :)