Browsing by Author "Ersoy, E."
Now showing 1 - 8 of 8
- Results Per Page
- Sort Options
Conference paperPublication Metadata only Data model extension impact analysis(IEEE, 2021) Ersoy, E.; Sözer, Hasan; Computer Science; SÖZER, HasanRelational database schemas are subject to change. For instance, columns of a table can be modified, deleted or extended. These changes have an impact on the source code that utilizes the corresponding table. They also have an impact on other database elements such as tables, views and stored procedures related to that table. Studies on change impact analysis so far mainly focus on the impact of changes on source code. There are a few tools that can analyze the impact of changes on database elements. However, these tools consider modifications and deletions, while ignoring extensions as a type of change. In this study, we propose an approach and a tool that can analyze the impact of data model extensions. Our approach involves the computation of a similarity score between each pair of tables in the database based on the unique column names defined in these tables. Tables that are similar to the extended tables beyond a threshold level are considered to be under impact. We perform an industrial case study to evaluate the accuracy of our approach and the effects of the threshold level on the accuracy of results.Conference paperPublication Metadata only Effort estimation for architectural refactoring of data tier software(IEEE, 2022) Ersoy, E.; Sözer, Hasan; Computer Science; SÖZER, HasanArchitectural refactoring requires substantial effort. We introduce an approach and a tool to predict this effort prior to refactoring. We focus on PL/SQL programs that are developed as data access tiers of business software. There are two types of common refactoring needs for these programs. First, some of the modules might need to be migrated to a separate database. Second, some of the modules in the data tier might need to be migrated to the application tier. In both cases, the refactoring effort is proportional to the amount of coupling between the migrated modules and the rest of the modules in the database. Our tool can parse PL/SQL programs to reveal this coupling based on an analysis of SQL queries. Unlike prior studies, our tool can analyze queries that are created dynamically and that use multiple tables as well as PL/SQL-specific features. We evaluate our approach with an industrial PL/SQL program from the telecommunications domain. Our results are approved to be accurate by domain experts.Conference paperPublication Metadata only Evaluating software architecture erosion for PL/SQL programs(The ACM Digital Library, 2017) Altınışık, M.; Ersoy, E.; Sözer, Hasan; Computer Science; SÖZER, HasanPL/SQL procedures are grouped into packages for providing modularity. These procedures are indirectly coupled due to their use of common database tables. We define a cohesion metric and cluster PL/SQL procedures based on this type of coupling. The metric and clustering results are used for evaluating divergence from modularity as a result of architecture erosion. A divergence is detected for each package by a combination of two criteria: i) calculated cohesion metric for the package and ii) the number of clusters that are associated with the package. Low cohesion and high number of clusters indicate low modularity. We performed an industrial case study with a large-scale legacy system from the telecommunications domain. The results turned out to be promising, where some procedures are identified to be misplaced in packages from the modularity perspective. We also observed that divergence from modularity is consistently represented by our metric.ArticlePublication Metadata only Extending static code analysis with application-specific rules by analyzing runtime execution traces(Springer International Publishing, 2016) Ersoy, E.; Sözer, Hasan; Computer Science; SÖZER, HasanStatic analysis tools cannot detect violations of application-specific rules. They can be extended with specialized checkers that implement the verification of these rules. However, such rules are usually not documented explicitly. Moreover, the implementation of specialized checkers is a manual process that requires expertise. In this work, application-specific programming rules are automatically extracted from execution traces collected at runtime. These traces are analyzed offline to identify programming rules. Then, specialized checkers for these rules are introduced as extensions to a static analysis tool so that their violations can be checked throughout the source code. We implemented our approach for Java programs, considering 3 types of faults. We performed an evaluation with an industrial case study from the telecommunications domain. We were able to detect real faults with checkers that were generated based on the analysis of execution logs.ArticlePublication Metadata only A longitudinal case study on Nexus transformation: Impact on productivity, quality, and motivation(Wiley, 2023-09) Ersoy, E.; Çallı, E.; Erdoğan, B.; Bağrıyanık, S.; Sözer, Hasan; Computer Science; SÖZER, HasanThere have been success stories reported regarding the adoption of agile software development methods in the industry. There also exist observations on their limitations. One of these limitations is scalability since agile methods like Scrum were originally designed for small software teams. Scalable agile frameworks were introduced to address this limitation. We conducted an industrial case study on the adoption of such a framework, called Nexus. Our study involves quantitative and qualitative evaluation based on observations within a product development organization over a period of 12 months. Scrum is used for the development of a product during the first 6 months of this period. Nexus is used in the remaining 6 months. Data are collected throughout the whole period for measuring productivity, quality, and team member motivation. Results suggest a significant increase in productivity and product quality after switching to Nexus. Team motivation was slightly improved as well.Conference paperPublication Open Access PL/SQL programları i̇çin veri tabanı bağımlılık analizi(CEUR-WS, 2017) Ersoy, E.; Altınışık, M.; Sözer, Hasan; Computer Science; Turhan, Ç.; Coşkunçay, A.; Yazıcı, A.; Oğuztüzün, H.; SÖZER, HasanPL/SQL dili ile yazılan programlar, veri tabanı üzerinde prosedür ve fonksiyon objeleri, ve bu objelerin bir kümesini barındıran paket objeleri olarak geliştirilmektedirler. Bu objeler yoğun olarak tablo ve görünüm gibi veri tabanı objelerini kullanmaktadırlar. Mevcut analiz araçları ile her bir objenin hangi diğer objelere bağımlılığı olduğunu görmek mümkündür. Ancak bu bilgi paket seviyesinde sağlanıp, paketler içindeki her bir prosedür ve fonksiyonun hangi veri tabanı elemanlarını kullanıldığı bilgisine ulaşılamamaktadır. Özellikle uzun yıllardır idame edilen programlarda, paketler çok fazla sayıda prosedür ve fonksiyon barındırmaktadır ve bu paketlerin belirli zamanlarda parçalanması idame edilebilirlik açısından fayda sağlamaktadır. Bu amaçla programların yeniden yapılandırılması, değişikliklere ilişkin etki analizlerinin yapılabilmesine destek sağlayacak bir analiz aracı geliştirilmiştir. Bu araç, paketler içerisinde yer alan prosedür ve fonksiyonların kullandıkları ortak veri tabanı tablolarını tespit edebilmekte ve böylece değişiklik etki analizi ile tasarım kararlarına destek olmaktadır. Geliştirdiğimiz analiz aracı, bir teknoloji şirketindeki müşteri ilişkileri yönetimi sistemine uygulanmıştır.ArticlePublication Metadata only Using artificial neural networks to provide guidance in extending PL/SQL programs(Springer, 2022-12) Ersoy, E.; Sözer, Hasan; Computer Science; SÖZER, HasanExtending legacy systems with new objects for contemporary functionality or technology can lead to architecture erosion. Misplacement of these objects gradually hampers the modular structure, of which documentation is usually missing or outdated. In this work, we aim at addressing this problem for PL/SQL programs, which are highly coupled with databases. We propose a novel approach that employs artificial neural networks to automatically predict the correct placement of a new object among architectural modules. We train a network based on features extracted from the initial version of the source code that is assumed to represent the intended architecture. We use dependencies among the software and database objects as features for this training. Then, given a new object and the list of other objects it uses, the network can predict the architectural module, where the object should be included. We performed two industrial case studies with applications from the telecommunications domain, each of which involves thousands of procedures and database tables. We showed that the accuracy of our approach is 86.7% and 89% for these two applications. The baseline approach that uses coupling and cohesion metrics reaches 55.5% and 57.4% accuracy for the same applications, respectively.Conference paperPublication Metadata only Using hypergraph clustering for software architecture reconstruction of data-tier software(Springer International Publishing, 2016) Ersoy, E.; Kaya, K.; Altınışık, M.; Sözer, Hasan; Computer Science; SÖZER, HasanSoftware architecture reconstruction techniques aim at recovering software architecture documentation regarding a software system. These techniques mainly analyze coupling/dependencies among the software modules to group them and reason about the high-level structure of the system. Hereby, inter-dependencies among the software modules are mainly represented with design structure matrices or regular directed/undirected graphs. In this paper, we introduce a software architecture reconstruction approach that utilizes hypergraphs for representing inter-module dependencies. We focus on PL/SQL programs that are developed as data access tiers of business software. These programs are mainly composed of procedures that are coupled due to commonly accessed database elements. Hypergraphs are more appropriate for capturing this type of coupling, where an element can relate to more than one procedure. We illustrate the application of the approach with an industrial PL/SQL program from the telecommunications domain. We analyze and represent dependencies among the modules of this program in the form of a hypergraph. Then, we perform modularity clustering on this model and propose a packaging structure to the designer accordingly. We observed promising results in comparison with previous work. The accuracy of the results were also approved by domain experts.