• Nenhum resultado encontrado

2 Fundamentação Teórica

2.3 Ensino da Engenharia de Requisitos em cursos de ensino superior

A Engenharia de software é uma disciplina que foca todo o processo de produção de um software (SOMMERVILLE, 2004), desde o que se quer construir até à evolução desse

sistema após sua implantação em um ambiente real. Essa disciplina está presente na mai- oria dos currículos de cursos de tecnologia da informação. Nesse processo, a Engenharia de requisitos é a primeira fase, logo é a disciplina fundamental que está no centro da Engenharia de Software por se tratar da ideia do que se quer construir, restrições e como fazer. A Engenharia de Software, segundo Abke et al. (2013), já traz consigo uma dicul- dade de ensino e aprendizagem por se tratar de um processo complexo e abstrato, logo a Engenharia de Requisitos enfrenta esses mesmo problemas.

Um currículo, segundo Roldão e Curricular (1999), expressa um conjunto de assuntos e habilidades consideradas necessárias para um determinado contexto e tempo, além de uma sequência para sua efetivação ou desenvolvimento.

A disciplina de Engenharia de Requisitos é dada, inicialmente, na graduação podendo ser também encontrada na pós graduação latus e stricto sensus. No portal da Educação (MEC, 2015), é possível encontrar a diretriz curricular, ou currículo, e ementa dos cursos

de graduação na área de Computação que envolvem Ciência da Computação, Sistemas de Informação, Engenharia da Computação, Engenharia de Software em seus graus de título de bacharel ou licenciatura.

Ementa é entendida como a relação de tópicos em programas de ensino (GUIMARÃES,

2004). Ela descreve de forma discursiva e resumida o conteúdo conceitual e processual de uma disciplina.

Na resolução CNE/CES de número 5, publicada em 16 de novembro de 2016 e ho- mologado em 28 de outubro do mesmo ano, é possível encontrar elementos especícos da área de requisitos e que deverão ser incluídos na matriz curricular dos cursos (MEC, 2016).

No artigo 4, inciso II, parágrafo 4, da resolução encontramos que os egressos dos cursos de Sistemas de informação:

 possam determinar os requisitos, desenvolver, evoluir e administrar os sistemas de informação das organizações, assegurando que elas tenham as in- formações e os sistemas de que necessitam para prover suporte às suas operações e obter vantagem competitiva .

No artigo 5, inciso IV, parágrafo 1, da resolução têm-se que os cursos de bachare- lado em Ciências da Computação devem prover uma formação que estimule a habilidade de identicar e analisar requisitos e especicações para problemas especícos e plane- jar estratégias para suas soluções (MEC, 2016). Ainda no mesmo artigo, no parágrafo 3 encontra-se que os cursos de bacharelado em Engenharia de Software devem prover uma formação prossional que revele a habilidade de:

 XIV - identicar e analisar problemas avaliando as necessidades dos cli- entes, especicar os requisitos de software, projetar, desenvolver, implementar, vericar e documentar soluções de software baseadas no conhecimento apropri- ado de teorias, modelos e técnicas. .

No inciso X do parágrafo 4 também é citado que os bacharelados em Sistemas da Informação devam representar os modelos mentais dos indivíduos e do coletivo na análise de requisitos de um Sistema de Informação (MEC, 2016). No parágrafo 5 os licenciados em Computação devem prover habilidades para especicar requisitos na interação humano- computador - IHC.

A disciplina de Requisitos poderá ser a preparação inicial dos alunos antes mesmo que ele torne-se desenvolvedor. Nos ambientes de desenvolvimento certamente eles irão exercer atividades relacionadas a requisitos mais cedo ou mais tarde, e é importante que eles estejam preparados para lidar com situações que vão além da implementação de linha de código. É necessário entender que requisitos representam a expressão das necessidades do cliente (GAUSE; WEINBERG, 1989).

No trabalho de Connolly e Begg (2006) os autores questionam o fato de que os alunos enfrentam um desao quando trata-se de coisas que vão além da implementação, como por exemplo a descrição da solução de um problema não relacionado à linha de código.

O ensino de requisitos deve dar ao usuário habilidades técnicas e não técnicas por se tratar de uma área que exige de habilidades sociais (NUSEIBEH; EASTERBROOK, 2000). Na

atividade de elicitação os desenvolvedores irão interagir com uma variedade de stakehol- ders e clientes no mais alto nível de abstração técnica. Conhecer os desejos das pessoas diante de um sistema e poder expressá-los de maneira consistente é essencial.

Regev, Gause e Wegmann (2008) relatam um problema dos cursos relacionados à maneira como as aulas são planejadas. Em sua maioria a disciplina de requisitos é dada de maneira tradicional, composto por um conjunto de aulas expositivas e exercícios simples. O plano de aula visa a importância de se planejar todas as etapas no processo de

ensino aprendizagem (TAKAHASHI; FERNANDES, 2004). Ele é composto por uma estrutura

didática, um tema, objetivos, conteúdo programático, estratégias bem como seus recursos didáticos, além de duração e referências.

