Uma Abordagem para o Ensino de Qualidade de Software Baseada em Estratégias de Capacitação de Programas de Melhoria do Processo de Software

June 9, 2017 | Autor: A. Vasconcelos | Categoria: Software Engineering
Share Embed


Descrição do Produto

Uma Abordagem para o Ensino de Qualidade de Software Baseada em Estratégias de Capacitação de Programas de Melhoria do Processo de Software Carlos S. Portela1,3, Alexandre M. L. Vasconcelos1, Sandro R. B. Oliveira1,2 1

2

3

Centro de Informática (CIn) – Universidade Federal de Pernambuco (UFPE) Caixa Postal 7851 – 50.740-560 – Recife – PE – Brasil

Programa de Pós-graduação em Ciência da Computação (PPGCC) – Instituto de Ciências Exatas e Naturais (ICEN) – Universidade Federal do Pará (UFPA) Belém – PA – Brasil

Área de Ciências Exatas e Tecnologia – Centro Universitário do Pará (CESUPA) Belém – PA – Brasil {csp3, amlv}@cin.ufpe.br, [email protected]

Abstract. Much of time and financial resources consumed in a Software Process Improvement (SPI) Program is invested in team training. That is why many professionals, mostly trained in undergraduate courses, do not have the adequate knowledge in specific process areas. Thus, courses, workshops, mentoring or coaching are conducted for technical transfer of specific practices included on the process areas in order to level the team knowledge. The origin of this problem may be in the approach adopted for teaching Software Quality in undergraduate courses. To solve this problem, this PhD research aims to analyze the recommendations of curriculum guidelines of ACM/IEEE and Brazilian Society of Computing (SBC) for Software Engineering discipline and its applicability in undergraduate. Furthermore, we propose a teaching approach that aims to address the topics of these curriculum guidelines through training strategies widely adopted in SPI programs. Resumo. Grande parte do tempo e dos recursos financeiros consumidos em um Programa de Melhoria do Processo de Software (MPS) é investido na capacitação da equipe. Isso ocorre porque muitos profissionais, em sua maioria formados em cursos de computação, não possuem conhecimento adequado em determinadas áreas de processo. Desta forma, realizam-se cursos, workshops, mentoring ou coaching para repasse técnico das práticas específicas que compreendem as áreas de processo a fim de nivelar o conhecimento desta equipe. A raiz do problema pode estar na abordagem adotada para o ensino da Qualidade de Software em cursos de computação. A fim de tratar este problema, esta pesquisa de doutorado objetiva analisar as recomendações dos currículos de referências da ACM/IEEE e SBC para a disciplina de Engenharia de Software e sua aplicabilidade na graduação. Além disso, propõe-se uma abordagem de ensino que visa atender os tópicos destes currículos de referências através de estratégias de capacitação amplamente adotadas em Programas de MPS.

