Resumo: Linha de Produto de Software (LPS) é uma abordagem que está sendo consolidada para a reutilização de artefatos de software com base em um domínio específico. A abordagem de LPS permite a customização de produtos com o auxílio efetivo do gerenciamento de variabilidades, satisfazendo as necessidades específicas dos clientes. No entanto, para que a qualidade de uma LPS seja garantida é necessário realizar atividades de verificação e validação, de análise estática e dinâmica, as quais estão contidas nos processos de garantia e controle da qualidade de software. Neste cenário, a revisão de software é aplicada no processo de controle de qualidade, no intuito de garantir a qualidade no processo de engenharia de software, eliminando defeitos em cada fase do processo. Assim, dentre as técnicas de revisão de software existentes estão a técnica de leitura baseada em checklist. Tal técnica permite a detecção e remoção de diferentes tipos de defeitos, para melhorar, consequentemente, a qualidade de um produto de sofware. Neste contexto, esta dissertação apresenta uma proposta de técnica de inspeção de software baseada em checklist, denominada SMartyCheck. O principal objetivo da SMartyCheck é possibilitar a inspeção de diagramas da Unified Modeling Language (UML) de casos de uso e classes de uma LPS com base na abordagem Stereotype-based Management of Variability (SMarty). Para avaliar empiricamente a SMartyCheck, foi utilizada a estratégia exploratória sequencial baseada em mixed-methods, buscando analisar por meio de um estudo empírico qualitativo, a viabilidade da SMartyCheck. Após isso, um estudo quantitativo foi conduzido nesse cenário, no intuito de avaliar a eficiência, a eficácia e a efetividade da SMartyCheck em comparação com a técnica Ad hoc. Os resultados obtidos com a condução destes estudos empíricos permitiram aprimorar a SMartyCheck, fornecendo evidências de que a técnica é viável para inspeção de diagramas SMarty de LPS, além de ser eficiente, eficaz e efetiva em comparação com a técnica Ad hoc.
Abstract: Software Product Line (SPL) is a promising approach for specific domain software artifacts reuse, which has been consolidated. The SPL approach enables customization of products with an effective support of variability management, satisfying specific needs of customers. However, in order to assure SPL quality it is essential performing activities for verification and validation, static and dynamic analysis, which are encompassed by quality assurance and quality control software processes. In this scenario, software revision is applied to the quality control process in order to ensure the quality of a software engineering process, removing defects at each stage. Thus, amongst software revision techniques, exist the checklist-based reading technique. Such a technique allows the detection and removal of several types of defects, whereas improves the quality of the software products. In this context, this master thesis proposes a software inspection technique based on checklist, called SMartyCheck. The main objective of SMartyCheck technique is to enable the inspection of Unified Modeling Language (UML) use case and class SPL diagrams based on the Stereotype-based Management of Variability (SMarty) apporach. In order to empirically evaluate SMartyCheck it was used the sequential exploratory strategy based on mixed-methods, aiming at analyzing the SMartyCheck feasibility throughout a qualitative study. Furthermore, a quantitative study was conducted in this scenario to evaluate the efficiency, efficacy and effectiveness of SMartyCheck compared with an Ad hoc technique. The results obtained with the execution of such empirical studies allowed improving SMartyCheck, providing evidence that the technique is feasible for inspecting SMarty SPL diagrams, besides being efficient and effective compared to the Ad hoc technique. |