Madhavji e Miller (2005) e Damian et al. (2005) dizem que é preciso que haja ativi- dades que vão além de opiniões e palestras sobre a área.

A Sociedade Brasileira de Computação - SBC, que entre suas obrigações está a contri- buição para formação prossional dos prossionais de computação, apresenta currículos de referência que devem servir de base para os cursos de computação do país. Dentre os apresentados pela SBC encontra-se o currículo de referência para cursos de gradua- ção em computação e informática, além de Ciências da Computação e Engenharia da Computação.

Compreende-se por Computação ou Informática os conhecimentos que dizem respeito a computadores, sistemas de computação, bem como suas aplicações, além de aspectos teóricos, experimentais, de modelagem e projeto (COMPUTACAO, 1999).

Sobre o perl prossional, o autor demonstra que os egressos devam ser prossionais que, entre outras atribuições, tenham habilidades de comunicação e expressão. Também é esperado que tenham conhecimento para modelar e especicar soluções para diversos tipos de problemas. Ambas habilidades fazem parte do perl de um engenheiro de requisitos. Pressman (2011) destaca que entender um problema e propor uma solução é uma atividade extremamente complexa e importante para qualquer projeto de desenvolvimento.

Um plano de curso é a organização de várias matérias que irão ser ensinadas e de- senvolvidas em uma instituição de ensino durante um determinado tempo de um curso (VASCONCELLOS, 1995). A estruturação das matérias, nos currículos de Computação ou

Informática, estão divididas em três núcleos:

• Fundamentos da Computação, onde encontram-se disciplinas como linguagens de programação e análise de algoritmos;

• Tecnologia da Computação, onde pode ser encontrado a matéria T7 que trata de Engenharia de Software, grande área que envolve o processo de Engenharia de Re- quisitos;

• Sistemas de Informação, onde encontra-se a matéria I3 sobre Gerenciamento de Projetos, que envolve o processo de elicitação de requisitos;

Para os cursos de Ciências da Computação e Engenharia da Computação, as matérias estão divididas nas áreas de:

• Fundamentos da Computação, onde têm-se o F5 Fundamentos de Sistemas com conceitos de Especicação. No artigo 5, inciso IV, parágrafo 1, da resolução têm- se que os cursos de bacharelado em Ciências da Computação devem prover uma formação que estimule a habilidade de identicar e analisar requisitos e especicações para problemas especícos e planejar estratégias para suas soluções (MEC, 2016). Ainda no mesmo artigo, no parágrafo 3 encontra-se que os cursos de bacharelado em Engenharia de Software devem prover uma formação prossional que revele a habilidade de:

 XIV - identicar e analisar problemas avaliando as necessidades dos clientes, especicar os requisitos de software, projetar, desenvolver, im- plementar, vericar e documentar soluções de software baseadas no co- nhecimento apropriado de teorias, modelos e técnicas. .

No inciso X do parágrafo 4 também é citado que os bacharelados em Sistemas da Informação devam representar os modelos mentais dos indivíduos e do coletivo na análise de requisitos de um Sistema de Informação (MEC, 2016). No parágrafo 5 os

licenciados em Computação devem prover habilidades para especicar requisitos na interação humano-computador - IHC.

No âmbito internacional, a cerca de 10 anos a ACM juntamente com a IEEE- Com- puter Society estabelecem diretrizes curriculares para o programa de graduação em Ciência da Computação. Em sua última versão, lançada em 2013, encontra-se uma atualização da versão anterior de 2008 que mais se adapta ao cenário de constantes evoluções na área tecnológica (ACM, 2013).

No currículo proposto pela ACM, para Ciências da Computação, existe um tópico relacionado a Engenharia de Requisitos que inclui:

 Gerenciamento de Projetos de software que lida com estabilidade dos requisitos (incluindo não funcionais);

 Ferramentas e Ambiente que lida com análise de requisitos e rastreabilidade;  Engenharia de Requisitos que lida com tipo e propriedade dos requisitos bem

como todo processo da área;

 Contexto Social que envolve requisitos legais;

Para os cursos de Sistema de Informação, a ACM elenca a área de Análise de Sis- tema e Design que entre outras atividades incluem a especicação de requisitos para soluções de sistema. Envolve ainda a documentação de requisitos, análise e especi- cação de requisitos de sistema, métodos de construção e comunicação de requisitos, considerações éticas na especicação dos requisitos, impacto dos requisitos.

Para os cursos de Engenharia de Software há o tópico de Especicação e Análise de Requisitos. Dentro desse são encontrados os fundamentos dos requisitos, elicitação dos requisitos, especicação e documentação de requisitos além de validação de requisitos.

Em contexto nacional e internacional nos cursos de tecnologia, disciplinas voltadas para requisitos fazem parte dos currículos propostos. Requisitos de Sistemas de Informação.

• Tecnologia da Informação, onde no T7 Engenharia de Software e T20 Sistemas Em- barcados tratam da Engenharia de Requisitos, sendo o T20 especíco para sistemas embarcados.