The inherent difficulties in assessing contemporary modularization (CoM) approaches are considered. The motivation is provided for a model relating assessment methodologies to the maturity of the CoM approach.
{"title":"Performing and Reviewing Assessments of Contemporary Modularization Approaches: What Constitutes Reasonable Expectations?","authors":"R. Walker","doi":"10.1109/ACOM.2007.8","DOIUrl":"https://doi.org/10.1109/ACOM.2007.8","url":null,"abstract":"The inherent difficulties in assessing contemporary modularization (CoM) approaches are considered. The motivation is provided for a model relating assessment methodologies to the maturity of the CoM approach.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122759090","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Assessment of a modularisation technique should involve some form of measurement as to how modular the code becomes as a result of applying the technique. One problem we face is that there is a lack of a precise definition of modularity. The IEEE glossary of software engineering terminology defines modularity as "the degree to which a system or computer program is composed of discrete components such that a change to one component has minimal impact on other components. While this is not an operational definition, especially as the notion of discreteness, or independence, needs to be further defined, it provides a good starting point for discussion. To measure according to this definition we need to measure "degree of independence". We are interested in a particular form of dependence, namely indirect dependence and believe this is an important criteria for assessing modularity.
{"title":"Indirect Coupling As a Criteria for Modularity","authors":"H. Y. Yang, E. Tempero","doi":"10.1109/ACOM.2007.5","DOIUrl":"https://doi.org/10.1109/ACOM.2007.5","url":null,"abstract":"Assessment of a modularisation technique should involve some form of measurement as to how modular the code becomes as a result of applying the technique. One problem we face is that there is a lack of a precise definition of modularity. The IEEE glossary of software engineering terminology defines modularity as \"the degree to which a system or computer program is composed of discrete components such that a change to one component has minimal impact on other components. While this is not an operational definition, especially as the notion of discreteness, or independence, needs to be further defined, it provides a good starting point for discussion. To measure according to this definition we need to measure \"degree of independence\". We are interested in a particular form of dependence, namely indirect dependence and believe this is an important criteria for assessing modularity.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134305470","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Modularity determines software quality in terms of evolvability, changeability, maintainability, etc. and a module could be a vertical slicing through source code directory structure or class boundary. Given a modularized design, we need to determine whether its implementation realizes the designed modularity. Manually comparing source code modular structure with abstracted design modular structure is tedious and error-prone. In this paper, we present an automated approach to check the conformance of source code modularity to the designed modularity. Our approach uses design structure matrices (DSMs) as a uniform representation; it uses existing tools to automatically derive DSMs from the source code and design, and uses a genetic algorithm to automatically cluster DSMs and check the conformance. We applied our approach to a small canonical software system as a proof of concept experiment. The results supported our hypothesis that it is possible to check the conformance between source code structure and design structure automatically, and this approach has the potential to be scaled for use in large software systems.
{"title":"An Evolutionary Approach to Software Modularity Analysis","authors":"Sunny Huynh, Yuanfang Cai","doi":"10.1109/ACOM.2007.1","DOIUrl":"https://doi.org/10.1109/ACOM.2007.1","url":null,"abstract":"Modularity determines software quality in terms of evolvability, changeability, maintainability, etc. and a module could be a vertical slicing through source code directory structure or class boundary. Given a modularized design, we need to determine whether its implementation realizes the designed modularity. Manually comparing source code modular structure with abstracted design modular structure is tedious and error-prone. In this paper, we present an automated approach to check the conformance of source code modularity to the designed modularity. Our approach uses design structure matrices (DSMs) as a uniform representation; it uses existing tools to automatically derive DSMs from the source code and design, and uses a genetic algorithm to automatically cluster DSMs and check the conformance. We applied our approach to a small canonical software system as a proof of concept experiment. The results supported our hypothesis that it is possible to check the conformance between source code structure and design structure automatically, and this approach has the potential to be scaled for use in large software systems.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"115 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123986272","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Alberto Costa Neto, Marcio de Medeiros Ribeiro, M. Dósea, Rodrigo Bonifacio, Paulo Borba, Sérgio Soares
Modularization of crosscutting concerns is the main benefit provided by aspect-oriented constructs. In order to rigorously assess the overall impact of this kind of modularization, we use design structure matrixes (DSMs) to analyze different versions (OO and AO) of a system. This is supported by the concept of semantic dependencies between classes and aspects, leading to a more faithful notion of coupling for AO systems. We also show how design rules can make those dependencies explicit and, consequently, yield a more modular design.
{"title":"Semantic Dependencies and Modularity of Aspect-Oriented Software","authors":"Alberto Costa Neto, Marcio de Medeiros Ribeiro, M. Dósea, Rodrigo Bonifacio, Paulo Borba, Sérgio Soares","doi":"10.1109/ACOM.2007.9","DOIUrl":"https://doi.org/10.1109/ACOM.2007.9","url":null,"abstract":"Modularization of crosscutting concerns is the main benefit provided by aspect-oriented constructs. In order to rigorously assess the overall impact of this kind of modularization, we use design structure matrixes (DSMs) to analyze different versions (OO and AO) of a system. This is supported by the concept of semantic dependencies between classes and aspects, leading to a more faithful notion of coupling for AO systems. We also show how design rules can make those dependencies explicit and, consequently, yield a more modular design.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127147545","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
It's noted in this workshop's call for papers that despite the emergence of a large number of "modularisation techniques" (e.g., aspects, design patterns, and so on), there are no standard approaches or "rules of thumb" for assessing the benefits and drawbacks of using these techniques in the construction of real software systems. In this paper we argue that the first step in assessing such techniques should be to determine their effect on modularity. Only then can we be sure that they have even been correctly classified as "modularisation techniques".
{"title":"Towards Assessing Modularity","authors":"H. Melton, E. Tempero","doi":"10.1109/ACOM.2007.10","DOIUrl":"https://doi.org/10.1109/ACOM.2007.10","url":null,"abstract":"It's noted in this workshop's call for papers that despite the emergence of a large number of \"modularisation techniques\" (e.g., aspects, design patterns, and so on), there are no standard approaches or \"rules of thumb\" for assessing the benefits and drawbacks of using these techniques in the construction of real software systems. In this paper we argue that the first step in assessing such techniques should be to determine their effect on modularity. Only then can we be sure that they have even been correctly classified as \"modularisation techniques\".","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129872029","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Collaborations are a frequently occurring class of cross-cutting concerns. Prior work has argued that collaborations are better implemented using collaboration languages (CLs) rather than AspectJ-like Languages (ALs). The main argument is that aspects flatten the object-oriented structure of a collaboration, and introduce more complexity rather than benefits - in other words, CLs and ALs differ with regard to program comprehension. To explore the effects of CL and AL modularization mechanisms on program comprehension, we propose to conduct a series of experiments. We present ideas on how to arrange such experiments that should serve as a starting point and foster a discussion with other researchers.
{"title":"On the Necessity of Empirical Studies in the Assessment of Modularization Mechanisms for Crosscutting Concerns","authors":"S. Apel, Christian Kastner, Salvador Trujillo","doi":"10.1109/ACOM.2007.7","DOIUrl":"https://doi.org/10.1109/ACOM.2007.7","url":null,"abstract":"Collaborations are a frequently occurring class of cross-cutting concerns. Prior work has argued that collaborations are better implemented using collaboration languages (CLs) rather than AspectJ-like Languages (ALs). The main argument is that aspects flatten the object-oriented structure of a collaboration, and introduce more complexity rather than benefits - in other words, CLs and ALs differ with regard to program comprehension. To explore the effects of CL and AL modularization mechanisms on program comprehension, we propose to conduct a series of experiments. We present ideas on how to arrange such experiments that should serve as a starting point and foster a discussion with other researchers.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128968759","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Crosscutting concerns degrade software quality. Before we can modularize the crosscutting concerns in our programs to increase software quality, we must first be able to find them. Unfortunately, accurately locating the code related to a concern is difficult, and without proper metrics, determining how much the concern is crosscutting is impossible. We propose a systematic methodology for identifying which code is related to which concern, and a suite of metrics for quantifying the amount of crosscutting code. Our concern identification and assignment guidelines resolve some of the ambiguity issues encountered by other researchers. We applied this approach to systematically identify all the requirement concerns in a 13,531 line program. We found that 95% of the concerns were crosscutting - indicating a significant potential for improving modularity - and that our metrics were better able to determine which concerns would benefit the most from reengineering.
{"title":"Identifying, Assigning, and Quantifying Crosscutting Concerns","authors":"M. Eaddy, A. Aho, G. Murphy","doi":"10.1109/ACOM.2007.4","DOIUrl":"https://doi.org/10.1109/ACOM.2007.4","url":null,"abstract":"Crosscutting concerns degrade software quality. Before we can modularize the crosscutting concerns in our programs to increase software quality, we must first be able to find them. Unfortunately, accurately locating the code related to a concern is difficult, and without proper metrics, determining how much the concern is crosscutting is impossible. We propose a systematic methodology for identifying which code is related to which concern, and a suite of metrics for quantifying the amount of crosscutting code. Our concern identification and assignment guidelines resolve some of the ambiguity issues encountered by other researchers. We applied this approach to systematically identify all the requirement concerns in a 13,531 line program. We found that 95% of the concerns were crosscutting - indicating a significant potential for improving modularity - and that our metrics were better able to determine which concerns would benefit the most from reengineering.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"162 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130716976","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper presents our experience on assessing the modularity of software product lines through the dependencies found using design structure matrices. We conducted a case study on a mobile game software product line and we were able to identify some important dependencies between the modules.
{"title":"Using Design Structure Matrices to Assess Modularity in Aspect-Oriented Software Product Lines","authors":"P. Matos, R. Duarte, I. Cardim, Paulo Borba","doi":"10.1109/ACOM.2007.11","DOIUrl":"https://doi.org/10.1109/ACOM.2007.11","url":null,"abstract":"This paper presents our experience on assessing the modularity of software product lines through the dependencies found using design structure matrices. We conducted a case study on a mobile game software product line and we were able to identify some important dependencies between the modules.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128546767","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In general, new modularization techniques require a significant intellectual investment from practitioners in order to adopt them. Before practitioners are willing to make such an investment, they want a careful scientific assessment of the technique for a number of properties (e.g., effects on reusability, reliability, and maintainability). Our work is concerned with conducting such empirical investigations for assessing how modularization techniques affect maintainability; in particular, this paper presents an approach to conducting formal experiments for assessing a technique's impact on perfective maintenance. We refer to such experiments as maintenance experiments in the sequel. We are currently using our program families-based approach in maintenance experiments to assess a technique we previously invented for modularizing synchronization concerns, called Szumo. The root program of each family implements a multi-threaded GUI browser, which reads and displays text from a network server. We are using three perfective maintenance tasks to populate the program families: one that adds network error handling, another that adds more settings and GUI controls, and another that reads data from multiple servers.
{"title":"Using Program Families for Maintenance Experiments","authors":"S. Fleming, R. Stirewalt, L. Dillon","doi":"10.1109/ACOM.2007.12","DOIUrl":"https://doi.org/10.1109/ACOM.2007.12","url":null,"abstract":"In general, new modularization techniques require a significant intellectual investment from practitioners in order to adopt them. Before practitioners are willing to make such an investment, they want a careful scientific assessment of the technique for a number of properties (e.g., effects on reusability, reliability, and maintainability). Our work is concerned with conducting such empirical investigations for assessing how modularization techniques affect maintainability; in particular, this paper presents an approach to conducting formal experiments for assessing a technique's impact on perfective maintenance. We refer to such experiments as maintenance experiments in the sequel. We are currently using our program families-based approach in maintenance experiments to assess a technique we previously invented for modularizing synchronization concerns, called Szumo. The root program of each family implements a multi-threaded GUI browser, which reads and displays text from a network server. We are using three perfective maintenance tasks to populate the program families: one that adds network error handling, another that adds more settings and GUI controls, and another that reads data from multiple servers.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"133 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134552561","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The architectural design decides the quality and the longevity of the software. Gross decomposition of a system into interacting components using proper abstractions for component interaction defines the modularity of the system which in turn decides the values of quality attributes such as performance, reliability, security and modifiability as well as the percentage of design reuse. The decisions of modularization are supported by metrics like cohesion and coupling. In this paper we will focus on the quality attributes, modifiability and evolvability of a system which are overlapping to a large extent and which mainly get affected by the modularization of the system. The principle of encapsulation in Object Oriented (00) design overcame the flaws present in structured methodology due to separate data and process components and their interdependencies. But problems in the evolution of 00 systems due to crosscutting concerns were resolved using Aspect Oriented paradigm. The externalization of business logic using rule-based systems also was taken as solution to the evolution of complex software systems. Here we focus on the different existing modularization solutions which support the evolvability of a software and the framework CFFES (Control Flow Framework for Evolving Systems) proposed by us.
{"title":"Modularization with Externalization of Control Flow","authors":"Urjaswala Vora","doi":"10.1109/ACOM.2007.6","DOIUrl":"https://doi.org/10.1109/ACOM.2007.6","url":null,"abstract":"The architectural design decides the quality and the longevity of the software. Gross decomposition of a system into interacting components using proper abstractions for component interaction defines the modularity of the system which in turn decides the values of quality attributes such as performance, reliability, security and modifiability as well as the percentage of design reuse. The decisions of modularization are supported by metrics like cohesion and coupling. In this paper we will focus on the quality attributes, modifiability and evolvability of a system which are overlapping to a large extent and which mainly get affected by the modularization of the system. The principle of encapsulation in Object Oriented (00) design overcame the flaws present in structured methodology due to separate data and process components and their interdependencies. But problems in the evolution of 00 systems due to crosscutting concerns were resolved using Aspect Oriented paradigm. The externalization of business logic using rule-based systems also was taken as solution to the evolution of complex software systems. Here we focus on the different existing modularization solutions which support the evolvability of a software and the framework CFFES (Control Flow Framework for Evolving Systems) proposed by us.","PeriodicalId":377207,"journal":{"name":"First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124420306","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}