1. Caracterização do Problema A Engenharia de Software (ES) constitui-se como uma das disciplinas de maior relevância nos cursos da área de Computação [ACM/IEEE, 2013]. Isto decorre tanto da importância do software em si quanto dos desafios relacionados com a formação completa de um profissional que irá atuar no mercado, resultando em uma demanda crescente por profissionais bem qualificados [Duley et al., 2003]. Tipicamente, estes profissionais de software são formados em cursos de graduação como modo de preparação para atuar na indústria [Nunes, Reis e Reis, 2010]. No entanto, a indústria de software, mais especificamente o mercado brasileiro, apresenta escassez de profissionais devidamente qualificados para atuarem em profissões que envolvem as etapas do processo de desenvolvimento de software, compreendidas pela ES [ABES, 2014]. A indústria queixa-se de que os cursos de graduação não ensinam as competências necessárias aos alunos para que eles possam começar a executar o seu trabalho com eficiência [Wangenheim e Silva, 2009]. Desta forma, as empresas de software têm que complementar os conhecimentos dos recémformados com treinamentos e prover habilidades relacionadas ao processo de desenvolvimento de software [Bessa, Cunha e Furtado, 2012]. De acordo com Lethbridge et al. (2007), esta carência na formação de profissionais graduados na área de ES pode ser resultado de uma educação inadequada. Desta forma, esta pesquisa de doutorado analisará as recomendações para o ensino de ES constantes nos currículos de referências dos cursos de computação, mais especificamente no que diz respeito à área de Qualidade de Software (QS). Esta análise objetiva obter dados qualitativos do ensino/aprendizagem de QS a partir das abordagens de ensino aplicadas em disciplinas de ES. Os resultados desta análise serão utilizados na definição de uma nova abordagem de ensino que visa desenvolver competências e habilidades profissionais na área de QS. Esta abordagem baseia-se na adequação, para o contexto acadêmico, de estratégias de capacitação amplamente adotadas em programas de Melhoria do Processo de Software (MPS). Além desta seção introdutória, a Seção 2 apresenta a fundamentação teórica da pesquisa. A metodologia da pesquisa é descrita na Seção 3, que também apresenta o estado atual deste trabalho. Na Seção 4 os trabalhos relacionados são discutidos. Por fim, os resultados esperados e a avaliação deste trabalho são descritos na Seção 5.

2. Fundamentação Teórica De acordo com a ACM/IEEE (2013), a ES é uma disciplina preocupada com a aplicação da teoria, do conhecimento e da prática para o desenvolvimento efetivo e eficiente de sistemas de software que satisfaçam os requisitos dos usuários. Para satisfazer as necessidades dos usuários, os profissionais de ES devem ter a capacidade de entender o desenvolvimento de software como um processo e assegurar prazos, custos e a qualidade do produto a ser desenvolvido. A QS constitui uma área cuja demanda está crescendo significativamente, pois os usuários exigem cada vez mais eficiência, eficácia, dentre outras características de qualidade importantes para um produto tão especial como o software [ABES, 2014]. A fim de garantir produtos de alta qualidade e um competitivo grau de produtividade,

diversas empresas de software no Brasil têm adotado modelos de qualidade como o CMMI-DEV [SEI, 2010] e MR-MPS-SW [SOFTEX, 2012]. A maioria destas empresas realiza esta adoção através de programas de MPS implantados por empresas de consultoria. Durante estas consultorias, observou-se que se gasta grande parte do tempo e recursos financeiros em treinamento da equipe. Isso ocorre porque muitos profissionais envolvidos em programas de MPS não possuem conhecimento adequado em determinados tópicos de QS [Leal et al., 2012]. Sendo assim, os consultores de MPS adotam diversas estratégias de capacitação como cursos, workshops, mentoring ou coaching para repasse técnico das práticas específicas que compreendem áreas de processo (como por exemplo, Gerência de Configuração), a fim de desenvolver as competências e as habilidades necessárias para a equipe. O termo competência define a combinação de conhecimento, habilidades e atributos pessoais que são adquiridos por meio de educação, treinamento e experiência [SOFTEX, 2014]. Já o termo habilidade corresponde a capacidade do indivíduo de realizar algo, como trabalhar em grupo, saber comunicar-se e expressar-se [SBC, 2005].

3. Metodologia e Estado Atual do Trabalho O principal objetivo desta pesquisa de doutorado é propor uma abordagem para apoiar o ensino/aprendizagem de tópicos de QS em disciplinas de ES baseada na adequação de práticas de capacitação de programas de MPS. A seguir, as hipóteses, as questões de pesquisa, os métodos adotados e o estado atual deste trabalho são apresentados. 3.1. Hipóteses e Questões de Pesquisa A partir da problemática exposta na Seção 1 e baseada na fundamentação teórica apresentada na Seção 2, é possível realizar algumas observações: I.

A maioria dos profissionais da área de software são formados em cursos de graduação em computação [Nunes, Reis e Reis, 2010];

