Service-oriented computing has emerged as an effective approach for integrating business (and systems) that might spread throughout different organizations. A service is a unit of logic modularization that hides implementation details using well-defined contracts. However, existing languages for contract specification in this domain present several limitations. For instance, both WSDL and Swagger use language-independent data formats (XML and JSON) that are not suitable for specifying contracts and often lead to heavyweight specifications. Interface description languages, such as CORBA IDL and Apache Thrift, solve this issue by providing specific languages for contract specifications. Nevertheless, these languages do not target to the REST architectural style and lack support for language extensibility. In this paper we present the design and implementation of NeoIDL, an extensible domain specific language and program generator for writing REST based contracts that are further translated into service’s implementations. In addition, we also present a systematic evaluation of our approach from different perspectives, which involved the implementation of different services using NeoIDL from the domain of Command & Control. In particular, we found initial evidences that shows that NeoIDL can contribute: (i) to bring return on investment with respect to the design and development of NeoIDL, after the implementation of 4 to 7 services; and (ii) to reduce significantly the number of lines of specification when compared to an existing service specification language such as Swagger.
ResumoContexto: Técnicas de verificação têm sido aplicadas para garantir que sistemas de software atinjam níveis de qualidade desejados e atenda a requisitos funcionais e nãofuncionais. Entretanto a aplicação dessas técnicas de verificação em linhas de produto de software é desafiador devido à explosão combinatorial do número de produtos que uma linha de produtos pode instanciar. As técnicas atuais de verificação de linhas de produtos utilizam model checking simbólico e informações sobre variabilidade para otimizar a análise, mas ainda apresentam limitações que as tornam onerosas ou inviáveis. Em particular, as técnicas de verificação do estado da arte para análise de confiabilidade em linhas de produto são enumerativas o que dificulta a aplicabilidade das mesmas devido à explosão combinatorial do espaço de configurações.Objetivo: Os objetivos dessa tese são os seguintes: (a) apresentar um método eficiente para calcular a confiabilidade de todas as configurações de uma linha de produtos de sotware composicional ou anotacional à partir de seus modelos comportamentais UML, (b) fornecer uma ferramenta que implemente o método proposto e, (c) relatar um estudo empírico comparando o desempenho de diferentes estratégias de análises de confiabilidade para linhas de produto de software.Método: Esse trabalho apresenta uma nova estratégia de análise feature-family-based para calcular a confiabilidade de todos os produtos de uma linha de produtos de software (composicional ou anotacional). O passo feature-based da estratégia divide os modelos comportamentais em unidades menores para que essas possam ser analisadas mais eficientemente. O passo family-based realiza o cálculo de confiabilidade para todas as configurações de uma só vez ao avaliar as expressões de confiabilidade em termos de uma estrutura de dados variacional adequada.Resultados: Os resulstados empíricos mostram que a estratégia feature-family-based para análise de confiabilidade supera, em termos de tempo e espaço, quatro outras estratéfias de análise do estado da arte (product-based, family-based, feature-product-based e family-product-based) para a mesma propriedade. No contexto da avaliação e em comparação com as outras estratégias, a estratégia feature-family-based foi a única capaz de escalar a um crescimento do espaço de configuração da ordem de 2 20 . viii Conclusões: A estratégia feature-family-based utiliza e se beneficia das estratégias feature-e family-ao domar o crescimento dos tamanhos dos modelos a serem analizados e por evitar a enumeração de produtos inerentes a alguns métodos de análise do estado da arte.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.