Aspect-oriented programming and exception wrapping: a case study of a wrapper library
Feature of writing wrapper libraries on top of libraries written in other programming languages or transpiled from other programming languages. Characteristics of the improvement of most of the standard indicators of the quality of the software code.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | английский |
Дата добавления | 19.03.2024 |
Размер файла | 180,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Department National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"
Aspect-oriented programming and exception wrapping: a case study of a wrapper library
YakivYusyn Ph.D., Assistant, Computer Systems Software
Tetiana Zabolotnia Ph. D., Assistant Professor, Computer Systems Software
Ukraine
Today, aspect-oriented programming is often used as a supplement to object- oriented code - AOP practices can be found in many libraries and frameworks [1].
The main AOP practices used in conjunction with OOP are:
cross-cutting concern - a logic that must be spread across different modules or classes (e.g., a logging capability);
aspect - a module that encapsulates a cross-cutting concern implementation;
-join point - a place of an aspect connection to an existing code.
One of the well-known types of join points is the exception handler. In this case, the aspect's code will be called when an exception occurs in the code to which the aspect is applied. In doing so, the aspect has access to the exception object and the method's representation object (which may contain metadata about the method, any input passed, etc.). Most often, the join point of the exception handler is used for logging of information about exceptions that appear in the system, with their subsequent rethrow (Fig. 1).
However, the use of AOP with this join point can be useful in other cases, the description of such a case is the subject of this study.
Fig. 1. An example of a standard application of AOP for exception logging
In practice, sometimes there is a need to write wrapper libraries on top of other libraries. This can be caused by various reasons, for example, the need for simplified or, on the contrary, extended API of the wrapped library. A special case may be libraries that wrap libraries written in other programming languages or that wrap libraries that have been transpiled from other programming languages.
SimpleNetNlp is a wrapper library for the C# programming language that wraps the transpiled Java code of the Stanford CoreNLP natural language processing library [2]. One of the challenges when developing this library is to convert or wrap all transpiled exceptions that could appear when running the wrapped code into native exceptions of the .NET platform or custom exceptions of the library. For example, the transpiled exception java.lang.NullPointerException must be converted to the standard exception System.NullReferenceException.
The process of converting or wrapping all transpiled exceptions can be implemented with the help of various design patterns, for example, "Chain of responsibility". However, without using AOP, a call to the class responsible for this process must be added to each wrapper method, enclosing the body in a try-catch exception handling construct. As you can see, this process of converting or wrapping exceptions in AOP terms is a cross-cutting concern, and using AOP to implement this process will significantly increase the quality of the software code according to the relevant metrics. library software code
The application of AOP for such a case is as follows:
implementation of an aspect that, in its join point of the exception handler, performs the conversion or wrapping of the exception, followed by its throw;
apply the implemented aspect to all wrapper methods that need to convert or wrap underlying library exceptions.
An example of the method before the application of the aspect and after its application is shown in Fig. 2.
Fig. 2. An example of a method without and with the applied aspect
At the time of implementation of AOP elements, exceptions were converted or wrapped in 7 wrapper methods (as of 31.07.2023, the number of methods using the aspect reached 34). The use of AOP affected the values of the quality metrics of the software code as follows:
cyclomatic complexity [3] - remained unchanged: 30;
class coupling [4] - decreased from 23 to 21 (less is better);
lines of code - decreased from 230 to 168 (less is better);
lines of executable code - decreased from 50 to 35 (less is better);
maintainability index [5] - increased from 80 to 87 (more is better).
Conclusions
This paper considers an atypical scenario of using the paradigm of aspect-oriented programming for converting or wrapping exceptions. The described case is relevant when writing wrapper libraries over libraries written in other programming languages or transpiled from other programming languages.
The application of aspect-oriented programming in the studied case made it possible to improve most of the standard metrics of the quality of the software code (by 8-30%, depending on the metric), even with a small number of wrapper methods.
References
1. Shko, Q., Bryar, H., Hawkar, A., & Hozan, H. (2022). Aspect Oriented Programming: Trends and Applications. UKH Journal of Science and Engineering^), 12-20.
2. Yusyn, Y. (2017). yakivyusin/SimpleNetNlp: .NET NLP library. GitHub:
3. Microsoft. (2021). Code metrics - Cyclomatic complexity. Microsoft Docs
4. Microsoft. (2021). Code metrics - Class coupling. Microsoft Docs
5. Microsoft. (2021). Code metrics - Maintainability index range and meaning. Microsoft Docs
Размещено на Allbest.ru
...Подобные документы
Creation of the graphic program with Visual Basic and its common interface. The text of program code in programming of Visual Basic language creating in graphics editor. Creation of pictures in Visual Basic, some graphic actions with graphic editor.
лабораторная работа [1,8 M], добавлен 06.07.2009Использование в программах, написанных на языке C, Windows application programming interfaces. Роль центрального процессора. Архитектура Фон Неймана. Оперативная память. Графическая плата. Создание интерфейса программы. Разработка машинного кода.
реферат [101,5 K], добавлен 15.05.2014Non-reference image quality measures. Blur as an important factor in its perception. Determination of the intensity of each segment. Research design, data collecting, image markup. Linear regression with known target variable. Comparing feature weights.
дипломная работа [934,5 K], добавлен 23.12.2015Developed the principles that a corpus of texts containing code-mixing should have and built a working prototype of Udmurt/Russian Code-Mixing Corpus. Discussed different approaches to studying code-mixing and various classifications of code-mixing.
дипломная работа [1,7 M], добавлен 30.12.2015Основні джерела ненадійності мережі. Моніторинг широковісних запитів. використання програм типу wrapper, протокол IP v 6, шифрування вмісту пакетів. Технологія функціонування системи FireWall. Використання антивірусних програм та міжмережевих екранів.
презентация [148,2 K], добавлен 19.08.2013The solving of the equation bose-chaudhuri-hocquenghem code, multiple errors correcting code, not excessive block length. Code symbol and error location in the same field, shifts out and fed into feedback shift register for the residue computation.
презентация [111,0 K], добавлен 04.02.2011Теоретические аспекты использования Infrastructure Library информационных технологий. Планирование процессов, ролей и видов деятельности. Определение связей и необходимых видов взаимодействий в организации. Проблемы внедрения Infrastructure Library.
курсовая работа [69,9 K], добавлен 22.05.2017Анализ структуры и методологии CASE-средств. Методологии проектирования, используемые в CASE-средствах. Основные понятия о системах электронного документооборота, их создание с помощью CASE-средств. Объектно-ориентированное и структурное проектирование.
курсовая работа [67,9 K], добавлен 18.07.2014Принятые на конкурс алгоритмы: CAST-256 (Канада), CRYPTON (Южная Корея), DEAL (Норвегия, Канада), DFC или Decorrelated Fast Cipher (Франция). Основные этапы конкурса на Advanced Encryption Standard. Финалист и победитель конкурса, сравнение шифров.
курсовая работа [439,9 K], добавлен 07.07.2012Функционально-модульный и объектно-ориентированный подходы к разработке CASE-технологий, принцип алгоритмической декомпозиции с выделением функциональных элементов. Основные требования к блокам анализа, проектирования, реализации и инфраструктуры.
контрольная работа [17,0 K], добавлен 27.09.2010Использование CASE-средств для поддержки процессов создания и сопровождения информационных систем. Задачи графического редактора диаграмм, документатора и администратора проекта. Основные возможности IBM Rational Professional Bundle и IBM Rational Rose.
реферат [28,1 K], добавлен 30.05.2012Характеристика особенностей автоматизации управлением IT-инфраструктуры из нескольких серверов путем внедрения в процесс системного администрирования методологии "Infrastructure as Code". Подробное описание инструментов, которые используются на практике.
статья [196,3 K], добавлен 10.12.2016Определение понятия CASE-технологий. Использование комплексного инструментария ER/Studio для создания логической и физической модели данных, генерирования баз данных на платформе СУБД Access. Процедура добавления атрибутов и сущностей, создания связей.
контрольная работа [2,2 M], добавлен 21.12.2011Анализ деятельности ОАО "Авиадвигатель". Интегрированная логистическая поддержка промышленных изделий как совокупность видов инженерной деятельности, реализуемых посредством информационных технологий. Обзор системы Siemens PLM Software Teamcenter 2007.
курсовая работа [4,5 M], добавлен 13.01.2013Склад і зміст робіт на стадії впровадження інформаційних систем. Технологія проектування систем за CASE-методом. Порівняльні характеристики інформаційних систем в менеджменті та СППР. Створення бази моделей. Визначення інформаційних систем управління.
реферат [44,5 K], добавлен 09.03.2009История программных продуктов "Borland Software Corporation". Языки программирования Turbo-Pascal, Delphi, CaliberRM, Turbo C++ и основные их принципы работы. Развитие их совместимости с Windows. Создание корпоративных систем на основе Веб-технологий.
реферат [20,9 K], добавлен 02.04.2010Тенденції розвитку інформаційних технологій, зростання складності інформаційних систем, створюваних у різних галузях. Засоби, що реалізують CASE-технологію створення і супроводу інформаційних систем. Автоматизація розробки програмного забезпечення.
реферат [21,5 K], добавлен 21.03.2011Классификация автоматизированных информационных систем (АИС). Проектирование АИС складского учета с использованием CASE-средства Rational Rose. Подходы к проектированию, анализ CASE-средств. Программная реализация профессионально ориентированной АИС.
курсовая работа [1,4 M], добавлен 06.03.2012Program of Audio recorder on visual basic. Text of source code for program functions. This code can be used as freeware. View of interface in action, starting position for play and recording files. Setting format in milliseconds and finding position.
лабораторная работа [87,3 K], добавлен 05.07.2009Основы методологии проектирования информационных систем, понятие их жизненного цикла. Основные модели жизненного цикла. Методология функционального моделирования SADT. Состав функциональной модели. Моделирование данных, характеристика case-средств.
реферат [327,5 K], добавлен 28.05.2015