II.

A indústria apresenta insatisfação quanto ao nível de preparação dos universitários recém-formados que entram no mercado de trabalho [Lethbridge et al., 2007];

III.

Bacharéis de cursos de computação que trabalham como profissionais da área de software aprendem mais sobre tópicos de QS após a graduação [Wangenheim e Silva, 2009];

IV.

Existem diversas dificuldades no ensino de ES durante a graduação: (i) muito conteúdo sendo ministrado em pouco tempo; (ii) baixa motivação que os alunos possuem para estudar os conceitos teóricos de ES; (iii) dificuldades em preparar os estudantes para a prática profissional dentro de ambientes acadêmicos [Braga, 2009].

Diante destas observações, esta pesquisa de doutorado tentará analisar a seguinte Hipótese (H0): H0. As abordagens de ensino atuais adotadas nas disciplinas de Engenharia de Software preparam os alunos adequadamente para atuar na área de Qualidade Software.

Caso H0 seja refutada, pretende-se investigar uma hipótese alternativa definida a partir da constatação de que as necessidades de formação profissional de cursos de graduação e da indústria de software são semelhantes bem como as dificuldades encontradas nesse processo de formação (excesso de conteúdo, pouco tempo, etc.). Sendo assim, esta tese tentará analisar a seguinte Hipótese Alternativa (H1): H1. Se a disciplina de Engenharia de Software adotar abordagens de capacitação de Programas de Melhoria do Processo então a preparação dos alunos na área de Qualidade de Software será mais adequada do que as abordagens de ensino atuais.

A fim de atender os objetivos desta pesquisa de doutorado e analisar as hipóteses H0 e H1, as seguintes Questões de Pesquisa (QP) foram definidas: QP1. Quais tópicos de Qualidade de Software são abordados no ensino de Engenharia de Software? QP2. A aprendizagem dos alunos na disciplina de Engenharia de Software está relacionada com a quantidade de tópicos abordados? QP3. Os alunos aprendem de maneira mais adequada se contextualizarmos a aplicação dos tópicos de Qualidade de Software com os papéis que irão desempenhar em um processo de desenvolvimento?

3.2. Métodos de Pesquisa A. Identificando os tópicos de QS contempladas nos cursos de graduação Para responder a QP1, realizou-se uma revisão bibliográfica nos currículos de referência da ACM/IEEE (2013) e da Sociedade Brasileira da Computação – SBC (2005) objetivando identificar quais tópicos de QS são contempladas nestes currículos. A fim de atender este objetivo, realizou-se um mapeamento entre estes tópicos dos currículos de referência e as práticas específicas das áreas de processo dos modelos CMMI-DEV [SEI, 2010] e MR-MPS-SW [SOFTEX, 2012]. Atualmente, está sendo realizando um survey (S-I) com professores que ministram disciplinas de ES a fim de identificar quais tópicos e abordagens de ensino estão sendo adotados. Os resultados deste survey podem apoiar a análise da hipótese H0, caso seja constatado que determinados tópicos de QS não estão sendo abordados por estes professores. B. Analisando a efetividade das abordagens de ensino atuais A fim de responder a QP2, está sendo realizado um survey (S-II) com alunos que já tenham concluído a disciplina de ES. O objetivo deste survey é analisar a aprendizagem dos alunos e quais abordagens de ensino estes consideram mais efetivas. Os resultados do S-II podem apoiar a análise de H0, dando-nos evidências de que determinados tópicos de QS podem não estar sendo efetivamente aprendidos. Além disto, poder-se-á correlacionar as respostas do S-I com as respostas do S-II a fim de analisar se as abordagens adotadas pelos professores são consideradas efetivas pelos alunos. Tanto o S-I quanto o S-II estão sendo aplicados em cursos de graduação em computação de universidades públicas e privadas do Brasil e seguem os guidelines de

