{"title":"An Architectural Model for Adapting Domain-Specific AOM Applications","authors":"Patricia Megumi Matsumoto, E. Guerra","doi":"10.1109/SBCARS.2012.13","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.13","url":null,"abstract":"An Adaptive Object Model (AOM) is a common architectural style for systems in which classes, attributes, relationships and behaviors of applications are represented as metadata consumed at runtime. This allows them to be very flexible and changeable at runtime not only by programmers, but also by end users, improving system time-to-market. Nevertheless, this flexibility comes with a cost of a greater complexity when developing the system, and therefore one usually uses a bottom-up approach, adding flexibility only when and where it is needed. As a consequence, many AOM applications are tied to the specific domain to which they were developed and this fact makes it difficult to develop and use generic and reusable AOM frameworks that properly handle specific requirements of the AOM architecture. This work presents an architectural model that aims to adapt domain-specific AOM core structures to a common core structure by identifying AOM roles played by each element through custom metadata configuration. By doing this, this model allows the integration of domain-specific AOM applications and AOM frameworks, making it feasible to develop reusable components for the AOM architecture. This model is evaluated by creating an AOM framework and performing a modularity analysis on a case study based on it.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128172627","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}
{"title":"MetaTT - A Metamodel Based Approach for Writing Textual Transformations","authors":"Anderson Ledo, F. Ramalho, Nata Melo","doi":"10.1109/SBCARS.2012.21","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.21","url":null,"abstract":"We present MetaTT, a Metamodel based approach for writing Textual Transformations. It is an operational and stepwise approach for the construction of model-to-text generators in the context of Model-Driven Development. It relies on a particular architecture that fosters good transformation design and generates the main artifacts of a model-to-text generator, requiring the developer to take some design decisions and basically fulfill simplified templates. We evaluate its use by means of its application in the construction of a variety of instances of the problem, and we compared the generators built with and without MetaTT, taking into consideration the size and complexity of the metamodels being tackled.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128727024","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}
Ramon Abílio, Pedro Teles, H. Costa, Eduardo Figueiredo
{"title":"A Systematic Review of Contemporary Metrics for Software Maintainability","authors":"Ramon Abílio, Pedro Teles, H. Costa, Eduardo Figueiredo","doi":"10.1109/SBCARS.2012.15","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.15","url":null,"abstract":"Previous studies have been conducted with the aim of increasing the system quality. As a result, some contemporary technologies have been proposed for software development to improve maintainability, such as feature-oriented and aspect-oriented programming. Metrics are used to quantify the quality of systems developed in these technologies. Recently, contemporary metrics have been proposed or adapted from existing ones to evaluate specific issues of these contemporary technologies. This paper presents results of applying a systematic literature review to identify contemporary metrics associated with software maintainability and proposed for the feature-oriented and aspect-oriented technologies. Initially, we identify 672 published works and, after the primary selection, these quantity was reduced to 11 papers. These papers account for 33 and 78 contemporary metrics for feature-oriented and aspect-oriented technologies, respectively. The main contributions of this paper are (i) the list of metrics and measurable properties studies for feature-oriented and aspect-oriented programming, (ii) elaboration of a unified catalog of metrics applicable for both technologies, and (iii) identification of their main references.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126370853","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}
{"title":"Pattern-Based Modifiability Analysis of EJB Architectures","authors":"J. A. D. Pace, Alejandro Zunino","doi":"10.1109/SBCARS.2012.19","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.19","url":null,"abstract":"Over the last years, several techniques to evaluatemodifiability of software architectureshave been developed. One of such techniques is change impact analysis (CIA), which aids developers in assessing the effects of change scenarios on architectural modules. However, CIA does not take into account the pattern structures behind those modules. In architectural frameworks, such as the Enterprise Java Beans (EJB) architecture, the use of patterns is a key practice to achieve modifiability goals. Although patterns can be easily understood individually, when an application combines several pattern instances the analysis is not straightforward. In practice, many EJB designsare assessed in an ad-hoc manner and relying on the developers' experience. A way of dealing with this problem is through the integration of modifiabiliy analysis models and patterns. We propose a knowledge-based approach that explicitly links the EJB patterns to a scenario-based analysis for multi-tier architectures. Specifically, we have developed a modifiability reasoning framework that reifies the EJB patterns present in a given design solution and, for a set of predetermined scenarios, the reasoning framework identifies which architectural elements can be affected by the scenarios. The reasoning framework outputs metrics for each of the scenarios regarding specific EJB tiers. The main contribution of this approach is that assists developers to evaluate EJB alternatives, providing quantitativeinformation about the modifiability implications of their decisions. A preliminary evaluation has shown that the the reasoning framework is viable to analyze EJB designs.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130529866","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}
F. Ferreira, Paulo Borba, Gustavo Soares, Rohit Gheyi
{"title":"Making Software Product Line Evolution Safer","authors":"F. Ferreira, Paulo Borba, Gustavo Soares, Rohit Gheyi","doi":"10.1109/SBCARS.2012.18","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.18","url":null,"abstract":"Developers evolve software product lines (SPLs) manually or using typical program refactoring tools. However, when evolving a product line to introduce new features or to improve its design, it is important to make sure that the behavior of existing products is not affected. Typical program refactorings cannot guarantee that because the SPL context goes beyond code and other kinds of core assets, and involves additional artifacts such as feature models and configuration knowledge. Besides that, in a SPL we typically have to deal with a set of possibly alternative assets that do not constitute a well-formed program. As a result, manual changes and existing program refactoring tools may introduce behavioral changes or invalidate existing product configurations. To avoid that, we propose approaches and implement tools for making product line evolution safer; these tools check whether SPL transformations are refinements in the sense that they preserve the behavior of the original SPL products. They implement different and practical approximations of a formal definition of SPL refinement. We evaluate the approaches in concrete SPL evolution scenarios where existing product's behavior must be preserved. However, our tools found that some transformations introduced behavioral changes. Moreover, we evaluate defective refinements, and the toolset detects the behavioral changes.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129395337","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}
Daniel Cunha da Silva, A. Lopes, Felipe A. P. Pinto, Jair C. Leite
{"title":"Selecting Architecture Configurations in Self- Adaptive Systems Using QoS Criteria","authors":"Daniel Cunha da Silva, A. Lopes, Felipe A. P. Pinto, Jair C. Leite","doi":"10.1109/SBCARS.2012.12","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.12","url":null,"abstract":"The process for choosing the best architectural elements to build systems has become increasingly complex. It becomes more critical if it is necessary to consider many combinations of components in the context of an architectural configuration. This paper proposes an approach for the dynamic selection of architectural configurations based on quality of system criteria of the system, which can be used during a dynamic adaptation, the MoSAC. This module uses the MAUT theory (Multi-Attribute Utility Theory) for decision making from a finite set of possibilities, which involve multiple criteria to be analyzed. We also present a case study that is an application in the context of Iterative Digital TV to evaluate the time spent on the module to return a valid configuration to be used in a middleware with self-adaptive features, the middleware FRAME.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129471036","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}
D. Lucrédio, E. Almeida, Renata Pontin de Mattos Fortes
{"title":"An Investigation on the Impact of MDE on Software Reuse","authors":"D. Lucrédio, E. Almeida, Renata Pontin de Mattos Fortes","doi":"10.1109/SBCARS.2012.16","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.16","url":null,"abstract":"Software reuse and model-driven engineering (MDE) are two distinct approaches that attempt to improve quality and productivity in software projects. Much is said about how MDE can increase software reuse by reducing the amount of hand-written code, but few studies consider the fact that in MDE other artifacts - models, tools, transformations and code generators - come into play and need to be considered. How much more reuse can we achieve with MDE? How reusable are these MDE-specific assets? Motivated by these questions, this paper presents the observations made in three exploratory studies. In each study, the same software was developed with and without MDE, and a comparison based on reuse metrics was made. The results indicate that MDE can increase and/or improve software reuse in different ways, but with some associated costs, such as increased software complexity and decreased maintainability. In the context of our observations, complex technical domains have more to gain from the automation achieved with MDE, while business domains seem to be more suitable for simpler feature-based configuration. We conclude the paper pointing out more studies that could be performed to gain additional knowledge regarding MDE and reuse.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133807296","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}
Luiz Laerte Nunes da Silva, T. N. Oliveira, A. Plastino, Leonardo Gresta Paulino Murta
{"title":"Vertical Code Completion: Going Beyond the Current Ctrl+Space","authors":"Luiz Laerte Nunes da Silva, T. N. Oliveira, A. Plastino, Leonardo Gresta Paulino Murta","doi":"10.1109/SBCARS.2012.22","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.22","url":null,"abstract":"In the software development field, the amount of data related to documentation and to the source code itself is huge. Relevant knowledge can be extracted from this data,provided that adequate tools are in place. In this context, data mining can be seen as an important tool. This paper presents an approach to mine sequential patterns from source code and to suggest these patterns to developers, according to what is being coded. As a result, a plug in for the Eclipse IDE, called Vertical Code Completion, was developed and applied over the source code repository of an academic management system.The obtained patterns were analyzed by the developers of this system with different expertise levels and the proposed approach reached good results, indicating that 71.6% of the suggestions were relevant.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"116 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127308293","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}
Vinicius Nunes, Paula Fernandes, Vander Alves, G. Rodrigues
{"title":"Variability Management of Reliability Models in Software Product Lines: An Expressiveness and Scalability Analysis","authors":"Vinicius Nunes, Paula Fernandes, Vander Alves, G. Rodrigues","doi":"10.1109/SBCARS.2012.23","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.23","url":null,"abstract":"Some domains, specially those of critical systems, require dependable software. Ensuring dependability is not a trivial problem. Model checking can be used to estimate the reliability of a software through models that represent the behavior of the system. Through these models it is possible to estimate and measure quantitatively properties such as reliability. In the context of Software Product Lines (SPL), we need to check an entire family of systems. It is not feasible to build a model for each configuration of a SPL as the number of models required can be very large. Some contributions directly address this issue proposing techniques specifically tailored for SPL. Particularly, the technique of parametric model-checking allows the use of a single model to obtain properties values from different configurations through an arithmetic formula. However, even an arithmetic formula may not be easy to evaluate. If the number of operands is large enough the cost of evaluation of this formula could also be large. Current techniques may impose limitations over the variability and/or system architecture. To the best of our knowledge, to handle variability on model checking is still an open problem. This work is an investigation of the whole process of obtaining a parametric arithmetic formula for a SPL. Knowing this process and the factors that directly affect the growth of the formula, we are able to develop new techniques to deal with parametric model-checking in SPL with less restrictions.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125412268","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}
{"title":"A framework for monitorable services implementation","authors":"David Cardoso, A. Sampaio","doi":"10.1109/SBCARS.2012.20","DOIUrl":"https://doi.org/10.1109/SBCARS.2012.20","url":null,"abstract":"Since the very first graphical user interfaces, progress indicators have been widely used to provide feedback regarding the execution of long-running system tasks. In order to make progress feedback possible, the involved services must provide on-line monitoring capabilities. However, on larger concurrent and object-oriented implementations, as services execution involve multiple interactions between various components and abstraction layers, the crosscutting nature of the monitoring concerns can introduce some challenges to the software development --- such as code quality degradation, absence of standardized code patterns, and loss of development productivity. In this context, after analyzing some possible solutions to the monitoring problem, we propose a general framework to support the development of monitorable services, as well as some extended libraries that are used to illustrate a concrete implementation. We also evaluate the proposed solution through a real case study performed in a private software development organization.","PeriodicalId":229350,"journal":{"name":"2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126638467","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}