ANAIS DO WTDQS 2014 XII Workshop de Teses e Dissertações em Qualidade de Software 04 de Agosto de 2014 Blumenau • Santa Catarina • Brasil WTDQS 2014 Apresentação do WTDQS Esta coletânea reúne os trabalhos selecionados para apresentação no XII Workshop de Teses e Dissertações em Qualidade de Software (WTDQS 2014). Este workshop é parte das atividades do Simpósio Brasileiro de Qualidade de Software que está atualmente em sua 13ª edição. O objetivo do WTDQS é permitir que alunos de pós-graduação, de mestrado e doutorado, apresentem trabalhos, ainda em andamento, para que sejam discutidos com especialistas da área. É uma oportunidade para que os pós-graduandos possam receber críticas e sugestões que venham para aprimorar seus trabalhos. O comitê de programa do WTDQS é formado por especialistas em Qualidade de Software que fazem parte de grupos de pesquisa reconhecidos da área. Este ano o WTDQS recebeu 19 artigos, sendo 5 de doutorado e 14 de mestrado, provenientes dos vários programas de pós-graduação do Brasil. Dessas 19 submissões, 18 submissões eram válidas e 13 artigos foram selecionados para apresentação e publicação nesta coletânea, sendo 2 de doutorado e 11 de mestrado. Cada artigo foi avaliado por 3 (três) membros do comitê de programa. Essas avaliações foram a fonte principal para seleção dos artigos. Elas certamente são importantes contribuições na evolução das pesquisas dos autores. Agradecemos, especialmente, à organização geral do SBQS, na pessoa de Marcello Thiry, à organização local do SBQS, na pessoa de Everaldo Artur Grahl, às organizadoras do WTDQS 2013, Ana Regina Rocha e Káthia Oliveira, e aos autores e orientadores dos trabalhos submetidos ao WTDQS 2014. Blumenau, 04 de agosto de 2014 Leonardo Gresta Paulino Murta Sérgio Teixeira de Carvalho Coordenadores do Comitê de Programa do WTDQS 2014 ii XII Workshop de Teses e Dissertações em Qualidade de Software Biografia dos Coordenadores Leonardo Gresta Paulino Murta é professor do Instituto de Computação da Universidade Federal Fluminense (UFF) desde 2008. Obteve em 2006 doutorado em Engenharia de Sistemas e Computação pela COPPE/UFRJ, com estágio de doutorado em 2004 na Universidade da Califórnia em Irvine. Foi professor visitante da Universidade de Nova Iorque em 2013. Além disso, é bolsista de Produtividade em Pesquisa do CNPq e Jovem Cientista da FAPERJ. Já publicou mais de 130 artigos em periódicos e congressos, tendo ganho diversos prêmios, dentre eles o ACM SigSoft Distinguished Paper Award, no ASE 2006. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software. Seus principais campos de atuação são Gerência de Configuração, Evolução de Software, Arquitetura de Software e e-Science. Mais informações podem ser obtidas em http://lattes.cnpq.br/1565296529736448. Sérgio Teixeira de Carvalho é professor do Instituto de Informática (INF) da Universidade Federal de Goiás (UFG) desde 2006. Obteve Mestrado e Doutorado em Computação pela Universidade Federal Fluminense (UFF). Tem experiência na área de Ciência da Computação, com ênfase em Sistemas Distribuídos e Engenharia de Software, atuando principalmente em Arquitetura de Software, Linhas de Produto de Software, Arquiteturas Autoadaptáveis e Computação Ubíqua. Mais informações podem ser obtidas em http://lattes.cnpq.br/2721053239592051. iii WTDQS 2014 Coordenadores do Comitê de Programa do WTDQS Leonardo Gresta Paulino Murta, UFF Sérgio Teixeira de Carvalho, UFG Comitê de Programa do WTDQS Adriano Albuquerque, UNIFOR Alexandre Vasconcelos, UFPE Ana Regina Rocha, COPPE/UFRJ Carlos Pietrobon, UFOP, PUC-MG Gleison Santos, UNIRIO Guilherme Travassos, COPPE/UFRJ Humberto Marques, PUC-MG Juliano Oliveira, UFG Káthia Oliveira, UVHC Marcelo Thiry, UNIVALI Marco Tulio Valente, UFMG Rafael Prikladnicki, PUC-RS Raul Wazlawick, UFSC Ricardo Falbo, UFES Rodrigo Reis, UFPA Sandra Fabbri, UFSCar Sheila Reinehr, PUC-PR Tayana Conte, UFAM Toacy Oliveira, COPPE/UFRJ Uirá Kulesza, UFRN Avaliadores Externos do WTDQS Arilo Dias Neto, UFAM Coordenador Geral do SBQS Marcelo Thiry, UNIVALI Coordenação Local do SBQS Everaldo Artur Grahl, FURB Comitê Diretivo do SBQS Adriano Albuquerque, UNIFOR Ana Regina Rocha, COPPE/UFRJ Andreia Malucelli, PUC-PR Eduardo Almeida, UFBA Everaldo Grahl, FURB Glauco Carneiro, UNIFACS Kival Weber, PBQP/Software Marcelo Thiry, UNIVALI Rossana Andrade, UFC Sheila Reinehr, PUC-PR iv XII Workshop de Teses e Dissertações em Qualidade de Software Índice Mechanisms to Support Automated Testing of Mobile Applications ....................................................... 1 Autor: Guilherme de Cleva Farto Orientador: André Takeshi Endo Instituição: UTFPR Proposta para Teste de Usabilidade para Aplicações Móveisno Contexto de Computação Ubíqua ......... 7 Autor: Rodrigo dos Anjos Cruz Reis Orientador: Arilo Cláudio Dias Neto Instituição: UFAM Um Framework para as Micro e Pequenas Empresas de Desenvolvimento de Software Baseado no MPT.BR e na ISO/IEC/IEEE 29119-2 ...................................................................................................... 13 Autora: Dianne Dias Silva Orientadores: Edmundo Sérgio Spoto, Leandro Luís Galdino de Oliveira Instituição: UFG Uma Proposta de Metodologia para Gerenciamento de Riscos em Projetos de Software Aderente a Modelos e Normas de Qualidade de Processo de Software ...................................................................... 19 Autor: Heresson João Pampolha de Siqueira Mendes Orientador: Sandro Ronaldo Bezerra Oliveira Instituição: UFPA Proposta de um Modelo para Mapear a Transparência no Processo de Software ..................................... 25 Autor: Fernando C. Lima Orientador: José A. Fabri Instituição: UTFPR Uma Proposta de Medidas de Qualidade para Avaliação da Confiança em Sistemas Ubíquos ................ 31 Autora: Andressa Bezerra Ferreira Orientadores: Reinaldo Bezerra Braga, Rossana Maria de Castro Andrade Instituição: UFC Diagnóstico do Cenário Atual da Organização para Implementação de Iniciativas de Melhoria de Processo de Software ................................................................................................................................. 37 Autora: Patrícia Lima Orientador: Gleison Santos Instituição: UNIRIO Facilitando a Aprendizagem Organizacional em Melhorias de Processo de Software ............................. 43 Autor: Davi Viana Orientadores: Cleidson de Souza, Tayana Conte Instituição: UFAM Towards Understanding Project Actuality in Small Software Development Organizations..................... 51 Autora: Suzana Cândido de Barros Sampaio Orientador: Hermano Perrelli Moura Instituição: UFPE Riscos em Iniciativas de Melhoria de Processo de Software: Uma Investigação no Contexto Brasileiro ................................................................................................. 59 Autor: Eliezer Dutra Orientador: Gleison Santos Instituição: UNIRIO v WTDQS 2014 Aplicação de Pontos de Função em Projetos que Usam Métodos Ágeis .................................................. 65 Autor: Eduardo Garcia Wanderley Orientadores: Alexandre Marcos Lins Vasconcelos, Bruno Tenório Ávila Instituição: UFPE Um Mapeamento para Apoio ao Processo de Gerência de Portfólio de Projetos no Contexto do MR-MPS-SW adotando Práticas Ágeis ................................................................................................ 71 Autora: Gleise Pinheiro Baldez Orientador: Sandro Ronaldo Bezerra Oliveira Instituição: UFPA Estratégia de Apoio à Seleção de Técnicas para Elicitação de Requisitos ................................................ 77 Autora: Renata Magalhães Rêgo Orientador: Arilo Cláudio Dias Neto Instituição: UFAM vi XII Workshop de Teses e Dissertações em Qualidade de Software Mechanisms to support automated testing of mobile applications Guilherme de Cleva Farto 1,2,3, André Takeshi Endo1 1 Universidade Tecnológica Federal do Paraná (UTFPR) Avenida Alberto Carazai, 1640 – 86300-000 – Cornélio Procópio, PR – Brasil 2 Fundação Educacional do Município de Assis (FEMA) Avenida Getúlio Vargas, 1200 – 19807-635 – Assis, SP – Brasil 3 TOTVS Agroindústria Rua Prudente de Moraes, 654 – 19806-160 – Assis, SP – Brasil [email protected], [email protected] Abstract. Due to the high number and diversity of users, new testing approaches are necessary to reduce the occurrence of faults and ensure better quality in mobile applications. The major objective of this project is to propose mechanisms to support automated testing of mobile applications with an emphasis on solutions developed for the Android platform. Specifically, we will investigate the application of the Model-Based Testing (MBT) in order to validate and improve the reliability of Android applications. The proposed approach and tool will be evaluated in an industrial configuration with professional developers of mobile applications. 1. Problem Characterization Currently, there is a rapid growth in popularity of mobile devices, such as tablets, smartphones, and e-readers, expanding the variety of applications that are developed with the support of mobile computing technologies. A 2013 survey on sales of mobile devices reports that the Android platform had an increase of 127% over the previous year with approximately 121 million units sold [Gartner 2014]. Thus, Android took the lead, with 62% of systems and development environments for mobile applications, well ahead of Apple’s iOS and Microsoft’s Windows Phone. While mobile applications were initially developed for the entertainment industry, there is a more widespread adoption in critical areas (e.g., financial systems, health care, and industries) [Muccini et al. 2012]. As a large number and diversity of users as well as critical systems have benefited from the mobility provided by these applications, the occurrence of faults can result in human and economic loss. In this context, software testing has been applied during the development process to minimize the occurrence of faults. The activity of testing consists of designing test cases, executing the software with these test cases, and examining the results with the central goal of detecting faults [Harrold 2000]. The mobile application testing provides many challenges to be overcome and has received special attention from Software Engineering and Mobile Computing community [Delamaro et al. 2006, Bo et al. 2007, Maji et al. 2010, Hu and Neamtiu 2011, Muccini et al. 2012, Pathak et al. 2012, Yang et al. 2013, Liu et al. 2014]. Muccini et al. [2012] 1 WTDQS 2014 argue that there is a need for approaches specialized in testing of mobile applications. They identified characteristics of mobile applications that influence the testing activity, such as connectivity, limited resources, autonomy, user interface, context awareness, adaptation, new programming languages and operating systems, diversity of settings, and touch screens. The dynamics of mobile applications and their use in critical environments demand more accurate and repeatable tests. These characteristics can be obtained by the application of formal approaches and automated tests. Formal testing is characterized by the adoption of mathematical models to support the testing activity. Examples of formal models are Finite State Machines (FSMs), Labelled Transition Systems (LTS), and Event Sequence Graphs (ESGs) [Belli et al. 2006]. According to Hierons et al. [2009], the presence of formal specifications and designs can lead to more efficient and effective testing. These models also provide benefits to automation since their syntax and semantics are welldefined and allow the development of tools to manipulate such models. In this context, this project aims to investigate mechanisms to support automated tests for mobile applications. Specifically, we plan the development of an approach and a supporting tool based on concepts of model-based testing and on the Android platform. 2. Background Several techniques can be applied during the development process in order to reveal faults in the software artifacts. One of these techniques proposes the automatic generation of test cases through a behavioral or structural model, named test model, of the software under test (SUT); this approach is known as Model-Based Testing (MBT). The MBT process can be more efficient because the tester can update the model and regenerate the test suite, avoiding manual and error-prone changes [Utting and Legeard 2006]. The literature of MBT reports a set of benefits resulting from its appropriate adoption, such as high fault detection rate, reduced cost and time for testing, supporting of the requirements’ evolution, and a high level of automation [Grieskamp et al. 2011]. Pieces of research on the MBT process suggest four main steps: (i) modeling, (ii) test generation, (iii) concretization, and (iv) test execution [Pretschner and Philipps 2004, El-Far and Whittaker 2001, Bouquet et al. 2006]. In modeling, the tester uses her/his understanding of the software to design a model focused on testing. It is advisable the use of requirements as the main source of information in order to maximize the independence between the model and the SUT [Utting and Legeard 2006]. In test generation, the algorithm to derive test cases from the model depends on the modeling technique adopted. According to El-Far e Whittaker [2001], modeling techniques should have properties that make both less costly test generation and easier automation. This step requires a tool to receive the test model as input and automatically generate a set of test cases as output. The generated test cases are abstract and not executable because they are in a different level of abstraction of the SUT. In concretization, the tester provides means to transform abstract test cases into ones executable in the SUT. To do so, abstract test cases could be implemented using adapters [Pretschner and Philipps 2004]. In MBT, an adapter is a software component that enables the execution of abstract test cases. In test execution, the concretized test cases are executed in the SUT. The results are analyzed and corrective actions can be taken if faults are revealed. Event Sequence Graph (ESG). In this project, the expected behavior of the SUT is going to be modeled by Event Sequence Graphs (ESGs). The choice of ESG as the test 2 XII Workshop de Teses e Dissertações em Qualidade de Software modeling technique is backed up by ease of use and successful experience on MBT. According to Belli et al. [2006], an ESG is a directed graph used to model possible interactions between the events of the SUT and is formed by nodes that represent events and by edges that represent valid sequences between these events. The ESG technique can be learned in a short period, requires little manual work, and is supported by specific tools [Belli et al. 2006]. Figure 1 illustrates an ESG model for the “cut-copy-paste” procedure. The brackets represent the beginning and end of event sequences. Figure 1. ESG for a “cut-copy-paste” procedure – adapted from [Endo 2013]. 3. Related Work The emergence of technologies and platforms for software expands or creates new fields of study, despite the existing researches on software testing [Muccini et al. 2012]. Thus, the mobile applications introduce new testing challenges that must be overcome and, as a consequence, have been investigated by researchers of software engineering and mobility. These studies can be divided into two lines. In the first line, traditional testing techniques have been adapted to mobile applications. Delamaro et al. [2006] describe a strategy to support structural testing of mobile applications and enable test execution through emulators and physical devices in the Java Micro Edition (JME) platform. In functional testing, Bo et al. [2007] implement a tool, named MobileTest, to automate the black-box testing from an event-based approach to simplify and improve the design of test cases. Its functionalities include the record of sensitive events, a schedule mechanism for regression testing, and adapters for future devices to be added. The second line investigates faults characteristic of mobile applications and, based on them, new testing strategies are proposed. Maji et al. [2010] evaluate the reported failures in Symbian and Android platforms resulting in: a detailed analysis of faults found, a characterization of corrections made, and a comparison between the two operating systems. Neamtiu and Hu [2011] describe an approach to test Android applications, emphasizing the user interface’s faults. Random testing, instrumentation of virtual machine, and log analysis were employed. Pathak et al. [2012] investigate software faults related to excessive energy consumption on smartphones running Android and provide an automatic solution to detect these problems using a data flow analysis algorithm. Yang et al. [2013] propose a testing technique to identify and quantify faults related to excessive waiting times for certain events in Android applications. For this, the authors rely on the artificial insertion of delay instructions in typical problematic operations. Finally, Liu et al. [2014] characterize a set of performance faults commonly identified in Android mobile applications. The paper also presents a source code analyzer to detect the identified performance fault patterns in Android applications. 3 WTDQS 2014 Notice that several researchers have investigated techniques for mobile application testing, highlighting the most notorious adoption of the Google Android platform. So far, few efforts have been spent to evaluate mechanisms for test automation in mobile applications. Moreover, most of the papers are academic and there is a lack of research on applying automated testing in industrial configurations. As mobile applications pose challenges to software testing, many topics can be further explored. 4. Project Planning and its Current State This section shows the activities planned to achieve the research project’s goal; its current state is also presented. The activities are briefly described as follows. 1. Study of the Android platform: this activity aims to study the Android operating system and how applications are developed for the given platform. In particular, we will emphasize the tool named Android Studio. Android Studio is an integrated development environment that provides mechanisms to design, code, debug and test Android applications using emulators and different devices. Existing open source applications will also be studied and collected as examples or case studies for future evaluations. 2. Study of the mobile application testing: this activity aims to understand the challenges and limitations faced by testers during the development of mobile applications. Another point is to identify tools that automate the testing of mobile applications, specifically for Android. A starting point is the testing capabilities already provided by Android Studio. Another interesting tool is Robotium [2014], which is a framework for automating functional GUI testing in Android applications. Native capabilities for Android test automation as Instrumentation and MonkeyRunner may also be studied [Android Testing Fundamentals 2014]. Finally, a detailed literature review about mobile application testing will be performed. 3. Conduction of an exploratory study: based on the elicited knowledge in previous activities, we will conduct a first exploratory study to investigate the application of MBT in mobile applications for the Android platform. This study aims to identify tools, lessons learned, and limitations to be considered in the next activities. 4. Proposal of a testing approach: a model-based testing approach will be proposed to verify mobile applications, taking into account the results obtained in previous activities. The purposes of the approach are to maximize the fault detection rate, minimize the testing rework, and reduce the test execution time. It is expected to maximize the fault detection rate because it becomes possible to create and reuse test models to evaluate the SUT on different configurations of mobile devices. The testing rework will be minimized because the models can be updated and the test suite regenerated. 5. Development of supporting tools: this activity aims to develop supporting tools for the proposed approach. Existing tools can also be modified to integrate with the developed tool. A possible candidate would be the Astah tool; plug-ins could be developed to simplify the modeling and test generation steps. 6. Case studies in an industrial setting: the evaluation of software testing approaches basically involves two aspects: cost and effectiveness. We should consider the most appropriate metrics to evaluate these aspects, e.g., the time elapsed to design and implement the tests. The guidelines proposed in the literature [Wohlin et al. 2000, Kitchenham et al. 2002] will guide the planning, execution, and analysis of experimental 4 XII Workshop de Teses e Dissertações em Qualidade de Software studies performed. Initially, we plan to evaluate our proposal by conducting case studies in industrial settings with real-world applications and experienced professionals. 7. Elaboration of scientific papers: this activity aims to report the findings of this master’s project as scientific papers that will be submitted to journals and conferences of the software engineering and mobility areas. Current State of the Project. So far, we have worked on Activities 1, 2, and 3, described previously. A summary of Activity 2 is shown in Section 3. As Activities 1 and 2 involve literature review, future updates along the project are still necessary. Activity 3 was also performed. In summary, we evaluated the adoption of MBT concepts and modeling with ESG in the testing of Android applications. The preliminary results give evidences of the feasibility of TBM to verify mobility solutions with Android, observing automatic generation and execution of test cases, ability to detect faults, and reduced time for regression tests. This study and obtained results have been compiled in a submitted paper. Currently, the master’s candidate is working on Activities 4 and 5. Particularly, the result of Activities 1-4 is planned to be presented as a master’s proposal in December 2014. 5. Expected Results This section presents the results and benefits expected from this master’s project. The desired results are described as follows: (i) Mechanisms to support automated testing of mobile applications on Android: this result will be an approach based on MBT to verify mobile applications developed on Android platform. (ii) Supporting tools: testing tools will be developed and/or adapted to support the proposed approach. Furthermore, training materials will be prepared to use the tools. (iii) Experimental evaluation: case studies will be conducted in order to evaluate the applicability of the proposed approach, providing evidence on cost and effectiveness, relevant to industrial adoption. (iv) Technology transfer: we expect to transfer the technology developed to software companies that develop Android applications. We expect that the results bring the following benefits: (i) Strengthen the software engineering area in the master’s program, encouraging the transfer of technology to industry and disseminating the acquired knowledge through papers; (ii) collaboration with other research centers; and (iii) cooperation with technology incubators to implement software testing best practices in incubated companies that develop mobile applications. References Android Testing Fundamentals (2014) “Android Testing Framework”, available at http://developer.android.com/tools/testing/testing_android.html, June. Belli, F., Budnik, C. J. and White, L. (2006) “Event-based modelling, analysis and testing of user interactions: approach and case study”, Software Testing, Verification & Reliability, v. 16, n. 1, pages 3–32. Bo, J., Xiang, L. and Xiaopeng, G. (2007) “MobileTest: A Tool Supporting Automatic Black Box Test for Software on Smart Mobile Devices”, In: Proc. of the Second Int. Workshop on Automation of Software Test (AST). Bouquet, F., Debricon, S., Legeard, B. and Nicolet, J. B. (2006) “Extending the unified process with model-based testing”, In: 3rd Int. Workshop on Model Development, Validation and Verification (MoDeVa), Genova, Italy, pages 2-15. 5 WTDQS 2014 Delamaro, M. E., Vincenzi, A. M. R. and Maldonado J. C. (2006) “A strategy to perform coverage testing of mobile applications”, In: Proc. of the 2006 Int. Workshop on Automation of Software Test (AST), pages 118–124. El-Far, I. K. and Whittaker, J. A. (2001) “Model-based software testing”, In: Encyclopedia on Software Engineering, Wiley, pages 825-837. Endo, A. T. (2013) “Model-based testing of service oriented applications”, PhD dissertation, ICMC/USP, São Carlos, SP, available at http://www.teses.usp.br/teses/disponiveis/55/55134/tde-20062013-140259. Gartner, Inc. Press release (2014), available at: http://www.gartner.com/newsroom/id/2674215. Grieskamp, W., Kicillof, N., Stobie, K. and Braberman, V. A. (2011) “Model-based quality assurance of protocol documentation: tools and methodology”, Software Testing, Verification and Reliability, v. 21, n. 1, pages 55-71. Harrold, M. J. (2000) “Testing: A Roadmap”, In: Proceedings of the Conference on The Future of Software Engineering (ICSE), pages 61-72. Hierons, R. M., Bogdanov, K., Bowen, J. P., Cleaveland, R., Derrick, J., Dick, J., Gheorghe, M., Harman, M., Kapoor, K., Krause, P., Lüttgen, G., Simons, A. J. H., Vilkomr, S., Woodward, M. R. and Zedan, H. (2009) “Using formal specifications to support testing”, ACM Computing Surveys (CSUR), v. 41, n. 2, pages 1-76. Hu, C. and Neamtiu, I. (2011) “Automating GUI Testing for Android Applications”, In: Proc. of the 6th Int. Workshop on Automation of Software Test (AST), pages 77–83. Kitchenham, B. A., Pfleeger, S. L., Pickard, L. M., Jones, P. W., Hoaglin, D. C., Emam, K. E. and Rosenberg, J. (2002) “Preliminary guidelines for empirical research in software engineering”, IEEE Transactions on Software Engineering, v.28, 721–734. Liu, Y., Xu, C. and Cheung, S.C. (2014) “Characterizing and Detecting Performance Bugs for Smartphone Applications”, In: The 36th International Conference on Software Engineering (ICSE), Hyderabad, India. Maji, A. K., Hao, K., Sultana, S. and Bagchi, S. (2010) “Characterizing Failures in Mobile OSes: A Case Study with Android and Symbian”, In: The International Symposium on Software Reliability Engineering (ISSRE), pages 249–258. Muccini, H., Di Francesco, A. and Esposito, P. (2012) “Software testing of mobile applications: Challenges and future research directions”, In: The 7th International Workshop on Automation of Software Test (AST), IEEE. Pathak, A., Jindal, A., Hu, Y. C. and Midkiff, S.P. (2012) “What is keeping my phone awake? Characterizing and detecting no-sleep energy bugs in smartphone apps”, In: The Int’l Conf. Mobile Systems, App’s, and Services (MobiSys), pages 267-280. Pretschner, A. and Philipps, J. (2004) “Methodological issues in model-based testing”, In: Model-Based Testing of Reactive Systems, LNCS, pages 281-291. Robotium (2014) “Robotium – The world’s leading Android test automation framework”, available at https://code.google.com/p/robotium/, April. Utting, M. and Legeard, B. (2006) “Practical model-based testing: A tools approach”, San Francisco, CA, USA: Morgan Kaufmann Publishers Inc. Wohlin, C., Runeson, P., Hoest, M., Ohlsson, M. C., Regnell, B. and Wesslon, A. (2000) “Experimentation in Software Engineering: an Introduction”, Kluwer. Yang, S., Yan, D. and Routev, A. (2013) “Testing for poor responsiveness in Android applications”, In: Proc. Int’l Workshop on the Engineering of Mobile-Enabled Systems (MOBS), pages 10-20. 6 XII Workshop de Teses e Dissertações em Qualidade de Software Proposta para Teste de Usabilidade para Aplicações Móveis no Contexto de Computação Ubíqua Rodrigo dos Anjos Cruz Reis, Arilo Cláudio Dias Neto Instituto de Computação (IComp) – Universidade Federal do Amazonas (UFAM) Av. General Rodrigo Octávio, 6.200, Campus Universitário Senador Arthur Virgílio Filho – Setor Norte - Manaus - CEP 69.077-000 – Manaus – AM – Brasil [email protected]; [email protected] Abstract. The applicability of mobile devices has considerably increased in recent years, allowing users to perform more tasks in a mobile context. Moreover, the technological advances in the mobile devices and communication networks fields have making possible the ubiquitous computing. Since different people profiles are using this platform, it is necessary to analyze the usability of the applications developed to these devices in some contexts, including computing ubiquity. This work proposes the definition of a usability testing technique for mobile applications with ubiquity features aiming at increasing the quality of this category of software. Resumo. A utilidade de dispositivos móveis tem aumentado consideravelmente nos últimos anos, permitindo aos usuários executar mais tarefas em um contexto móvel. Além disso, os avanços tecnológicos nas áreas de dispositivos móveis e redes de comunicação tem tornado possível a computação ubíqua. Visto que pessoas com perfis diferentes estão usando esta plataforma é preciso ter atenção a usabilidade dos aplicativos desenvolvidos para esses dispositivos em alguns contextos, sendo um deles o de ubiquidade computacional. Este trabalho propõe a definição de uma técnica de teste de usabilidade para aplicativos móveis com características de ubiquidade visando aumentar a qualidade desta categoria de software. Palavras-Chave: Avaliação de Usabilidade, Aplicações móveis, Teste, Ubiquidade, Qualidade de software. 1. Introdução e Caracterização do Problema O cenário de aplicações para dispositivos móveis (neste trabalho serão chamadas simplesmente de aplicativos móveis), desde a sua criação e até os dias atuais, vem evoluindo em tecnologia e se disseminando na população. Segundo Harrison (2013), a variedade e a disponibilidade de aplicativos móveis estão se expandindo rapidamente. Os desenvolvedores estão aumentando os serviços que são fornecidos devido ao aumento do poder de processamento disponível nos dispositivos móveis. Aliado a este cenário de evolução na plataforma móvel, é preciso ter atenção aos avanços tecnológicos nas áreas de dispositivos móveis e redes de comunicação que, segundo Spínola (2010), tornaram possível a computação ubíqua. Assim como qualquer outra categoria de software, os aplicativos móveis e ubíquos requerem qualidade para atender aos requisitos propostos e, assim, satisfazer às necessidades de seus usuários finais. Nesta pesquisa, optou-se por medir a usabilidade, que é um dos atributos de qualidade definidos pela norma ISO/IEC 25000 (2014). 7 WTDQS 2014 Com base nos resultados parciais de um mapeamento sistemático que está sendo conduzido, percebeu-se a existência de diversas técnicas de teste de usabilidade para diversos tipos de aplicações desenvolvidas para a plataforma móvel. Alguns testes são conduzidos levando-se em conta fatores de acordo com normativas para usabilidade de software listadas por Nielsen (1993), outros se concentram apenas em um subconjunto. No entanto, essas técnicas não capturam adequadamente as complexidades de interação com aplicações em uma plataforma móvel. Estas complexidades podem existir por causa das caraterísticas diferenciadas existentes na plataforma como o pequeno tamanho da tela, conectividade e entradas limitadas, o que restringe as maneiras pelas quais os usuários podem interagir com eles e que, segundo Harrison (2013), possuem um efeito sobre a usabilidade de aplicações móveis. Ainda baseado nos resultados do mapeamento sistemático citado, percebeu-se que na literatura ainda não pode ser identificada uma técnica de teste de usabilidade cujo foco seja atingir as características de ubiquidade descritas por Spínola (2010), existentes em aplicações móveis. Essas características serão abordadas na seção seguinte. Portanto, o objetivo deste trabalho é definir uma técnica de teste de usabilidade com foco em aplicações móveis com características de ubiquidade visando aumentar a qualidade destes. 2. Fundamentação Teórica 2.1. Aplicações Móveis Segundo Kirubakaran (2013), de acordo com as últimas pesquisas do Wireless Smartphone Strategies (WSS), o número de smartphones em uso no mundo ultrapassou a marca de 1 bilhão de unidades pela primeira vez no terceiro trimestre de 2012. Passaram-se 16 anos para a indústria de telefonia inteligente chegar a este marco histórico, mas o próximo bilhão pode ser alcançado em menos de três anos, ou seja, até 2015. As aplicações móveis foram desenvolvidas inicialmente em sua maioria para o setor de entretenimento. Atualmente, já estão em domínios mais críticos, tais como varejo (ex: locação-inteligente de comércio móvel), mídia (revistas e jornais 100% digitais), viagens (reservas de imóveis, check-ins em viagens aéreas, mapas, ofertas, etc), educação (uso de tablets e aplicativos em salas de aula), saúde (registros de consulta a pacientes, notas de médicos, etc), finanças (aplicativos para negociação em tempo real, análise de portfólio, movimentação financeira) e sociais (jogos e plataformas de mídia social) (KIRUBAKARAN, 2013). No entanto, apesar do crescimento e inserção das aplicações móveis em nossa sociedade, elas possuem limitações. Zhang e Adipat (2005) destacam uma série de questões que foram introduzidas com o advento de dispositivos móveis e que precisam ser consideradas durante o desenvolvimento destas aplicações: contexto celular, conectividade, pequeno tamanho da tela, resolução diferente em displays, capacidade e poder de processamento limitados e métodos de acesso de dados. 2.2. Computação Ubíqua Aliado ao cenário apresentado na seção anterior de evolução na plataforma móvel, é preciso ter atenção aos avanços tecnológicos nas áreas de dispositivos móveis e redes de comunicação que, segundo Spínola (2010), tornaram possível a computação ubíqua. O termo computação ubíqua pode ser entendido como alto grau de dispositivos embarcados 8 XII Workshop de Teses e Dissertações em Qualidade de Software da computação pervasiva juntamente com o alto grau de mobilidade da computação móvel, onde computação pervasiva diz que o computador está embarcado no ambiente de forma invisível para o usuário (ARAUJO, 2010). O objetivo da computação ubíqua é tornar os serviços computacionais embutidos no ambiente que nos cerca, de forma que seu uso seja não intrusivo para os usuários (WEISER, 1991)(ABOWD,1999). Spínola (2010) definiu características funcionais de ubiquidade que podem compor projetos de software: onipresença de serviços, invisibilidade, sensibilidade ao contexto, comportamento adaptável, captura de experiências, descoberta de serviços, composição de funcionalidade, interoperabilidade espontânea, heterogeneidade de dispositivos e tolerância a falhas. Em um projeto de software ubíquo, estas características resultarão em requisitos funcionais e não-funcionais a serem atendidos. 2.3. Teste de software Teste de Software é uma das técnicas de verificação e validação de software (V&V) e consiste em uma investigação experimental conduzida para prover informações aos usuários e envolvidos no processo sobre a qualidade do software sob teste no contexto no qual este será operado (KANER, 2006). As atividades de teste de software possuem um papel fundamental no desenvolvimento de um software como mecanismo de apoio à garantia da qualidade do produto, pois corresponde ao último recurso para avaliação do produto antes da sua entrega ao usuário final. Segundo Nielsen (1994), em teste de software deve-se avaliar diferentes níveis, atingindo não só como requisitos funcionais, mas como também requisitos não-funcionais. O foco deste trabalho está nos requisitos não-funcionais, especificamente teste de usabilidade 2.4. Avaliação de Usabilidade em Aplicações Móveis Assim como qualquer outra categoria de software, os aplicativos móveis e ubíquos requerem qualidade para atender aos requisitos propostos e, assim, satisfazer às necessidades de seus usuários finais. A ISO/IEC 2500 (2014), composta por Requisitos, Modelo, Gerenciamento, Medições e Avaliação, divide os atributos do seu Modelo de Qualidade em: Funcionalidade, Confiabilidade, Usabilidade, Eficiência, Manutenibilidade e Portabilidade. Neste trabalho, o foco será em características de Usabilidade. Na literatura técnica, várias definições de usabilidade podem ser encontradas. Por exemplo, Jakob Nielsen (1993) divide a usabilidade em cinco fatores: facilidade de aprendizagem, eficiência, facilidade de memorização, erros e satisfação. A ISO-9241 (2002), define usabilidade como "a extensão em que um produto pode ser usado por usuários específicos para alcançar objetivos específicos com efetividade, eficiência e satisfação em um contexto de uso especificado". Abran et al. (2007) apresentaram um modelo de usabilidade consolidado que define usabilidade como uma combinação de eficácia, eficiência, satisfação, capacidade de aprendizado, e segurança, juntamente com um conjunto recomendado de medidas relacionadas. Nayebi et al. (2012) resumem que seria importante considerar três aspectos de usabilidade para todos os tipos de software: mais eficiente de usar, mais fácil de aprender e mais satisfação do usuário. A avaliação de usabilidade pode ser feita por meio de técnicas estáticas (ex: revisão de software) ou dinâmicas (ex: teste de software). Este trabalho está focado na 9 WTDQS 2014 aplicação de técnicas dinâmicas (teste de software) como instrumento para avaliação da usabilidade de aplicações móveis ubíquas. Contextualizando o cenário de teste de software para avaliação de usabilidade de sistemas, um teste de usabilidade eficaz deve ser capaz de obter feedback dos usuários sobre se eles usam uma aplicação sem (ou quase sem) dificuldade e como eles gostam de usar a aplicação, bem como avaliar os níveis de desempenho da tarefa alcançados pelos usuários (WICHANSKY, 2000). 3. Metodologia e Estado Atual do Trabalho A metodologia a ser empregada para o desenvolvimento da pesquisa envolve duas fases: fase de concepção e fase de avaliação. Na primeira fase, são coletadas as informações através de investigações da literatura. É nesta fase também que a técnica será definida e uma ferramenta de implementação da técnica será desenvolvida. Na fase de avaliação, os experimentos serão planejados, executados e analisados. As atividades correspondentes a esta metodologia são apresentadas a seguir, de acordo com suas fases. 3.1. Fase de Concepção: C1) Investigação da literatura técnica para identificação de trabalhos científicos e relatos de experiência que abordem a avaliação de usabilidade em aplicações móveis (destacando aquelas aplicadas no contexto de ubiquidade). C2) Análise do resultado das investigações realizadas no passo anterior a fim de selecionar quais características de ubiquidade serão abordadas nessa proposta. C3) Estudo sobre desenvolvimento de teste de usabilidade em aplicações móveis a fim de adaptá-las às aplicações móveis ubíquas. C4) Definição da técnica em conformidade com os princípios e normas estudados no passo anterior. C5) Desenvolvimento da ferramenta que implemente a técnica proposta no passo anterior. 3.2. Fase de Avaliação: A1) Planejamento dos estudos a serem realizados na fase de avaliação. A2) Realização do estudo de viabilidade com estudantes da UFAM para avaliar a qualidade da técnica e da ferramenta desenvolvida nesse trabalho. A3) Realização de um estudo qualitativo através de um experimento in vivo (em um cenário real da indústria de software) para avaliar a técnica e ferramenta proposta. Atualmente, está sendo concluída a atividade C2 da metodologia apresentada através de um mapeamento sistemático para identificar o que tem sido pesquisado com relação à avaliação de usabilidade em aplicações móveis no contexto de ubiquidade para ajudar a definir qual(is) característica(s) de usabilidade será(ão) tratada(s) neste trabalho. 4. Trabalhos Relacionados Segundo Machado-Neto (2013), a usabilidade de aplicativos móveis vem sendo avaliada através das heurísticas de Nielsen (1994). No entanto, este estudo avaliou que as heurísticas de Nielsen são deficientes em identificar problemas de usabilidade destes aplicativos. Sendo assim em Machado-Neto(2013), foram desenvolvidas novas heurísticas apropriadas para aplicativos móveis baseada nas heurísticas de Nielsen. 10 XII Workshop de Teses e Dissertações em Qualidade de Software Alguns trabalhos anteriores apresentaram uma análise sobre avaliação de usabilidade para aplicativos móveis. Por exemplo, Zhang et al. (2005) apresentaram um panorama dos estudos de usabilidade existentes, com foco em testes de usabilidade, e discutem as principais questões que têm sido investigadas. Em seguida, propõe-se uma estrutura genérica e fornece orientações detalhadas sobre como conduzir tais estudos de usabilidade em dispositivos móveis. Duh et al. (2006) descrevem um estudo que investigou as diferenças entre os testes de usabilidade em celulares conduzidos em laboratório e em situação real de uso. Foram encontradas diferenças significativas, incluindo a frequência e gravidade dos problemas de usabilidade encontrados, o comportamento dos usuários e respostas subjetivas para o dispositivo e a interação. Em (Nayebi et al., 2012), é apresentado um estudo que analisou as metodologias utilizadas para avaliar empiricamente a usabilidade em aplicações móveis, classificando como experimentos de laboratório, estudos de campo e prática de medição. O estudo descreve vantagens e limitações de cada metodologia. Existe também um modelo de avaliação de usabilidade criado por Harrison (2013) chamado PACMAD (People At the Centre of Mobile Application Development). Este modelo de usabilidade foi projetado para lidar com as limitações dos modelos existentes, quando aplicado a dispositivos móveis. Porém, esse modelo apresenta a mesma deficiência quando se trata de aplicativos móveis que possuem características de ubiquidade, ao não tratar diretamente essas características. Recentemente, Kjeldskov et al. (2014) apresentam e avaliam seis técnicas para avaliar a usabilidade de aplicações móveis em laboratório. As seis técnicas são avaliadas através de dois experimentos de usabilidade. Spínola (2010) diz que é importante que novas pesquisas sejam realizadas na engenharia de software considerando a computação ubíqua e seus desafios associados. Esses desafios se encontram em cada etapa do ciclo de vida do software. A pesquisa proposta neste artigo se concentra na etapa de testes onde, segundo Spínola (2010), existem lacunas a serem preenchidas tais como: quais abordagens de teste podem ser utilizadas e como garantir a qualidade dos requisitos oferecidos pelo sistema. Neste contexto, este trabalho propõe enriquecer esta linha de pesquisa, desenvolvendo uma técnica para Testes de Usabilidade que esteja de acordo com a situação atual da tecnologia e o conceito ubíquo, que possa ser instanciado de acordo com especificações dentro do contexto da plataforma móvel. Fatores abordados neste modelo poderão ser encontrados em normativas de usabilidade e através do resultado de um mapeamento sistemático executado durante o desenvolvimento da técnica. 5. Resultados Esperados Espera-se como resultado ter a primeira abordagem (técnica + ferramenta) de teste de usabilidade que apoie especificamente a avaliação de aplicações móveis que possuam características de ubiquidade integradas aos seus serviços. Pretende-se nessa ferramenta especificar e mostrar os tipos de contextos da aplicação testada para o testador, contextos esses que foram definidos na técnica, em seguida a tela será percorrida e resultados obtidos com resultados esperados ja definidos pela técnica serão comparados. Também é esperado com os resultados obtidos desta pesquisa que seja possível a implementação de tal abordagem por empresas que desejam aperfeiçoar seu 11 WTDQS 2014 desenvolvimento com estas melhorias, fornecendo um meio com bom custo benefício para o teste dessas aplicações. Referências Araujo, R. B. (2003) “Computação ubíqua: Princípios, tecnologias e desafios”. In: XXI Simpósio Brasileiro de Redes de Computadores. p. 11-13. Abowd, G. (1999). “Software engineering issues for ubíquos computing”. Proceedings of the 21 International Conference on Software Engineering. Pages: 75 – 84, Los Angeles, USA. Duh, H., G. Tan, V. Chen. (2006) “Usability evaluation for mobile device: a comparison of laboratory and field tests”. Proceedings of the 8th conference on Human-computer interaction with mobile devices and services (MobileHCI '06), pp. 181-186. Harrison, R., Flood, D., & Duce, D. (2013). “Usability of mobile applications: literature review and rationale for a new usability model”. Journal of Interaction Science, p 116. ISO 9241-11 (2002) “Ergonomic Requirements for Office Work with Visual Display Terminals (VDTs)” Part 11: Guidance on Usability. ISO/IEC 25000. (2003/2014)” Software Engineering -- Software product Quality Requirements and Evaluation (SQuaRE) -- Guide to SQuaRE”. Kaner, C. (2006)_“Exploratory Testing, Florida Institute of Technology”, Quality Assurance Institute Worldwide Annual Software Testing Conference, Orlando, FL, Novembro. Kjeldskov, J., J. Paay. (2012) “A longitudinal review of Mobile HCI research methods”. In: International Conference on Human-computer interaction with mobile devices and services (MobileHCI'12), pp. 69-78. Kirubakaran, B.; Karthikeyani, V. (2013) “Mobile application testing—Challenges and solution approach through automation.” In: Pattern Recognition, Informatics and Medical Engineering (PRIME), International Conference on. IEEE, p. 79-84. Machado-Neto, J. O., (2013) “Usabilidade da interface de dispositivos móveis: heurísticas e diretrizes para o design”. Tese de Doutorado. Universidade de São Paulo. Nielsen, J. (1993) “Usability engineering”. San Diego: Academic Press. Nayebi, F., J.M. Desharnais, A. Abran. (2012) “The State of the Art of Mobile Application Usability Evaluation”. In: 25th IEEE Canadian Conference on Electrical Computer Engineering CCECE, p:1-4. Nielsen, Jakob. Usability inspection methods. In: Conference companion on Human factors in computing systems. ACM, 1994. p. 413-414 Spinola. R. O., “Apoio A Especificação e Verificação De Requisitos Funcionais De Ubiquidade Em Projetos De Software”. Tese de Doutorado. Alberto Luiz Coimbra De Pós-Graduação E Pesquisa De Engenharia (Coppe) Da Universidade Federal Do Rio De Janeiro 2010. Weiser M. (1991) “The Comouter for the 21st Century”. Scientific American 1991, p: 94104., Wichansky, A. (2000) “Usability test in 2000 and beyond. Ergonomic”, 43(7), 998-1006. Zhang, D, & Adipat, B. (2005). “Challenges, methodologies, and issues in the usability testing of mobile applications”. International Journal of Human-Computer Interaction, 18(3), p:293–308. 12 XII Workshop de Teses e Dissertações em Qualidade de Software Um Framework para as Micro e Pequenas Empresas de Desenvolvimento de Software Baseado no MPT. BR e na ISO/IEC/IEEE 29119-2 Dianne Dias Silva, Edmundo Sérgio Spoto, Leandro Luís Galdino de Oliveira Instituto de Informática – Universidade Federal do Goiás (UFG) Caixa Postal 131 – 74001-970 – Goiânia – GO – Brasil [email protected], [email protected], [email protected] Abstract. This paper proposes a framework based on the Model of Software Testing Process MPT.BR and Standard ISO/IEC/IEEE 29119-2 in order to build a proper process for micro and small enterprises software development and to bring improvements to Freetest Method. The article also presents a theoretical foundation on which this framework will be supported, as well as its methodology, the current state, the related work and the expected results of this work. Resumo. Esse artigo propõe um framework baseado no Modelo de Processo de Teste de Software MPT.BR e na Norma ISO/IEC/IEEE 29119-2, visando à construção de um processo adequado para as micro e pequenas empresas de desenvolvimento de software e, que traga melhorias para o Método Freetest. O artigo apresenta ainda, uma fundamentação teórica na qual esse framework se apoiará, assim como sua metodologia, o estado atual, os trabalhos relacionados e os resultados esperados desse trabalho. 1. Caracterização do Problema A crescente demanda e, consequentemente, a complexidade dos produtos de software ocorrida nas últimas décadas, exige cada vez mais que as equipes envolvidas nos projetos de desenvolvimento sejam maiores e especializadas, provocando um anseio por qualidade e produtividade, tanto do ponto de vista do processo de produção como do ponto de vista dos produtos gerados. Diante disso, as micro e pequenas empresas de desenvolvimento de software têm se preocupado e investido na Garantia da Qualidade, que está diretamente relacionada com a qualidade do Processo de Teste ao qual foi submetido [Staab 2003]. Ainda que haja inúmeras técnicas, políticas e metodologias na área de Teste de Software, existem deficiências evidentes em relação à integração entre o Processo de Teste e Ferramentas no âmbito desse tipo de organização. Considerando esse panorama, estabeleceu-se o Método Freetest através do programa PAPPE Integração apoiado pela FAPEG/FINEP (Fundação de Amparo à Pesquisa do Estado de Goiás/Financiadora de Estudos e Projetos) e pelos profissionais do INF (Instituto de Informática) da UFG (Universidade Federal de Goiás) em conjunto com grandes nomes da indústria de software do estado de Goiás. Entretanto, o Método Freetest requer aprimoramento principalmente no que tange à descrição e ao detalhamento do Processo de Teste estruturado, uma vez que, os Níveis de Maturidade, as Áreas do Processo e as Práticas Genéricas que o contemplam 13 WTDQS 2014 são expostos de maneira sintética. Logo, a implementação e a institucionalização do referido método tornam-se onerosas e complexas para as empresas de desenvolvimento de software. Portanto, esse trabalho objetiva: desenvolver um framework de Processo de Teste de Software embasado nos pontos fortes do MPT.BR (Melhoria do Processo de Teste Brasileiro) e da ISO/IEC/IEEE (International Organization for Standardization/International Electrotechnical Commission/Electrical and Electronic Engineers) 29119-2 que resultará na melhoria do Método Freetest; implementar o Método Freetest após sua respectiva reformulação nas organizações que fazem o uso desse processo; certificar a consistência do modelo em questão depois da coleta e apuração dos resultados obtidos com a implementação do método reformulado; contribuir com as micros e pequenas empresas de desenvolvimento de software na produção de produtos de baixo custo e com alta qualidade. Esse trabalho está dividido em 5 seções. Na Seção 2 são apresentados os principais conceitos e terminologias referentes à fundamentação teórica. Nas Seções 3 e 4 são demonstrados a metodologia e estado atual do trabalho, bem como os trabalhos relacionados. E, na Seção 5 são tratados os resultados esperados do trabalho em questão. 2. Fundamentação Teórica Atualmente, a gerência da Qualidade de Software não se restringe apenas a definir procedimentos, padrões e verificar se estes estão empregados no desenvolvimento de software. Essa atividade determina uma cultura de qualidade na organização, na qual todos os envolvidos no desenvolvimento do produto detêm um nível de qualidade (individual) a ser alcançado. A Garantia da Qualidade é composta por três atividades principais (Pilares da Qualidade de Software): Planejamento, Garantia e Controle da Qualidade [Bartié 2002]. O Teste de Software é considerado um elemento crítico da Garantia da Qualidade, cuja finalidade é detectar o maior número de defeitos no software, por meio de um conjunto de atividades planejadas antecipadamente e executadas de maneira sistemática antes da entrega final do produto. O seu principal foco é a redução da probabilidade de ocorrência de defeitos quando o sistema já estiver em produção, sendo esses erros, defeitos ou falhas diretamente ligados aos riscos que podem prejudicar o negócio. Em outros termos, quanto antes os testes forem iniciados, menos dispendiosas serão as correções dos erros e/ou falhas encontrados. [Bastos et al. 2012]. Para que isso seja possível, faz-se necessária a definição de um Processo de Teste com um ciclo de vida estabelecido (MPT.BR, ISO/IEC/IEEE 29119-2 e Método Freetest), em que suas respectivas atividades devem ser desenvolvidas ao longo do próprio Processo de Desenvolvimento de Software, que em geral, concretizam-se em quatro níveis: Unidade, Integração, Sistema e Aceitação [Pressman 2002]. Fundamentado nisso, os critérios de teste são estabelecidos a partir de três técnicas: Funcional (Particionamento em Classes de Equivalência e Análise do Valor Limite), Estrutural (Baseado em Fluxo de Controle e Baseado em Fluxo de Dados) e a Baseada 14 XII Workshop de Teses e Dissertações em Qualidade de Software em Erros (Semeadura de Erros e Análise de Mutantes) [Budd 1981] [Rapps e Weyuker 1985] [DeMillo et al. 1978]. Sendo assim, o MPT.BR trata da melhoria do Processo de Teste através de práticas que envolvem as atividades projetadas ao longo do ciclo de vida de teste do produto de software. Sua estrutura é dada por dois componentes: o Guia de Referência (apresenta a estrutura, as áreas de processo e as práticas do modelo) e o Guia de Avaliação (contém o processo de avaliação e instruções para a realização da mesma em uma organização baseada no MPT.BR). Esse modelo têm como principais objetivos: tornar-se um modelo de referência para definição, implantação e melhoria dos Processos de Teste; abordar a melhoria contínua nos Processos de Teste conforme os objetivos organizacionais e o nível de maturidade almejado; fornecer uma base para avaliação e consequente identificação do grau de maturidade presente nas organizações; e reunir as melhores práticas e estruturá-las segundo o grau de complexidade versus o nível de maturidade na qual as organizações estão relacionadas [Softex 2011]. Porém, a ISO/IEC/IEEE 29119 é um conjunto de padrões de Teste de Software acordados internacionalmente que podem ser usados em qualquer ciclo de vida de desenvolvimento de software ou organização, fornecendo aos mesmos uma abordagem de alta qualidade para essa atividade. Essa norma especifica os Processos de Teste que podem ser utilizados para controlar, gerenciar e implementar Teste de Software em qualquer atividade da organização, projeto ou teste. Ela é composta de quatro normas ISO/IEC/IEEE: 29119-1 (Conceitos e Definições), 29119-2 (Processos de Teste), 29119-3 (Documentação de Teste) e 29119-4 (Técnicas de Teste). A avaliação do processo estabelecido na ISO/IEC/IEEE 29119-2 ocorre de acordo com a ISO/IEC 33063 (Modelo de Avaliação de Processo de Teste de Software) e ainda, substituem uma série de padrões existentes: IEEE 829 (Documentação de Teste), IEEE 1008 (Testes Unitários), BS (British Standards) 7925-1 (Vocabulário de Termos em Teste de Software) e BS 7925-2 (Componente Padrão de Teste de Software) [ISO/IEC/IEEE 2013]. Em contrapartida, o Método Freetest consiste em um conjunto de processos e ferramentas para Teste de Software estruturado especificamente para as micro e pequenas empresas de desenvolvimento de software, cuja metodologia estabelece soluções de fácil aplicação juntamente com as ferramentas de desenvolvimento. Sua organização se dá através três componentes: o Manual de Instalação (detalha o processo de integração entre as ferramentas de teste Testlink e Mantis), o Manual de Utilização (expõe o uso da integração entre as ferramentas de teste Testlink e Mantis) e o Manual do Modelo (mostra a estrutura, as áreas de processo e as práticas do modelo). Esse modelo tem como propósito a realização de testes de forma sistemática por meio da instanciação de um Processo de Teste com suporte automatizado. São contemplados ainda, nesse método a integração de quatro ferramentas de teste: Bug Wizard Report (integração do Testlink ao Mantis), JinFeng (integração de diferentes plataformas de teste baseada em ferramentas de código aberto e escrito em Python/Jython), JMeter (Teste de Performance, Carga e Stress), Selenium (automação de Teste Funcional para 15 WTDQS 2014 interfaces Web) e Sikuli (automação e Teste de Interfaces Gráficas utilizando imagens) [INF/UFG, 2013]. 3. Metodologia e Estado Atual do Trabalho Inicialmente, tanto o Guia de Referência do MPT.BR quanto a ISO/IEC/IEEE 29119-2 assim como o Manual do Modelo do Método Freetest, serão estudados a fim de identificar e explorar os Níveis de Maturidade, as Áreas de Processo, as Práticas Genéricas, as Multicamadas do Processo e também, as Atividades e Tarefas que os compõem respectivamente. Isto é, cada um dos Modelos de Processo de Teste e da Norma citados anteriormente, terão a Visão Geral, o Propósito, os Produtos Típicos e Resultados além, das Vantagens e Desvantagens mapeados. Possibilitando assim, a detecção das potenciais melhorias a serem incorporadas no Método Freetest. Em seguida, a partir da seleção das Áreas de Processo e das Práticas Genéricas compreendidas nos Níveis de Maturidade do MPT.BR e, das Atividades e Tarefas delimitadas nas Multicamadas do Processo referentes à ISO/IEC/IEEE 29119-2 consideradas viáveis (baixo custo e fácil implementação) de acordo com o contexto das organizações, um framework será desenvolvido e agregado ao Método Freetest. Após a remodelagem desse método, as micro e pequenas empresas de desenvolvimento de software que o utilizam serão visitadas, com o intuito de verificar a aderência ou não do processo implantado previamente. Onde, essa verificação consistirá na análise dos seus devidos ambientes de teste por meio de brainstorming, entrevistas e reuniões com as equipes de teste envolvidas nos Projetos de Teste. Que por consequência, apoia a calibragem do referido Processo de Teste. Posteriormente à reformulação do Método Freetest, ocorrerá a sua reimplantação em cada uma dessas organizações, que serão monitoradas e controladas de maneira presencial. Visto que, o ciclo de vida definido para os Projetos de Teste destas, são comprovados através dos produtos de trabalho gerados, ou seja, dos artefatos. Contudo, os resultados obtidos com a execução desse Processo de Teste serão coletados segundo o sumário dos registros de teste presentes nos artefatos estipulados no método em questão e logo após, comparados com os resultados esperados pela Gerência de Projeto de Teste e de Desenvolvimento de Software. Por fim, os Projetos de Teste passarão por uma inspeção de software envolvendo as equipes de teste das micro e pequenas empresas de desenvolvimento de software objetivando a certificação da conformidade com o Método Freetest. Nesse momento, o framework baseado no MPT.BR (Níveis de Maturidade, Áreas de Processo e Práticas Genéricas) e na ISO/IEC/IEEE 29119-2 (Multicamadas do Processo, Atividades e Tarefas) que incorporará o Método Freetest está sendo construído e também, observados os pontos a serem aperfeiçoados nesse modelo. 4. Trabalhos Relacionados A metodologia de Crespo et al. (2004), está fundamentada na adoção de um Processo de Teste e nos artefatos sugeridos pelo padrão IEEE 829-1998, que descreve os documentos originados durante o seu ciclo de vida. Essa metodologia de teste foi 16 XII Workshop de Teses e Dissertações em Qualidade de Software projetada e desenvolvida de forma a possibilitar que as empresas instanciem o Processo de Teste de acordo com as suas necessidades e disponibilidade de recursos, podendo ainda ser aplicada a qualquer tipo de software, seja ele sistema de informações ou software científico. Em Sartori (2005), foi definido um Modelo de Melhoria de Processo de Teste para pequenas empresas tendo como base o TMM (Test Maturity Model), levando-se em consideração suas diretrizes essenciais. O modelo proposto conta com um mecanismo de avaliação que permite identificar o nível de maturidade em que a dada empresa desenvolvedora se encontra, fornecendo dessa forma, subsídios para auxiliar a implantação de melhorias na área de Teste. Silva (2011), também estruturou uma metodologia de teste viável para as micro e pequenas empresas baseado nos modelos de documentos disponibilizados pelo padrão IEEE 829-1998. A metodologia contou com o apoio de especialistas em teste e de profissionais que atuam em pequenas empresas para que sua estruturação fosse viabilizada, por meio da abordagem do multicritério de apoio à decisão. O objetivo é diminuir a quantidade de documentos, bem como o escopo desses documentos, gerados no decorrer do Processo de Teste, de forma a conter apenas os itens mais relevantes para a realidade das micro e pequenas empresas. O arcabouço estabelecido por Araújo (2013), avalia o nível de maturidade do Processo de Teste com base nas práticas do TMMI (Test Maturity Model Integration) que possibilite as micro e pequenas empresas realizarem a autoavaliação da maturidade do seu respectivo processo sem possuir um conhecimento avançado do modelo. Por fim, o trabalho em questão determina a construção de um framework cujo público alvo são as micro e pequenas empresas de desenvolvimento de software baseado no Modelo de Processo de Teste de Software MPT.BR e na Norma ISO/IEC/IEEE 29119-2 que possibilite a melhoria do Método Freetest. 5. Resultados Esperados O Teste de Software não é uma atividade trivial devido à flexibilidade para mudanças, complexidade e intangibilidade, ou seja, às próprias características do software. E para que essa atividade obtenha êxito, é imprescindível o conhecimento, planejamento, projeto, acompanhamento, recursos e também a interação com as equipes envolvidas na construção do produto de software [Crespo et al. 2004]. Dessa forma, os resultados esperados com esse trabalho são: a construção de um framework de Processo de Teste baseado nos pontos fortes do MPT.BR e da ISO/IEC/IEEE 29119-2 que contribua com a melhoria do Método Freetest e, a aplicação desse método após sua respectiva reformulação nas organizações que fazem o seu uso. Verificando assim, os benefícios e ganhos proporcionados desde o início até a conclusão do Processo de Desenvolvimento de Software juntamente com um Processo de Teste efetivo, estruturado especificamente para micro e pequenas empresas de desenvolvimento de software. 17 WTDQS 2014 Referências Araújo, A. F. (2013) “Um Arcabouço para Avaliação do Nível de Maturidade em Teste de Software para Micro e Pequenas Empresas”, http://www.inf.ufg.br/mestrado/sites/www.inf.ufg.br.mestrado/files/uploads/Dissert acoes/adailton_ferreira_de_araujo.pdf. Bartié, A. (2002), Garantia de Qualidade de Software, Campus. Bastos, A., Cristalli, R., Moreira, T. e Rios, E. (2012), Base de Conhecimento em Teste de Software, Martins, 3ª edição. Budd, T. A. (1981) “Mutation Analysis: Ideas, Example, Problems and Prospects”, Computer Program Testing: Proceedings of the Summer School on Computer Program Testing held at SOGESTA, Urbino, Italy, North-Holand Publishing Company, p. 129 – 148. Crespo, A. N., Silva, O. J., Borges, C. A., Salviano, C. F., Teive, M., Junior, A. e Jino, M. (2004) “Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo”, http://www.lbd.dcc.ufmg.br/colecoes/sbqs/2004/024.pdf. DeMillo, R. A., Lipton, R. J. and Sayward, F. G. (1978) “Hints on Test Data Selection: Help for the Practicing Programmer”, https://www.st.cs.unisaarland.de/edu/recommendation-systems/papers/Hints_on_Test_Data_Selection1.pdf. INF/UFG, (2013) “Manual do Processo de Teste de Sofware para Micro e Pequena Empresas”, versão 2.0, Manual Técnico, http://www.freetest.net.br/ferramentas. ISO/IEC/IEEE (2013), ISO/IEC/IEEE 29119-2, Software and Systems Engineering – Software Testing – Part 2: Test Process. Pressman, R. S. (2002), Engenharia de Software, McGraw-Hill, 5 edição. Sartori, L. E. S. (2005) “Melhoria do Processo de Teste para Pequenas Empresas”, http://aberto.univem.edu.br/bitstream/handle/11077/335/Melhoria%20do%20Proce sso%20de%20Teste%20para%20Pequenas%20Empresas.pdf?sequence=1. Silva, A. R. (2011) “Uma Metodologia de Testes em Software para Micro e Pequenas Empresas Estruturada em Multicritério”, http://uol11.unifor.br/oul/conteudosite/F1066341385/Dissertacao.pdf. Softex (2011), MPT.BR – Melhoria de Processo de Teste Brasileiro: Guia de Referência. Staab, T. C. (2003) “Improving the Test Process – Looking at The Test Process – Getting Started”, The Journal of the Software Testing Professionals. Rapps, S. e Weyuker, E. J. (1985) “Selecting Software Test Data Using Data Flow Information”, IEEE Transactions on Software Engineering, p. 367–375. 18 XII Workshop de Teses e Dissertações em Qualidade de Software Uma Proposta de Metodologia para Gerenciamento de Riscos em Projetos de Software aderente a Modelos e Normas de Qualidade de Processo de Software Heresson João Pampolha de Siqueira Mendes1, Sandro Ronaldo Bezerra Oliveira1 1 Programa de Pós-Graduação em Ciência da Computação (PPGCC) – Universidade Federal do Pará (UFPA) - Rua Augusto Corrêa, 01 – Guamá – Belém - PA - Brasil [email protected], [email protected] Abstract. This paper presents a proposal of methodology for Risk Management process, which intends to comply with the best practices of the leading software quality models: MR-MPS-SW, CMMI-DEV, ISO/IEC 12207, PMBoK and ISO/IEC 16085. Resumo. Este trabalho apresenta uma proposta de metodologia para implementação do processo de Gerência de Riscos em organizações desenvolvedoras de software, que visa atender às boas práticas apresentadas em alguns dos principais modelos e normas relacionados à qualidade de software: MR-MPS-SW, CMMI-DEV, ISO/IEC 12207, PMBoK e ISO/IEC 16085. 1. Caracterização do Problema O desenvolvimento de um software é não repetitivo e imprevisível, envolvendo alta complexidade, necessitando estar em conformidade com as necessidades do cliente, sujeito a constante mudanças, além de ser intangível [BROOKS, 1986]. Uma maneira encontrada para tentar ultrapassar estas dificuldades é através de modelos e normas, que são guias para executar boas práticas em processos de software, fornecendo diretrizes em diversas disciplinas relacionadas ao desenvolvimento de software, entre elas está o Gerenciamento de Riscos. As dificuldades apresentadas por Brooks (1986), perduram até hoje, confirmando-se com a citação de Pressman (2011), que evidencia a importância desta área do conhecimento ao afirmar que software é uma empreitada difícil, muitas coisas podem dar errado, portanto entender os riscos e tomar medidas proativas para evitá-los é essencial para um bom gerenciamento do projeto de software. Profissionais e pesquisadores concordam que para a gerência de riscos ser efetiva é necessário incluí-la desde as fases iniciais do processo de desenvolvimento [ISLAM, 2011], pois requisitos é uma das principais causas de falhas nos projetos [GLASS, 1998]. Uma vantagem de considerar gerência de riscos desde as fases iniciais do processo de desenvolvimento do software é a possibilidade de identificar prematuramente problemas futuros que aumentariam os custos do projeto [VAN LAMSWEERDE, 2009]. Diversos modelos e guias de boas práticas para projetos e projetos de software, como MR-MPS-SW [SOFTEX, 2012], PMBOK [PMI, 2013], ISO/IEC 12207 [ABNT, 2009] e CMMI-DEV [SEI, 2010], possuem referência à área de Gerenciamento de Riscos, embasando a importância deste processo. Cada modelo possui um conjunto de metas a serem alcançadas no Gerenciamento de Riscos e algumas sugestões de como implementá-lo, porém organizações consideradas de micro, pequeno e médio porte 19 WTDQS 2014 muitas vezes não possuem recursos suficientes para implementar um processo e avaliálo [SOFTEX, 2012]. No contexto nacional, atualmente, existem cerca de 533 empresas avaliadas no MR-MPS-SW e dentro do prazo de vigência de três anos. Deste total, apenas 34 empresas já foram avaliadas no nível de maturidade C [SOFTEX, 2014], no qual está situado o processo de Gerência de Riscos, ou seja, 93,5% das organizações desenvolvedoras de software que buscam qualidade de processo no Brasil não possuem experiência e maturidade comprovadas no gerenciamento de riscos. Este trabalho tem o objetivo auxiliar estas organizações a implementarem um processo de extrema importância, como o gerenciamento de riscos. Serão disponibilizados uma metodologia e uma ferramenta de software, que têm como diferencial a compatibilidade com as melhores práticas recomendadas em modelos de qualidade de software, coletadas através do mapeamento entre as mesmas. 2. Fundamentação Teórica Processo de software é denominado por Pressman (2011), como um arcabouço para as tarefas necessárias para a construção de um software de alta qualidade. Além disso, um processo deve estar alinhado a métodos técnicos, abrangendo um arcabouço de processo, muitas vezes denominado framework. O guia PMBOK [PMI, 2013], define processo como uma combinação de atividades inter-relacionadas realizadas, com o intuito de atingir um objetivo, como alcançar resultados, produtos ou serviços. A qualidade do processo de software é uma abordagem comumente utilizada para alcançar a qualidade do software, como podem ser vistos em Humphrey (1989) e IEEE (2014). Portanto, atualmente existem algumas iniciativas na busca pela qualidade de software de forma padronizada, possibilitando melhor avaliação dos processos. Entre os padrões internacionais destacam-se o modelo de maturidade CMMI-DEV [SEI, 2010] e a norma ISO/IEC 12207 [ABNT, 2009], no âmbito nacional o MR-MPS-SW, integrante do programa MPS.BR [SOFTEX, 2012]. Também considerado uma referência em boas práticas no gerenciamento de projetos, há o guia PMBOK [PMI, 2013], porém de forma mais abrangente, determina boas práticas para projetos de quaisquer natureza, não especificamente para software. Todos estes padrões abordam a área de Gerenciamento de Riscos de maneira detalhada, porém com algumas semelhanças e diferenças entre si. Segundo o guia PMBOK, risco pode ser definido como a possibilidade de ocorrência de um evento ou condição que pode ter efeito positivo ou negativo em um objetivo de um projeto [PMI, 2013]. Logo o gerenciamento de riscos em projetos de software descreve uma abordagem integrada entre métodos, processos e artefatos, para analisar, controlar e monitorar continuamente os riscos, com o objetivo de reduzir as chances de falha do projeto [ABNT, 2008]. O trabalho de Ropponen e Lyytinen (2000), define gerência de riscos como uma abordagem que tenta formalizar práticas de sucesso orientadas a riscos em um conjunto de princípios e práticas prontamente aplicáveis. Enquanto que Chapman e Ward (2003), definem que o propósito da gerência de riscos é de melhorar a performance do projeto, através da identificação e avaliação sistemática de riscos, desenvolvendo estratégias para reduzi-los ou evitá-los, minimizando perdas e maximizando o sucesso do desenvolvimento do software. 20 XII Workshop de Teses e Dissertações em Qualidade de Software A partir destas definições, pode-se concluir, juntamente com a afirmativa de Avdoshin e Pesotskaya (2011), que um entendimento sistemático e profundo do domínio do problema, uma poderosa ferramenta de gerenciamento de riscos e práticas padronizadas ajudam a minimizar as perdas que eventuais riscos ocorridos podem proporcionar. Segundo Boehm (1991), a gerência de riscos pode ser dividida em oito principais passos: identificação, análise, priorização, gerência, planejamento, mitigação, resolução e monitoramento de riscos. Avdoshin e Pesotskaya (2011) identificaram que estudos mais recentes sintetizaram estes passos em cinco características: documentação de lições aprendidas e identificação, análise, planejamento de respostas e monitoramento de riscos. Estes passos vão nortear os diversos modelos de qualidade que abordam a gerência de riscos. Entre os modelos e normas de qualidade de software que determinam boas práticas para o gerenciamento de riscos, destacam-se a norma ISO/IEC 12207, os modelos CMMI-DEV e MR-MPS-SW, e os guias de práticas PMBOK e o padrão internacional para gerência de riscos definido pelo IEEE e ISO/IEC, a ISO/IEC 16085:2006 [IEEE, 2006]. 3. Metodologia e Estado Atual do Trabalho A realização deste trabalho iniciou-se com uma pesquisa exploratória relacionada ao referencial teórico do gerenciamento de riscos e de melhoria de processo de software (Etapa 1). Em seguida, foi realizada uma pesquisa bibliográfica para formar a base teórica relacionada ao gerenciamento de riscos e identificar trabalhos relacionados. Deste modo, foi possível identificar quais normas e modelos de qualidade de software poderiam ser agregados ao estudo (Etapa 2). A partir dos modelos e normas de qualidade selecionados, realizou-se uma análise documental do conteúdo relacionado ao gerenciamento de riscos, identificando as práticas de cada modelo ou norma envolvidos (Etapa 3). Em seguida, foi realizado um mapeamento entre estas práticas, identificando quais são semelhantes entre todos os modelos e/ou quais destacam-se em apenas um ou mais modelos (Etapa 4). Posteriormente, através do método hipotético-dedutivo, utilizando-se do conhecimento teórico adquirido, será realizada a proposta da metodologia de gerenciamento de riscos envolvendo todas as boas práticas coletadas, dando destaque para as que são aderentes a todos os modelos e normas envolvidos (Etapa 5). A metodologia deve detalhar atividades, papéis, ferramentas envolvidas e sugestões de implementação de cada atividade. Avaliações através de revisões por pares foram realizadas nos documentos gerados em cada etapa até aqui descrita (Etapa 6). Esta avaliação é sempre realizada por pelo menos um especialista em melhoria de processo de software, com experiência em gerenciamento de projetos de software e em implementação e avaliação de processo de software. A avaliação da metodologia em um ambiente real é um impeditivo, pois há um tempo reduzido para a conclusão do projeto, porém serão realizadas outras alternativas para consolidar informações e agregar sugestões. Assim, pretende-se realizar entrevistas com gerentes de projetos de software experientes, afim de coletar dados e observar comentários e feedbacks em relação à metodologia proposta (Etapa 7). 21 WTDQS 2014 Também pretende-se conduzir um experimento controlado com grupos de alunos, afim de coletar métricas e ratificar a metodologia, identificando que é adequada para aprendizagem ao facilitar o entendimento da gestão de riscos (Etapa 8). O experimento consistirá em selecionar dois grupos de alunos: um que utilizará a proposta de metodologia desenvolvida; e o outro que utilizará uma metodologia qualquer. Pretende-se avaliar a condução das tarefas definidas e monitorar sua execução utilizando sugestões de Travassos et al. (2002). Este trabalho culmina com a produção de uma ferramenta de software, atualmente em desenvolvimento, que terá o objetivo de sistematizar as tarefas descritas na metodologia proposta (Etapa 9). Porém, levando em consideração a possibilidade de adaptação da metodologia às particularidades das organizações. Os dados resultantes das etapas que serão realizadas também serão avaliados através de revisões por pares, como descrito na Etapa 6. A ferramenta também será avaliada através de questionários preenchidos por usuários, que testarão cenários hipotéticos. Um artigo retratando parte dos resultados desta pesquisa (Etapas 1 a 4) foi aceito para publicação na Revista Abakós (periodicos.pucminas.br/index.php/abakos). Temporariamente estes resultados estão disponíveis na forma de relatório técnico em http://spider.ufpa.br/projetos/spider_riscos/SPIDER_RelatorioTecnico.pdf. 4. Trabalhos Relacionados Através de uma revisão na literatura, foram analisados diversos trabalhos relacionados ao gerenciamento de riscos. Algumas propostas assemelham-se, porém não englobam práticas de diversos modelos de qualidades associadas às sugestões de implementação de processo, que é o objetivo geral deste projeto. A pesquisa de Raz e Hillson (2005) e de Gusmão e Moura (2004), apresentam uma comparação entre os principais padrões internacionais para o gerenciamento de riscos, com o objetivo de identificar quais etapas são similares em cada padrão. Por serem estudos mais antigos, podem ser considerados desatualizados, pois atualmente existem novas versões para alguns dos padrões abordados. Outros trabalhos mais recentes apresentaram mapeamentos entre modelos de qualidade de software, como o de Von Wangenheim et al. (2010), que realiza um mapeamento entre o modelo CMMI-DEV v1.2 e o Guia de Gerência de Projetos PMBOK 4ª edição, porém contempla apenas atividades relacionadas diretamente ao gerenciamento de projetos do guia CMMI-DEV (PP - Project Planning, PMC - Project Monitoring and Control, SAM - Supplier Agreement Management). Mutafelija e Stromberg (2009) realizam também um mapeamento entre o modelo CMMI, versão 1.2, e as diversas normas ISO (9001:2000; 20000:2005; 15288:2008; 12207:2008) através de uma relação binária entre o modelo CMMI e as normas ISO. O trabalho de Islam (2011), apresenta um framework para gerenciamento de riscos orientado a objetivos. O framework, denominado GSRM, possui quatro níveis de abstração: (1) objetivos do projeto; (2) identificação de obstáculos que impeçam que o projeto atinja seus objetivos (fatores de riscos ou perfil dos riscos); (3) para cada fator de risco, identificação de conseqüências (definição dos riscos); e finalmente, (4) definição de como deve ser realizado o tratamento e monitoramento aos riscos. O foco deste trabalho é relatar um estudo de caso, realizado com a implementação deste 22 XII Workshop de Teses e Dissertações em Qualidade de Software framework, no qual é apresentada a forma de avaliação e coleta de dados, o detalhamento do estudo de caso com as atividades realizadas, e uma discussão sobre resultados e conclusões obtidas após a finalização do experimento. Porém, a realidade apresentada no estudo de caso é apenas local (Europa), podendo haver grande diferença, caso haja aplicação do framework em outros contextos. Além disso, todo o processo poderia ser sistematizado, facilitando sua implementação, que inclusive, segundo o autor, pode ser complexa, caso hajam inúmeros objetivos em um projeto. Em seu trabalho, Tianyin (2011) apresenta uma visão geral sobre a gerência de riscos e cita alguns modelos de processos de gerenciamento de riscos. Há uma detalhada descrição de padrões, modelos e normas relacionados ao gerenciamento de riscos desde os anos 80 e citando os principais nomes e técnicas definidas na área. Apesar da lista de modelos de processos apresentada ser bastante diversificada, não há um detalhamento das práticas, também não são apresentados mapeamentos entre os modelos, a fim de concluir quais vantagens e desvantagens de cada um. Esta pesquisa destaca-se dos trabalhos relacionados, pois apresenta uma metodologia para implantação da gestão de riscos embasada nas versões mais atuais dos modelos de qualidade de software, através da identificação de boas práticas comuns encontradas no mapeamento entre estes modelos. Além disso o modelo de qualidade que recebe maior atenção neste trabalho é o MR-MPS-SW, modelo nacional que possui uma carência em estudos de mapeamentos relacionados a modelos de maturidade. 5. Resultados Esperados Este projeto tem o objetivo de propor uma metodologia abrangente para implantação da Gerência de Riscos em uma organização desenvolvedora de software. A metodologia a ser proposta deve agrupar boas práticas de Gerenciamento de Riscos constantes em modelos e normas, porém estas práticas devem ser totalmente aderentes às exigências do MR-MPS-SW, pois este projeto faz parte do escopo do Projeto SPIDER [OLIVEIRA et al., 2010]. O Projeto SPIDER tem como objetivo criar um suíte ferramentais aderente ao MR-MPS-SW para reduzir os custos de implementação deste modelo. Para alcançar este objetivo, espera-se que o projeto contemple os seguintes resultados: apresentação de como se dá o mapeamento da Gerencia de riscos entre os principais modelos e normas de qualidade de software; especificação do conjunto de boas práticas em Gerência de Riscos; definição do conjunto de técnicas e métodos usados na implementação da gerência de riscos; proposição de um modelo de processo de gerência de riscos; definição de um guia de entrevistas com Gerentes de Projetos, bem como a extração de seus resultados; elaboração e execução de experimento controlado para ratificar e consolidar a metodologia proposta; o desenvolvimento de software de apoio à gerencia de riscos, aderente à metodologia definida. 6. Agradecimentos Este trabalho recebe o apoio financeiro da CAPES a partir da concessão de bolsa institucional de mestrado ao PPGCC-UFPA. Este projeto é parte do Projeto SPIDERUFPA. Referências ABNT - Associação Brasileira De Normas Técnicas, (2009) “NBR ISO/IEC 12207:2009 - Engenharia de Sistemas de Software - Processos de Ciclo de Vida de Software”. 23 WTDQS 2014 Avdoshin, S. M., Pesotskaya, E. Y. (2011) "Software risk management". 7th Central and Eastern European Software Engineering Conference (CEE-SECR). Boehm, B. (1991) "Software risk management: principles and practices". IEEE Software, 8, 1 , p. 32 - 41 Brooks, F. P. (1986) "No Silver Bullet — Essence and Accident in Software Engineering". In: IFIP Tenth World Computing Conference, p. 1069–1076. Chapman C. B., Ward, S.C. (2003) "Project Risk Management, Processes, Techniques and Insights". 2ª Edição. John Wiley. Chichester. Reino Unido. Glass, R. L. (1998) "Software Runaways: Monumental Software Disasters", PrenticeHall. Humphrey, W. S. (1989) "Managing the Software Process, The SEI Series in Software Engineering". Addison-Wesley. IEEE - Institute of Electrical and Electronics Engineers (2006). "ISO/IEC 16085 - IEEE Std 16085-2006 - Systems and software engineering - Life cycle processes - Risk management". USA. IEEE - Institute of Electrical and Electronics Engineers (2014). "Guide to Software Engineering Body of Knowledge - SWEBOK". Version 3.0. USA. Islam, S. (2011) "Software development risk management model-a-goal-driven approach". Tese (Doutorado em Ciência da Computação), Institute für Informatik, Technische Universität München, Munique. Mutafelija, B., Stromberg, H. (2009) "Process Improvement with CMMI v1.2 and ISO Standarts". CRC Press, 2009. Oliveira, S. R. B. et al. (2010) “SPIDER - Um Suite de Ferramentas de Software Livre de Apoio à Implementação do modelo MPS.BR”. Anais do VIII Encontro Anual de Computação – ENACOMP 2010, Catalão - GO. PMI - Project Management Institute (2013) "A Guide to the Project Management Body of Knowledge". Campus Boulevard, Newton Square, 5th Edition. Pressman, R. S. (2011) “Engenharia de Software: Uma Abordagem Profissional”. Mcgraw Hill. Raz, T., Hillson, D. (2005) "A comparative review of risk management standarts". Risk Management: An International Journal, v.7, n.4, p. 53-66. Ropponen, J., Lyytinen, K. (2000) "Components of Software Development Risk: How to Address Them?". IEEE Transactions on Software Engineering, v. 26, p.98-111. SEI - Software Engineering Institute (2010) "Capability Maturity Model Integration (CMMI) for Development". , Version 1.3, Carnegie Mellon, USA. SOFTEX - Associação para Promoção da Excelência do Software Brasileiro (2012) "Melhoria do Processo de Software Brasileiro (MPS.BR) - Guia Geral 2012". Brasil. SOFTEX - Associação para Promoção da Excelência do Software Brasileiro (2014) "Avaliações MPS-SW (Software) Publicadas (prazo de validade: 3 anos)". Disponível em http://www.softex.br/wp-content/uploads/2013/07/2AvaliacoesMPSSW-Publicadas_29.JAN_.2014_5331.pdf. Acesso em 02 de fevereiro de 2014. Sommerville, I. (2007) "Engenharia de Software". 8 ed. São Paulo. Pearson AddisonWesley. Tianyin, P. (2011) "Development of software project risk management model review". 2nd International Conference on Artificial Intelligence, Management Science and Electronic Commerce (AIMSEC), p. 2979-2982. Travassos, G. H., Gurov, D., Amaral, E. A. G. (2002). "Introdução à Engenharia de Software Experimental". Programa de Engenharia de Sistemas e Computação. COPPE/UFRJ. Relatório Técnico RT-ES-590/02. Van Lamsweerde, A. (2009). " Requirements Engineering: From System Goals to UML Models to Software Specifications", Wiley. Von Wangenheim, C. G., Da Silva, D. A., Buglione, L., Scheidt, R., Prikladnicki, R. (2010). "Best practice fusion of CMMI-DEV v1.2 (PP, PMC, SAM) and PMBOK 2008." Information and Software Technology, 52, p. 749-757. 24 XII Workshop de Teses e Dissertações em Qualidade de Software Proposta de um Modelo para Mapear a Transparência no Processo de Software Fernando C. Lima1, José A. Fabri1 Programa de Pós-Graduação em Informática (PPGI) - Universidade Tecnológica Federal do Paraná (UTFPR) Cornélio Procópio – PR – Brasil 1 [email protected], [email protected] Abstract. This research presents a proposed model for mapping the transparency of the software's process. The bibliographic references that supports the model consists of theories inherent transparency, transparency software, software and mind mapping process. The proposal joins the idea of pharmaceutical inserts, normalized by the National Health Surveillance Agency Sanitary - ANVISA to the concepts of mental maps, proposed by Tony Buzan. Through conducting two experiments, the research shows how the adoption of the model can raise the transparency in the software process. Resumo. Esta pesquisa apresenta a proposta de um modelo para mapear a transparência no processo de software. O referencial bibliográfico que embasa o modelo é composto das teorias inerentes à transparência, transparência de software, processo de software e mapas mentais. A proposta une a ideia de bulas de medicamentos, normatizada pela Agência Nacional de Vigilância Sanitária – Anvisa aos conceitos de mapas mentais, propostos por Tony Buzan. Por meio da realização de dois experimentos, a pesquisa mostra como a adoção do modelo pode elevar a transparência no processo de software. 1. Caracterização do problema Atualmente a transparência tem sido almejada pela sociedade forçando a iniciativa pública e privada a redefinir sua forma atual de trabalho para atingir este objetivo. Cappelli, Leite e Araújo (2010) relatam que diversas iniciativas têm sido realizadas no sentido de atendimento destas necessidades. Exemplos como o portal da transparência dos gastos públicos fornecido pelo governo federal do Brasil, podem ser citados de forma a corroborar com o relatado por tais autores. Porém de acordo com Baía e Braga (2013), “A transparência é um princípio democrático que permite aos cidadãos buscarem informações sobre fatos e processos”, assim, o conceito de transparência pode ser definido como algo mais abrangente do que a demonstração de informações referentes às receitas e despesas. Seguindo a ideia apresentada pelos autores Tu, Thomborson e Tempero (2011), o termo transparência também deve refletir a clareza dada aos processos de tomada de decisão de uma determinada instituição, além da disponibilização das demais informações. Com o objetivo de elevar a transparência no processo de software, um modelo de mapeamento será proposto. O modelo fará uso dos mapas mentais seguindo uma 25 WTDQS 2014 estrutura similar àquela utilizada atualmente nas bulas de medicamento. 2. Fundamentação teórica 2.1. Transparência em Software A palavra transparência tem origem no termo “transparentia” do latim, relacionada ao verbo “transparere”, que significa “mostrar a luz através, deixar a luz atravessar”. O vocábulo é formado pelo prefixo “trans” que significa “através”, unido do sufixo “parere”, que significa “aparecer, chegar à vista”. Leite e Cappelli (2008) afirmam que um software é transparente se as informações com as quais ele trabalha forem transparentes e se o software por si próprio também for transparente, informando como trabalha, o que faz e porque o faz 2.2. Processos de Software Um dos princípios básicos da engenharia de software é possuir um processo de produção claro, conciso e consistente que prime, principalmente, pelas questões ligadas a qualidade e produtividade. Segundo Pádua Filho (2009) um processo é qualificado como um conjunto de atividades, parcialmente, ordenadas constituídas por métodos, práticas e transformações, usadas para atingir uma determinada meta. O processo pode ser visto como uma receita que é seguida por um projeto, sendo assim, o projeto é considerado uma instanciação do processo. Peters e Pedrycz (2001) apresentam o processo como uma sequência de atividades que produzem vários documentos, culminando em um produto satisfatório que possa ser utilizado pelo consumidor. No caso de um processo de software, o produto é classificado como um programa executável. 2.3. Mapas Mentais Herman e Bovo (2005) definem que “um mapa mental é essencialmente um diagrama hierarquizado de informações, no qual podemos facilmente identificar as relações e os vínculos entre as informações”. O mapa mental facilita a interpretação das palavras, imagens, números e conceitos lógicos de maneira clara, concisa e consistente1 (BUZAN, 2009). Seguindo o exemplo dado por Buzan (2005), um mapa mental elementar para planejar as atividades de um determinado dia poderia ter a seguinte aparência: Figura 1 – Exemplo de Mapa Mental para o Planejamento Diário Cada ramo que se desenvolve a partir do centro tem relação com diferentes tarefas que precisam ser realizadas hoje, como por exemplo telefonar para o encanador ou fazer compras no mercado (BUZAN, 2005). 1 Esta definição justifica a inserção dos mapas na composição do modelo proposto neste trabalho. 26 XII Workshop de Teses e Dissertações em Qualidade de Software 3. Proposta do Modelo O objetivo deste trabalho é propor um modelo para mapear a transparência tanto do processo quanto do produto de software. O artefato que será produzido contendo o mapeamento será denominado bula de software. A seguir segue um fragmento de bula não instanciada tanto do produto como do processo: Figura 2 – Fragmento da bula não instanciada com foco no produto de software Figura 3 – Fragmento da bula não instanciada com foco no processo A estrutura de tópicos da bula de produto foi elaborada com base no modelo antigo de bulas. O segundo modelo de bula, aquele focado no processo, em atendimento às mudanças promovidas pela RDC 140/2003 utiliza-se do modelo atual de bulas. 4. Metodologia e estado atual do trabalho 4.1. Metodologia De acordo com Contó et al. (2012) a metodologia de pesquisa experimental realiza testes por meio de um experimento controlado com o objetivo de produzir dados para serem analisados. Segundo o mesmo autor, para utilizar o referido método é necessário executar as atividades de definição da hipótese, concepção do protocolo experimental, execução do experimento e análise dos resultados. Este trabalho procura validar a hipótese de que a transparência no processo de software, quando mapeada seguindo o modelo proposto, poderá ser elevada. Para validar tal hipótese, serão necessários dois experimentos. No primeiro deles, a bula das funcionalidades de um determinado software será elaborada e apresentada a um grupo, e posteriormente, um questionário focando os aspectos apresentados pela bula será aplicado. No segundo experimento, a bula de uma das atividades do processo será elaborada e apresentada para um segundo grupo, o qual também deverá responder um questionário focando os aspectos da atividade mapeada pela bula. Para a realização de ambos os experimentos, o protocolo experimental foi estruturado de forma a contemplar os seguintes itens: • Definição do ambiente; • Definição das entidades envolvidas; 27 WTDQS 2014 • Caracterização das entidades; • Definição da amostra; • Definição da forma de coleta das informações. No quadro abaixo é possível visualizar a definição do protocolo experimental do primeiro experimento: Tabela 1. Protocolo do Experimento com Foco na Transparência do Produto Item Definição Definição do ambiente Campo do conhecimento. O experimento será realizado nas empresas onde os clientes do software trabalham. Definição das entidades Apenas pessoas físicas participarão do experimento. Caracterização das entidades Pessoas de ambos os sexos, com formação em diversas áreas que trabalham em diferentes empresas. Definição da amostra 24 pessoas. Serão elaboradas 4 bulas de 4 produtos. Definição da forma de coleta Aplicação de um questionário contendo 10 questões focando as funcionalidades do software. O protocolo que será utilizado na realização do segundo experimento é similar àquele utilizado pelo primeiro, porém diferencia-se no tipo de bula de software que será aplicada, o que justifica a necessidade de dois experimentos distintos para validar a hipótese defendida por este trabalho. No quadro a seguir é possível visualizar o protocolo que será utilizado no segundo experimento: Tabela 2. Protocolo do Experimento com Foco na Transparência do Processo Item Definição Definição do ambiente Campo do conhecimento. O experimento será realizado com os estudantes da turma do ano de 2014 do Programa de Pós-Graduação em Informática – PPGI da Universidade Tecnológica Federal do Paraná – UTFPR – Campus de Cornélio Procópio. Definição das entidades Apenas pessoas físicas participarão do experimento. Caracterização das entidades Pessoas de ambos os sexos, com formação em computação ou áreas afins que trabalham em diferentes empresas de software. Definição da amostra 33 pessoas. Definição da forma de coleta Será aplicado um questionário contendo 10 questões focando os aspectos de uma das atividades do processo de um determinado software. Em termos das ferramentas que serão utilizadas no experimento, a aplicação de ambos os questionários será realizada utilizando-se da ferramenta para criação de questionários da plataforma Google chamada GoogleForms. Para a elaboração dos mapas mentais das bulas de software, a ferramenta FreeMind será utilizada. O uso de tal ferramenta se justifica pelo fato de ser gratuita e de simples utilização, além de permitir a exportação do mapa mental para o formato textual, possibilitando assim a geração da bula no formato convencional. 28 XII Workshop de Teses e Dissertações em Qualidade de Software 4.2. Estado Atual do Trabalho Parte do primeiro experimento já foi realizada, onde o foco foi a transparência do produto. A bula das funcionalidades de um software foi elaborada por 2 analistas de sistemas da empresa Lima Software e apresentada a um grupo de 6 pessoas. Após analisarem a bula por um tempo de 30 minutos, foi solicitado a cada um deles que respondessem a um questionário com 10 questões. Ainda é necessário que o procedimento ocorra novamente envolvendo 18 pessoas, onde a bula de mais 3 software serão elaboradas. Para a realização do segundo experimento, cujo foco será a transparência em relação ao processo, a bula dos aspectos de uma das atividades do processo de software será elaborada por 2 analistas da mesma empresa. Em seguida, um grupo de 33 pessoas receberão a bula para ser analisada por um período de 30 minutos. Em seguida, será solicitado a cada um dos participantes que responda a um outro questionário contendo 10 questões focadas nos aspectos da atividade mapeada. 5. Trabalhos relacionados A busca por transparência no processo de software é abordada por trabalhos nas esferas nacionais e internacionais. Tu, Thomborson e Tempero (2011) caracterizam o termo transparência com o objetivo de melhorar a comunicação entre as partes envolvidas no projeto de software. Em âmbito nacional é possível citar trabalhos como o apresentado por Leite e Cappelli (2008) o qual caracteriza a transparência como um requisito não funcional de um projeto de software. A ideia de propor um modelo para mapear a transparência no processo de software surgiu a partir do trabalho realizado por Leal et al. (2012). Neste trabalho, intitulado “Bula de Software: Uma Estrutura Definida para Promover a Melhoria da Transparência em Software”, o autor trata da especificação de um modelo de documentação chamado bula de software que organiza as informações de um software a partir de questões técnicas e de utilização, o qual influenciaria no requisito de transparência. 6. Resultados esperados Espera-se que os resultados obtidos com a adoção deste modelo impactem na área de gestão e processo de produção, além de atingir diretamente o produto de software gerado por tal processo, elevando a transparência de ambos. Vide figura 2: Figura 4 – Áreas que Podem ser Impactadas com a Adoção da Transparência 29 WTDQS 2014 7. Referências Baía, Joás W.; Braga, José L. Uso de Sinônimos na Identificação de Atributos deTransparência. Workshop em Engenharia de Requisitos, Montevideo, Uruguay, abr. 2013. Buzan, Tony. Mapas mentais e sua elaboração: um sistema definido de pensamento que transformará a sua vida. São Paulo: Cultrix, 2005. Buzan, Tony. Mapas Mentais: métodos criativos para estimular o raciocínio e usar ao máximo o potencial do seu cérebro. Rio de Janeiro: Sextante, 2009. Campos, Rosana; Paiva, Denise; Gomes, Suely. Gestão da informação pública: um estudo sobre o Portal Transparência Goiás. Revista Sociedade e Estado. Brasília, v. 28, n. 2, ago 2013. Disponível em: <http://www.scielo.br/scielo.php? script=sci_arttext&pid=S0102-69922013000200012&lng=en&n rm=iso>. Acesso em 06/12/2013. Cappelli, Claudia; Leite, Julio C. S. do P.; Araújo, Renata M. A importância de um Modelo de Estágios para avaliar Transparência. Revista TCMRJ, Rio de Janeiro, n. 45, set. 2010. Disponível em:<http://www.tcm.rj.gov.br/Noticias/4916/RevTCMRJ45.pdf>. Acesso em: 13 jan. 2014. Contó, José A. P. et al. Metodologias de Modelagem de Requisitos: KAOS x Mapas Mentais. CISTI'2012 - 7ª Conferencia Ibérica de Sistemas y Tecnologías de Información, Madrid, Espanha, jun. 2012. Filho, Wilson de P. P. Engenharia de software: fundamentos, métodos e padrões. 3. ed. Rio de Janeiro: Ltc, 2009. Hermann, Walther; Bovo, Viviani. Mapas Mentais Enriquecendo Inteligências:Manual de Aprendizagem e Desenvolvimento de Inteligências: captação, seleção, organização, síntese, criação e gerenciamento de conhecimentos. 2. ed. Campinas: Walther Herman, 2005. Leal, André L. de C. et al. Bula de Software: Uma Estrutura Definida para Promover a Melhoria da Transparência em Software. XV Workshop on Requirements Engineering - WER2012, Buenos Aires, Argentina, abr. 2012. Leite, Julio C.S. do P.; Cappelli, Claudia. Exploring i* Characteristics that Support Software Transparency. 3rd International i* Workshop, Recife, fev. 2008. Peters, James F.; Pedrycz, Witold. Engenharia de Software: Teoria e Prática. Rio de Janeiro: Campus, 2001. Tu, Yu-Cheng; Thomborson, Clark; Tempero, Ewan. Illusions and Perceptions of Transparency in Software Engineering. 18th Asia-Pacific Software Engineering Conference, Ho Chi Minh, Vietnam, dec. 2011. 30 XII Workshop de Teses e Dissertações em Qualidade de Software Uma Proposta de Medidas de Qualidade para Avaliação da Confiança em Sistemas Ubíquos Andressa Bezerra Ferreira1,2,a, Reinaldo Bezerra Braga 1, Rossana Maria de Castro Andrade1,2,b 1 2 Grupo de Redes de Computadores, Engenharia de Software e Sistemas (GREat) Mestrado e Doutorado em Ciência da Computação (DC), Universidade Federal do Ceará (UFC) {andressaferreira, reinaldo, rossana}@great.ufc.br Abstract. Ubiquitous systems use information from user current activities to provide important services. These information lead to several questions, mainly related to system trustability. Therefore, the trust evaluation becomes a major issue to adopt these systems. The evaluation can be made through measures that characterize the system based on security, privacy, awareness and control. Furthermore, specific features of ubiquitous systems, such as context sensitivity, must be taken into account to evaluate the trustability. Hence, this study aims to propose a series of measures to evaluate the trustability of ubiquitous systems. These measures will be evaluated through three case studies. Resumo. Sistemas ubíquos utilizam informações do contexto atual do usuário para prover serviços relevantes. O uso dessas informações gera questionamentos, principalmente relacionados à confiança do sistema. Portanto, avaliar a confiança se torna então um elemento essencial para a adoção desses sistemas. A avaliação pode ser feita por meio de um conjunto de medidas que buscam caracterizar o sistema em função do seu grau de segurança, privacidade, consciência e controle. Além disso, é importante destacar que características específicas dos sistemas ubíquos, como sensibilidade ao contexto, sugerem que novas medidas sejam definidas para avaliação da confiança. Assim, o objetivo deste estudo é propor um conjunto de medidas para avaliação da confiança em sistemas ubíquos. Essas medidas serão avaliadas em três estudos de casos. 1. Caracterização do Problema Os sistemas ubíquos representam o conceito de computação em todo lugar e a qualquer momento [Yau et al. 2002]. Para tanto, este tipo de sistema pode ser sensível ao contexEste trabalho é resultado parcial do projeto Maximum, processo INC-0064-00012.01.00/12, suportado pela FUNCAP. a Bolsista de mestrado do MDCC/UFC, financiada pela CAPES b Bolsista do CNPq de Prod. em Des. Tecn. e Extensão Inovadora (DT) 2, processo 314021/2009-4 31 WTDQS 2014 to, o que implica na captura de informações sobre as circunstâncias nas quais o usuário se encontra e, baseado em regras ou estímulos inteligentes, reagir provendo serviços [Lima 2011] [Debashis e Amitava 2003]. Um exemplo de aplicação sensível ao contexto é um sistema de monitoramento de quedas em pessoas com cuidados especiais. Utilizando, em tempo real, dados dos sensores do dispositivo do usuário, que podem servir para representar seu atual contexto, é possível detectar e alertar quedas. Fazer com que aplicações percebam o contexto no qual o usuário está inserido é fundamental para que a tomada de decisão seja a mais benéfica e adequada possível. Porém, a obtenção das informações bem como seu uso por parte da aplicação acarreta em questões não triviais: Como garantir que a informação contextual seja verdadeira e realmente corresponda ao contexto atual do usuário? Como garantir que a informação contextual não possa ser acessada por quem não tem permissão? Como garantir que a informação contextual não foi comprometida? O interesse da comunidade de computação na área de sistemas ubíquos tem aumentado nos últimos anos. Porém, na maioria dos trabalhos relacionados à área de avaliação da qualidade, as normas e técnicas usadas para a avaliação da confiança não levam em consideração as diferenças entre sistemas convencionais e ubíquos (e.g., sensibilidade ao contexto, mobilidade e heterogeneidade). Apesar da confiança ser uma importante questão, garanti-la é uma tarefa difícil, pois poucos trabalhos apresentam uma definição detalhada de medidas de confiança, principalmente em sistemas ubíquos. Portanto, definir quais medidas podem ser usadas para avaliar a confiança em sistemas ubíquos ainda é um desafio aberto de pesquisa e, sendo assim, a proposta de dissertação de mestrado objetiva propor medidas para avaliação da confiança* em sistemas ubíquos. As medidas serão avaliadas através dos estudos de caso, que fazem parte da metodologia Goal-Question-Metric (GQM). 2. Objetivos O objetivo geral deste trabalho é propor um conjunto de medidas para avaliar a confiança em sistemas ubíquos. Para tanto, alguns objetivos específicos foram definidos, a seguir: (i) investigação da possibilidade de adaptação de medidas existentes para a definição de novas medidas, (ii) definição de novas medidas que completem as lacunas deixadas pelas medidas já existentes. 3. Fundamentação Teórica Marc Weiser, considerado o pai da computação ubíqua, vislumbrou que, no futuro, computadores habitariam os mais triviais objetos: etiquetas de roupas, xícaras de café, interruptores de luz, canetas, entre outros [Stajano 2002]. Desta nova visão de interação e convivência surge a capacidade de computadores agirem de forma “inteligente” no ambiente no qual nos movemos. *Confiança (trustability): é a garantia de que o sistema utilizará os dados pessoais coletados dos usuários de maneira correta, sem intervenção de terceiros ou qualquer outro possível dano a informação [Santos 2013]. 32 XII Workshop de Teses e Dissertações em Qualidade de Software A computação sensível ao contexto remete à idéia de que os computadores podem tanto perceber quanto reagir ao ambiente em que estão inseridos para facilitar as atividades humanas [Loureiro et al. 2008]. Como citado na Seção 1, o desenvolvimento e a avaliação dos sistemas ubíquos devem considerar os possíveis problemas de confiança acarretados pela sensibilidade ao contexto e os riscos que o compartilhamento de determinadas informações podem acarretar para a segurança e privacidade, sendo esses, fatores de impacto para a confiança [Santos 2013]. Segundo [Santos et al. 2013], a confiança em um sistema ubíquo é a garantia de que o sistema utiliza os dados pessoais coletados dos usuários de maneira correta, sem intervenção de terceiros ou qualquer outro possível dano a informação. Consequentemente, as questões estão diretamente relacionadas à segurança, privacidade, consciência e controle. Ainda segundo [Santos el al. 2013], a confiança do usuário em relação ao sistema pode ser avaliada por meio de medições. Uma medição consiste no processo contínuo de definição, coleta e análise de dados sobre o processo de desenvolvimento de software e seus produtos, a fim de entender e controlar o processo e seus produtos, fornecendo informações significativas com o objetivo de melhorá-los [Solingen and Berghout 1999]. O resultado da medição é chamado de medida. De acordo com a [ISO 25010], uma medida de qualidade é definida como uma variável a qual é atribuído um valor como o resultado da medição [ISO 25010], as medidas quantitativas são também chamadas de métricas. O conjunto de propriedades de um produto de software, pelas quais a qualidade pode ser descrita e avaliada é chamado de característica [ISO/IEC 2001]. A característica pode ser refinada em múltiplos níveis chamados de subcaracterísticas. De acordo com o modelo de qualidade encontrado em [Santos et al. 2013], o conjunto de subcaracterísticas que impactam na característica Confiança do usuário com relação ao sistema pode ser dividido em: segurança, privacidade, controle e consciência. A avaliação desse conjunto de subcaracterísticas, consequentemente a avaliação da confiança, é um elemento essencial para a adoção dos sistemas ubíquos [Santos 2013], essa avaliação pode ser feita através de um conjunto de medidas de qualidade. A metodologia para definição de medidas adotada neste trabalho é a Goal-QuestionMetric (GQM), baseada na premissa de que as medições de software devem ser orientadas a objetivos [Basili et al 2002]. 4. Metodologia e Estado Atual do Trabalho A metodologia a ser empregada no trabalho de mestrado foi dividida da seguinte forma: (i) realização de revisões bibliográficas (ii) definição de medidas de confiança, e (iii) realização de estudos de caso com GQM. Ao longo da pesquisa, será utilizada a metodologia GQM como suporte para as etapas (ii) e (iii). A idéia básica do GQM [Basili et al. 2002] é derivar medidas de software a partir de perguntas e objetivos. Essa técnica foi escolhida por ter sido utilizada para a definição das medidas da ISO 25000, usadas como base para a definição das medidas deste trabalho, além de ser bastante difundida na literatura e pelo conhecimento já existente no grupo de pesquisa GREat onde este trabalho está sendo desenvolvido. 33 WTDQS 2014 Para os processos de realização dos estudos de caso, extração de medidas e coleta de resultados, três aplicações serão levadas em consideração: um guia de visitas móveis sensível ao contexto, produto de uma Linha de Produto de Software Sensível ao Contexto chamada Mobiline, desenvolvida pelo grupo GREat e que pode ser encontrada em [Marinho et al. 2012]; um sistema de estacionamento ubíquo chamado SFPark (http://sfpark.org/); e um sistema médico para auxiliar idosos. Atualmente o trabalho está na fase de definição de medidas por meio do GQM, posteriormente serão realizados os estudos de caso citados. 5. Trabalhos Relacionados O processo de identificação dos trabalhos que propõem medidas de confiança para sistemas ubíquos foi feito por meio de revisões bibliográficas considerando as bases eletrônicas ACM e IEEE, e os trabalhos de pesquisa realizados pelo laboratório GREat na Universidade Federal do Ceará. No primeiro momento, com buscas por palavraschave (sistemas ubíquos, sistemas pervasivos, computação ubíqua, computação móvel, computação pervasiva, qualidade de software, qualidade de software em sistemas ubíquos, segurança, confiança, segurança em sistemas ubíquos, confiança em sistemas ubíquos, trust, dependability). Os principais e mais completos trabalhos, em relação à definição de medidas para avaliação da confiança, foram [Ranganathan et al. 2005], [Kemp et al. 2008], [AbiChar et al. 2010], [Stajano, 2002] e [Lee e Yun 2012] estando estes, diretamente relacionados à segurança, [Scholtz e Consolvo 2004], [Sun e Denko 2008], [Langeheinrich, 2001] e [Jia et al. 2009] tendo destaque relevante em relação à privacidade, e os trabalhos de [Nixon, 2005] e [Santos et al. 2013], abordando de maneira mais direta a avaliação da confiança em sistemas ubíquos. Os trabalhos citados anteriormente propõem medidas de qualidade associadas às características e subcaracterísticas estudadas neste trabalho, porém, a falta de funções de medição para as medidas definidas representam uma desvantagem que esta pesquisa pretende solucionar. De acordo com [Ranganhatan, 2005], a lista de medidas encontradas contribuem de maneira significativa para lidar com a ambiguididade e gerar mais clareza no processo de avaliação da confiança em sistemas ubíquos, representando assim uma vantagem dos trabalhos relacionados, mas, segundo o autor, não são suficientes. Há também necessidade de outros estudos de caso que possibilitem a coleta e interpretação das medidas, a interpretação consiste em analisar os dados coletados e elaborar relatórios dos resultados encontrados. 6. Resultados Esperados e Trabalhos Futuros Como resultado esperado da dissertação de mestrado espera-se um conjunto de medidas de qualidade para a avaliação da confiança em sistemas ubíquos. Para o sistema de detecção de quedas, por exemplo, apresentado na Seção 1, podemos avaliar, entre outras, as medidas a seguir, adaptadas para esse tipo de sistema: 34 XII Workshop de Teses e Dissertações em Qualidade de Software Tabela 1: Medidas para a Avaliação da Confiança em Sistema de Detecção e Alerta de Quedas ID Nome Descrição Função de Medição Interpretação M1 Sensibilidade Capacidade quedas de detectar Positivos ÷ (Positivos + Falsos Negativos) Quanto mais próximo de 100%, melhor M2 Precisão Capacidade de somente quedas detectar Negativos ÷ (Negativos + Falsos Positivos) Quanto mais próximo de 100%, melhor Onde: Positivos: uma queda ocorreu e o sistema detectou. Negativos: não ocorreu queda e o sistema não detectou. Falsos Positivos: não ocorreu queda, mas o sistema detectou. Falsos Negativos: Ocorreu queda mas o sistema não detectou. O próximo passo é realizar reuniões e estudos de caso GQM com o intuito de definir as medidas para a avaliação da confiança em sistemas ubíquos. Os trabalhos futuros para a continuação, conclusão e aprimoramento deste trabalho são: (i) propor medidas de qualidade para a característica confiança e suas subcaracterísticas; (ii) avaliar a qualidade das medidas por meio de requisitos de qualidade para medidas. 7. Referências Abi-Char, P., Mhamed, A., El-Hassan, B. and Mokhtari, M. (2010). “A Flexible Privacy and Trust Based Context-Aware Secure Framework”. In Lecture Notes in Computer Science. Basili V., Caldiera G.. The Goal Question Metric Approach, 2002. Davis, A., Overmyer, S. ; Jordan, K. ; Caruso, J. ; Dandashi, F. ; Dinh, A. ; Kincaid, G. ; Ledeboer, G. ;Reynolds, P. ; Sitaram, P. ; Ta, A. ; Theofanos, M. Identifying and Measuring Quality in a Software Requirements Specification, Proc. 1st Intl. Software Metric Symposium, IEEE, Baltimore, MD, 1993, pg. 141-152 Debashis S., Amitava M., "Pervasive Computing: A Paradigm for the 21st Century," Computer, pp. 25-31, March, 2003 ISO/IEC 25010 (2011). “Software Engineering - Software Product Quality Requirements and Evaluation (New SQuaRE) ISO/IEC 9126 (2001).“Software Engineering – Product Quality – Part 1” Jia, L., Collins, M. and Nixon, P. (2009). “Evaluating Trust-Based Access Control for Social Interaction”. In 3rd International Conference on Mobile Ubiquitous Computing, Systems, Services, and Technologies, UBICOMM 2009, Ieee. Kemp, E. A., Johnson, R. S. and Thompson, A.-J. (2008). “Interface Evaluation for Invisibility and Ubiquity: An Example from E-learning”. In 9th ACM SIGCHI New Zealand Chapter’s International Conference on Human-Computer Interaction: Design Centered HCI. . ACM. 35 WTDQS 2014 Langeheinrich M., Privacy by Design – Principles of Privacy Aware Ubiquitous Systems, in UBICOMP 2001, LNCS 2201, pp 273 291 Lee, J. and Yun, M. H. (2012). “Usability Assessment for Ubiquitous Services: Quantification of the Interactivity in Inter-Personal Services”. In IEEE International Conference on Management of Innovation & Technology (ICMIT). . Ieee. Lima, F. F. P., Rocha, L. S., Maia, P. H. M. and Andrade, R. M. C. (2011). “Uma Arquitetura Desacoplada e Interoperável para Coordenação em Sistemas Ubíquos”. In Software Components, Architectures and Reuse (SBCARS) Loureiro E., Ferreira G., Almeida H., Perkusich A., Pervasive Computing: What Is It Anyway? Ubiquitous Computing: Design, Implementation and Usability. Information Science Reference, 2008, p. 9-36. Nixon P A , W. Wagealla, C. English, S. Terzis, Security, Privacy and Trust Issues in Smart Environments,The Global and Pervasive Computing GroupDepartment of Computer and Information Sciences University of Strathclyde, Glasgow, Scotland, 2005. Ranganathan, A., Al-Muhtadi, J., Biehl, J., Ziebart, B., Campbell, R. H., Bailey, B. (2005). “Towards a Pervasive Computing Benchmark”. In Third IEEE International Conference on Pervasive Computing and Communications Workshops. . Ieee. Santos M. R., Oliveira K. M., Andrade R. M. C., Santos I. S., Lima E. R.; “A Quality Model for Human-Computer Interaction Evaluation in Ubiquitous Systems” In: 6th Latin American Conference on Human Computer Interaction (CLIHC 2013). Scholtz, J. and Consolvo, S. (2004). “Toward a Framework for Evaluating Ubiquitous Computing Applications”. IEEE Pervasive Computing. Stajano F., Security for Ubiquitous Computing, Wiley Press, 2002 Sun, T. and Denko, M. K. (2008). “Performance Evaluation of Trust Management in Pervasive Computing”. In International Conference on Advanced Information Networking and Applications, AINA. . Ieee. Yau, S. S., Wang, Y. and Karim, F. (2002). “Development of Situation-Aware Application Software for Ubiquitous Computing Environments”. In Computer Software and Applications Conference. Weiser M., The Computer for the Twenty-First Century, Scientific American, pp. 9410, September 1991. 36 XII Workshop de Teses e Dissertações em Qualidade de Software Diagnóstico do Cenário Atual da Organização para Implementação de Iniciativas de Melhoria de Processo de Software Patrícia Lima, Gleison Santos Programa de Pós-Graduação em Informática – Universidade Federal do Estado do Rio de Janeiro (UNIRIO) – Av. Pasteur 458, Urca, CEP 22290-240 – Rio de Janeiro, RJ {patricia.lima, gleison.santos}@uniriotec.br Abstract. Quality Models are adopted as a way to promote Software Process Improvement and to achieve other benefits expected. The lack of an easy and efficient way to identify potential problems in the development process often results in inadequate diagnosis for software process improvement initiatives. There is also the need to support the prioritization of the identified problems. This paper aims to establish an approach to characterize the organization’s current scenario, identifying the deficiencies and indicating which process or MR-MPS-SW level is the most indicated to be implemented in order to minimize or solve the existing problems. Resumo. Modelos de qualidade são cada vez mais adotados com a finalidade de promover a melhoria de processo e alcançar outros benefícios esperados pelas organizações. A falta de um instrumento de fácil utilização e eficiente para a identificação dos problemas encontrados no processo de desenvolvimento resulta muitas vezes em um diagnóstico inadequado para implementação de iniciativas de melhoria. Há também a necessidade no auxílio de priorização do problema a ser tratado caso muitos problemas forem identificados. Este trabalho tem o objetivo de definir uma abordagem para caracterização do cenário atual da organização identificando as deficiências existentes e, a partir desse diagnóstico, indicar que processo(s) ou nível MR-MPS-SW é mais indicado para a implementação, de forma a minimizar ou resolver os problemas existentes. 1. Introdução A melhoria do processo envolve a compreensão dos processos existentes e posterior modificação a fim de influenciar a qualidade do produto e os controles para sua construção, como redução de tempo, custo e esforço de desenvolvimento. Muitas vezes, o caminho encontrado para guiar a melhoria de processos de software nas organizações passa pela adoção de normas e/ou modelos de maturidade relacionados ao desenvolvimento de software. Dentre as normas e modelos de maturidade mais conhecidos estão ISO/IEC12207 (2008), ISO/IEC 15504 (2003), CMMI-DEV (CMMI Product Team, 2010) e, no cenário nacional, o MRMPS-SW (SOFTEX, 2012), o modelo de referência para melhoria do processo de software do Programa MPS.BR. Pesquisas mostram que o esforço empregado nestas normas e modelos podem ajudar na produção de software de maior qualidade, na redução de custo, tempo e aumento da produtividade. No entanto, a falta de uma estratégia eficaz de implementar com sucesso essas normas ou modelos afeta o sucesso das iniciativas de melhoria de processos de software (Niazi et al., 2005). Existem modelos, como, por exemplo, o IDEAL (SEI, 1996), que fornecem um guia para as organizações no planejamento e implementação de um programa efetivo de melho37 WTDQS 2014 ria de processo de software. Durante a fase de diagnóstico do cenário atual, são identificadas as necessidades e metas de negócios organizacionais, a cultura da organização, as metas a serem atingidas com as iniciativas de melhoria, ou seja, o estado atual da organização e o estado futuro desejado. Podemos chamar de baseline de processo cada um desses estados mapeados. A partir destas informações é desenvolvida uma abordagem para a implementação de melhoria de processo de software na organização (SEI, 1996). Para se obter esta baseline do processo (estado atual dos processos da organização) é necessária a utilização de recursos com conhecimento muito específico e muitas vezes é realizada uma avaliação de aderência ao modelo de maturidade considerado. A execução dessa avaliação costuma ser muito custosa e nem sempre evidencia os problemas existentes no processo de desenvolvimento. Assim, o objetivo desse trabalho é definir uma abordagem para caracterização do cenário atual da organização e identificação das deficiências existentes no processo de desenvolvimento. A partir da análise dessas deficiências, indicar qual processo ou nível do MRMPS-SW é o mais indicado para que seja implementado pela organização, na tentativa de minimizar ou resolver estes problemas. Além desta introdução, este trabalho apresenta 5 seções. A seção 2 descreve a caracterização do problema. A seção 3 apresenta uma breve fundamentação teórica. A seção 4 descreve a metodologia de pesquisa e a situação atual do trabalho. A seção 5 apresenta trabalhos relacionados, e por fim, a seção 6 descreve os resultados esperados e considerações finais. 2. Caracterização do Problema Quando uma organização de software adota uma iniciativa de melhoria de processos de software baseada em um modelo de maturidade, a principal decisão é selecionar a ordem de implementação das áreas de processo que melhor atendem aos objetivos de negócio organizacionais. Uma escolha inadequada afeta negativamente o resultado das atividades, além de reduzir o entusiasmo para a melhoria de processo. A escolha de um caminho que favoreça iniciativas de melhoria precisa ser aderente ao ambiente de desenvolvimento, levando em consideração as características do software que está sendo desenvolvido (Huang e Han, 2006). A caracterização do cenário atual da organização e identificação de suas deficiências não tem uma solução trivial. Os problemas do desenvolvimento de software muitas vezes não são aparentes. A decisão sobre o nível ou o processo a ser adotado pode ser inadequado por não endereçar os itens relevantes, na percepção das pessoas envolvidas no processo de desenvolvimento ou tomadores de decisão. A realização de um diagnóstico, que consiste na identificação de problemas relacionados ao processo de desenvolvimento, além de difícil e trabalhoso, também requer um conhecimento muito específico sobre os modelos de melhoria de processos existentes e sobre engenharia de software. Apesar da existência de alguns instrumentos utilizados para a realização de diagnósticos, existe a carência de instrumentos que utilize como base a análise das deficiências encontradas no processo de desenvolvimento. E também, que seja simples o suficiente para que possa ser executado por algum recurso da organização que tenha conhecimento em engenharia de software mas tenha pouco conhecimento dos modelos de qualidade, no caso o modelo MRMPS-SW, e de rápida reprodutibilidade, não demandando muitas horas de esforço para ser executado. Alternativas de diagnóstico existentes incluem a realização de entrevistas (mas não há guias para nortear as entrevistas) ou simulação de uma avaliação (que pode ser muito demorado ou complexo, principalmente se a organização não tiver processos estabelecidos 38 XII Workshop de Teses e Dissertações em Qualidade de Software ou documentação disponível e representativa dos projetos para análise). Os modelos de qualidade, através dos resultados esperados definidos em cada área de processo, avaliam a execução dos processos utilizados pelas organizações e são capazes de detectar problemas associados ao processo de desenvolvimento. Utilizar esse conjunto de conhecimentos descritos nos modelos de qualidade para auxiliar na identificação dos problemas do processo de desenvolvimento pode ser uma solução para auxiliar no diagnóstico do cenário atual dos processos da organização. 3. Fundamentação Teórica Para iniciar projeto de planejamento de um processo de melhoria é necessário identificar qual será o alvo da melhoria, quais processos ou atividades precisam ser melhorados. Para isso, é necessário a identificação do cenário atual da organização. Existem alguns instrumentos que auxiliam na identificação deste cenário, por exemplo, entrevistas, aplicação de questionários, simulação de avaliação de modelo de maturidade, modelos de melhoria organizacional, entre outros. Porém, a aplicação desses instrumentos pode ser muito custosa, pois é necessário um conhecimento muito específico, profissionais qualificados ou contratação de consultoria para avaliação, o que muitas vezes não é entendido pela organização como um investimento com alto valor de retorno ao seu negócio. Na fase do diagnóstico, o modelo IDEAL (SEI, 1996) baseia o plano de ação de melhoria de processos considerando a visão organizacional, plano estratégico de negócios, lições aprendidas e até mesmo atividades de avaliação de modelos de maturidades estão previstas. O objetivo é estabelecer uma baseline do processo organizacional. A baseline irá prover informações de como e quão bem a organização desempenha atualmente suas atividades de software. Por sua característica de iteratividade as baselines principais fornecem uma fotografia dos vários processos e ações da organização em um certo ponto no tempo. O conhecimento dos pontos fortes e oportunidades de melhoria é um pré-requisito essencial para identificação e priorização de um programa de melhoria efetivo e eficiente (SEI, 1996). Ainda durante a fase de diagnóstico, são desenvolvidos dois cenários dos processos da organização, o estado atual e o estado futuro desejado. O produto primário desta fase é um relatório final de resultados e recomendações que é produzido como um resultado das atividades de baseline. Outros produtos secundários podem ser revisões da visão organizacional e do plano de negócios, que são alguns dos insumos desta fase (SEI, 1996). A gap analysis, pode auxiliar a revelar áreas ou processos que precisam de melhorias. E também auxiliar no mapeamento dos problemas que podem ocorrer durante o processo de desenvolvimento, utilizando como fonte os resultados esperados dos modelos de maturidades. Como produto deste mapeamento será apresentado um relatório com os processos ou resultados esperados mais críticos, de acordo com os problemas mapeados e adequados para possíveis indicações de iniciativas de melhoria de processo. Durante a realização do mapeamento e análise é importante identificar características ou problemas comuns ao processo de desenvolvimento que possam estar relacionados a diversos processos ou resultados esperados. A utilização de procedimentos baseados no método Grounded Theory (Strauss e Corbin, 1998), gerando uma teoria, no mapeamento e análise traria benefícios perceptíveis nesta questão. Os resultados obtidos fornecerão as indicações dos problemas encontrados no processo atual e auxiliará na identificação do processo deficiente a receber ações de melhoria. A Grounded Theory (GT, ou Teoria Fundamentada em Dados), consiste em um método de pesquisa qualitativa que realiza uma análise profunda dos dados e identifica relações entre as informações coletadas. Dados são sistematicamente coletados e analisados por meio do processo de pesquisa gerando uma teoria. O objetivo da análise utilizando GT é o entendimento profundo 39 WTDQS 2014 do problema a ser analisado a partir da identificação de padrões e tendências, realizado por meio do processo de codificação (Schots, 2010). Para realizar a codificação, são propostos três procedimentos (Strauss e Corbin, 1998): (i) Codificação aberta (open coding): processo analítico onde são identificados os conceitos e categorias; (ii) Codificação axial (axial coding): processo de relacionamento entre categorias formando explicações mais precisas sobre o fenômeno; (iii) Codificação seletiva (selective coding): processo de integração e refinamento da teoria, organizando as categorias em torno de um conceito central. 4. Metodologia e Estado Atual do Trabalho Neste trabalho será utilizado o método de análise qualitativa, estruturado em algumas etapas discutidas a seguir. O trabalho encontra-se atualmente na etapa 2 que consiste na elaboração de prova de conceito do instrumento de gap analysis. Etapa 1 – Identificação do modelo alvo da proposta: O modelo escolhido foi o MRMPS-SW por ser o modelo de referência nacional. Para identificação de trabalhos relacionados que abordam a fase de diagnóstico, uma atividade muito comum na condução de iniciativas de melhoria, foi utilizada uma revisão informal da literatura. Foi realizada uma análise exploratória do modelo IDEAL (SEI, 1996) (realização de diagnósticos – gap analysis) e na estratégia de execução de melhoria de processo SPI-KM (Santos et al., 2007). Nesta análise percebeu-se que as técnicas de diagnósticos e as estratégias de implementação de melhorias podem ser complexas, custosas e requerem conhecimento muito específico. A proposição de um instrumento mais simples para a realização do diagnóstico se faz necessário. O instrumento de diagnóstico proposto neste trabalho inclui o mecanismo de diagnóstico e os procedimentos de análise dos resultados obtidos. O mecanismo de diagnóstico proposto, bem como os procedimentos de análise dos resultados utilizam como base um método de análise qualitativa baseado na Grounded Theory (GT). Como insumo para identificação dos problemas de desenvolvimento (conceitos e categorias – codificação aberta) serão utilizados os guias de implementação do modelo MR-MPSSW e do CMMI-DEV (mesmo não sendo o modelo foco da análise, este modelo será utilizado para que se tenha uma base rica de informações, neste caso, de problemas a serem mapeados), além das planilhas utilizadas para avaliação do modelo MR-MPS-SW. Após a identificação inicial dos problemas, será aplicado o processo de relacionamento entre as categorias identificadas (codificação axial) formando explicações mais precisas sobre o fenômeno estudado. Etapa 2 – Elaboração de prova de conceito do instrumento de gap analysis: Inicialmente optou-se pela realização de uma prova de conceito escolhendo dois processos do modelo MR-MPS-SW, porém no instrumento está previsto o mapeamento de todos os processos do modelo. Os processos iniciais escolhidos foram Gerência de Requisitos (GRE) e Desenvolvimento de Requisitos (DRE), que são os processos relativos a requisitos e que pertencem, respectivamente, aos níveis G e D do MR-MPS-SW. Atualmente o trabalho encontra-se nesta fase e como produto desta etapa está em elaboração o mapeamento dos problemas percebidos inerentes aos processos de GRE e DRE utilizando GT. Na figura 1 pode ser observado um exemplo do mapeamento dos problemas identificados no processo de GRE, relacionado aos seus respectivos resultados esperados e a sua fonte (Guia de Implementação do MR-MPS-SW, planilha de avaliação MR-MPS-SW, Guia de Implementação CMMI-DEV), utilizando GT. Etapa 3 – Avaliação preliminar do instrumento: Uma avaliação piloto considerando os processos GRE e DRE com um profissional praticante dos processos selecionados, por exemplo, um analista de sistemas, um gerente de projetos, com a finalidade de verificar se o mecanismo é de fácil compreensão e entendimento, além de ser capaz de identificar os problemas apresentados no processo de desenvolvimento de software. A escolha desses papéis se deve ao conhecimento e percepção de problemas comuns inerentes ao processo de desenvolvimento e aos processos do MR-MPS-SW. 40 XII Workshop de Teses e Dissertações em Qualidade de Software Figura 1 – Exemplo de problemas mapeados no processo GRE do MR-MPS-SW utilizando GT Etapa 4 – Extensão do instrumento para considerar todos os processos do MR-MPSSW: Evolução do instrumento proposto (mecanismo de diagnóstico e procedimento de análise) com as devidas correções ou inclusões dos demais processos no instrumento. Uma vez encerrada as avaliações preliminares já descritas, o mecanismo de diagnóstico e os procedimentos de análise serão completados para contemplar o restante dos processos do MR-MPS-SW Etapa 5 – Avaliação do instrumento: Uma nova rodada de avaliações está prevista com a participação de profissionais praticantes, especialistas e/ou organização de software de acordo com os papeis relacionados aos processos em questão. E, finalmente, com base nesta avaliação, evoluir o produto final do trabalho. Etapa 6 – Proposta do instrumento final. 5. Trabalhos Relacionados A estratégia de desenvolvimento de melhoria de processo SPI-KM (Santos et al., 2007) em sua fase de diagnóstico, assim como no modelo IDEAL (SEI, 1996) e PmCOMPETISOFT (Pino et al., 2010), procuram compreender as necessidades de negócio da organização e as atuais deficiências dos seus processos. Para esse diagnóstico é fundamental o mapeamento de problemas recorrentes do desenvolvimento de software e que podem ser analisados e priorizados para a indicação de um processo ou nível de maturidade para implementação da melhoria de processos. Sunetnanta e Chortkiertikul (2012) propuseram um modelo de avaliação quantitativa do CMMI para monitoramento de risco e do processo de qualidade de software na melhoria do processo de software. Este modelo apresenta uma pontuação quantificada, em valor absoluto, pela observância dos resultados esperados em cada área de processo do CMMI em um projeto. Demonstrando que é possível utilizar este modelo para auxiliar na redução de custo e esforço na implementação de melhorias de processo no ambiente de desenvolvimento através do monitoramento contínuo da qualidade e de riscos. E também, o resultado da avaliação quantitativa, gerada pelo modelo, pode ser utilizado como um programa de auto-avaliação, facilitando e guiando a interpretação e implementação do CMMI antes do início de qualquer avaliação real. Huang e Han (2006) propuseram um modelo de suporte a decisão gerencial que determina a prioridade das áreas de processo do CMMI a ser implementado pela organização, basea41 WTDQS 2014 do nas características do projeto que está sendo desenvolvido, ou seja, indica as áreas de processo do CMMI para inicializar o processo de melhoria de software. Muñoz et al. (2013) propuseram um método que permite uma rápida avaliação interna do desempenho dos processos de software de uma organização utilizando dois elementos chaves: melhores práticas executadas internamente na organização e objetivos de negócio definidos pela organização. Esse método de avaliação permite que as organizações executem de forma rápida e frequente avaliações de desempenho dos seus processos de negócios em um menor tempo e utilizando poucos recursos, deste modo a organização é capaz de obter uma baseline sólida relacionada às suas necessidades de objetivos de negócio quando estiver implementando uma iniciativa de melhoria de processos de software. A proposta de caracterização do cenário atual utilizando os resultados esperados do modelo MR-MPS-SW, apresentada neste trabalho, visa não só mapear os problemas de desenvolvimento associados aos resultados esperados mas também fornecer subsídios para a tomada de decisão de por qual processo ou nível do MR-MPS-SW deve-se iniciar as iniciativas de melhoria de processo de software. 6. Resultados Esperados Com o trabalho proposto, espera-se auxiliar as organizações, orientando o trabalho dos implementadores do MR-MPS-SW e membros de organizações na implementação de melhorias de processos e no diagnóstico dos processos atuais de uma organização, a partir da análise do cenário atual, facilitando a identificação do processo ou do nível do MR-MPS-SW mais indicado a ser implementado. Outra contribuição relevante será a o mapeamento dos problemas comumente associados à implementação dos processos de software. Além de auxiliar a empresa no aprendizado do modelo de maturidade MR-MPS-SW. Referências CMMI Product Team (2010) CMMI for Development, Version 1.3 (CMU/SEI-2010-TR-033). Software Engineering Institute, Carnegie Mellon University, 2010. http://www.sei.cmu.edu/library/abstracts/reports/10tr033.cfm Huang, S., Han, W. (2006) “Selection priority of process areas based on CMMI continuous representation”, Information and Management 43 (2006), 297-307. ISO/IEC (2003) "15504: Information Technology – Process Assessment." The International Organization for the Standardization and the International Electrotechnical Commission. ISO/IEC (2008) "ISO/IEC 12207: System and software engineering – Software life cycle processes", The International Organization for the Standardization and the International Electrotechnical Commission. Muñoz, M., Mejia, J., Calvo-Manzano, J. A., et al., (2013) “Method to Evaluate Process Performance Focused on Minimizing Resistance to Change”, International Journal of Human Capital and Information Technology Professiosnals (JHCITP), April-June 2013, pp. 1-15. Niazi, M., Wilson, D., Zowghi, D. (2005) “A framework for assisting the design of effective software process improvement implementation strategies”, The Journal of Systems and Software, vol. 78, pp. 204-222, 2005 Pino, F. J., Pardo, C., García, F., Piattini, M. (2010) “Assessment methodology for software process improvement in small organizations”, Information and Software Technology 52 (2010), pp. 1044-1061. Santos, G., Montoni, M., Figueiredo, S., et al., (2007), "SPI-KM - Lessons Learned from Applying a Software Process Improvement Strategy Supported by Knowledge Management", Product-Focused Software Process Improvement. Schots, N. (2010) “Uma Abordagem para a Identificação de Causas de Problemas Utilizando Grounded Theory”, Dissertação (mestrado) UFRJ/COPPE. SEI (1996) IDEAL. Disponível em www.sei.cmu.edu/library/assets/idealmodel.pdf SOFTEX (2012) MPS.BR Guia Geral MPS de Software. Disponível em http://www.softex.br/mpsbr/guias/. Acesso em 01/12/2013. Strauss, A., Corbin, J., 1998, “Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory”. 2 ed. London, SAGE Publications. Sunetnanta, T. T., Choetkiertikul, M., 2012, “Quantitative CMMI Assessment for Software Process Quality and Risk Monitoring in Software Process Improvement”, International Journal of Digital Content Technology and its Applications (JDCTA), vol. 6, number 21, November 2012. 42 XII Workshop de Teses e Dissertações em Qualidade de Software Facilitando a Aprendizagem Organizacional em Melhorias de Processo de Software Davi Viana1, Cleidson de Souza2, Tayana Conte1 1 Grupo de Usabilidade e Engenharia de Software (USES) – Programa de Pós-graduação em Informática (PPGI) – Universidade Federal do Amazonas (UFAM), Manaus – AM – Brasil 2 Instituto Tecnológico Vale e Universidade Federal do Pará (UFPA), Belém – PA – Brasil {davi.viana, tayana}@icomp.ufam.edu.br, [email protected] Abstract. Performing software processes improvements involves knowledgeintensive activities that might be new to the members of the organization. Furthermore, such improvements should not be seen as a single effort, but an evolutionary process requiring constant learning through the organization. In that context, organizational learning can support collaborators in reaching and achieving a better comprehension of relevant knowledge regarding process improvement. In order to support software organizations aiming at improving their development processes, this research presents the development of a framework containing specific components for stimulating organizational learning. Resumo. Realizar melhorias nos processos de software envolve atividades intensas de conhecimento que podem ser novas para os membros das organizações. Além disso, as melhorias não devem ser vistas como um esforço único, mas sim como algo evolutivo necessitando, assim, de constante aprendizagem por toda a organização. Aprendizagem organizacional pode auxiliar com que os conhecimentos importantes para as melhorias nos processos sejam compreendidos e alcançados por todos os colaboradores. Neste contexto, este trabalho apresenta o desenvolvimento de um framework que contém componentes para estimular a aprendizagem organizacional em organizações de software que buscam melhorar seus processos. 1. Caracterização do Problema A aplicação das boas práticas de ES através de iniciativas de Melhoria de Processo de Software (MPS) tem se tornado uma estratégia constante em organizações que buscam aumentar a qualidade dos seus produtos (Montoni e Rocha, 2011). Essas melhorias são ações executadas com o objetivo de evoluir os processos de software para que eles se tornem mais alinhados aos objetivos de negócio da organização. Essas ações podem ser executadas de acordo com as necessidades organizacionais ou podem seguir boas práticas de ES promovidas pelos modelos de maturidade em MPS utilizados pela Indústria de Software, como o Capability Maturity Model Integration for Development - CMMI-DEV (Sei, 2010) e o Modelo de Referência de Melhoria de Processo de 43 WTDQS 2014 Software – MR-MPS-SW (Softex, 2012). Essas boas práticas podem contribuir para aperfeiçoar o desenvolvimento de software com qualidade, aumentar a produtividade e melhorar a vantagem competitiva das organizações (Santos, 2011). Contudo, a implantação de iniciativas de Melhoria de Processo de Software não é uma atividade trivial. É necessário manter, de forma balanceada, as três dimensões críticas dos processos (Sei, 2010): (1) pessoas; (2) procedimentos e métodos; e, (3) ferramentas. Em relação às pessoas é preciso garantir que tenham as capacidades necessárias para realizar as atividades do processo, assim como pessoas capacitadas em relação ao treinamento nesses processos e suas melhorias. Os procedimentos, métodos e ferramentas também precisam ser aprendidos pelos colaboradores para garantir a execução coerente dos processos. Para que a melhoria de processos ocorra continuamente é necessário um comprometimento com a aprendizagem (Garvin, 1994). A aprendizagem dos conhecimentos necessários à melhoria de processos é relevante para que as melhorias realmente sejam disseminadas e permaneçam vivas na organização (Almeida et al., 2011). Para Ruhe (2001), a melhoria de processos é o objetivo de todas as Organizações de Software de Aprendizagem. Além disso, a aprendizagem pode auxiliar na obtenção de conhecimento necessário à indústria de software (Angkasaputra et al., 2003). É necessário garantir que todos os membros da organização aprendam as mudanças realizadas nos processos com a finalidade de ter sucesso nas implantações das melhorias dos processos. Além disso, Travassos e Kalinowski (2013) apontam que há uma correlação entre o aumento do número de colaboradores e execução de iniciativas de MPS. Desta forma, é necessário garantir também que os novos colaboradores tenham conhecimento suficiente para a execução dos processos. Em vista disso, o objetivo deste trabalho consiste na definição de um framework que possibilite a promoção da aprendizagem organizacional em melhorias de processo de software. Para isto, está se realizando investigações sobre tecnologias (processos, técnicas, métodos, práticas e ferramentas) que promovam a aprendizagem organizacional visando à melhoria de processo de software. Estas investigações partem do ponto de vista dos profissionais das organizações de software, visto que a execução de Melhorias de Processo de Software depende do conhecimento humano e que as pessoas estão no centro do processo de aprendizagem, pois são elas que criam e compartilham o conhecimento. 2. Fundamentação Teórica A aprendizagem organizacional e a Gerência do Conhecimento são visões complementares do processo de tratamento do conhecimento. A Gerência do Conhecimento é um facilitador da Aprendizagem Organizacional (Aurum et al., 2008). Ao gerenciar o conhecimento, as organizações podem reagir melhor às demandas de clientes e mercados, provendo resultados mais rápidos e com melhor qualidade (Schneider, 2009). Os objetivos da gerência do conhecimento (GC) são coletar novos conhecimentos, tratar esses conhecimentos de forma que seja possível uma futura utilização, armazená-lo, disseminá-lo e, por fim, disponibilizar estratégias de aplicação desses conhecimentos em novas situações (Schneider, 2009). Segundo Nonaka e Takeuchi (1995), existem dois tipos de conhecimento que precisam ser gerenciados: tácito e explícito. O conhecimento tácito é altamente pessoal e difícil de formalizá-lo, 44 XII Workshop de Teses e Dissertações em Qualidade de Software sendo normalmente compartilhado de forma direta, por contato face a face (Ruhe, 2001). Por outro lado, o conhecimento explícito ou codificado é considerado transmissível em linguagem formal (ou semi-formal) e sistemática. O conhecimento explícito pode ser representado por diversas formas, como documentos, relatórios, base de dados e lições aprendidas (Nonaka e Takeuchi, 1995). Em ES, o conhecimento é representado de diversas formas, como a documentação dos softwares, no próprio código fonte, nas práticas e processos de desenvolvimento. Além disso, há o conhecimento que é trocado através da socialização dos colaboradores. Contudo somente gerenciar os tipos de conhecimento não é suficiente. É necessário que esse conhecimento seja aprendido a nível organizacional, de forma que agregue sucesso às atividades de desenvolvimento de software realizadas. A aprendizagem é importante, pois considera as experiências e conhecimentos passados, buscando não repetir os mesmos erros e evitando gastar recursos “reinventando a roda” (Land et al., 2001). Além disso, a melhoria realizada no processo não deve ser vista como esforço único, mas sim como algo evolutivo necessitando, assim, de constante aprendizagem. A aprendizagem organizacional é uma abordagem que estimula a aprendizagem individual, coleção do conhecimento e incentiva a criação de uma infraestrutura para compartilhamento de conhecimento (Schneider, 2009). Para isso, os membros da organização devem ser capazes de interpretar o conhecimento. 3. Metodologia e estado atual do trabalho Visto que a pesquisa leva em consideração o ponto de vista dos colaboradores envolvidos com atividades que demandam a aprendizagem de conhecimentos relevantes, esta pesquisa está levando em consideração estudos de caso na indústria. Para o propósito deste trabalho, definiu-se a metodologia de pesquisa apresentada na Figura 1. Em seguida, as etapas a serem desenvolvidas nesta pesquisa são descritas. 1 2 3 4 Figura 1. Definição da Metodologia de Pesquisa 1. Execução do Mapeamento Sistemático da Literatura (Kitchenham et al., 2011): este mapeamento visa à caracterização da área de pesquisa. Foram analisados os 45 WTDQS 2014 trabalhos disponíveis na literatura sobre aprendizagem organizacional em engenharia de software e melhoria do processo de software que irão auxiliar na execução desta pesquisa e na definição do framework proposto. 2. Condução de Estudos de Caso (Runeson e Höst, 2009): Os estudos de caso foram executados paralelamente ao mapeamento sistemático da literatura. Esses estudos de caso visam obter o ponto de vista dos profissionais de software sobre a aprendizagem organizacional e gerência do conhecimento durante melhorias realizadas nos processos de software. 3. Definição do framework KL-SPI (Knowledge and Learning to facilitate Software Process Improvement). Esse framework contém um modelo conceitual com os seguintes componentes: ciclo de vida do conhecimento, atividades para apoiar a aprendizagem organizacional em MPS e ferramentas de apoio à aprendizagem organização e gerência do conhecimento. 4. Avaliação Experimental do framework – avaliação da viabilidade desses componentes buscando garantir um auxílio adequado à indústria de Software. No estágio atual do trabalho está sendo definido o detalhamento de como será de fato o uso dos componentes do framework. Para isso os resultados levantados nos estudos de caso e os resultados do mapeamento sistemático estão sendo utilizados para a definição das atividades para apoiar a aprendizagem organizacional em melhorias de processo de software. Uma ferramenta para apoio à codificação do conhecimento já foi definida e avaliada experimentalmente (Rabelo et al., 2012). Além disso, a definição de outras abordagens de apoio ainda está em análise. 4. Trabalhos relacionados Aprendizagem Organizacional pode ser estimulada através da aplicação de diversas abordagens de Gerência de Conhecimento. Basili et al. (1994) apontam que um processo sistemático de aprendizagem requer um suporte onde seja possível gravar experiências, criar generalizações, adaptar experiências e formalizar essas experiências. A abordagem de fábrica de experiência é uma organização lógica ou física que auxilia o desenvolvimento de projetos através da análise e síntese de todos os tipos de experiência (Basili et al., 1994). Visando a melhoria de processos, Falbo et al. (2004) definiram uma arquitetura baseada em Fábrica de Experiência. Essa arquitetura, a ProKnowHow, possui uma memória organizacional que armazena inicialmente conhecimentos informais. Após um tratamento deste conhecimento, o mesmo é disponibilizado para a organização. Os autores descrevem que a arquitetura pode contribuir para a melhoria do processo de software, pois auxilia na definição dos processos, no armazenamento e reutilização das lições aprendidas e, por fim, contribui para fazer estimativas de maneira mais fácil, uma vez que utiliza experiências anteriores. Parte da definição da arquitetura utilizada neste trabalho está sendo considerada no modelo conceitual proposto para a definição do framework desta Tese. Alagarsamy et al. (2007) desenvolveram o modelo KDM (Knowledge Driven Model) que busca sistematizar a aprendizagem organizacional em melhorias de processo de software. Esse modelo busca incentivar a organização sobre a necessidade de um programa de MPS e auxilia no levantamento de conhecimento importante sobre o MPS 46 XII Workshop de Teses e Dissertações em Qualidade de Software que os colaboradores devem possuir. De maneira similar, Santos et al. (2007) descrevem uma estratégia, a SPI-KM (Software Process Improvement Approach supported by Knowledge Management). Essa estratégia visa auxiliar organizações que estão inseridas no contexto de MPS através do diagnóstico sobre as necessidades de negócio da organização em relação ao MPS e definição de instrumentos de aquisição de conhecimento tanto dos consultores em melhoria de processo quanto dos colaboradores das organizações. Segundo Bellini e Lo Storto (2006), um processo de software disciplinado através da melhoria de processos pode prover um gerenciamento do conhecimento mais efetivo entre os projetos da organização. Os autores investigaram o impacto da implementação do CMM (Capability Maturity Model) na gerência do conhecimento e aprendizagem organizacional, mas precisamente como o CMM cria um ambiente propício para dar suporte à aprendizagem organizacional. Os autores observaram que a maioria das áreas de processo do CMM induz a aprendizagem em nível de projeto e outras áreas de processo induzem a aprendizagem no nível da organização, como a Garantia da Qualidade. Os trabalhos apresentados nesta seção apresentam tipos de abordagens para a aprendizagem organizacional. Contudo se baseiam em definições vindas da literatura ou partem do ponto de vista de consultores em melhoria de processo de software. Em vista disto, buscou-se definir, nesta pesquisa, uma abordagem mais voltada para o ponto de vista dos profissionais das organizações, para desta forma garantir um diferencial em relação às abordagens apresentadas. 5. Resultados esperados e contribuições parciais O principal resultado esperado deste trabalho será a definição de um framework para facilitar a aprendizagem organizacional em melhorias de processos de software guiadas ou não por modelos de maturidade. Esse framework conterá uma definição de ciclo de vida de lições aprendidas, conjunto de atividades e ferramentas de apoio à aprendizagem organizacional em melhorias de processo de software. A definição das atividades e ferramentas deve ser cuidadosa de forma que essas atividades tenham o menor impacto possível nos custos associados à sua implementação. Para alcançar essa meta, resultados são esperados e detalhados a seguir, assim como as contribuições parciais desta pesquisa. 5.1. Abordagens de AO e GC identificadas na literatura e fatores de influência Após o mapeamento sistemático da literatura, definiu-se de um conjunto de abordagens de aprendizagem organizacional e/ou gerência do conhecimento aplicáveis em organizações desenvolvedoras de software. Essas abordagens, em sua maioria, buscam tratar o conhecimento explícito da organização. Adicionalmente, diversos aspectos podem influenciar positiva e negativamente a Aprendizagem Organizacional em empresas de desenvolvimento de software. Entre esses aspectos podem-se citar: a estrutura organizacional, atividades que estimulam a disseminação, o fluxo e a forma de aprendizagem de conhecimentos (Smolander et al., 2005; Škerlavaj e Dimovski, 2006; Sandhawalia e Dalcher, 2010). 47 WTDQS 2014 5.2. Investigações sobre a ocorrência do ciclo de vida de conhecimento e aprendizagem nas organizações de software Neste resultado esperado, busca-se obter evidências sobre o ciclo de vida de conhecimento e sobre como a aprendizagem organizacional é abordada nas organizações de software que estejam ou não no contexto de melhorias de processo de software. Estes resultados são importantes para a definição das atividades e ferramentas de apoio voltadas para a aprendizagem e gerência do conhecimento. Como contribuições parciais, realizaram-se estudos sobre a ocorrência do ciclo de vida das lições aprendidas nas organizações de software (Viana et al., 2013). As lições aprendidas são conhecimentos organizacionais que descrevem discussões e soluções para resolver problemas e possíveis oportunidades de melhoria. Além disso, auxiliam a evitar a repetição de problemas similares nos projetos. Neste estudo foi possível verificar que há três fases do ciclo de vida das lições aprendidas: definição, manutenção e finalização das lições aprendidas. Durante a execução dessas fases é possível verificar a troca de conhecimento entre os colaboradores das equipes de desenvolvimento. Além deste estudo de caso sobre as lições aprendidas, foram feitas análises sobre como o conhecimento é disseminado em organizações de software através de redes sociais. As análises de redes sociais permitiram verificar obstáculos e possíveis pontos de melhoria da transmissão do conhecimento em organizações de software (Wasserman e Faust, 1994). Por fim, um estudo foi realizado buscando verificar como o conhecimento é transmitido de colaboradores experientes para colaboradores novatos (Viana et al., 2014). Os resultados desses estudos de caso serão utilizados para formar a base do framework KL-SPI. 5.3. Condução de Investigações sobre ferramentas/abordagens de apoio à AO e GC As ferramentas/abordagens de apoio buscam apoiar a organização e disseminação do conhecimento na organização. Essas ferramentas/abordagens estão sendo desenvolvidas no contexto do subgrupo de pesquisa sobre Learning Software Organizations do grupo de pesquisa de Usabilidade e Engenharia de Software (USES) da UFAM. Uma das abordagens desenvolvidas foi a PABC-Pattern – Problema, Ação, Benefício, Contexto - Padrão (Rabelo et al., 2012). Essa abordagem visa facilitar a codificação de lições aprendidas em organizações de software. Foram realizados dois estudos experimentais que evoluíram a abordagem para chegar ao modelo atual. Outras ferramentas/abordagens estão sendo analisadas visando auxiliar tanto a aprendizagem de conhecimentos explícitos quanto o incentivo à troca de conhecimento tácito. 5.4. Definição Inicial do framework A primeira etapa para a definição do framework é a elaboração de um modelo conceitual que irá nortear os resultados das investigações que estão sendo realizadas nesta Tese. Esse modelo conceitual leva é baseado na ontologia de organização de software definida no trabalho de Vilella (2004). Além disso, está sendo realizada uma extensão desta ontologia, onde foram incluídos elementos de aprendizagem organizacional e gerência do conhecimento. Para a definição desta extensão, levaram-se em consideração os três resultados esperados do processo Gerência de Recursos Humanos GRH do MR-MPSSW relacionados à gerência do conhecimento. 48 XII Workshop de Teses e Dissertações em Qualidade de Software Este modelo conceitual irá integrar os resultados do mapeamento sistemático da literatura juntamente com os resultados obtidos através dos estudos de caso. Ao final desta integração, será possível a verificação e definição de estímulos à aprendizagem que representam um conjunto de ações que podem ser recomendadas para o estabelecimento do aprendizado e da disseminação do conhecimento. Essas ações estarão relacionadas os componentes de processo definidos a partir de Villela (2014), como atividades, recursos e artefatos. Além dos estímulos à aprendizagem, o modelo conceitual irá integrar estratégias de GC e AO aplicáveis à engenharia de software. No momento, a definição inicial do modelo conceitual está sendo verificada pelos pesquisadores envolvidos na pesquisa. A segunda etapa da definição do framework compreende a análise dos resultados obtidos com o modelo conceitual com a finalidade de elaborar uma nova estratégia de aprendizagem organizacional ou evoluir abordagens existentes. A criação de apoio computacional da abordagem também será analisada nesta etapa. O propósito do framework é que seja possível apoiar o estabelecimento do aprendizado e a disseminação do conhecimento sobre as melhorias do processo de software em toda a organização. Desta forma, a etapa final consiste em avaliação experimental da abordagem. Essa avaliação experimental irá auxiliar na verificação dos componentes criados com o objetivo de obter indícios para a aplicabilidade da abordagem para à indústria de software. Referências Alagarsamy, K., Justus, S., Iyakutti, K., 2007, "On the Implementation of a Knowledge Management Tool for SPI". In: International Conference on Computational Intelligence and Multimedia Applications, 2007., v. 2, pp. 48-55, 13-15 Dec. 2007. Almeida, C.D.A., Albuquerque, A.B., Macedo, T.C., 2011, "Analysis of the continuity of software processes execution in software organizations assessed in MPS.BR using Grounded Theory". In: Proceedings of the 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE 2011), pp. 792-797, Miami, USA. Angkasaputra, N., Pfahl, D., Ras, E., et al., 2003, "The Collaborative Learning Methodology CORONET-Train: Implementation and Guidance". In: HENNINGER, S., MAURER, F. (eds), Advances in Learning Software Organizations, Springer Berlin Heidelberg. Aurum, A., Daneshgar, F., Ward, J., 2008, "Investigating Knowledge Management practices in software development organisations – An Australian experience", Information and Software Technology, v. 50, n. 6, pp. 511-533. Basili, V.R., Caldiera, G., Rombach, H.D., 1994, "Experience Factory", Encyclopedia of Software Engineering, John Wiley & Sons, Inc. Bellini, E., Storto, C.L., 2006, "The impact of software capability maturity model on knowledge management and organisational learning\&\#58; empirical findings and useful insights", Int. J. Inf. Syst. Chang. Manage., v. 1, n. 4, pp. 339-373. Falbo, R.A., Borges, L.S.M., Valente, F.F.R., 2004, "Using knowledge management to improve software process performance in a CMM level 3 organization", pp. 162-169. Garvin, D.A., 1994, "Building a learning organization", BUSINESS CREDIT-NEW YORK-, v. 96, pp. 19-19. Kitchenham, B.A., Budgen, D., Pearl Brereton, O., 2011, "Using mapping studies as the basis for further research – A participant-observer case study", Information and Software Technology, v. 53, n. 6, pp. 638-651. 49 WTDQS 2014 Land, L.P.W., Aurum, A., Handzic, M., 2001, "Capturing implicit software engineering knowledge". In: Proceedings of Australian Conference in Software Engineering, 2001, pp. 108-114, 2001. Montoni, M.A., Rocha, A.R., 2011, "Uma Investigação sobre os Fatores Críticos de Sucesso em Iniciativas de Melhoria de Processos de Software". In: Proceedings of X Simpósio Brasileiro de Qualidade de Software, v. 1, pp. 1-15, Curitiba, PR. Nonaka, I., Takeuchi, H., 1995, The Knowledge-Creating Company, 17th ed. Oxford Oxford Univerity Press. Rabelo, J., Viana, D., Conte, T., et al., 2012, "Comparing Knowledge Codification Approaches: An Empirical Study". In: Proceedings of 2012 Brazilian Symposium on Collaborative Systems (SBSC), , pp. 136-145. Ruhe, G., 2001, "Learning Software Organisations", Handbook of Software Engineering and Knowledge Engineering (S.K. Chang, ed.), World Scientific Publishing 2001. Runeson, P., Höst, M., 2009, "Guidelines for conducting and reporting case study research in software engineering", Empirical Software Engineering, v. 14, n. 2, pp. 131-164. Sandhawalia, B.S., Dalcher, D., 2010, "Knowledge flows in software projects: An empirical investigation", Knowledge and Process Management, v. 17, n. 4, pp. 205-220. Santos, G., 2011, "Influência e Impacto do Programa MPS.BR na Pesquisa Relacionada à Qualidade de Software no Brasil". In: Proceedings of X Simpósio Brasileiro de Qualidade de Software (SBQS 2011), v. 1, pp. 73-87, Curitiba, PR. Santos, G., Montoni, M., Figueiredo, S., et al., 2007, "SPI-KM - Lessons learned from applying a software process improvement strategy supported by knowledge management", v. 4589 LNCS, pp. 81-95. Schneider, K., 2009, Experience and Knowledge Management in Software Engineering Heidelberg, Springer Sei, 2010, CMMI® for Development, Version 1.3, Improving processes for developing better products and services. Škerlavaj, M., Dimovski, V., 2006, "Social Network Approach To Organizational Learning", Journal of Applied Business Research, v. 22, n. 2, pp. 89-98. Smolander, K., Schneider, K., Dingsøyr, T., et al., 2005, "Future Studies of Learning Software Organizations". In: ALTHOFF, K.-D., DENGEL, A., BERGMANN, R., et al. (eds), Professional Knowledge Management, Springer Berlin Heidelberg. Softex, 2012, MPS.BR: Guia Geral MPS de Software, Disponível em: http://www.softex.br/mpsbr/guias/. Acessado em 21 de Setembro de 2013. Travassos, G.H., Kalinowski, M., 2013, "iMPS 2012 : evidências sobre o desempenho das empresas que adotaram o modelo MPS-SW desde 2008", SOFTEX, Campinas, SP. Viana, D., Conte, T., Souza, C.D., 2014, "Knowledge Transfer between Senior and Novice Software Engineers: A Qualitative Analysis". In: Proceedings of the 26th International Conference on Software Engineering and Knowledge Engineering, Vancouver, Canada. Viana, D., Rabelo, J., Conte, T., et al., 2013, "A qualitative study about the life cycle of lessons learned". In: 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE) - ICSE 2013 Workshop, pp. 73-76, San Francisco, United States. Villela, K., 2004, Definição e Construção de Ambientes de Desenvolvimento de Software Orientados à Organização, Tese de D. Sc., COPPE, UFRJ, Rio de Janeiro, Brasil. Wasserman, S., Faust, K., 1994, Social network analysis: Methods and applications, Cambridge university press. 50 XII Workshop de Teses e Dissertações em Qualidade de Software Towards understanding project actuality in small software development organizations Suzana Cândido de Barros Sampaio1,2, Hermano Perrelli Moura2 1 2 Federal Rural University of Pernambuco (UFRPE), Recife-PE-Brazil Informatics Center (CIn), Federal University of Pernambuco (UFPE), Recife-PE-Brazil {scbs2,hermano}@cin.ufpe.br Abstract. In recent years has been a significant growth in project work across different sectors and industries. The increased complexity involving projects and its environment are leading practitioners and researchers to investigate new approaches to analyze and contribute to project management field. Actuality of projects means focusing on social process and in how practitioners think in action. This article presents an approach to analyze and to understand the nature of project actuality by describing how actors actually think and act in small development organization and also to help these organizations to enhance their project management practices and produce reflexive practitioners being able to achieve organizational success. 1. Introduction and motivation In recent years, the world has been going through profound social, economic, political, and cultural transformation. In this highly competitive environment, the urge to adapt, to reinvent and to implement new strategies, new products and services have become a major advantage or even a requirement for business survival. For small software development organizations this is a daily concern due to this competitive environment and the necessity of transforming project in organization success. For over twenty years the definition of project success was to perform an activity with time restriction, costs and performance [Kerzner 2003]. We supports a long time concept of success that goes beyond these simple aspects [Pinto and Slevin 1988, Morrison 2004 and Shenhar et al. 2001]. That means organizational success through project success. The real success provides organizational growth, such as contributing for launching new products, gaining a strategic client or achieving a strategic goal. The 2013 CHAOS Manifesto [Standish Group 2013] presented a special version of the Success Factors for Small Projects using their database and analytic tools. Optimization, skilled resources, project management expertise, agile process and emotional maturity are some of the factors. Since project can be seen as temporary organizations [Turner and Muller 2003; Packendorff 1995], it is useful to analyze the Manifesto´s results by small organization perspective. It also motivates this work on defining software development operational work as project to be able to offer senior management visibility and control, as well as team's sense of success and accomplishment. Over the past 20 years, there has been a substantial improvement in the quality and rigor of research in project management [Turner 2010]. Among the recent initiatives to expand and improve project management, stands out the network on rethinking project management (RPM) [Winter et al. 2006]. The network results pointed 51 WTDQS 2014 to five major areas of research, among them: social process, broader conceptualization of projects and reflective practice. Actuality research, arose from the RPM network, with the aim to understand what is actually in the arrangements labeled ‘project’ over time [Cicmil et al. 2006]. It seeks for a better understanding of projects reality. Cicmil et al. argued that ‘project actuality’ encompasses the understanding of the lived experience of organizational members with work and life in their local project environments. By analyzing this lived experience and by understanding its actuality we intend to contribute on enhancing organizational project management practices and to trace improvement with the help of the project team as reflexive practitioners. This paper is part of an ongoing research of an approach to support the observations, analyzes and understanding the actuality of software development projects. And it presents the concept of project actuality and the results of a few observations in small software development organizations in Brazil. It also aims on develop reflexive practitioners, who can learn, adapt and engage in reaching organization success. Besides this introductory Section, this paper is organized as follows: Section 2 gives some relevant background, definitions and related works. Section 3 explains briefly the methodological aspects. Section 4 shows the approach used to understand project actuality. In Section 5, the observation sample is presented. Section 6 analyzes some results. And then, Section 7 presents concluding remarks and father research. 2. Literature review and background 2.1. Project Actuality Researching the actuality of projects means focusing on social process and how practitioners think in action, in the local situation [Cicmil 2006]. Thereby achieving an idea of what project managers do in concrete project situations and to explore skills and knowledge that constitute the social and political action in managing projects. Cicmil et al. proposed a shift in thinking and research orientation to tackle the identified and so far neglected themes, creating knowledge which is relevant to practice and reflects the interests of both academic and practitioner communities [Cicmil et al. 2006]. Winter and Szczepanek, encourages practitioners to think about projects from multiple perspectives. Just like organizations, projects mean different things to different people, and can also be viewed in different ways by practitioners [Winter and Szczepanek 2009]. Therefore research project actuality is to collect, analyze and disseminate knowledge about people working together and with each other, and the way in which these relations are coordinated and controlled to accomplish the objectives [Cicmil 2006]. Actuality focuses on practical action, on lived project team experience, optimization abilities and emotional maturity, on quality of the social interaction inside the team (internal) and also with users and clients (external). 2.2. Related works and Background Lalonde et al. proposed a framework to examine project management from the practice viewpoint, where they explore the inquiry process by which actors grasp project situations [Lalonde et al. 2012]. For the authors, the project per se is a social fieldwork. The project was a large-scale architecture with a budget of over $ billion. The basic data 52 XII Workshop de Teses e Dissertações em Qualidade de Software were derived from verbal interactions but a variety of data collection devices were used. Our data collection is a bit different from the ones used by Lalonde et al [Lalonde et al.2012]. We use actors’ affirmations as much as actions, practices, methods and context, in observations, interviews and document analyzes. We also used the actors as researcher but our field was software development in small organizations. According to Crawford et al. [Crawford et al. 2006] the knowledge and practices covered by project management bodies of knowledge represent only a relatively narrow part of what is needed to effectively fulfill their roles. According to the authors, the need for practitioner development goes beyond the development of trained technicians to reflective practitioners. The authors also stated that the range of roles that have project responsibility is broadening and that it is no longer just the responsibility of the project manager. This aspect was also noticed and analyzed during our observations. Maaninen-Olsson and Muller analyzes project focusing on understanding the ways in which project-centered activities are shaped in time and space. The authors use semi-structured interviews, observations and secondary data to analyze the combined effects of the spatial and temporal aspects [Maaninen-Olssan and Mullern 2009]. The study was conducted in a large industrial company in Sweden. Our research was inspired by theirs, were the activities were undertaken as they came up and the learning had to cope with situations as they emerged during project whole life cycle. Jafari [Jafari 2007] presented a systematic approach to assess the health of large projects or programs at any point in their life cycle, by analyzing how systemic the project team is in its management of project variables. Jafari understood that different projects need different approaches to succeed. Our approach was inspired by Jafari's process, we also analyze project by a key factors perspective, but we did not considered just the PMBOK process areas [PMI 2004]. We also used capability maturity model such as MR-MPS-SW [SOFTEX 2012] to analyze the project and mainly to guide the action plans in the intervention step described in Section 4. In Brazil, a Brazilian software process improvement program was developed with the objective of improving maturity and capability of software development and services in Brazilian companies [SOFTEX 2012]. Each model has its process and each process has some expected results. Expected result is "an observable result of the successful achievement of the purpose of the process" [ISO 2004]. These results were and will be used to narrow the action plan. The idea is not to be adherent to the model, just to use it to enhance project management practices. Cicmil et al. proposed a pragmatic research of project actuality to generate knowledge and to build theories [Cicmil et al. 2006]. Cicmil [Cicmil 2006], in her work on understanding the practical action and managerial conduct in complex project environments, presented a research approach that can generate insights and illustrates the key claims. The approach proposed in this article, follows the same line of a pragmatic research to understand the practical action in managerial conduct and hopes to explore this idea of project as a knowledge process and analyze the mindset of small software development organizations. 3. Methodology The methodology gathers a few methods, some of them as part of the approach taken to understand the actuality of software projects. First a systematic literature review was 53 WTDQS 2014 conducted to evaluate and interpret all available research concerning project actuality, in between the year of 2000 to 2013, using the engines ACM Portal, IEEE Xplore and Science Direct. The research questions used were: What is project actuality?(1); How can we observe and analyze project actuality?(2); How current theories, concepts and methodologies underpinning project management research could be enriched by understanding project actuality?(3); and by understanding project actuality can we enrich the knowledge created in the research process in project environments?(4). The literature review was enriched by an exploratory review of the studies mentioned by the papers brought up in the systematic review. Along with an exploratory review on project management practices, before and along the observations that used ethnography methods [Robinson et al. 2007] that emphasizes the researcher's presence in the field. Action research methodology [Santos and Travassos 2009] was used after step four in our approach (intervention) presented in the next Section. The intervention aims on the team learning process, focusing on the project management practices and with the help of a maturity model and its results (or requirements) to draw the action plan. 4. Approach to understand project actuality The investigation on social concept surrounding software development started after analyzing several approaches or empirical method to study how a community of people interacts [Cicmil 2006; Lalonde et al. 2012; Robinson et al. 2007 and Patton 2002]. The objective of the analysis is to go beyond a description of particular scenario or project but to identify the patterns that occur, and document and understand the ongoing inquiry process through which project actors face project situations. This method of accessing knowledge consists in seeing what happens in person, spending time in the field, and eventually leaving the field. Therefore, the method considered the importance of investigating and understands software projects actuality, for fulfilling the gaps and contributing to a more efficient project management. The research learning approach is presented in Fig.1. Theory was used to understand the concept of project actuality, project management, methods of inquiring and elicitation, and then the observations and interventions were conducted to generate knowledge and reflexive practitioners. Theory was taken to the organizations to help them to enhance their project management practices and produce reflexive practitioners. Fig. 1. Research project actuality approach. Some ideas were presented or exchanged with project actors and actions were immediately implemented or adjusted promoting findings for this research and knowledge for the organizations. During the intervention, the goal is "Not to provide 'quick fixes' or 'off the shelf' solutions to management problems, but to encourage a different way of viewing and thinking about a social phenomenon or to consider other 54 XII Workshop de Teses e Dissertações em Qualidade de Software lines of reasoning and practice" [Huczynski and Buchanan 2001]. Aiming to understand project actuality, and enhance the knowledge in process, as well as to produce better organizational results, the general following steps were conducted: � Step #1 - Literature review (as mentioned in previous section). � Step #2 - Planning: First the creation of a specific script for the investigation, since we don’t have a pattern for ethnography studies. Second the definition of the sample, what teams/project will be observed. The goal is to have more than one project in the sample, but at least one has to be observed through it entire life cycle. � Step #3 - Understanding the actuality: Interviews with staffs, managers, programmers as the perception of how good the company, "what sticks", problems, strengths. Analysis of the documentation of the project or operation. Participation with observation of project or team meetings. Interviews and informal conversation at various times of the project / operation, with intervention of the actors and researchers. Analyze conflicts, problems, singularities, and fortresses. � Step #4 - Intervention : Action research [Santos and Travassos 2009] with the suggestions of process improvements and discussion with team leaders and managers. � Step #5 - Analyze organization gain and publish the findings on project actuality. 4. Brazilians software industry panorama and sample of observation Brazilian Information Technology domestic market, which includes hardware, software, and services, handled 60.2 billion dollars in 2012. Out of this value, 9.5 billion came from the software market and 15.5 billion from the services market [ABES 2013]. Over 85% companies can be classified as Micro or Small Business [ABES 2013]. Table 1 presents the annual revenue distribution, helping to understand the relevance of small organizations in the Brazilian software development business. Table 1. Annual revenue distribution - R$ (R$/US$: 2011 – 1.674; 2012 - 1.955) Thousands of reais R$ Up to 1000 From 1001 to 2000 From 2001 to 4000 From 4001 to 10000 More than 10001 % Organizations 57% 21% 8% 6% 8% It was not common to come across project oriented organizations. The organizations have more than 10 years old, a few or dozen or even hundreds of faithful clients. A lot of them has developers with at least three year as an employee, 50% of them has at least five years or more. The overall management has a lot of practices suggested by agile methods [Schwaber 2009]. To most of them, to define software development operational work as projects was one of the first interventions agreed by researchers in action. Table 2 presents the research field (organization) data. The column “Projects” presents the number of projects during observation or intervention or "0" every time in the beginning of the work there was no development work structured as projects. For organizations "F" and "G", there is still no structured project. The column “Team” presents project's roles or development team: Project Manager (PM); Developer (Dev); Tester (T); Support (S); Scrum master (SCM); Product Owner (PO); Configuration 55 WTDQS 2014 Manager (CM); Quality Assurance (QA); Director (D). The column “Research Effort” represents the effort spent by researchers in observation and intervention. Table 2. Research field data. Org. Projects Technology A 0, 3 Delphi and Java B 5 Delphi Team Research Effort Project Type 1 PM+D, 5 Dev, 2 T+S 72 New, Maintenance Team 1: 1SCM+Dev, 1 PO, 2 T, 5 Dev, 1CM, 1QA 139 Maintenance Team 2:1SCM+Dev, 1 PO, 1 T, 3 Dev, 1CM, 1QA C 2 Java 1PM, 2 Dev, 1T+QA 66 New, Maintenance D 2 Java 1PM+PO, 1SCM+Dev, 2 Dev, 1T+QA 78 New, Maintenance E 0, 3 Java, C# 1PO, 1SCM, 4 Dev, 1QA+CM 134 New, Maintenance F 0 Delphi 1 D, 8 Dev + S 21 Maintenance G 0 Java 1 D + dev, 5 Dev 24 Maintenance 5. Results Indeed a unified theory of management of project does not exist [Smyth and Morris 2007]. The actuality of small development organizations are really not what we see in the books. PMBOK [PMI 2004] is known but not used as is written. There is no classic problem or resolution. The observations helped to analyze not only the actuality of projects but, also the frequency and/or use of traditional practices of project management, the maturity of managerial practices and which body of knowledge are more used or understood by small software development organization in Brazil. Among the actions we suggested some are accepted by MR-MPS-SW [SOFTEX 2012] and agile principles, the alignment between this two "methodologies" can be seen in a lot of studies [Prikladnicki and Magalhães 2010; Silva et al. 2009; Boria et al. 2013]. The most flat action was to define software development operational work as monthly project. The team started to have a small feeling of success and accomplishment and the motivation had an improvement. Measurements and risk management were also something not used and introduced. Just “F” does not use a tool to help management practices. “A”, “F” and “G” has their owner as PM or similar, generating a not healthy centralized management where time is not enough to close deals, selling the product, listening to customers, sine checks and still participate in all project decisions. The management role is distributed among the team member. All of them are willing to improve their process by practice, not by new courses or training, even though all leaders were graduated from a computer science, some of them with a MBA. Pretty consistent with Mintzberg’s viewpoint [Mintzberg 2011]. Similar with pointed out by Klaff [Klaff 2011], the management in small organizations function as our brain “First, survival. Then, social relationships. Finally, problem solving”. All organizational leaders approved the approach, and by the end of the intervention “A, B and D” engaged in a maturity level of the MR-MPS-SW [SOFTEX 2012]. 6. Conclusion Nowadays organizations need to be constantly changing, readapting and redefining it. The only way to do it is through projects. Reflexive practioners and project actuality 56 XII Workshop de Teses e Dissertações em Qualidade de Software came up among the recent initiatives to expand and improve the project management. This ongoing effort aims to contribute to this line of research, by performing observations and interventions to extract, analyze and understand project actuality and to build along reflexive practitioners engaged in long term success. The biggest challenge was the amount of detailed data collected (77 minutes, besides all notes, audios and action plans) and the time necessary to conduct these observations and interventions. By understanding project actuality and by developing reflexive practitioners, we can help to improve project management practices in small software development organizations. MR-MPS-SW can help priorizing what to discuss and reflect about. This article presents an approach to understand project actuality in small software development organizations and also to help their leaders and managers on maximizing their projects potential by enhancing their learning process. A few results is also presented. Indeed there is no classic problem or resolution, but that is a lot to contribute in those organizations to make even a bigger impact in the Brazilian economy. As future works we intend to expand our sample and publish a detailed results report. 7. References Kerzner, Harold (2009) Project Management: A Systems Approach to Planning, Scheduling, and Controlling. 10th. ed. New Jersey, NJ, USA: Wiley. Pinto J.K. and Slevin D.P (1998) Project success: definitions and measurement techniques . Project Management Journal; v.19, n.3, p. 67–73. Morrison J. and Brown C. (2004) Project Management effectiveness as a construct: a conceptual study. South African Journal of Business Management 35 (4),73-94. Shenhar A., Dvir D., Levy O. and Maltz A. (2001) Project Success: a multidimensional strategic concept. Long Range Planning 34(6),699-725. Standish Group (2013) The Standish Group International, 2013. th http://www.standishgroup.com/chaos_news/newsletter.php?id=54 [April 20 2014]. Turner J.R. and Muller R. (2003) On the nature of the project as a temporary organization. International Journal of Project Management 21(1), 1-8. Packendorff J.(1995) Inquiring into the temporary organization: New directions for project management research, Scandinavian Journal of Management, V11-4, 319-333. Turner J. R. (2010) Evolution of project management research as evidenced by papers published in the International Journal of Project Management, 28: 1-6. Winter M., Smith C., Morris P. and Cicmil S. (2006) Directions for future research in project management: The main findings of a UK government-funded research network. International Journal of Project Management 24, no. 8: 638-649. Lalonde P. L., Bourgault M., Findeli A. (2012) An empirical investigation of the project situation: PM practice as an inquiry process, International Journal of Project Management, Volume 30, Issue 4, May 2012, Pages 418-431, ISSN 0263-7863 Cicmil S., Williams T., Thomas J. and Hodgson D. (2006) Rethinking Project Management: researching the actuality of projects. Int. Journal of Project Man. 24: 675-686. Cicmil S. (2006) Understanding project management practice through interpretative and critical research perspectives. Project Management Journal 37(2): 27-37. 57 WTDQS 2014 Winter M. and Szczepanek T. (2009) Images of projects. Gower. Crawford L., Morris P., Thomas J. and Winter M.(2006) Practitioner development: From trained technicians to reflective practitioners. IJPM 24, 722-733. Maaninen-Olssan E. and Mullern T. (2009) A contextual understanding of projects. The importance os space and time. Scandinavian Journal of Management 24, 327-339. Jaafari A. (2007) Project and program diagnostic: A systemic approach. International Journal of Project Management Volume 25, Issue 8, November 2007, Pgs 781–790. SOFTEX (2012) Associação para a Promoção da Exelencia do Software Brasileiro. MPS.BR Guia Geral 2012. Avalilable at <http://www.softex.br/wp-content/uploads/ 2013/07/MPS.BR_Guia_Geral_Software_20121.pdf> [April 20th 2014] ISO(2004) International Organization for Standardization and the International Electrotechnical Comission (2004) “ISO/IEC 15504-1: Information Technology Process Assessment - Part 2: Performing an Assessment”. Geneve. Robinson H., Segal J., Sharp H. (2007) Ethnographically-informed empirical studies of software practice. Inf. Softw. Technol. 49, 6, 540-551. Santos P. S. and Travassos G. H. (2009). Action Research Use in Software Engineering: an Initial Survey. Third International Symposiumm on Empirical Software Engineering and Measurement 978-1-4244-4841. Patton M Q. (2002) Qualitative Research & Evaluation Methods. Sage Publications, Thousand Oaks. Huczynski A., Buchanan D. A (2001). Organizational behaviour: An introdutory text. Harlow Essex, UK: Finacional Times PRencive Hall. ABES, 2013. Brazilian Software Market: scenario and trends. 1Ed. São Paulo: ABES. Schwaber (2009) K. Agile project management with Scrum. O’Reilly Media, Inc., 2009. Smyth H. J, Morris P. W G. (2007). An epistemological evaluation of research into projects and their management: Methodological issues, International Journal of Project Management, Volume 25, Issue 4, Pages 423-436, ISSN 0263-7863. PMI (2004) P. M. Institute. A guide to the project management body of knowledge: PMBOK Guide. Project Management Institute Newtown Square PA,USA, 2004. Prikladnicki R. and Magalhães A. (2010) “Implantação de Modelos de Maturidade com Metodologias Ágeis: Um Relato de Experiências”. WAMPS`2010. Silva F. G., Hoentsch S. P. and Silva L. (2009) Uma análise das Metodologias Ágeis FDD e Scrum sob a Perspectiva do Modelo de Qualidade MPS.BR”. Scientia Plena. Boria J., Rubinstein V. and Rubinstein A. (2013) “A história da Tahini-Tahini Melhoria de processos de software com métodos ágeis e modelo MPS”. Klaff O. P. (2011) Anything: An Innovative Method for Presenting, Persuading, and Winning the deal. McGraw-Hill. Mintzberg H. (2011) Managing.Publisher: Berrett-Koehler Publishers; First Edition (March 10, 2011) ISBN-13: 978-1605098746. 58 XII Workshop de Teses e Dissertações em Qualidade de Software Riscos em Iniciativas de Melhoria de Processos de Software: Uma Investigação no Contexto Brasileiro Eliezer Dutra1,2, Gleison Santos1 1 Programa de Pós-Graduação em Informática – Universidade Federal do Estado do Rio de Janeiro (UNIRIO) – Av. Pasteur 458, Urca, CEP 22290-240 – Rio de Janeiro, RJ 2 Centro Federal de Educação Tecnológica Celso Suckow da Fonseca (CEFET/RJ) Estrada de Adrianópolis, 1317 - Santa Rita, CEP: 25265-000 - Nova Iguaçu, RJ {eliezer.goncalves, gleison.santos}@uniriotec.br Abstract. This article aims to present a proposal for a dissertation that will examine the risks in software processes improvement (SPI) initiatives based on the MR-MPS-SW and CMMI-DEV models in the context of Brazilian organizations. The concepts related to the risk will be extracted from experience reports and mapped using procedures based on the scientific method Grounded Theory. Thus, a base of risks will be established to assist the definition of a risk plan. A survey with consultants and professionals involved with the SPI implementation will enable the analysis, validation and classification of risks. Resumo. Este artigo tem o objetivo de apresentar uma proposta de uma dissertação que analisará os riscos em iniciativas de melhoria em processos de software (MPS) baseadas nos modelos MR-MPS-SW e CMMI-DEV no contexto de organizações brasileiras. Os conceitos relacionados aos riscos serão extraídos de relatos de experiência e mapeados utilizando procedimentos baseados no método científico Grounded Theory. Dessa forma, será estabelecida uma base de riscos que auxiliará a definição de um plano de riscos. Um survey com consultores e profissionais envolvidos com a implantação de MPS permitirá a análise, validação e classificação dos riscos. 1. Introdução A competitividade atual exige das organizações que desenvolvem software a implantação de melhorias em seus processos com o objetivo de aumentar a qualidade do produto e diminuir o custo, possibilitando, assim, aumento de rentabilidade. Modelos de maturidade, como MR-MPS-SW (SOFTEX, 2012) e CMMI-DEV (Chrissis et al., 2011), e normas, como ISO/IEC 15504 (ISO/IEC, 2003) e ISO/IEC 12207 (ISO/IEC, 2008) auxiliam na definição e na implementação de melhorias em processos de software (MPS). Vários relatos de projetos de implantações de melhoria de processos de software (MPS) apresentam baixos níveis de aprovação ou sucesso limitado (Niazi et al., 2006; Niazi, 2012; Paulk et al., 2000). Em qualquer projeto, problemas podem impactar negativamente os objetivos. Resolver esses problemas depois que eles ocorrem pode ser disruptivo e caro (Chrissis et al., 2011). O processo de gestão de riscos propõe uma análise crítica dos riscos, através da aplicação sistemática de políticas, procedimentos e práticas de gestão (ISO, 2009a). Embora os efeitos de uma gestão de riscos ineficaz ou ausente sejam conhecidos (Iversen et al., 2004), existem poucas pesquisas que identificaram 59 WTDQS 2014 riscos propondo ações de controle em iniciativas de MPS. Na literatura é comum encontrar pesquisas que apresentam fatores críticos de sucesso ou insucesso, dificuldades, barreiras ou lições aprendidas. 2. Caracterização do Problema Cada projeto é um esforço temporário único para a realização de um produto ou serviço (PMI, 2013). As iniciativas de MPS devem ser tratadas como um projeto (Montoni et al., 2007). Existem vários riscos, barreiras ou dificuldades que podem atrapalhar a implantação de um projeto de MPS (Niazi et al., 2006; Niazi, 2012; Paulk et al., 2000; Rodrigues e Kirner, 2010; Mendes et al., 2007; Iversen et al., 2004). É possível encontrar na literatura pesquisas que apontam alguns elementos que dificultam a resolução de problemas em projetos de iniciativas de MPS. Por exemplo, Dyba (2002) indica que enquanto a engenharia de software tem oferecido algumas maneiras de tratar problemas intrínsecos, problemas organizacionais necessitam de outra abordagem. Os problemas organizacionais são tratados implicitamente ou, em muitos casos, não são totalmente tratados. Segundo Zanetti (2008), os recursos humanos especializados não são facilmente encontrados dentro das organizações desenvolvedoras de software. Birk e Pfahl (2002) relatam que muitas vezes os programas de melhoria não são tratados como projetos reais, o que dificulta a aplicação de métodos e técnicas já estabelecidas na área de gerência de projetos para estimar custos e prazos. Nesse contexto, iniciativas de MPS são confrontadas com uma série de riscos que dificultam o desenvolvimento e implantação do projeto, que em alguns casos, proporciona um pequeno ou nenhum aumento da capacidade de desenvolver software com qualidade (Iversen et al., 2004). 3. Fundamentação Teórica Um risco é um evento incerto ou condição que, se ocorrer, tem um efeito positivo ou negativo em um ou mais objetivos do projeto (PMI, 2013). Boehm (1991) foi um dos primeiros a estruturar a análise de riscos em projetos de software. Ele propôs atividades que permitem a identificação, análise, planejamento, resolução e monitoramento dos riscos. Os principais modelos de maturidade, normas ou frameworks propõem práticas para identificação e tratamento dos riscos (Chrissis et al., 2011; SOFTEX, 2012; ISO/IEC, 2003; ISO/IEC, 2008; PMI, 2013; ITGI, 2007). O MR-MPS-SW fundamenta que os riscos do projeto devem ser identificados e documentados, incluindo seu contexto, fontes, condições e possíveis consequências para o projeto e as partes interessadas (SOFTEX, 2012). O estabelecimento do contexto do risco é essencial para sua identificação, análise e controle. Pois todos os outros elementos, i.e., fontes, causas e consequências devem refletir o estado das circunstâncias em que o risco está inserido. No entanto, estabelecer a gestão de riscos em projetos de iniciativas em MPS, nos quais, muitas vezes, os reais contextos organizacionais são ignorados, não é uma tarefa trivial (Niazi, et al., 2005; Birk e Pfahl, 2002). Niazi (2012) acredita que um bom entendimento dos riscos é vital para o sucesso de iniciativas de MPS. Embora as iniciativas de MPS possuam riscos semelhantes, as ações de controle serão próprias de cada organização, pois elas serão realizadas através de uma análise de contexto. Porém, é possível agrupar riscos e ações de controle oferecendo um catalisador para futuras tomadas de decisão. 60 XII Workshop de Teses e Dissertações em Qualidade de Software 4. Metodologia de Pesquisa Este trabalho tem o objetivo de entender os riscos, seus elementos, suas ações de controles e seus respectivos efeitos percebidos em iniciativas de MPS. Para isso, esperase construir uma base de riscos, positivos e negativos, que possibilite uma organização utilizá-la ao iniciar uma iniciativa de melhoria de processos própria. Para realizar a análise qualitativa e facilitar o processo de entendimento e codificação das informações serão utilizados dois procedimentos da Grounded Theory (GT), que é uma metodologia que propõe a construção da teoria a partir dos dados (Corbin e Strauss, 2008): (i) Codificação aberta: processo de rotulação dos conceitos e das categorias que reflete a interpretação do pesquisador ao que está sendo dito. (ii) Codificação axial: processo de relacionamento dos conceitos. 4.1. Coleta de Dados Em um primeiro momento, os dados para derivarem os riscos a serem identificados serão coletados a partir dos relatos de experiência ou trabalhos técnicos que abordem implantações de melhorias em processo de software publicados nos principais eventos no Brasil que tratam do assunto, como o SBQS (Simpósio Brasileiro de Qualidade de Software) e o WAMPS (Workshop Anual do MPS.BR). Apenas os artigos que relatem lições aprendidas, oportunidades, barreiras, fatores críticos, dificuldades ou problemas na implantação baseada nos modelos de maturidade mais utilizados do país, i.e., MRMPS-SW e CMMI-DEV, farão parte do escopo. As consultas serão manuais. Ainda está em aberto se outras fontes de dados serão utilizadas. A inclusão do trabalho no escopo de pesquisa dar-se-á após a leitura e interpretação de que foram relatadas circunstâncias que influenciaram negativamente ou positivamente uma implantação de MPS. Para nortear essa etapa, estabeleceu-se uma questão principal e quatro questões secundárias, sendo elas: “QP. Como os riscos influenciam iniciativas de MPS?”; “QS1. Que riscos comumente afetam essas iniciativas?”; “QS2. Como os riscos são percebidos (o que desencadeou o risco - o fato - a causa - fonte geradora)?”; “QS3. Que ações são tomadas para tratar ou potencializar os riscos?”; “QS4. Qual efeito das ações tomadas?”. Para cada artigo selecionado, está sendo preenchida uma ficha de resumo com a referência do artigo e possíveis repostas às questões secundárias. 4.2. Análise de Dados Os dados serão analisados em seu contexto, com objetivo de um entendimento teórico que permita respostas à questão principal e as questões secundárias. Um fato que dificulta a identificação de um risco negativo é um possível entendimento referente à associação de um risco afetar a credibilidade externa da organização. Dessa forma, muitas vezes, estes fatores negativos foram associados a termos positivos como: lições aprendidas ou oportunidades. Outro problema é que alguns relatos não contextualizam os riscos, apresentando apenas uma lista de categorias, fontes ou fatores de riscos. Consequentemente, compreender a construção proposicional das argumentações que relatam os riscos associados a uma implantação de MPS é uma tarefa difícil. Nesse sentido, espera-se que a GT auxilie no surgimento de propriedades, categorias e relacionamentos que permita uma compreensão contextualizada e categorizada e relacional dos contextos. 61 WTDQS 2014 Cada norma, modelo ou framework possui processos e nomenclaturas próprias para conceituar os elementos da gestão de riscos. Por isso, este trabalho será norteado com a norma ISO 31000:2009 (ISO, 2009a) “Gestão de riscos — Princípios e diretrizes”, pois ela apresenta processos e uma nomenclatura padrão para ser utilizada em qualquer domínio de gestão de risco. Para corroborar com o entendimento da teoria oriunda da GT, será desenvolvido um metamodelo de gestão de riscos baseado na ISO 31000. Falbo (2010) propôs uma ontologia de riscos com o objetivo de estabelecer uma definição comum em relação ao domínio de riscos de software. O trabalho de Falbo (2010) auxiliará na identificação de alguns conceitos do metamodelo. Dessa forma, através das iterações da GT, da estruturação dos conceitos das normas e da análise de algumas ontologias, uma nomenclatura padrão, independente do modelo de maturidade, norma ou framework será estabelecida. Espera-se que o processo de codificação e a análise do contexto dos riscos, embasado nos conceitos presentes nas normas internacionais (ISO, 2009a; ISO, 2009b; IEC/ISO, 2009), possibilite gerar uma base de riscos que contemple os elementos dos riscos contextualizados e categorizados nos seus respectivos cenários. 4.3. Avaliação do Estudo Strauss e Corbin (2008) apresentam dez critérios para avaliar a qualidade de um estudo que utiliza GT. Alguns desses critérios serão utilizados para avaliação deste estudo, sendo eles: (i) adaptação – a teoria deve corresponder aos dados, (ii) aplicabilidade – a teoria tem sentido e adiciona conhecimento para os profissionais da área, (iii) conceito – a teoria deve ser abstrata para servir de guia geral sem perder sua relevância, e (iv) contextualização do conceito – a teoria atua como um guia geral e possibilita a uma pessoa entender completamente a situação. Dessa forma, ao final da aplicação da GT os critérios (i) e (ii) serão avaliados através auditoria da teoria por consultores especialistas em MPS. A aplicação de um survey, com profissionais de grupos de MPS e consultores, permitirá a análise da relevância dos riscos e um possível levantamento da probabilidade, impacto e classificação dos riscos, assim os critérios (iii) e (iv) também serão avaliados. Por fim, a utilização da base de riscos em uma iniciativa real de MPS permitirá avaliar os critérios (ii), (iii) e (iv). Testes estatísticos poderão estabelecer alguma confiabilidade, significância ou correlação dessa classificação ou do instrumento. 4.4. Estado Atual O presente trabalho está na fase de coleta e análise de dados, através do levantamento das propriedades, categorias e relacionamentos que emergem do processo de codificação propostos pela GT. A Figura 1 apresenta a identificação e análise de um risco extraído de uma das publicações já analisada dos autores Ricardo e Corrêa (2011). O risco extraído apresenta algumas dificuldades de uma empresa pública em convencer os gestores municipais com o financiamento de um projeto de MPS apoiada por um modelo de maturidade. Os retângulos representam as propriedades que emergiram dos dados através da rotulação dos conceitos (codificação aberta) e as setas representam os relacionamentos entre os conceitos (codificação axial). 62 XII Workshop de Teses e Dissertações em Qualidade de Software Figura 1 - Exemplo da descrição de um risco e suas ações de controle O evento denominado “EV1. Gestores municipais desconhecem em os benefícios de implantar um processo de desenvolvimento de software” software representa uma um ocorrência que poderia impedir a implantação plantação da iniciativa. iniciativa Uma das causas encontradas nesse n evento é a “CA1. Alto lto custo para a implantação”.. Algumas ações aconteceram para que as consequências do evento fossem fosse mitigadas, como por exemplo, “AC100. Utilizar grupos de trabalho com apoio financeiro” e a “AC102. Convencer cer os gestores com abordagens técnicas e comerciais”. comerciais” Os efeitos das ações foram “EF51. Apoio dos GesGe tores” e o “EF50. EF50. Execução de um projeto com baixo investimento”. invest 5. Trabalhos relacionados Para o levantamento do estado da arte foi f realizada uma revisão informal da literatura na base da Compendex e manualmente nos anais do SBQS e WAMPS. WAMPS Dois dos trabalhos correlatos identificados são descritos a seguir. Mendes et al. (2007) identificaram identific na literatura os riscos mais citados com o intuito de apresentar os dez mais recorrentes em projetos de implementação de MPS. Além disso, foram propostas ações com o objetivo objet de mitigar, minimizar ou diminuir a probabilidade probabilidade da ocorrência dos riscos. Contudo, essas ações de controle não foram fundamentadas na literatura e são, de fato, muito semelhantes melhantes a uma lista de fatores de sucesso. sucesso Niazi (2011) rodou um estudo exploratório tório com profissionais da Austrália para identificação de riscos em MPS. O objetivo do estudo foi obter uma compreensão dos riscos que podem comprometer a implementação de MPS a partir da perspectiva dos profissionais de desenvolvimento de software. Todavia, ia, não foram propostas ações de controle dos riscos identificados. identificados 6. Resultados esperados Com este trabalho espera-se se a definição de uma base de riscos e suas respectivas ações de controles relacionados dos com iniciativas de MPS no contexto de organizações brasileibras ras. A elaboração de um metamodelo met para o domínio de gestão de risco iscos permitirá o conhecimento mento dos elementos conceituais presentes na ISO 31000 e seus relacionamentos, assim um vocabulário e exemplos exe de riscos contextualizados serão rão apresentados. apresent Além disso, após a aplicação de procedimentos procedimentos baseados em GT, espera-se espera que a criação de categorias possibilite possibili um agrupamento mais genérico do que as descritas no contexto dos relatos. Assim, Assim, será possível realizar comparações com outras pesquisas que apontem riscos, dificuldades, barreiras, fatores fatores desmotivadores ou fatores críticos de sucesso. Após essas comparações e validações com consultores especialistas em MPS, espera-se se também, a elaboração e aplicação de um survey que permita a classificlassif 63 WTDQS 2014 cação, análise do impacto e probabilidades dos riscos. Finalmente, espera-se que o processo de codificação e a análise dos contextos dos riscos, possibilitem um modelo que auxilie os consultores e os profissionais de grupos de implantação em MPS na identificação, análise, avaliação e controle de riscos. Referências Birk, A., Pfahl, D. (2002). “A Systems Perspective on Software Process Improvement”. Em: Proc. of the 4th Int. Conf. on Prod. Foc. Soft. Proc. Impr., v. 2559, p. 4-18, Dec. Boehm, B. W. (1991). “Software Risck Management: Principles e Practtices”, IEEE Software, vol. 8, n. 1 (January), pp 32-41. Chrissis, M. B.; Konrad, M., Shrum, S. (2011). “CMMI for development: Guidelines for Process Integration and Product Improvement”. Addison-Wesley. 3rd ed.. Boston. Corbin, J., Strauss, A. (2008). “Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory”. 3rd. London, SAGE Publications. Dyba, T. (2002) “Enabling Software Process Improvement: An Investigation of the Importance of Organizational Issues.” Empirical Software Engineering 7 (4): 387–90. Falbo, R. A. (2010). Uma Ontologia de Riscos de Software, IX Simpósio Brasileiro de Qualidade de Software (SBQS 2010). Belém, PA. ISO/IEC (2003) ISO/IEC 15504: Information Technology – Software Process - Part 6: An exemplar system life cycle process assessment model. ISO/IEC (2008) ISO/IEC 12207: System and soft. Engine. – Soft. life cycle processes. ISO/IEC (2009) ISO/IEC 31010: Risk management – Risk assessment techniques. ISO (2009a) ISO 31000: Risk Management – Principles and Guidelines. ISO (2009b) ISO Guide 73: Risk Management - Vocabulary. ITGI - IT Governance Institute (2007). “COBIT 4.1 – Control Objectives ManagementGuidelines Maturity Models”. Rolling Meadows, IL – USA. Iversen, J., Mathiassen, L., Axel, N. (2004). “Managing Risk in SPI: AN Action Research Approach.” MIS Quarterly: Manag. Inform. Systems 28 (3): 395–434. Mendes, F. F., Oliveira, J. L., Fernandes, P. G., et al. (2007). “Análise de Riscos na Implantação de MPS”. III Workshop Anual do MPS. Campinas, SP. Montoni, M., Cerdeiral, C., Zanetti, D., Rocha, A. R. (2007). "Uma Abordagem para Condução de Iniciativas de MPS". III Workshop Anual do MPS. Campinas, SP. Niazi, M., Wilson, D., Zowghi, D. (2006). “Critical success factors for SPI implementation: an empirical study”, Soft. Proc.: Imp. and Prac., v. 11, n. 2 (Mar), pp. 193-211. Niazi, Mahmood. (2012). “An Exploratory Study of Software Process Improvement Implementation Risks”. Journal of Soft.: Evolution and Process 24 (8): 877–94. Paulk, M., Goldenson, D., White, D. (2000). “The 1999 Survey of High Maturity Organizations”, Soft. Eng. Institute, Carnegie Mellon University, Pittsburgh, PA. PMI – Project Management Institute. (2013) “Um Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos: Guia PMBOK”. Pensilvânia: PMI, Quinta ed. 2013. Ricardo, M., Corrêa, A. S. (2011). “MPS.BR Nível D – A Experiência em Implantar o modelo na Área de Governo Municipal”. VII Work. A. do MPS. Campinas, SP. Rodrigues, J., Kirner, T. (2010). “Benefícios, Fatores de Sucesso e Dif. da Implantação do Mod. MPS.BR”, IX Simp. Bras. de Qual. Soft.(SBQS2012). Belém, PA. SOFTEX (2012) “MPS.BR - Guia Geral MPS de Software”. Disponível em http://www.softex.br/mpsbr/guias/. Acesso em 16/04/2014. Zanetti, D. B. (2008). “Uma Abordagem para Benchmarking em Iniciativas de Implementação de MPS”, Diss. de Mest., COPPE/UFRJ, Rio de Janeiro, RJ, Brasil, 2008. 64 XII Workshop de Teses e Dissertações em Qualidade de Software Aplicação de Pontos por Função em Projetos que Usam Métodos Ágeis Aluno Eduardo Garcia Wanderley Orientador Prof. Dr. Alexandre Marcos Lins Vasconcelos Co-Orientador Prof. Dr. Bruno Tenório Ávila Pós-graduação em Ciência da Computação – Centro de Informática (CIn) Universidade Federal de Pernambuco (UFPE) – Pernambuco, PE – Brasil {egw,amlv,bta}@cin.ufpe.br Nível: Mestrado Ano de Ingresso: março de 2013 Previsão de Conclusão: março de 2015 Aprovação da Proposta: não há qualificação para mestrado no Cin-UFPE Evento Relacionado: SBES Resumo. Contexto: O desenvolvimento ágil tem se tornado cada vez mais comum no ambiente de desenvolvimento de software, contudo estimativas de tamanho em projetos de software que usam metodologias ágeis são feitas de maneira diferente das realizadas em projetos tradicionais. Objetivo: Este artigo apresenta o progresso de uma análise comparativa entre as diferentes abordagens de aplicação da Análise de Pontos de Função (APF) em projetos de software que fazem uso de alguma metodologia ágil existente no mercado. Método: Através de uma revisão sistemática, serão discutidos, de forma comparativa e funcional, os conceitos de metodologia ágil e de APF e seu trabalho em conjunto para a resolução de problemas em medição de software. Por meio de uma pesquisa experimental, empírica e controlada, as propostas existentes na literatura são avaliadas no intuito de testar sua aplicação e analisar seus resultados. Resultados esperados: Espera-se desta forma, definir os pontos de convergência e de divergências entre as metodologias ágeis e os elementoschave da APF; identificar as possibilidades de aplicação desta integração e apresentar uma análise detalhada sobre as propostas de aplicação da APF em projetos de software com metodologias ágeis existentes na literatura. Palavras-chave. Pontos de Função, Métricas de Software, Metodologias Ágeis, Gerenciamento, Medição. 65 WTDQS 2014 1. INTRODUÇÃO A demanda por produtos e serviços na área de tecnologia de informação vem crescendo continuamente, contudo os orçamentos e cronogramas estão cada vez mais inflexíveis devido, por exemplo, à necessidade de redução de custos e cumprimentos de prazos cada vez mais curtos. Para isso, aumentar a qualidade e produtividade do desenvolvimento de software é primordial para qualquer organização que lida com projetos de tecnologia da informação [Mens et al., 2001]. Desta forma, o uso de métricas torna-se essencial para o controle desses projetos. Selecionar métricas adequadas para poder mensurar custos e receitas não é uma tarefa fácil, principalmente devido as inúmeras transformações que acontecem constantemente na área de tecnologia da informação. Isso leva a importantes questionamentos: Quanto vamos cobrar ao cliente pelo desenvolvimento de um projeto de software? Quanto vai custar o desenvolvimento desse projeto de software? Como podemos medir o que a fábrica de software contratada fez? Esses questionamentos levaram as organizações a adotar a técnica de Análise de Pontos de Função (APF) [Albrecht, 1979] como critério de mensuração de custos a pagar pelos seus produtos, e seus sistemas de informação. No âmbito da Administração Pública Brasileira, foi criada a lei nº 8.666 [Lei 8666, 1993], que estabelece normas gerais sobre licitações e contratos administrativos, indica que deve-se de forma clara e objetiva mensurar o tamanho do software pedido e esforço de desenvolvimento do mesmo e uma das principais formas de mensuração feita é através da APF. Essa também tornou-se referência para estimativas formais de tamanho funcional de software sendo esta normatizada através da ISO 20926 [ISO 20926, 2009]. No entanto, em projetos de software que utilizam metodologias ágeis, as estimativas são realizadas de maneira distinta das realizadas em projetos tradicionais. Iterações rápidas e curtas, rápido feedback são algumas características diferenciadas de projetos que utilizam metodologias ágeis e, por isso, podem não se adequar às técnicas e métodos mais conhecidos de estimativa de esforço. O primeiro passo do processo de medição em APF, por exemplo, consiste em buscar a documentação disponível sobre o sistema e/ou projeto que será medido. Uma documentação adequada pode incluir requisitos, modelos de dados/objetos, diagramas de classe, diagramas de fluxo de dados, casos de uso, descrições procedurais, layout de relatórios e telas, manuais de usuário e outros artefatos do desenvolvimento de software [IFPUG, 2010]. Nenhum destes documentos é comum em métodos ágeis. Assim, técnicas particulares para metodologias ágeis vêm sendo criadas e utilizadas nos projetos [Fuqua, 2003]. Com a ascensão das metodologias ágeis nos meios empresariais [Abrahamsson et al., 2002], torna-se necessário a detecção de uma forma de relacionar pontos de função com métodos ágeis. Este trabalho está organizado da seguinte forma. A Seção 2 introduz a fundamentação teórica da pesquisa. A Seção 3 discute os objetivos e metas da pesquisa. A Seção 4 explora os métodos de pesquisa utilizados e o estado atual da pesquisa. A Seção 5 expõe os trabalhos relacionados e, na Seção 6, a contribuição esperada é apresentada. 66 XII Workshop de Teses e Dissertações em Qualidade de Software 2. FUNDAMENTAÇÃO TEÓRICA 2.1 Metodologias Ágeis As metodologias ágeis são abordagens para desenvolvimento de software baseadas no desenvolvimento iterativo e incremental, no envolvimento direto do cliente no processo, na entrega rápida de features de maior valor de negócio e em respostas rápidas às mudanças [Sommerville, 2011]. Elas compartilham princípios comuns entre si, definidos em fevereiro de 2001 por profissionais da comunidade ágil que sentiram a necessidade de diferenciar essa abordagem da tradicional, sintetizando seus pilares no Manifesto Ágil [Agile Manifest, 2001], o qual afirma: Estamos descobrindo melhores maneiras de desenvolver software, fazendo-o e ajudando os outros fazê-lo. Através deste trabalho devemos valorizar: indivíduos e interações sobre processos e ferramentas; software desenvolvido sobre documentação abrangente; a colaboração do cliente sobre negociação de contratos; respondendo a mudanças mais que seguir um plano; ou seja, enquanto há valor nos itens à direita, nós valorizamos os itens mais à esquerda. (Agile Manifest, 2001) As metodologias ágeis são abordagens atuais para criação de software baseada na colaboração com o cliente, trabalho em equipe, desenvolvimento iterativo e incremental, e com respostas rápidas às mudanças. Essas metodologias estão se tornando alternativas ao desenvolvimento de software tradicional, pois eliminam a dependência em realizar um extenso planejamento inicial e documentação dos requisitos do sistema, dando ênfase na flexibilidade, comunicação informal e código funcionando. Cockburn e Highsmith [Cockburn et al., 2001], afirmam que as metodologias ágeis enfatizam talentos e habilidades inerentes aos indivíduos, moldando o processo as pessoas e equipes específicas. Portanto, para uma metodologia se enquadrar na categoria de metodologias ágeis, segundo Abrahamsson [Abrahamsson et al., 2002], deve utilizar o desenvolvimento iterativo e incremental, valorizar a colaboração e comunicação entre cliente e toda a equipe, e ser adaptativa, com capacidade de responder às mudanças. Em projetos ágeis, os requisitos a serem desenvolvidos são expressos na forma de estórias feitas por usuários [Leffingwell et al., 2009]. E um dos métodos mais populares de dimensionamento destas estórias é uso de Story Points, que são unidades subjetivas de estimativa obtida por equipes ágeis. Neste método, uma equipe se compara a estória do usuário a uma ou mais estórias semelhantes e dá à estória um tamanho em termos de Story Points ou "dia ideal de trabalho". O número de Story Points associados com uma estória representa o tamanho global da estória. Não há uma fórmula definida para definir o tamanho de uma estória [Santana et al., 2011]. Cada equipe pode definir Story Points como quiser. Assim, com base nas metodologias ágeis, diversos metodologias têm sido propostas, tais como: Adaptative Software Development, Crystal, Dynamic Systems Development, eXtreme Programming (XP), Feature Driven Development e Scrum. 2.2 Análise de Pontos por Função (APF) Análise de pontos por função é uma técnica que permite medir a funcionalidade de um software ou aplicativo sob a visão do usuário e a partir da descrição dos requisitos do usuário. 67 WTDQS 2014 De acordo com a técnica de APF, uma aplicação de software, vista sob a ótica do usuário, é um conjunto de funções ou atividades do negócio que o beneficiam na realização de suas tarefas [IFPUG, 2010]. Desde a sua criação em 1986, a International Function Point Users Group (IFPUG) vem continuamente, aprimorando o método de dimensionamento de software. A versão atual (4.3.1) da IFPUG sobre o método está publicada no The Counting Practices Manual. Este manual classifica os seguintes tipos de elementos funcionais: 1. Entrada Externa – EI (External Input) – transações lógicas onde dados entram na aplicação e mantêm dados internos; 2. Saída Externa – EO (External Output) – transações lógicas onde dados saem da aplicação para fornecer informações para usuários da aplicação; 3. Consulta Externa – EQ (External Query) – transações lógicas onde uma entrada solicita uma resposta da aplicação; 4. Arquivos Lógicos Internos – ILF (Internal Logical File) – grupo lógico de dados mantido pela aplicação; 5. Arquivos de Interface Externa – EIF (External Logical File) – grupo lógico de dados referenciado pela aplicação, mas mantido por outra aplicação. A complexidade das transações é baseada utilizando dois dados: 1. O número de Arquivos Referenciados – FTR (File Types Referenced); 2. O número de Itens de Dados Referenciados – DET (Data Element Type). Os elementos identificados são totalizados para calcular os pontos por função nãoajustados. Em seguida, o fator de ajuste é calculado a partir de 14 características gerais dos projetos que permitem uma avaliação geral da funcionalidade da aplicação. A cada característica é atribuída um peso variando de 0 até 5, de acordo com o nível de influência na aplicação. O nível de influência geral é obtido pelo somatório do nível de influência de cada característica e o fator de ajuste é obtido pela expressão: Fator de Ajuste = 0,65 + Nível de Influência Geral × 0,01. O total de pontos por função da aplicação será encontrado mediante a multiplicação do número de pontos por função não ajustados pelo fator de ajuste. 3. PROPOSTA DA PESQUISA A pesquisa se propõe a apresentar uma análise comparativa entre as diferentes abordagens de aplicação da APF em projetos de software que fazem uso de alguma metodologia ágil existente na literatura. As abordagens, escolhidas através da revisão sistemática, serão aplicadas em projetos reais de uma empresa pública municipal e analisadas sobre vários pontos de vista: facilidade do uso, facilidade de aprendizagem, grau de precisão da medição e tempo gasto para se fazer a medição. Após aplicação e análise das abordagens, será feito um relatório contendo o resultado do experimento, os pontos fortes e fracos de cada abordagem e uma recomendação de quando usar uma determinada abordagem e a sua justificativa. 4. METODOLOGIA E PROGRESSO Antes da definição do método de pesquisa, Easterbrook [Easterbrook et al., 2008] recomendam que seja definido o posicionamento filosófico a ser seguido pela pesquisa, podendo ser: positivista, construtivista, teoria crítica ou pragmático. O posicionamento filosófico escolhido foi o pragmático, pois o mesmo considera o conhecimento prático, e o uso de métodos de pesquisa mista. O posicionamento 68 XII Workshop de Teses e Dissertações em Qualidade de Software Pragmático acredita que todo conhecimento é aproximado e incompleto, e seu valor depende dos métodos pelos quais foi obtido, sendo portanto, a verdade relativa ao observador [Easterbrook et al., 2008]. A abordagem escolhida foi a indutiva, caracterizada por partir de um conjunto de dados particulares, suficientemente constatados (amostra), inferindo-se uma verdade universal, não contida nas partes examinadas (população) [Marconi et al., 2008]. O escopo da pesquisa envolveu dois métodos de pesquisa: revisão sistemática da literatura [Kitchenham et al., 2007], como forma de analisar e interpretar um conjunto de dados obtidos na literatura existente sobre uma questão de investigação particular, área temática ou fenômeno de interesse, baseando-se em evidências; e a partir dos estudos escolhidos na revisão, um experimento controlado [Juristo et al., 2010], como forma de analisar as abordagens existente e a partir desta análise avaliar qual a melhor forma de utilizar pontos de função em projetos que utilizam metodologias ágeis para o desenvolvimento de software. A análise do experimento será feita levado em consideração os valores obtidos sobre os aspectos da precisão do valor estimado e do tempo gasto para se chegar ao valor estimado. Com relação ao progresso da pesquisa, a revisão sistemática já foi realizada e as abordagens existentes já foram escolhidas: Extending Function Point Analysis [Banerjee et al., 2012], Function Point Analysis and Cost Estimation in An Agile Development Environment [Alexander, 2009] e Agile Estimation Using Functional Metrics [Cagley, 2009]. O planejamento do experimento controlado está na fase de validação. A Tabela 1 mostrar o cronograma da pesquisa. Tabela 1. Cronograma da pesquisa. Atividade/Período 2013.1 2013.2 2014.1 2014.2 1. Estudo Inicial e Créditos do Mestrado 2. Revisão Sistemática e Planejamento do Experimento 3. Execução do Experimento e Análise dos Resultados 4. Escrita da Dissertação 5. TRABALHOS RELACIONADOS Não foi encontrado nenhum estudo de comparação semelhante ao proposto. No entanto, foram encontrados trabalhos específicos sobre o uso de APF em métodos ágeis. Santana [Santana et al., 2011] realizou uma pesquisa sobre o relacionamento entre Pontos de Função e o valor inicial de Story Points descobertos após o planning poker de SCRUM. Cong e Cao [Cong et al., 2013] fizeram uma revisão sistemática sobre formas de medição de software existentes. Banerjee [Banerjee et al., 2012] observou que existe uma correlação linear entre o esforço consumido e o tamanho estimado de cada iteração. 6. CONTRIBUIÇÃO ESPERADA E TRABALHOS FUTUROS A proposta desta pesquisa é examinar as soluções existentes no uso de pontos por função em projetos de software que utilizam metodologias ágeis e determinar a melhor abordagem. O principal desafio deste trabalho é encontrar uma proposta de uso que seja de fácil utilização e que realmente faça o relacionamento entre as metodologias de forma correta e concisa. Como contribuição, espera-se que a partir da análise feita pelo estudo das diferentes soluções, as empresas que precisem realizar este tipo de medição possam 69 WTDQS 2014 usar o estudo como base para a escolha de qual solução lhe atende melhor e, assim, escolher a que mais lhe satisfizer. Considerando que o experimento possui um número limitado de propostas e projetos, é interessante que o estudo seja ampliado para que os resultados possam ser generalizados e aproveitados por empresas de diferentes perfis. REFERÊNCIAS Abrahamsson P.; Salo, O.; Ronkainen J.; Warsta J., 2002; “Agile software development methods Review and analysis”. VTT Publications, Finland. Agile Manifest, 2001; Disponível em http://agilemanifesto.org. Albrecht A. J., 1979; Measuring Application Development Productivity. In Proc. IBM Applications Development Symposium. GUIDE Intl. and Share Inc., IBM Corp., Monterey, pp. 83. Alexander A. J., 2011; Case Study: Function Point Analysis and Cost Estimation in An Agile Development Environment. Disponível em http://www.devdaily.com/fpa/fpa-louisville-agile/. Banerjee A. U.; Narayanan B. K.; Mahadevan P C., 2012; Estimating Agile Iterations by Extending Function Point Analysis. In: WORLDCOMP’12. Cagley T., 2009; Agile Estimation Using Functional Metrics. The IFPUG Guide to IT and Software Measurement IFPUG CRC Press. Cockburn, A.; Highsmith, J., 2001; “Agile Software Development: The Business of Innovation” Journal Computer archive Volume 34 Issue 9, September 2001 Page 120-122. Cong D. N.; Cao D. T., 2013; A Review of Effort Estimation Studies in Agile, Iterative and Incremental Software Development. 2013 IEEE RIVF Intl. Conf. on Computing & Communication Technologies Research, Innovation, and Vision for the Future (RIVF). Easterbrook, S., Singer, J., Storey, M. A., & Damian, D. (2008). Selecting empirical methods for software engineering research. In Guide to advanced empirical software engineering (pp. 285-311). Springer London. Fuqua, A. M., 2003; “Using Function Points in XP-Considerations”. In: Extreme Programming and Agile Processes in Software Engineering, LNCS vol. 2675/2003, pp. 1013. IFPUG, 2010: Function Point Counting Practices Manual, v4.3.1. Disponível em http://www.ifpug.org ISO 20926, 2009: Disponível em http://www.iso.org/iso/iso_catalogue/catalogue_tc/ catalogue_detail .htm?csnumber=35582. Juristo N., Moreno A. M.: 2010; Basics of software engineering experimentation. Kluwer Academic Publishers. Kitchenham, B.; Charters, S. 2007; Guidelines for performing systematic literature reviews in software engineering, Technical Report EBSE-2007-01, School of Computer Science and Mathematics, Keele University. Leffingwell D., Behrens P. 2009; A User Story Primer, Leffingwell, LLC. Lei 8666, 1993: Disponível em http://www.planalto.gov.br/ccivil_03/leis/l8666cons.htm. Marconi, M. A.; Lakatos, E. M., 2008; Metodologia Científica. 6a. ed. São Paulo: Atlas. Mens, T.; Demeyer, S., 2001; Future Trends in Software Evolution Metrics. IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution, pp. 83-86. Santana, C. A. ; Leoneo, F. S. ; Gusmão, C. M. G. ; Vasconcelos, A. M. L. , 2011; Using Function Points in Agile Projects. 12 Int. Conf. Agile Processes and eXtreme Programming in Software Engineering. Sommerville, I., 2011; Engenharia de Software. Editora Addison-Wesley. 70 XII Workshop de Teses e Dissertações em Qualidade de Software Um Mapeamento para Apoio ao Processo de Gerência de Portfólio de Projetos no Contexto do MR-MPS-SW adotando Práticas Ágeis Gleise Pinheiro Baldez¹, Sandro Ronaldo Bezerra Oliveira¹ 1 Programa de Pós-Graduação em Ciência da Computação (PPGCC) – Universidade Federal do Pará (UFPA) - Rua Augusto Corrêa, 01 – Guamá – Belém - PA - Brasil [email protected], [email protected] Abstract. This paper presents a work that aims to provide a mapping that can be adopted by institutions that seek to implement the Project Portfolio Management process adhering to the MPS.BR quality model and do it using the flexibility proposed by practices included in agile methods. With this we intend to contribute to decrease the time for decision making in the process and to create an environment which changes can be more easily circumvented. Resumo. Este artigo apresenta um trabalho que tem como objetivo fornecer um mapeamento que possa ser adotado por instituições que busquem implementar o processo de Gerência de Portfólio de Projetos aderente ao modelo de qualidade MPS.Br e que o faça utilizando a flexibilidade proposta por práticas contidas nos métodos ágeis. Com isso, pretende-se contribuir com a diminuição do tempo para tomada de decisão no processo e ainda criar um ambiente cuja as mudanças possam ser contornadas mais facilmente. 1. Caracterização do Problema A relevância da área da Tecnologia da Informação (T.I) nas organizações vem crescendo a cada ano que passa, devido ao aumento dos investimentos e a sua importância para a realização das atividades dentro das empresas. Dessa forma, os gestores têm sido pressionados a levarem em consideração os riscos e retornos das suas decisões (KIM e SANDERS, 2002). A consequência de decisões incorretas pode ser observada em: sistemas não concluídos ou abandonados; sistemas que não trouxeram o retorno esperado; sistemas concluídos em desconformidade com o que foram solicitados pelo cliente; sistemas que excederam o tempo que foi planejado; dentre outros fatores. Esses projetos drenam recursos escassos que poderiam ser direcionados a projetos capazes de trazer mais benefícios para as organizações (YELIN, 2007). Dentro deste contexto e segundo a definição do PMI(2006), a Gerência de Portfólio - GPP ajuda na tomada de decisões quanto: a identificação; priorização; autorização; gerência e controle de projetos, programas e outros trabalhos relacionados; para atingir objetivos específicos da estratégia de negócio. Consequentemente, a GPP deve ajudar a organização no alcance dos seus principais objetivos, mesmo que ocorram mudanças nos requerimentos mais importantes dos projetos alocados neste portfólio. Ratificando a importância da GPP para a tomada de decisão, observa-se a recente incorporação deste processo na norma ISO/IEC 12207:2008 (ABNT, 2009) e em seguida ao MPS.BR (Programa de Melhoria do Processo de Software Brasileiro) (SOFTEX, 2012), ambos voltados especificamente ao ciclo de vida de software. Segundo Cooper et al. (2001) e Henriksen e Traylor (1999), a seleção de projetos para a formação de portfólios não é uma área de conhecimento recente e vem 71 WTDQS 2014 sendo estudada há décadas por diversas outras áreas, tais como: a indústria de novos produtos, a farmacêutica e a de exploração de petróleo. No entanto, na área de desenvolvimento de software estes estudos não são muito aprofundados e não existem em abundância (BIFFL et al., 2006). Mesmo com a adoção de modelos, onde o processo de GPP está presente, as empresas estão incluídas em ambientes de negócios dinâmicos, o que gera incertezas e grandes desafios para lhe dar com mudanças constantes. Nesse contexto, o modelo tradicional de gestão de projetos tem sido questionado quanto a sua eficácia, e novas competências vem sendo desenvolvidas (CONFORTO e AMARAL, 2007). Desta forma, o gerente de portfólio de projetos precisa de mecanismos aliados a processos que justifiquem a tomada de decisão no momento de selecionar os projetos que estejam de acordo com os objetivos estratégicos da organização e ainda realizar isso com a agilidade que se espera no contexto onde mudanças estão muito presentes. 2. Fundamentação Teórica Para Humphrey (1989) um processo de software é definido como o conjunto de tarefas de Engenharia de Software necessárias para converter requisitos dos usuários em software. O mesmo autor define a busca pela qualidade de duas formas: a qualidade do processo, a partir da obtenção da melhoria no processo, impactando diretamente na qualidade do produto; e a qualidade do produto, baseada na identificação das características dos produtos a serem desenvolvidos. Voltados à qualidade do processo, observa-se que modelos e normas têm sido definidas e adotadas por empresas de software. Podem-se citar as seguintes: no cenário internacional, o modelo CMMI (Capability Maturity Model Integration) (SEI, 2010) e a Norma ISO/IEC 12207 (ABNT, 2009); e no cenário nacional, desde 2003, o Programa de Melhoria do Processo de Software Brasileiro (MPS.BR) (SOFTEX, 2012) é um grande incentivador à competitividade das empresas brasileiras, definindo um modelo de referência, o MR-MPS-SW (Modelo de Referência do MPS.BR para Software), que é compatível ao CMMI e a ISO/IEC 12207. No MR-MPS-SW, o processo de Gerência de Portfólio de Projetos - GPP é descrito com o seguinte propósito: “iniciar e manter projetos que sejam necessários, suficientes e sustentáveis, de forma a atender os objetivos estratégicos da organização. Este processo compromete o investimento e os recursos organizacionais adequados e estabelece a autoridade necessária para executar os projetos selecionados. Ele executa a qualificação contínua de projetos para confirmar que eles justificam a continuidade dos investimentos, ou podem ser redirecionados para justificar” (SOFTEX, 2012). Souza (2013) definiu um framework de processos para GPP com base em padrões de qualidade para que empresas pudessem ter ao menos um modelo básico a ser configurado e, em alguns casos, adaptados à realidade da instituição e assim conseguir realizar as práticas de GPP aderentes a padrões de qualidade. Para validar este framework, o mesmo foi inserido no contexto de uma fábrica de software identificando assim: pontos fortes, pontos fracos e oportunidades de melhoria. Sendo que anteriormente a isto, para que pudesse servir como base de conhecimento para a sua construção foi realizado um mapeamento, onde o autor optou por analisar a compatibilidade e a complementaridade entre modelos, normas e padrões estabelecidos que disseminassem boas práticas para GPP. Como forma de avaliação 72 XII Workshop de Teses e Dissertações em Qualidade de Software quanto à conformidade do mapeamento, foi realizada uma avaliação por especialista. Desta forma, o mapeamento serviu de insumo para o framework com o objetivo de analisar a sua aplicabilidade. Mesmo com este processo bem definido e com a adoção de padrões de qualidade, empresas, principalmente as de pequeno porte, buscam mais flexibilidade no desenvolvimento de seus produtos e respostas rápidas a questões de processo e organizacionais. No século passado nasceram vários métodos de desenvolvimento que se apoiavam nas idéias de produção da Toyota. Em uma tentativa de encontrar formas comuns, dezessete destes criadores reuniram-se em fevereiro de 2001 em Utah para o surgimento do manifesto ágil. Embora o manifesto descreva as idéias mais básicas, há entre os autores mais acordos que expostos no documento com foco na qualidade. Desde seu surgimento, os métodos ágeis têm despertado interesse na comunidade de desenvolvimento de software por representarem uma alternativa aos modelos e processos mais tradicionais de Engenharia de Software. Neste sentido, o desenvolvimento ágil é uma tendência devido ao ritmo acelerado de mudanças que as empresas lidam diariamente, além da questão de constantes pressões por inovação, concorrência acirrada e grande dinamismo no ambiente de negócios (BOEHM, 2006). Trabalhos recentes discutem as potencialidades do relacionamento entre métodos ágeis e modelos de maturidade sob diferentes perspectivas. De tal forma que haja um equilíbrio para utilização de métodos ágeis e modelos de maturidade. Dentre os relatos de experiências enocntrados na literatura podem-se citar: Catunda et al. (2010) relatam o processo de implementação do nível F do MR-MPS com práticas do método ágil Scrum, onde os autores relatam que a empresa já adotava algumas práticas do Scrum e que tinha o interesse de melhorar a qualidade dos seus processos; e Silva et al. (2011) apresentam a definição de um processo padrão resultante da combinação de elementos do Processo Unificado, do Scrum e do XP – eXtreme Programming para alcançar o nível F do MR-MPS. 3. Metodologia e Estado Atual do Trabalho Antes de formalizar a metodologia de pesquisa, iniciou-se este trabalho com um aprofundamento dos estudos relacionados aos seguintes tópicos: Gerência de Portfólio de Projeto em seu contexto geral e específico como um processo dentro do MPS-BR (SOFTEX 2012), a fim de conhecer a área de pesquisa, para que fosse possível identificar o que a literatura expõe sobre este assunto; os conceitos e as práticas adotadas pela metodologia ágil por empresas, a fim de identificar os métodos que poderiam melhor relacionar-se dentro do contexto de atividades de um processo. Este processo é o definido previamente no trabalho de Souza (2013). Do ponto de vista da natureza desta pesquisa, pretende-se realizar uma pesquisa aplicada, buscando oferecer suporte ao processo de GPP segundo uma visão flexível e com um modelo estabelecido e validado com qualidade. Este trabalho tem como proposta auxiliar as empresas que implementam ou pretendem implementar o processo de GPP a fazerem conforme os resultados esperados do MR-MPS-SW, porém com as características de flexibilidade que as empresas procuram. Em posse das informações iniciais estudadas e descritas acima. A metodologia adotada seguirá os seguintes passos: 73 WTDQS 2014 Verificação das atividades definidas por Souza (2013), para verificar como a empresa participante da pesquisa executa as atividades de GPP; • Análise do questionário, para que os resultados gerados possam integrar no mapeamento, já que a forma como a empresa realiza o processo GPP servirá como base para o entendimento do problema a ser resolvido; • Estudo de práticas ágeis que possam ser mapeadas e aderentes às práticas do processo de GPP; • Realização de um Survey em empresas avaliadas no nível F e superior, que tenham como processo de desenvolvimento de software práticas ágeis, buscando avaliar a forma de implementação da GPP nestas empresas e as dificuldades encontradas pelas mesmas; • Elaboração do mapeamento; • Avaliação do Mapeamento por um especialista da área; • Realização de um estudo de caso, para aplicar os resultados gerados na pesquisa e observar as proposições. 4. Trabalhos Relacionados Foram considerados trabalhos que estão associados ou próximos ao contexto que se procura investigar, que são: (i) definição de frameworks, Processos e Metodologias para o processo de GPP; (ii) aplicação de metodologias ágeis em empresas que possuem a certificação em algum nível de maturidade do MR-MPS-SW. No contexto de trabalhos relacionados ao tópico (i), Correia (2005) traz como proposta um modelo para gestão de portfólio denominado de “Portfolius”, onde o mesmo busca definir um modelo de gestão de portfólio, levando em consideração riscos e decisões estratégicas para que estes fatores pudessem auxiliar na gestão de portfólio de múltiplos projetos. O ponto negativo identificado desta pesquisa foi a falta de formalismo na definição do processo que foram empregados nos módulos do modelo. A monografia de Medeiros e Simões (2006) analisou a aderência entre a ferramenta Rational Portfolio Manager (RPM) e o modelo Portfolius (CORREIA, 2005), onde o foco foi observar o quanto a ferramenta RPM fornece suporte ao que foi definido no modelo, sendo enfatizado os níveis mais altos do modelo (Planejamento Estratégico, Seleção e Priorização de Projetos e Revisão). A flexibilidade da ferramenta investigada mostrou que ela pode atender a outros processos de gestão em si, porém o trabalho ressalta que a maior dificuldade é definir critérios claros, efetivos e consistentes para gestão de portfólio. Souza et al. (2009) propõem um processo para apoiar a gerência estratégica de portfólio. Este trabalho busca identificar regras de governança do portfólio, identificação e categorização dos projetos, seleção, priorização e balanceamento do portfólio, manutenção do pipeline (projetos em execução) e encerramento dos projetos. Este trabalho orientou-se com base nas melhores práticas de projetos, programa e portfólio. Possui, ainda, aderência ao processo de GPP da norma ISO/IEC 12207:2008. O ponto negativo é que este trabalho é anterior à adição no MR-MPS-SW do GPP. Posterior a este trabalho, Souza (2013) propõe um framework de processos para apoiar o processo de GPP, abrangendo as atividades que não foram apontadas por Costa (2010). Assim, este trabalho possui conformidade com as orientações fornecidas pelo Guia de Implementação do MPS.BR, pela Norma ISO/IEC 12207 e pelo Padrão para Gerência de Portfólio do PMI. O trabalho de Souza é extremamente relevante para • 74 XII Workshop de Teses e Dissertações em Qualidade de Software pesquisa, pois nele foi feito o mapeamento completo das atividades que devem ser realizadas para obter conformidade ao processo de GPP com sucesso e aderente às melhores práticas, porém o autor não instrui o “como fazer”, ou seja, executar tais atividades. No que diz respeito aos trabalhos relacionados ao tópico (ii), Catunda et al. (2011) relata uma experiência de implantação do Nível F do MR-MPS-SW. Neste trabalho, os autores relatam os desafios que foram encontrados em cada um dos processos que devem ser implementados neste nível, sendo que no processo de GPP o maior desafio foi elaborar critérios e a pontuação necessária para priorização de projetos. Vale ressaltar, que mesmo o trabalho tendo grande relevância dentro do contexto desta pesquisa, o mesmo não apresentou claramente como foram realizadas as tarefas para atender os resultados esperados do processo. O livro de Rubinstein et al. (2013) relata a história de Tahini – Tahini, uma empresa fictícia que busca inter-relacionar métodos ágeis com resultados esperados do MR-MPS. O livro mostra claramente como é o contexto da empresa durante a evolução dos níveis e como as discursões levam à implantação dos resultados esperados. Porém, mas uma vez, não fica claro como são realizadas as atividades que suprem o atendimento dos resultados esperados do processo de GPP. O trabalho de Souza et al. (2010), mostra como resultado um estudo empírico sobre a utilização de metodologias ágeis no desenvolvimento de software, sendo de fundamental importância para entender como utilizar as práticas ágeis, porém não é aderente a nenhum modelo de qualidade. 5. Resultados Esperados O objetivo geral deste trabalho é definir como MPEs – Micro e Pequenas Empresas, podem utilizar um framework de processo, definido para gerência seu portfólio de projetos em conformidade ao modelo de referência do MPS.BR (MR-MPS-SW) utilizando práticas constantes em métodos ágeis. Para que este objetivo seja alcançado, os seguintes resultados foram estabelecidos como metas: Mapear as atividades do framework que será utilizado, quanto aos resultados esperados constantes no processo de GPP do Nível F do MR-MPS-SW; • Identificar práticas definidas nos métodos ágeis que sejam capazes de atender aos resultados esperados do processo de GPP; • Verificar a aplicabilidade das atividades mapeadas do framework e as práticas referentes aos métodos ágeis; • Conduzir a aplicação do processo definido de gerência de portfólio de projetos aderente a práticas de metodologias ágeis em uma organização de software paraense, para observar sua aplicabilidade. 6. Agradecimentos Este trabalho é parte do Projeto SPIDER – Software Process Improvement: DEvelopment and Research, da UFPA. Referências ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (2009) “NBR ISO/IEC 12207:2009 – Engenharia de Sistemas de Software – Processos de Ciclo de Vida de Software”. Rio de Janeiro. • 75 WTDQS 2014 Biffl, S., Boehm, B., Aurum, A., Grümbacher, P. (2006) “Value-Based Software Engineering”. Springer-Verlag, Germany. Boehm, B. (2006) “A View of 20th and 21st Century Software Engineering”. In Proceedings of the ICSE. Catunda, E., Nascimento, C., Cerdeiral, C., Santos, G., Rocha, A. R. (2010) “Implementando o Nível F do MR-MPS com Práticas da Metodologia Ágil Scrum”. In: VI Workshop Anual do MPS. Conforto, E, Amaral, D. (2007) “Escritório de projetos e gerenciamento ágil: Um novo enfoque para a estrutura de apoio à gestão de projeto ágeis”. Anais do Encontro Nacional de Engenharia de Produção - ENEGEP. Correia, B. C. S. (2005) “Portfolius: Um Modelo de Gestão de Portfólio de Projetos de Software”. Dissertação de Mestrado apresentada à Pós-Graduação em Ciência da Computação da Universidade Federal de Pernambuco – CIN/UFPE. Recife, PE. Costa, C. S. (2010) “Uma abordagem baseada em evidências para o gerenciamento de projetos no desenvolvimento distribuído de software”. Dissertação de Mestrado – Programa de Pós-Graduação em Ciência da Computação - Universidade Federal de Pernambuco, Recife. Cooper, R. G., Edgett, S. J., Kleinschmidt, E. J. (2001) “Portfolio management for new products, Cambridge, Mass.: Perseus. Henriksen, A. D., Traylor, A. J. (1999) “A Practical R&D Project-Selection Scoring Tool”. IEEE Transaction on Engineering Management. New York, v.43, n.42, May. Humphrey, W. S. (1989) “Managing the Software Process”. The SEI Series in Software Engineering. Addison-Wesley. Kim, Y. J., Sanders, G. L. (2002) “Strategic actions in formation technology investment based on real option theory”. Decision Support Systems, v. 33, nº 1, p. 1-11. Medeiros, A., Simões, R. (2006) “Investigando o Modelo de Gestão Portfolius no Rational Portfolio Manager®”. Trabalho de Conclusão para o Programa de Residência Quality-Pitang. Rubinstien, V. L., Boria, J. L., Rubinstein, A. (2013) “A História da Tahini-Tahini: Melhoria de Processos de Software com Métodos Ágeis e Modelo MPS”. PBQP-SW. SEPIN-MCTI. SEI – Software Engineering Institute (2010) “Capability Maturity Model Integration for Development – CMMI-Dev”. Versão 1.3. Carnegie Mellon. SOFTEX - Associação para Promoção da Excelência do Software Brasileiro (2012) "Melhoria do Processo de Software Brasileiro (MPS.BR) - Guia Geral 2012". Brasil. Souza, A. D., Rocha, A. R. C., Santos, G., Carmo, T. V. P., Alexandre, D. B. (2009) “Uma Abordagem para Gerência Estratégica de Portfólio com Foco na Seleção de Projetos”. VIII Simpósio Brasileiro de Qualidade de Software – SBQS 2009, Ouro Preto, MG. Souza, C. R. B., Treccani P. J. F. (2010) “Utilização de Metodologias Ágeis no Desenvolvimento de Software: Resultados de um Estudo Empírico”. In Proceedings of 7th Experimental Software Engineering Latin American Workshop. Souza, M. R. A. (2013) “Um framework de processo para gerência de portfólio de projetos de software com base em Padrões de qualidade”. Dissertação de Mestrado apresentada ao Programa de Pós graduação em Ciência da Computação - UFPA. 76 XII Workshop de Teses e Dissertações em Qualidade de Software Estratégia de Apoio à Seleção de Técnicas para Elicitação de Requisitos Renata Magalhães Rêgo, Arilo Cláudio Dias Neto Instituto de Computação (IComp) – Universidade Federal do Amazonas (UFAM) Av. General Rodrigo Octávio, 6.200, Campus Universitário Senador Arthur Virgílio Filho – Setor Norte - Manaus - CEP 69.077-000 – Manaus – AM – Brasil {renata.rego, arilo}@icomp.ufam.edu.br Abstract. The requirements elicitation deals of project´s conception and allows that specific necessity of customer be examined with the purpose of design a solution. One of found difficulties is the definition of the appropriate technique to perform the requirements elicitation, since the projects have their peculiarities as well as development teams and involved stakeholders. This work purposes to develop a strategy that assists the software engineer in the selection (s) technique (s) most appropriate (s) for each project, considering the particularities of each project and the involved team profile. To implement this strategy this problem will be modeled as a optimization combinatory problem. Thus algorithms will be implemented using meta-heuristics. Resumo. A Elicitação de Requisitos trata da concepção do projeto e permite que necessidades específicas do cliente sejam examinadas com o propósito de projetar uma solução. Uma das dificuldades encontradas é a definição da técnica adequada para realizar a elicitação de requisitos, visto que os projetos têm suas particularidades, bem como as equipes de desenvolvimento e os stakeholders envolvidos. Neste trabalho propõe-se desenvolver uma estratégia que auxilie o Engenheiro de Software na seleção da(s) técnica(s) mais apropriada(s) para cada projeto, considerando as particularidades de cada projeto e o perfil do time envolvido. Para implementar essa estratégia, este problema será modelado como um problema de otimização combinatória. Desta forma, algoritmos serão implementados utilizando meta-heurísticas. 1. Introdução e Caracterização do Problema A Engenharia de Requisitos é uma fase comum em processos de desenvolvimento de software, pois se trata da concepção do projeto e permite que seja examinado o contexto no qual um determinado negócio está inserido, as necessidades específicas do cliente, as prioridades entre as atividades, as informações, funções e comportamentos que terão um impacto profundo no projeto resultante (Pressman, 2011). Estudos realizados por Boulila et al. (2011) indicam que problemas identificados em fases posteriores à de Elicitação de Requisitos do projeto têm solução mais cara que os problemas identificados durante essa fase, e que 40% das causas de falhas em projetos de softwares estão relacionadas ao fato de que as funcionalidades entregues não atendem às necessidades do cliente. Carrizo et al. (2014) afirmam que geralmente os engenheiros de software tendem a selecionar técnicas com as quais estão familiarizados, ou uma técnica muito conhecida, ou uma técnica que já funcionou em outros projetos. No entanto, essa forma de seleção subjetiva pode trazer resultados negativos a elicitação, impactando na qualidade do produto final. 77 WTDQS 2014 Para Barbosa et al. (2009) e Kausar et al. (2010), tanto projetos quanto times de desenvolvimento e stakeholders possuem características peculiares, formando assim perfis que deveriam ser considerados durante o processo de escolha das técnicas para coleta dos requisitos. Diversos problemas de Engenharia de Software possuem natureza complexa e que não podem ser tratados por técnicas convencionais, pois envolvem a seleção de uma solução dentro de um conjunto muito grande de possíveis soluções (Freitas et al., 2009). Tais problemas requerem soluções automatizadas que tratem seus diversos aspectos de forma eficiente (Harman et al., 2010). Algoritmos com estratégias avançadas de busca, especialmente metaheurísticas, podem ser utilizados para resolver tais problemas. A aplicação de metaheurísticas em problemas da Engenharia de Software se intensificou nos últimos anos, dando origem a uma nova e promissora área, conhecida como Engenharia de Software Baseada em Busca (do inglês, Search-Based Software Engineering – SBSE). Segundo Colanzi et al., (2013), SBSE é o campo de pesquisa e prática de Engenharia de Software que aplica técnicas baseadas em busca para resolver diferentes problemas de otimização em diversas áreas de Engenharia de Software. Para Harman et al. (2010), as abordagens de SBSE oferecem um conjunto de soluções adaptativas automáticas e semiautomáticas para situações em que o problema envolve múltiplos objetivos concorrentes e conflitantes. Essas abordagens permitem obter automaticamente soluções para tarefas complexas e contribuem para redução de esforço/custo associado ao desenvolvimento de software (Colanzi et al., 2013). Este artigo apresenta o andamento de uma dissertação de mestrado sendo desenvolvida no Programa de Pós-Graduação em Informática da Universidade Federal do Amazonas. Nesta pesquisa, pretende-se construir e avaliar uma abordagem semiautomatizada para seleção de técnica(s) de elicitação de requisitos baseadas nos perfis dos membros do time de desenvolvimento e no tipo de projeto de software a ser desenvolvido, a fim de auxiliar ao Engenheiro de Software na seleção de técnicas de elicitação de requisitos em projetos de software. 2. Fundamentação Teórica Nesta seção, serão apresentados desenvolvimento dessa pesquisa. os conceitos relevantes relacionados ao 2.1. Engenharia de Requisitos O processo de desenvolvimento de software é composto por fases que variam de acordo com o método utilizado pela equipe. Uma fase comum a todos os processos é a Engenharia de Requisitos que, para Sommerville (2011), é um estágio particularmente crítico do processo de software, pois os erros nesse estágio conduzem inevitavelmente a problemas posteriores no projeto e na implementação do sistema. Esse trabalho está focado no segundo na fase de Elicitação, que será detalhada a seguir. 2.2. Elicitação de Requisitos Elicitação de requisitos é a parte do processo onde os analistas trabalham com os clientes e usuários finais para que possam aprender sobre o domínio do sistema, quais serviços que o sistema deve oferecer, o desempenho esperado, restrições de hardware, dentre outros aspectos (Sommerville, 2011). É um conjunto de ações que ocorrem no universo de informações visando capturar as informações que subsidiarão o 78 XII Workshop de Teses e Dissertações em Qualidade de Software entendimento do problema (Dias et al., 2006). Executar essas ações não é uma tarefa trivial, e se ela não for feita de forma adequada, poderá comprometer as demais fases do processo, inviabilizando o projeto como um todo (Sadiq et al., 2009). Em (Batista e Carvalho, 2003) e (Barbosa et al., 2009) os autores afirmam que levar em consideração o perfil da equipe de projeto, no que se refere a analistas e stakeholders, pode contribuir com a seleção da técnica de elicitação mais adequada. Segundos os autores, existem fatores que se não forem levados em consideração, como por exemplo o conhecimento do analista sobre a técnica a ser aplicada, a familiaridade com o domínio do problema, a experiência com elicitação, a analise de situações, entre outros, podem interferir na aplicação da técnica e esta pode não trazer um resultado tão satisfatório quanto o esperado. Outro fator importante que deve ser visto como contribuição para uma seleção de técnicas de elicitação de requisitos apropriada são os tipos de projeto. De acordo com Kausar et al. (2010), estes tipos podem ser de várias naturezas, como por exemplo: Sistemas Críticos, Distribuídos, Interativos, Pequeno, Médio ou Grande porte. Saber a natureza do problema é um fator importante, pois viabiliza a avaliação das técnicas e a construção de fundamentos iniciais com base nos tipos de problemas. Existem algumas técnicas de Elicitação de Requisitos já conhecidas na literatura técnica, como por exemplo: Entrevistas, Questionário, Brainstorming, Etnografia, Análise de Documentos, JAD, Prototipação, Cenários, Workshops, entre outras. Cada técnica possui características específicas e contextos mais adequados para serem aplicadas. O objetivo desta pesquisa é estudar estas (e outras) técnicas de elicitação de requisitos a fim de prover uma abordagem para auxiliar o engenheiro de software a selecionar qual a mais adequada para ser aplicada ao projeto levando em conta suas características, e outras variáveis no que se refere ao perfil do time de desenvolvimento e dos stakeholders envolvidos. 2.3. Trabalhos Relacionados Existem trabalhos correlatos encontrados até o momento deste artigo que abordam a seleção das técnicas de elicitação de requisitos cujas contribuições podem ser comparadas com a desta proposta. Alguns destes trabalhos serão apresentados a seguir: [Zhang, 2007]: os autores apresentam uma comparação entre as técnicas de elicitação de requisitos para identificar fatores comuns que afetam o método de seleção. O autor categoriza os métodos de elicitação de requisitos, posteriormente são descritos os fatores de influência na seleção do método de elicitação, e a partir desses fatores e das categorias, é construída uma matriz para resumir o nível de aplicabilidade dos métodos em diferentes contextos e apresentar as estratégias para selecionar métodos adequados para a elicitação de requisitos. [Barbosa et al., 2009]: os autores apresentam um processo focado na seleção da técnica de elicitação de requisitos e a evolução do mesmo, o qual é descrito através de cinco atividades distintas: (1) identificação do contexto do projeto, (2) realização da apresentação inicial, (3) seleção da técnica de elicitação de requisitos; (4) aplicação da técnica para elicitar os requisitos e (5) elaboração da lista de requisitos. Para a atividade (3), foram escolhidas apenas cinco técnicas: Brainstorming, Entrevistas, JAD, Questionários e Prototipação Descartável. Foram elaboradas duas Matrizes de Decisão: uma referente aos stakeholders e a outra referente ao Projeto. Desta forma, a seleção da técnica mais indicada passa por duas etapas e abrange 79 WTDQS 2014 características relacionadas ao perfil dos envolvidos e do projeto em questão, avaliando as mesmas técnicas em ambos os casos para se obter o resultado final. [Kausar et al., 2010]: os autores apresentam diretrizes para a seleção de técnicas de elicitação de requisitos. Diferentes técnicas foram analisadas em função das diferentes configurações do projeto. A partir dessa análise, foram identificados os seguintes parâmetros para seleção: a) tipo de projeto; b) tipo de stakeholder; c) número de stakeholder; d) envolvimento do stakeholder; e) status do projeto; f) restrição de recursos; g) restrição de agenda; h) restrição de orçamento; i) correção funcional e j) preocupação com a qualidade. A partir dos parâmetros identificados, foi proposta uma fórmula matemática chamada Goodness Count , onde é o número de stakeholders, é o nível de interação, é a qualidade dos requisitos coletados como resultado de uma técnica particular, é a eficácia do tempo e a rentabilidade. Em cada um dos trabalhos, aborda-se estratégias que o analista possa ter mecanismos para realizar a seleção da técnica para a coleta de requisitos, no entanto nem todos levam em contas as características das pessoas envolvidas e do projeto a ser desenvolvido. Nesta proposta, pretende-se recomendar técnicas de Elicitação Requisitos baseadas no perfil do time de desenvolvimento e dos stakeholders, bem como nas características particulares dos projetos de software. 3. Metodologia e Estado Atual do Trabalho A metodologia empregada para o desenvolvimento deste trabalho de pesquisa está dividida em cinco fases, conforme apresentado na Figura 1. Todas as fases estão descritas ao longo dessa seção. Figura 1. Metodologia da Pesquisa 3.1. Fase 1: Identificar Características das Técnicas de Elicitação de Requisitos A primeira fase dessa metodologia é responsável por montar uma base de dados contendo as Técnicas de Elicitação de Requisitos com um mapeamento das características relevantes para a seleção de tais técnicas em projetos de software. A1 – Realizar estudos exploratórios sobre a linha de pesquisa e definição dos artigos de controle. A2 – Realizar mapeamento sistemático da literatura sobre as técnicas de elicitação de requisitos, dos modelos, métodos, abordagens, processos ou metodologias são utilizados para selecionar tais técnicas em projetos de desenvolvimento. A3 – Analisar o material coletado para identificar as características relevantes para a seleção da técnica de Elicitação de Requisitos. 3.2. Fase 2: Criar corpo de conhecimento sobre perfis de time de desenvolvimento, stakeholders e projetos de software 80 XII Workshop de Teses e Dissertações em Qualidade de Software A segunda fase dessa metodologia é responsável por criar um corpo de conhecimento inerente à membros dos times de desenvolvimento, dos stakeholders e dos tipos de projetos de software. A4 – Evoluir o mapeamento sistemático da literatura incluindo a identificação das características que compõem o perfil de membros do time desenvolvimento, dos stakeholders e dos projeto de software. A5 – Construir um corpo de conhecimento sobre perfis de time de desenvolvimento, stakeholders e projetos de software. 3.3. Fase 3: Definir um Modelo em Otimização Combinatória para o problema A terceira fase dessa metodologia é responsável por definir o modelo em otimização combinatória para o problema de seleção de técnicas de elicitação de requisitos utilizando as características identificadas nas fases anteriores. A6 – Identificar um problema em otimização combinatória que tenha semelhança ao de seleção de técnicas de elicitação de requisitos. Neste caso o que mais se assemelha é o problema do Menor Conjunto Dominante A7 – Modelar o problema de seleção de técnicas de elicitação de requisitos como problema de otimização combinatória. Para esta atividade deve-se utilizar o corpo de conhecimento gerado nas atividades A3 e A5. 3.4. Fase 3: Analisar, Definir e implementar metaheuristicas A quarta fase dessa metodologia é responsável por analisar, definir e implementar as metaheurísticas a serem utilizadas para o problema de seleção de técnicas de elicitação de requisitos. A8 – Analisar metaheurísticas utilizadas para resolver o problema do Menor conjunto dominante. A9 – Definir/Customizar metaheurísticas analisadas na atividade A8 para que sejam aplicadas ao problema de seleção de técnicas de elicitação de requisitos. A10 – Implementar as metaheurísticas definidas/customizadas na atividade A9. 3.5. Fase 5: Analisar os Resultados A quinta fase dessa metodologia é responsável por realizar experimentos com as metaheuríticas implementadas na fase anterior e avaliar os resultados obtidos. A11 – Realizar de experimentos nas metaheurísticas implementadas na atividade A10, onde os algoritmos devem receber alguns parâmetros como: dados do projeto, do time e dos stakeholders. Como resultado esperado, espera-se receber um conjunto de técnicas de elicitação de requisitos adequado para os parâmetros recebidos. A12 - Avaliar dos resultados obtidos confrontando-os com os modelos descritos na literatura técnica e com opiniões de Analistas experientes a fim de identificar as principais contribuições e possíveis melhorias. 5. Resultados Esperados Espera-se como resultado dessa pesquisa metaheurísticas que auxiliem na seleção de técnicas para elicitação de requisitos em projetos de software, levando em consideração as características do projeto, do time e dos stakeholders envolvidos, de forma que o 81 WTDQS 2014 Engenheiro de software tenha mais segurança na hora de realizar a seleção da técnica ou do conjunto de técnicas para serem aplicadas durante a coleta dos requisitos, contribuindo para a compreensão dos requisitos, e consequentemente na qualidade do produto final. Referências Batista, E. A.; Carvalho, A.M., "Uma Taxonomia Facetada para Técnicas de Elicitação de Requisitos". International Workshop on Requirements Engineering, Piracicaba, 2003. Barbosa, G.; Werneck, M.; Assis, H.; Fernandes, U.; Silva, I., "Um processo de Elicitação de Requisitos com foco na seleção da Técnica de Elicitação," VIII Simpósio Brasileiro de Qualidade de Software, 2009, pp. 159-173. Barbosa, G.; Werneck, M.; Assis, H.; Silva, I.; Fernandes, U., "Evoluindo um processo de Elicitação de Requisitos com foco na seleção da Técnica mais adequada de Elicitação," iSys – Revista Brasileira de Sistemas de Informação, vol 2, 2009, PPGI/INIRIO. Boulila, N.; Hoffmann, A.; Herrmann, A., "Using Storytelling to record requirements: Elements for an effective requirements elicitation approach," Multimedia and Enjoyable Requirements Engineering - Beyond Mere Descriptions and with More Fun and Games (MERE), 2011 Fourth International Workshop on , 30-30 Aug. 2011. Carrizo, D.; Dieste, O. e Juristo, N. (2014) "Systematizing requirements elicitation technique selection," Inform. Softw. Technol. Colanzi, T.E.; Vergilio, S. R.; Assunção, W. K. G. e Pozo, A. (2013). "Search Based Software Engineering: Review and analysis of the field in Brazil", Journal of Systems and Software, Volume 86, Issue 4, Pages 970-984. Dias, F.; Morgado, G.; Oscar, P.; Silveira, D.; Alencar, A.J.; Lima, P. Schmitz, E. "Uma Abordagem para a Transformação Automática do Modelo de Negócio em Modelo de Requisitos," WER06 – Workshop em Engenharia de Requisitos, Rio de Janeiro, pp.51-60, 2006. Freitas, F. G. de; Maia, C. L. B.; Coutinho, D. P. G.; Campos, A. L. de, e Souza, J. T. de. (2009) "Aplicação de Metaheurísticas em Problemas da Engenharia de Software: Revisão de literatura", II Congresso Tecnológico Infobrasil (Infobrasil 2009). Harman, M. e Mansouri, A. (2010). "Search Based Software Engineering: Introduction to the Special Issue of the IEEE Transactions on Software Engineering," Software Engineering, IEEE Transactions on , vol.36, no.6, pp.737, 741. Kausar, S.; Tariq, S.; Riaz, S.; Khanum, A., "Guidelines for the selection of elicitation techniques," Emerging Technologies (ICET), 2010 6th International Conference on, vol., no., pp.265,269, 18-19 Oct. 2010. Pressman, R.S. "Engenharia de Software: Uma abordagem Profissional" 7ª Ed. - Porto Alegre: AMGH, 2011 Sadiq, M.; Ghafir, S.; Shahid, M., "An Approach for Eliciting Software Requirements and its Prioritization Using Analytic Hierarchy Process", International Conference on Advances in Recent Technologies in Communication and Computing, 2009. ARTCom '09, vol., no., pp.790,795, 27-28 Oct. 2009. Sommerville, I. "Engenharia de Software". 9ª Ed. – São Paulo: Pearson Prentice Hall, 2011. Zhang, Z., "Effective Requirements Development - A Comparison of Requirements Elicitation techniques" SQM conference, 2007. 82