Kitchenham e Pfleeger (2008). Estes surveys estão sendo divulgados em lista de e-mails, grupos da área de ES em redes sociais e in loco em universidades públicas e privadas de Belém-PA e de Recife-PE. O survey encontra-se disponível em http://goo.gl/vn5jHS. Já o protocolo do survey encontra-se disponível em http://goo.gl/gqzMrP. C. Definindo uma abordagem de ensino baseada em estratégias de capacitação Após a realização dos estudos exploratórios, que visam responder QP1 e QP2, serão identificados os tópicos de QS constantes nos currículos de referência, as abordagens de ensino atuais adotadas pelos professores de ES e as considerações dos alunos em relação ao aprendizado destes tópicos e a efetividades destas abordagens. Estes resultados serão considerados na definição da proposta de ensino apresentada nesta pesquisa. Por exemplo, técnicas consideradas efetivas serão incorporadas na abordagem, como o uso de técnicas imersivas a partir da definição de um cliente real da indústria. Além disso, pretende-se realizar um levantamento com especialistas da área (consultores de MPS e implementadores de modelos de qualidade) sobre as práticas de capacitação adotadas em programas de MPS. A partir da identificação e da análise destas práticas, serão discutidas as estratégias de adequação destas para o ensino de ES. Pretende-se, ainda, adotar a estratégia do modelo estagiado do CMMI-DEV, onde se definem quais áreas de processo serão foco da melhoria. Assim, alunos e professores poderão delimitar o escopo de seus esforços, reduzindo a quantidade de tópicos de ES ministrados para trabalhar o desenvolvimento de competências e habilidades em QS. Espera-se, a partir da análise dos resultados da aplicação desta abordagem de ensino, responder a QP3 e analisar a H1. Um esboço desta abordagem foi discutido entre os autores com base em sua experiência profissional, como professores de ES e consultores em MPS, e na proposta pedagógica de ensino prático de ES definida por Gary et al. (2013). Este esboço é apresentado na Figura 1.

Figura 1. Esboço da Abordagem de Ensino

Inicialmente, na fase de Preparação, os alunos deverão realizar leitura e pesquisa dos tópicos de QS. Na fase de Discussão, serão realizados seminários e debates relacionados a estes tópicos. Em seguida, na fase de Prática, os alunos aplicarão os conceitos estudados através de workshops de uso de ferramentas e da realização de dinâmicas. Na fase de Reflexão, os alunos registrarão suas expectativas e levantarão

hipóteses em relação aos tópicos de QS que irão aplicar no projeto prático. A fase de Projeto consistirá na tradicional abordagem de desenvolvimento de software por um grupo de alunos, a fim de contextualizar o aprendizado dos tópicos. Nesta fase os alunos levantarão requisitos de um cliente real e serão aplicadas as técnicas de mentoring (pelo professor da disciplina) e coaching (por alunos veteranos). Por fim, os alunos realizarão uma nova fase de Reflexão, pós-projeto, a fim de comparar os resultados obtidos com suas expectativas no pré-projeto e se suas hipóteses foram validadas ou refutadas. 3.3. Estado Atual A Tabela 1 apresenta as fases desta pesquisa de doutorado e seu estado atual. Tabela 1. Status do Projeto de Pesquisa Fase da Pesquisa Definição da Proposta de Tese de Doutorado Análise dos Currículos de Referência Definição do Protocolo dos Surveys Aplicação dos Surveys Levantamento das Práticas de Capacitação Definição da Proposta de Ensino Defesa de Qualificação de Tese Realização do Experimento Controlado Testes das Hipóteses da Tese de Doutorado Escrita da Tese de Doutorado Defesa da Tese de Doutorado

Prazo Set/2014 Nov/2014 Fev/2015 Mai/2015 Mai/2015 Jun/2015 Nov/2015 Dez/2015 Jun/2016 Dez/2016 Mar/2017

Status Concluída Concluída Concluída Em Andamento Em Andamento Em Andamento Não Iniciada Não Iniciada Não Iniciada Não Iniciada Não Iniciada

