{'fraction_non_alphanumeric': 0.020074349442379184, 'fraction_numerical': 0.0, 'mean_word_length': 5.598039215686274, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Evaluation of UML extensions for aspect oriented design

There are some concepts, such as synchronization, error checking, distribution, security, and others, that are dissimilar from the basic functionality of a system, and they are not correct encapsulated when using traditional programming methodologies. Thus, the code corresponding to these concepts result disseminated through the complete system, and therefore the overall software quality decreased. Aspect Oriented Programming (AOP) provides solutions for code scattering promoting the separation of these concepts through mechanisms that allow an adequate abstraction and composition of them, to finally integrate the complete system. The unit that aggregates the entire semantic of each of these concepts is defined as aspect. The explicit disunion of these concepts enables a more reliable management of software complexity, and a final product of better quality. The key principles applied are modularity, and separation of concerns. During the fist stages, the research related with AOP was focused at the implementation or codification level. In this paper, we present different approaches to include aspects during the design phase. These approaches propose different extensions to UML. We include examples to illustrate them, and we define evaluation criterias to compare them.