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.2014

  • Non-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.2015

  • Developed 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.2013

  • The 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.2012

  • Program 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.