4. Trabalhos Relacionados Existem vários estudos que propõem abordagens de ensino de ES, como as de Braga (2009), Bessa, Cunha e Furtado (2012) e Gary et al. (2013). No entanto, essas abordagens não testam adequadamente a H0, pois restringem a avaliação dos resultados da aplicação de suas abordagens de ensino ao conteúdo ministrado ou ao processo e ao produto resultante da realização de uma disciplina prática de ES. Sendo assim, não se pode concluir se preparam adequadamente os alunos para atuarem na área de QS. Por exemplo, Bessa, Cunha e Furtado (2012) propõem um jogo de simulação de ambientes reais para auxiliar o aprendizado de ES. Apesar dos jogos capacitarem alunos de forma efetiva, acabam por restringirem o atendimento de determinados tópicos curriculares à medida que não conseguem explorar adequadamente a quantidade de tópicos de QS, pois se tornariam demasiadamente complexos perdendo sua principal característica de ensino/aprendizado. Já Braga (2009) propõe uma abordagem multidisciplinar que define diretrizes para aplicação dos conceitos de ES em várias disciplinas dos cursos de Ciência da Computação. No entanto, esta abordagem restringese à aplicação de tópicos curriculares, sem se preocupar com o desenvolvimento das competências e das habilidades profissionais necessárias para realizar as atividades de projetos de software de forma eficiente. Ao contrário destes trabalhos, esta abordagem irá aplicar os tópicos de QS de acordo com os papéis (gerente de projetos, desenvolvedor, analista de qualidade, etc.) que os alunos irão desenvolver no projeto prático da disciplina de ES, semelhante à estratégia de treinamentos adotada por consultores de MPS. Assim, poder-se-á focar na

capacitação profissional dos alunos, ao invés de focar somente na avaliação do processo e/ou produto gerado por estes durante a disciplina de ES. Em relação a H1, Gary et al. (2013) propõem um modelo pedagógico para o ensino de ES em cursos de graduação em computação. Essa proposta, maturada ao decorrer de 9 anos de aplicação na Arizona State University, combina aula tradicional com abordagens de aprendizagem centrada em problemas (Problem Based Learning – PBL). Assim, os alunos assistem as palestras e colocam os conceitos em prática por meio de sessões de laboratório de desenvolvimento a cada semana. Nesta abordagem, o professor realiza o papel de coaching e alunos veteranos o papel de mentoring. A abordagem proposta nesta tese baseia-se fortemente neste modelo pedagógico, agregando o uso de práticas de capacitação de programas de MPS a fim de analisar H1. Por exemplo, a especificação de papéis da área de QS (gerentes, desenvolvedores e analistas de qualidade) que tem por objetivo a definição de um conjunto de tópicos que os alunos deverão aprender (através de mentoring, coaching, dinâmicas, etc.) para desenvolver determinadas competências e habilidades profissionais para atuar na área.

5. Resultados Esperados e Validação Em resumo, esta pesquisa de doutorado é destinada a: (i) identificar tópicos de QS em currículos de referência da área de ES e analisar suas relevâncias para a indústria de software, através de um mapeamento com modelos de qualidade; (ii) identificar, por meio de surveys com professores e alunos, eventuais problemas nas abordagens atuais de ensino de ES; e (iii) fornecer uma abordagem de ensino para atender, de maneira satisfatória, a demanda de formação profissional para a área de QS durante a graduação. A fim de validar nossa proposta de abordagem de ensino, pretende-se realizar um experimento controlado em uma disciplina de ES num curso de graduação em Ciência da Computação. Este experimento seguirá os guidelines propostos por Wohlin et al. (2000), onde será configurado um cenário para aplicação da proposta de ensino. Primeiramente, será identificado o problema de um cliente real, a fim de definir os requisitos do projeto da disciplina. Em seguida, o professor irá dividir a turma em dois grupos (experimental e de controle). O grupo de controle seguirá a abordagem de ensino atual da disciplina, definindo um processo tradicional de desenvolvimento de software (baseado no RUP, SCRUM, etc). Já o grupo experimental adotará a abordagem de ensino proposta neste artigo, recebendo um treinamento específico. Assim, este grupo poderá seguir uma nova abordagem de ensino/aprendizado. O objetivo é comparar o aprendizado dos alunos dos dois grupos, através da análise de mapas conceituais (usando os tópicos de QS) elaborados por estes no início e ao final da disciplina. Finalmente, pretende-se publicar os resultados para estimular replicações deste tipo de pesquisa e, consequentemente, solucionar os gaps desta área de ensino de ES. Neste contexto, ressalta-se que o ensino adequado de ES é importante para melhorar o estado atual de desenvolvimento de software e ajudar a mitigar muitos dos problemas tradicionais associados à indústria de software.

Agradecimentos Os autores gostariam de agradecer à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pelo apoio financeiro ao desenvolvimento desta pesquisa.

Referências ABES (2014), Mercado Brasileiro de Software: Panorama e Tendências, Associação Brasileira das Empresas de Software, 1ª edição. São Paulo, Brasil. ACM/IEEE (2013) “Computer science curricula 2013 – Curriculum guidelines for undergraduate degree programs in Computer Science”, https://www.acm.org, April. Bessa, B. Cunha, M. e Furtado, F. (2012). ENGSOFT: Ferramenta para Simulação de Ambientes Reais para auxiliar o Aprendizado Baseado em Problemas (PBL) no Ensino de Engenharia de Software. Em Anais do XX Workshop sobre Educação em Informática. Curitiba, Brasil. Braga, J. (2009). Diretrizes para o Ensino Interdisciplinar de Engenharia de Software. Em Anais do II Fórum em Educação em Engenharia de Software. Fortaleza, Brasil. Duley, R. et al. (2003). Engineering an introductory software engineering curriculum. In Proceedings of 16th Conference on Software Engineering Education and Training, pages 99-106. Gary, K. et al. (2013). A Project Spine for Software Engineering Curricular Design. In Proceedings of 26th Conference on Software Engineering Education and Training, pages 299-303. Kitchenham, B. e Pfleeger, S. (2008) “Personal Opinion Surveys”, In: Guide to Advanced Empirical Software Engineering, Springer, ch. 3, pages 63-92. Leal, G. et al. (2012). Empirical study about the evaluation of the implantation of MPS.Br in enterprises of Paraná. In Proceedings of XXXVIII Conferencia Latinoamericana en Informatica, pages 1-9. Lethbridge, T. et al. (2007). Improving software practice through education: Challenges and future trends. In Proceedings of the Conference Future of Software Engineering, pages 12-28. Nunes, D. Reis, C. e Reis, R. (2010) “Educação em Engenharia de Software”, Em: A carreira do pesquisador em Engenharia de Software: princípios, conceitos e direções. 1ª edição. Salvador, Brasil: UFBA, cap. 5, páginas 132-181. SBC (2005). Currículo de Referência da SBC para Cursos de Graduação em Bacharelado em Ciência da Computação e Engenharia de Computação, http://www.sbc.org.br, Abril. SEI – Software Engineering Institute (2010) “CMMI for Development – V 1.3”, http://www.sei.cmu.edu, April. SOFTEX – Associação para Promoção da Excelência do Software Brasileiro (2012) “Guia Geral MPS de Software: 2012”, http://www.softex.br, Abril. Wangenheim, C. e Silva, D. (2009). Qual Conhecimento de Engenharia de Software é Importante para um Profissional de Software? Em Anais do II Fórum de Educação em Engenharia de Software. Fortaleza, Brasil. Wohlin, C. et al. (2000) “Experimentation in software engineering: an introduction”. Kluwer Academic Publishers, Norwell, MA, USA.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.