Você está na página 1de 60

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CENTRO DE INFORMTICA
GRADUAO EM SISTEMAS DE INFORMAO

SANDRINE VENTURA MARTINS

EM DIREO A UMA PROPOSTA PRTICA PARA O


ENSINO DA ENGENHARIA DE SOFTWARE NO
CENTRO DE INFORMTICA
Trabalho de Graduao

RECIFE
2016

SANDRINE VENTURA MARTINS

EM DIREO A UMA PROPOSTA PRTICA PARA O


ENSINO DA ENGENHARIA DE SOFTWARE NO
CENTRO DE INFORMTICA

Trabalho apresentado ao curso de Sistemas de


Informao da Universidade Federal de
Pernambuco como requisito parcial para
obteno do grau de Bacharel em Sistemas de
Informao.
Orientador: Vinicius Cardoso Garcia

RECIFE
2016

SANDRINE VENTURA MARTINS

EM DIREO A UMA PROPOSTA PRTICA PARA O


ENSINO DA ENGENHARIA DE SOFTWARE NO
CENTRO DE INFORMTICA

Trabalho apresentado ao curso de Sistemas de


Informao da Universidade Federal de
Pernambuco como requisito parcial para
obteno do grau de Bacharel em Sistemas de
Informao.
Aprovada em: ____/____/____.
BANCA EXAMINADORA

____________________________________________________

Vinicius Cardoso Garcia


Universidade Federal de Pernambuco

____________________________________________________

Simone Cristiane dos Santos


Universidade Federal de Pernambuco

Dedico aos meus pais e amigos.

Agradecimentos
Agradeo primeiramente a Deus, reconhecendo que tudo dEle, por Ele e para Ele.
Em especial agradeo aos meus pais, Etiene Martins e Samuel Martins, e aos meus
irmos, Maxwell Martins e Suelen Martins por nunca medirem esforos para me
apoiar e ajudar em cada etapa da minha vida, e sempre estarem ao meu lado,
mesmo que a distncia nos separe fisicamente.
A todos os professores que me acompanharam por esta jornada e me
ensinaram mais que os contedos de suas disciplinas, me ensinaram a ser uma
pessoa e uma profissional excelente. Em especial ao professor Vinicius Garcia pelo
interesse, confiana, empolgao e tempo dedicado a realizao deste trabalho.
A Jorge Linhares, meu namorado, que durante toda a graduao esteve do
meu lado, me dando todo e qualquer apoio necessrio.
Por fim, agradeo aos meus amigos, em especial Yasmine Santos, Beatriz
Arruda, Filipe Epifanio, Bruno Andrade, Priscila Thyfani, Ruan Pablo e Rayelle Vera
Cruz pelas palavras de incentivo ao longo desses 4 anos.

Resumo
A educao em Engenharia de Software, ao longo dos anos, tem incorporado novas
abordagens e tcnicas visando melhoria na qualidade do seu processo de
ensino-aprendizagem utilizando: integrao entre disciplinas, jogos, projetos reais
de software, entre outras. Na maioria dos casos, entretanto, essas experincias no
ambiente universitrio no refletem as necessidades da indstria e no despertam
interesse nos alunos. Ao considerar essa conjuntura, verifica-se a necessidade de
se estudar as referncias curriculares para o ensino da engenharia de software e
aplic-la em seus contextos variados. Com o objetivo de melhor explorar esse
cenrio, este trabalho apresenta os resultados de pesquisa realizada para averiguar
se as disciplinas de Engenharia de Software do Centro de Informtica da
Universidade Federal de Pernambuco em Recife - Brasil, tem recebido a devida
importncia quanto ao processo de ensino-aprendizagem de suas reas de
conhecimento, carga horria apropriada e se refletem a necessidade da indstria.
Palavras-chave: engenharia de software, educao,
graduao, indstria de software, rea de conhecimento.

ensino-aprendizagem,

Abstract
Over the years, education in Software Engineering had incorporated new
approaches and techniques in order to improve the quality of the teaching-learning
process by using: integration between disciplines, games, real software projects,
among others. In most cases, however, these experiences in the university
environment do not reflect the needs of the industry and do not arouse interest
among students. By considering this scenario, there is a necessity of studying the
curriculum references for the teaching of Software Engineering and apply them in
their various situations. With the purpose of better explore this context, this paper
presents the results of a research carried out to ascertain if the Software Engineering
disciplines, that are taught at Centro de Informtica at Universidade Federal de
Pernambuco, in Recife - Brazil, have been receiving proper importance in the
process of teaching-learning at their areas of knowledge, appropriate workload, and
if these disciplines reflect the industry demands.
Keywords: software engineering, education, teaching-learning, undergraduate,
software industry, knowledge area.

Lista de Figuras
Figura 1 - reas da engenharia de software nos currculos de referncia

20

Figura 2 - Porcentagem dos tpicos das reas da engenharia de software

21

Figura 3 - Enfoques tericos de ensino-aprendizagem

23

Figura 4 - Engenharia de software no primeiro ano

30

Figura 5 - Engenharia de software no segundo ano

31

Figura 6 - Sequncias de ensino da engenharia de software

31

Figura 7 - Estrutura curricular geral para um curso de computao

32

Lista de Grficos
Grfico 1 - Currculos de referncia adotados para ensino da engenharia de

40

software
Grfico 2 - Relevncia das reas de conhecimento da engenharia de software

40

Grfico 3 - Abordagens de ensino

41

Grfico 4 - Mecanismos de avaliao

42

Grfico 5 - Principais desafios no ensino da engenharia de software

42

Grfico 6 - Ferramentas didticas

43

Grfico 7 - Percentual de aprendizagem por rea de conhecimento

44

Grfico 8 - reas de conhecimento que deveriam receber maior nfase

45

Grfico 9 - Principais problemas que influenciam negativamente no aprendizado

46

Grfico 10 - Importncia das reas de engenharia de software

47

Grfico 11 - reas que devem receber maior ateno quanto ao seu ensino na

49

graduao
Grfico 12 - Correlao entre maior relevncia e aprendizagem

51

Grfico 13 - Correlao entre menor relevncia e aprendizagem

52

Lista de Tabelas
Tabela 1 - Principais fontes de mudana nas prticas da engenharia de software

21

Tabela 2 - Teorias da aprendizagem e suas caractersticas

25

Tabela 3 - Fatores que afetam o processo de ensino

26

Tabela 4 - Tcnicas de ensino e suas caractersticas

28

Tabela 5 - Questes e opes de respostas para os professores

36

Tabela 6 - Questes e opes de respostas para os alunos

36

Tabela 7 - Questes e opes de respostas para os profissionais de engenharia

37

de software
Tabela 8 - Gap de conhecimento das reas de engenharia de software

47

Tabela 9 - Importncia dos tpicos de engenharia de software em relao a

49

outras pesquisas

Sumrio
Introduo
Motivao
Objetivos
Estrutura do Trabalho

12
12
13
14

Evoluo do Currculo da Engenharia de Software


Diretrizes Curriculares Nacionais
Ministrio da Educao
Sociedade Brasileira de Computao
Diretrizes Curriculares Internacionais
Association for Computing Machinery (ACM)
Engenharia de Software
Engenharia da Computao
Cincia da Computao
Sistemas de Informao
SWEBOK
Consideraes Finais

15
15
15
16
16
16
16
17
18
18
19
22

Processo de Ensino-aprendizagem aplicado Engenharia de Software


Processo de Aprendizagem
Processo de Ensino
Engenharia de Software em vrios contextos
Consideraes Finais

23
24
26
29
33

Metodologia
Planejamento e Aplicao do Survey
Pblico-alvo
Questionrios
Survey com professores das disciplinas de engenharia de software
Survey com alunos concluintes de alguma disciplina de engenharia de software
Survey com profissionais da rea de engenharia de software
Os participantes do Survey

34
34
34
35
35
36
37
38

Resultados dos Questionrios


Professores
Planejamento pedaggico das disciplinas de engenharia de software
Contedo programtico das disciplinas de engenharia de software
Carga Horria das disciplinas de engenharia de software e aptido dos alunos
Currculos de Referncia adotados na ementa de engenharia de software
reas de conhecimento contempladas na ementa de Engenharia de Software
Abordagens de Ensino das disciplinas de engenharia de software

39
39
39
39
39
39
40
41

Desafios do ensino em Engenharia de Software


42
Alunos
43
Carga horria e Habilidade em desenvolvimento de software
43
Ferramentas Didticas das disciplinas de engenharia de software
43
Aprendizagem em Engenharia de Software
44
Desafios do Aprendizado em Engenharia de Software
45
Profissionais
46
Importncia geral das reas de Engenharia de Software
46
Importncia dada s reas de conhecimento de Engenharia de Software no ensino
da graduao
47
Importncia de se aprender mais sobre as reas de conhecimento da Engenharia de
Software na graduao
48
Importncia dos tpicos em relao a outras pesquisas
49
Discusses dos Resultados Obtidos
50
Sobre a adoo de currculos de referncia
50
Sobre a relevncia dos tpicos
50
Consideraes Finais
52
Concluso
Trabalhos Futuros

53
54

Referncias Bibliogrficas

55

1.

Introduo
1.1.

Motivao

O termo Engenharia de Software comeou a ser usado no final da dcada de 60


em uma conferncia organizada pelo Science Committee of the North Atlantic Treaty
Organization (NATO), em que os membros da comisso estavam preocupados com
a crise de software e os problemas que eles haviam testemunhado na preparao
de sistemas militares, e estavam convencidos de que era necessrio o rigor da
engenharia no desenvolvimento de software. Nos anos que seguiram a conferncia,
cientistas da computao expandiram os conceitos e ferramentas fundamentais da
engenharia de software e incluram cinco passos ao ciclo de desenvolvimento de
software: especificao de sistema, projeto de sistema, programao do sistema,
depurao do sistema e manuteno de sistema.
Em 1997, comeou a ser escrito o Guide to the Software Engineering Body of
Knowledge(SWEBOK) atravs de uma parceria entre a IEEE Computer Society e a
Association for Computing Machinery(ACM) e iniciado pela Software Engineering
Coordinating Committee (SWECC), tendo seu primeiro prottipo apresentado em
1998.
J em 2004, a IEEE Computer Society formalmente aprovou e publicou o
SWEBOK - antes disso, em 2001, uma verso de teste j havia sido publicada - a
fim de definir melhor a engenharia de software como uma profisso, e que tem
como pblico-alvo gerentes, engenheiros de software, sociedades profissionais,
estudantes, professores e instrutores. Para sua verso atual, v3.0, contou com a
reviso de 150 profissionais de 33 pases para sumarizar conceitos de 15 reas de
conhecimento, e continua com a sua reputao de 20 anos como o mais confivel
guia de profisso de engenharia de software. No entanto, deve-se deixar claro que o
SWEBOK no para ditar tudo que os engenheiros de software devem saber - isso
deve ser de responsabilidade de organizaes e iniciativas envolvidas no
licenciamento e certificao de profissionais -, mas para identificar o que constitui o
ncleo da engenharia de software e embasar currculos.
A engenharia de software (ES), de forma ampla, a rea do conhecimento
que fornece toda a estrutura para o desenvolvimento e manuteno de software
(IEEE, 2004). Esta rea est preocupada principalmente com a aplicao de teoria,
conhecimento e prtica para o desenvolvimento efetivo e eficiente de sistemas de
software, visando a implementao de produtos de qualidade, econmicos, teis e
no prazo esperado, cujos resultados devem satisfazer os requisitos dos usurios
(ACM/IEEE, 2008). Em relao a engenharia de software como disciplina,
Sommerville (2011) afirma que ela uma disciplina da computao relacionada com

12

a produo de software de alta qualidade, respeitando os requisitos e as restries


de tempo e custo.
A formao de profissionais qualificados na rea de engenharia de software
est ligada a qualidade da educao que esses profissionais receberam enquanto
alunos, que deve incluir alm de conhecimentos bsicos na rea de computao, o
ensino de conceitos, processos e tcnicas para definio, desenvolvimento e
manuteno de software( ACM/IEEE, 2008).
A praticidade uma das caractersticas e requisitos representativos da
educao em engenharia de software. Assim, importante que seu ensino possa
ser personalizado para refletir as necessidades da indstria. A grande diferena
existente entre a educao universitria e as necessidades do mercado , pelo
menos em parte, responsvel pelas crticas feitas por parte dos empregadores de
que os cursos no qualificam os alunos para o trabalho real.
O processo de ensino-aprendizagem tradicional da engenharia de software
vem sendo questionado pela sua dificuldade de, a partir do conhecimento adquirido
na disciplina, o profissional aplicar os conceitos aprendidos num ambiente real;
baixa motivao dos alunos para estudar conceitos tericos; e muito contedo em
pouco tempo. A partir desse questionamento, Gimenes(2012) cita elementos
contextuais como as modalidades de educao presencial, a distncia e hbrida; e
o trip da Universidade: ensino, pesquisa e extenso; que diante destes, a
engenharia de software como disciplina, deve apropriar-se das teorias e prticas
pedaggicas contemporneas e conscientizar-se do perfil de seus estudantes, para
planejar as prticas de ensino-aprendizagem com o uso eficiente de ferramentas de
tecnologias da informao e comunicao.
Neste contexto, a presente pesquisa tem por motivao averiguar se as
prticas de ensino utilizadas pelos professores do Centro de Informtica so
focadas nos tpicos considerados relevantes para a formao profissional dos
alunos egressos das disciplinas de engenharia de software.

1.2.

Objetivos

O objetivo deste trabalho fazer uma reviso das referncias curriculares e tcnicas
de ensino propostas para engenharia de software, a fim de sugerir uma referncia
curricular para as disciplinas de engenharia de software do Centro de Informtica,
considerando os seus diferentes cursos e seus respectivos propsitos distintos
(Cincia da Computao, Engenharia da Computao e Sistemas de Informao) e
o alinhamento com as necessidades do mercado, em especial do Arranjo Produtivo
Local de Recife - PE.
Esse objetivo se destrincha nos seguintes objetivos especficos que
apresentam como enfoque :
Estudar as principais referncias curriculares para engenharia de software;

13

Analisar as caractersticas das prticas de ensino-aprendizagem utilizadas


em disciplinas de engenharia de software;
Identificar os desafios do ensino da engenharia de software;
Analisar as metodologias de ensino utilizadas em disciplinas de engenharia
de software ministradas no Centro de Informtica da UFPE;
Identificar as necessidades do mercado para um profissional de engenharia
de software;
Por fim, fazer uma comparao objetiva entre os mtodos e tcnicas
descritos.

1.3.

Estrutura do Trabalho

Este trabalho foi dividido em 6 captulos, incluindo este primeiro que apresenta de
forma introdutria a pesquisa realizada e os objetivos do estudo. Os captulos
seguintes esto descritos abaixo:
Captulo 2 descrita a evoluo do currculo da engenharia de software
dentro das diretrizes curriculares nacionais e internacionais.
Captulo 3 apresenta a contextualizao terica em relao ao processo de
ensino-aprendizagem e demonstra como a engenharia de software pode ser
inserida em vrios contextos.
Captulo 4 exibe a metodologia utilizada para realizar a pesquisa
Captulo 5 - so demonstrados os resultados e discusses da investigao.
Captulo 6 fornece as concluses sobre o que foi discutido neste trabalho,
bem como so descritos os possveis trabalhos futuros.

14

2.

Evoluo do Currculo da Engenharia de Software

Para entender como a evoluo da engenharia de software tratada dentro dos


currculos acadmicos, comearemos pela anlise conjunta das diretrizes
curriculares que ajudaro a treinar os futuros profissionais da computao.

2.1.

Diretrizes Curriculares Nacionais


2.1.1.

Ministrio da Educao

A proposta para as diretrizes curriculares nacionais para os cursos de graduao


em computao comeou a ser estruturada em 1999 e foi aprovada em 2005, como
resultado das contribuies recebidas da Secretaria de Educao Superior1 (SESu)
e das discusses realizadas no mbito da Sociedade Brasileira de Computao2
(SBC).
Segundo esta diretriz O ensino de Engenharia de Software em cursos de
graduao pode dar origem a vrias disciplinas com diferentes nfases. A origem
dessas disciplinas pode ter como motivao diferentes classificaes didticas:
aspectos gerenciais, aspectos tcnicos, aspectos tericos e aspectos experimentais.
A nfase pode se dar em diferentes etapas do processo de desenvolvimento e
manuteno de software: engenharia de requisitos, anlise, arquitetura e projeto,
programao, testes, manuteno, garantia de qualidade e gesto do processo de
software. A diretriz ainda cita que deve-se assegurar que o estudante adquira
experincia na aplicao destes conceitos atravs da prtica em laboratrios e
estgios.
Embora a proposta de 2005 ainda fosse considerada atual, em 2010
decidiu-se avaliar e atualizar as diretrizes, devido a rpida evoluo tecnolgica e ao
desenvolvimento de uma nova rea de atividades que acabou por criar uma nova
alternativa de formao por meio do curso de engenharia de software. Essa diretriz,
que fornece orientaes para os cursos de cincia da computao, sistemas de
informao, engenharia da computao, licenciatura em computao e engenharia
de software, foi aprovada em 8 de maro de 2012.
A engenharia de software consta nesta diretriz como um contedo que
permeia todos os cursos, mas no h uma especificao dos assuntos que podem
ser vistos dentro desta rea como uma disciplina. E para o curso de engenharia de
software, alguns dos contedos especficos listados so: paradigmas e ferramentas
para a construo de software; requisitos, arquitetura e desenho de software;
gerncia de projetos e de configurao; evoluo de software; engenharia de
qualidade; tratamento de informao; e planejamento e controle do software.
1
2

"SESu - Ministrio da Educao." <http://portal.mec.gov.br/sesu/>


"Sociedade Brasileira de Computao." <http://www.sbc.org.br/>

15

2.1.2.

Sociedade Brasileira de Computao

Em julho de 1999, a Assemblia Geral da Sociedade Brasileira de Computao


(SBC) aprovou uma proposta de currculo de referncia para os cursos de
graduao na rea de Computao e Informtica, referenciado como CR99. Aps a
aprovao, as revises foram separadas entre os cursos de sistemas de
informao, que teve sua reviso feita em 2003, e os cursos de cincia da
computao e engenharia da computao com reviso feita no ano de 2005.
Para cincia da computao e engenharia da computao, as disciplinas
esto organizadas em seis ncleos, sendo eles: fundamentos da computao,
tecnologia da computao, matemtica, cincias bsicas, eletrnica e contexto
social e profissional. A engenharia de software se encontra no ncleo de tecnologia
da computao tendo seus principais tpicos listados a seguir: processo de
desenvolvimento de software; ciclo de vida de desenvolvimento de software;
qualidade de software; tcnicas de planejamento e gerenciamento de software;
gerenciamento de configurao de software; engenharia de requisitos; mtodos de
anlise e de projeto de software; garantia de qualidade de software; verificao,
validao e teste; manuteno; padres de desenvolvimento; engenharia reversa;
reengenharia; e ambientes de desenvolvimento de software.
Para sistemas de informao, a proposta afirma que as matrias que
compem o currculo de sistemas de informao podem ser abordadas com
profundidade ou em abrangncia. Uma matria abordada com profundidade
proporciona ao estudante o domnio sobre conceitos, mtodos, tcnicas e
ferramentas daquela matria de forma que possa aplic-los na sua atuao direta
como profissional de Sistemas de Informao. Para a disciplina de engenharia de
software, que referenciada nesta diretriz como uma disciplina de formao
tecnolgica, recomenda-se que seus tpicos como processo de desenvolvimento de
software (anlise, projeto, construo, testes, converso e manuteno),
gerenciamento de projetos de software e qualidade de software devam ser
abordados com profundidade.

2.2.

Diretrizes Curriculares Internacionais


2.2.1.

Association for Computing Machinery (ACM)

2.2.1.1.

Engenharia de Software

Nas dcadas desde os anos 1960 a Association for Computing Machinery (ACM) e
a Computer Society of the Institute for Electrical and Electronic Engineers (IEEE-CS)
produziram recomendaes curriculares para enfrentar os desafios da rpida
mudana da paisagem tecnolgica da computao. Juntos, eles tm publicado
diretrizes curriculares para as seguintes reas: Cincia da Computao, Engenharia

16

da Computao, Sistemas de Informao, Tecnologia da Informao e Engenharia


de Software.
O primeiro conjunto de orientaes para os currculos de engenharia de
software foi publicado em 2004. A Diretriz Curricular SE2004 para Engenharia de
Software (ACM/IEEE, 2004) afirma que o desenvolvimento de um currculo de
engenharia de software deve ser sensvel s mudanas nas tecnologias, prticas e
aplicaes, novos desenvolvimentos em pedagogia, e a importncia da
aprendizagem ao longo da vida. Para um campo que evolui to rapidamente quanto
engenharia de software, as instituies de ensino devem adotar estratgias
explcitas para responder mudana e procurar preparar os alunos para toda vida.
Para a construo desta diretriz, foram selecionadas reas de conhecimento
baseadas no Guide to the Software Engineering Body of Knowledge (SWEBOK) que ser detalhado adiante - para a criao do Software Engineering Education
Knowledge (SEEK). O SEEK no representa o currculo, mas fornece a base para a
concepo, implementao e entrega das unidades educacionais que compem um
currculo de engenharia de software. As dez reas de conhecimento que compem
o SEEK so: computao essencial; matemtica e fundamentos de engenharia;
prtica profissional; modelagem e anlise de software; design de software;
verificao e validao de software; evoluo de software; processos de software;
qualidade de software; e gesto de software .
Em 2010, uma fora-tarefa foi nomeada pela ACM e IEEE-CS para
determinar se eram necessrias atualizaes no SE2004. Em um workshop,
realizado em 2013, na Conference on Software Engineering Education and Training
(CSEE&T), eles apresentaram um esboo inicial da proposta de reviso do SEEK e
outras reas das diretrizes curriculares. Em 2014, foi publicado o SE2014. Esta
verso aumenta a visibilidade dos requisitos de software e de segurana de
software, j que o interesse e preocupao sobre estes temas aumentaram.
2.2.1.2.

Engenharia da Computao

A Diretriz Curricular CE2004 para Engenharia da Computao (ACM/IEEE, 2004)


trata a engenharia de software como uma de suas reas de conhecimento que se
preocupa com a aplicao da teoria, conhecimento e prtica para construir sistemas
de softwares eficazes e eficientes que satisfaam as exigncias das partes
interessadas. Como uma rea de conhecimento, ela quebrada em mdulos
temticos individuais que so: histria e viso geral; processos de software;
requisitos e especificaes de software; design de software; teste e validao de
software; evoluo de software; ferramentas e ambientes de software;
gerenciamento de projetos de software e tolerncia a falhas de software.
J na sua verso de 2016, CE2016, a rea de conhecimento em engenharia
de software no est explcita, mas seus mdulos temticos antes listados
permeiam as reas de conhecimento de sistemas e projetos de engenharia e design

17

de software. Esta verso tambm afirma que com a tendncia de crescimento em


engenharia da computao medida que a computao e tecnologias eletrnicas
se tornam mais complexas, este crescimento pode assumir muitas formas, incluindo
a colaborao com a disciplina de engenharia de software em projetos com foco em
aplicativos.
2.2.1.3.

Cincia da Computao

A Diretriz Curricular CC2001 para Cincia da Computao (ACM/IEEE, 2001) traz a


engenharia de software como uma de suas 14 reas que juntas compem o corpo
de conhecimento para a cincia da computao, e afirma que os elementos da
engenharia de software so aplicveis ao desenvolvimento de software em qualquer
domnio de aplicao de computao, onde o profissionalismo, a qualidade,
cronograma e custo so importantes na produo de um sistema de software. Entre
seus mdulos temticos esto: design de software; uso de APIs; ferramentas e
ambientes de software; processos de software; requisitos e especificaes de
software; validao de software; evoluo de software e gerenciamento de projetos
de software.
Com a necessidade de criao de novas reas de conhecimento, em 2010
comeou-se a trabalhar na atualizao da diretriz curricular para cincia da
computao resultando na diretriz curricular CS2013. As reas de conhecimento
passaram de 14 para 18, continuando a engenharia de software como uma dessas
reas e seus mdulos temticos atualizados para: processo de software;
gerenciamento de projetos de software; ferramentas e ambientes de software;
requisitos de software; design de software; construo de software; verificao e
validao de software; evoluo de software; confiabilidade de software e mtodos
formais. Destaca-se ainda nessa diretriz, que os estudantes podem aplicar o que
ser aprendido atravs da participao em um projeto, e este deve exigir que os
estudantes trabalhem em equipe para desenvolver um sistema de software, e usem
tcnicas de engenharia de software eficazes para desenvolver e praticar suas
habilidades de comunicao com as partes interessadas.
2.2.1.4.

Sistemas de Informao

A Diretriz Curricular IS2002 para Sistemas de Informao foi feita em parceria com a
ACM, a Association for Information Systems (AIS) - que formada por docentes em
sistemas de informao - e a Association of Information Technology Professionals
(AITP). Esta diretriz est organizada em um conjunto de reas e cada uma dessas
reas tem uma ou mais disciplinas.
Os tpicos de engenharia de software esto inseridos na rea de
Desenvolvimento de Sistemas de Informao, onde os alunos iro trabalhar em
equipes para analisar problemas, projetar e implementar sistemas de informao.
Ainda dentro desta rea, h a disciplina de Anlise e Projeto Lgico onde os
tpicos de engenharia listados so: determinao de requisitos, projeto lgico,

18

projeto fsico, e planejamento de implementao; habilidades interpessoais; anlise


de risco e viabilidade; e gerenciamento de projetos, desenvolvimento de aplicaes
conjunta, e orientaes estruturadas.
Na disciplina Projeto Fsico e Implementao em Ambientes Emergentes,
ainda na rea de Anlise e Projeto Lgico, os tpicos de engenharia de software
so: testes de software; garantia de qualidade de software; implementao de
sistema; gerenciamento de configuraes; e manuteno.
Na disciplina Gerenciamento e Prtica de Projeto, que est na rea de
Implantao de Sistemas de Informao e Processos de Gesto, alguns dos tpicos
de engenharia de software so: gerenciamento do ciclo de vida do sistema,
determinao de requisitos, design, implementao; anlise de custo-eficcia;
gerenciamento de mudanas; ferramentas de software para rastreamento e
monitoramento do projeto.
A Diretriz Curricular IS2010 para Sistemas de Informao foi feita em parceria
com a ACM e a Association for Information Systems (AIS). Esta diretriz especifica
um curso geral (Fundamentos de Sistemas de Informao) para fornecer uma
compreenso e habilidades relacionadas aos Sistemas de Informao adequados
para todos os alunos.
Esta diretriz est organizada em sete disciplinas bsicas e um subconjunto
de disciplinas eletivas. A engenharia de software tem seus tpicos listados na
disciplina de Gerenciamento de Projeto de Sistemas de informao. Esta disciplina
abrange uma metodologia sistemtica para a iniciao, planejamento, execuo,
controle e encerramento projetos. Seus tpicos so: introduo ao gerenciamento
de projeto; gerenciamento de ciclo de vida; gerenciamento de equipes de projeto;
gerenciamento de comunicao; iniciao e planejamento de projeto; gesto do
escopo do projeto; gerenciamento de preparao de projeto; gerenciamento de
recursos; qualidade do projeto; riscos do projeto; e gerenciamento da execuo,
controle e encerramento do projeto.

2.3.

SWEBOK

Finalmente, o Guide to the Software Engineering Body of Knowledge(SWEBOK)


atualmente em sua verso V3.0 (IEEE, 2004), fornece uma referncia importante
para o estabelecimento da engenharia de software como uma disciplina reconhecida
de engenharia. Ele dividido em 15 reas de conhecimento(KA) para engenharia de
software e 7 disciplinas que se cruzam com a engenharia de software. Suas reas
de conhecimento com uma breve descrio das mesmas sero listadas a seguir:
Requisitos de Software: est preocupada com a elicitao, anlise,
especificao e validao de requisitos de software, bem como a gesto de
requisitos durante todo o ciclo de vida do produto de software;
Design de Software: a atividade do ciclo de vida da engenharia de software
em que os requisitos de software so analisados a fim de produzir uma

19

descrio da estrutura interna do software que servir como base para a sua
construo;
Construo de Software: est ligada a todas as outras reas de
conhecimento, mas mais fortemente ligada ao Design de software e ao
Teste de Software porque o processo de construo de software envolve
design de software e testes;
Teste de Software: consiste na verificao dinmica de que um programa
fornece o comportamento esperado sobre um conjunto finito de casos de
testes;
Manuteno de Software: conjunto de atividades necessrias para fornecer
suporte de baixo custo para o software;
Gerenciamento de Configurao de Software: um processo do ciclo de vida
do software que beneficia as atividades de gerenciamento de projetos,
desenvolvimento e manuteno, atividades de garantia de qualidade, bem
como as partes interessadas;
Gerenciamento da Engenharia de Software: aplicao de gesto de
atividades de planejamento, coordenao, medio, monitoramento, controle
e emisso de relatrios para garantir que os produtos de software e servios
de engenharia de software sero entregues de forma eficiente, eficaz e em
benefcio das partes interessadas;
Processos de Engenharia de Software: est preocupada com as atividades
de trabalho realizadas por engenheiros de software para desenvolver, manter
e operar o software;
Modelos e Mtodos de Engenharia de Software: modelos fornecem uma
abordagem para a resoluo de problemas e mtodos proporcionam uma
abordagem para a especificao sistemtica, concepo, construo, teste e
verificao do produto final e produtos de trabalho associados;
Qualidade de Software: refere-se s caractersticas desejveis de produtos
de software e aos processos, ferramentas e tcnicas utilizadas para alcanar
essas caractersticas;
Prtica Profissional em Engenharia de Software: est relacionada com os
conhecimentos, habilidades e atitudes que engenheiros de software devem
possuir para a prtica da engenharia de software de uma forma profissional,
responsvel e tica;
Economia de Engenharia de Software: est preocupada com o alinhamento
das decises tcnicas de software com os objetivos dos negcios da
organizao;
Fundamentos de Computao: abrange o desenvolvimento e o ambiente
operacional em que o software evolui executado;
Fundamentos de Matemtica: est preocupada com o entendimento dos
conceitos bsicos de lgica entre os engenheiros de software, que por sua
vez ser traduzida em cdigo de linguagem de programao;

20

Fundamentos de Engenharia: est preocupada com os fundamentos de


engenharia que se aplicam a engenharia de software e outras disciplinas de
engenharia.
Usando como base as reas de conhecimento do SWEBOK, a Figura 1
mostra quais reas permeiam as diretrizes curriculares mais recentes citadas neste
captulo, e a Figura 2 mostra qual a porcentagem de tpicos relacionadas a cada
rea.

Figura 1 - reas da engenharia de software nos currculos de referncia


Fonte: Autor

Figura 2 - Porcentagem dos tpicos das reas da engenharia de software


Fonte: Autor

21

Para mostrar de forma sucinta a evoluo da engenharia de software, a


tabela a seguir mostra algumas das principais fontes de mudana que afetaram as
prticas da engenharia de software ao longo de 7 dcadas, baseada na pesquisa
feita por Barry Boehm, 2006.

Tabela 1 - Principais fontes de mudana nas prticas da engenharia de software


Fonte: Adaptado de Boehm (2006)

2.4.

Consideraes Finais

O aumento da velocidade da mudana continua a acelerar, assim como a


complexidade dos sistemas de software que necessitam ser manipulados
inteligentemente. E isto apresenta muitos desafios para a educao de engenharia
de software, que inclui:
Manter os cursos e material didtico continuamente atualizados;
Antecipar as tendncias e preparar os alunos para lidar com elas;
Monitoramento de princpios e prticas atuais;
Utilizar de experincias educacionais de pequena escala de formas que se
apliquem a projetos de grande escala;
Oferecer oportunidades de aprendizagem ao longo da vida, para que
engenheiros de software continuem a exercer a sua profisso
A partir desse cenrio, surge a preocupao com o ensino da engenharia de
software e como ela pode ser aplicada em diferentes contextos dentro dos cursos
de graduao em computao. Seu ensino exige um grau muito grande de
abstrao e conceitos tericos que, muitas vezes, torna o ensino dos seus
contedos um verdadeiro desafio para quem leciona e para quem aprende.
Em sua essncia, o uso de exemplos prticos para explicar conceitos e
motivar a aprendizagem dos alunos parece ser o mtodo mais eficiente de aumentar
o aproveitamento da disciplina, mas h diversas formas de abord-la. Com isso em
mente, o prximo captulo aborda enfoques tericos do processo de
ensino-aprendizagem e como a engenharia de software pode ser abordada em
vrios contextos.

22

3.

Processo de Ensino-aprendizagem aplicado


Engenharia de Software

Neste captulo ser apresentada a caracterizao pedaggica do processo de


ensino-aprendizagem e uma breve discusso sobre o ensino da engenharia de
software.
Em relao s habilidades de um engenheiro de software, a ACM/IEEE
(2013) afirma que engenheiros de software tem que selecionar e aplicar tcnicas e
prticas adequadas a um determinado esforo de desenvolvimento, a fim de
maximizar seu valor. E para saber como faz-lo, eles precisam estudar os
elementos da engenharia de software. J em relao a estratgia de ensino no
mbito acadmico, ressalta que os estudantes podem melhor aprender a aplicar
grande parte do material definido na rea de conhecimento de engenharia de
software atravs da participao em um projeto, que deve exigir que os estudantes
trabalhem em equipe para desenvolver um software por meio do seu ciclo de vida,
da forma como for possvel. Apesar da organizao e execuo de um projeto
nesse mbito ser um desafio, continua sendo a melhor maneira de aprender e
aplicar os conhecimentos da engenharia de software.
Entretanto, abordagens alternativas podem ajudar os alunos a aprender de
maneira mais efetiva, como por exemplo: a substituio de aulas expositivas por
discusso de casos prticos (Gnatz et al, 2003), dinmicas de grupo, uso de jogos
(Wangenheim e Shull, 2009) e Capstone projects (um esforo em grupo em que
alunos executam um projeto do incio ao fim) (IEEE/ACM, 2004).
A importncia do processo de ensino-aprendizagem tem gerado a
necessidade de o professor ter, no apenas conhecimentos slidos na rea em que
pretende lecionar, mas tambm de habilidades pedaggicas suficientes para tornar
o aprendizado mais eficaz. As principais correntes de estudo sobre os enfoques
tericos de ensino- aprendizagem, suas ideias chaves e principais tericos podem
ser visto atravs da Figura 3:

23

Figura 3: Enfoques tericos de ensino-aprendizagem


Fonte: Adaptado de Guedes (2009)

3.1.

Processo de Aprendizagem

Bordenave e Pereira (2004) afirmam que assim como o problema de um mdico


conseguir que seus pacientes fiquem curados, o problema do professor conseguir
que seus alunos aprendam. Aprender uma atividade que acontece no aluno e que
realizada pelo aluno.
Para Piaget (1971), bilogo e filsofo suo, o pensamento a base em que
se assenta a aprendizagem, a maneira de a inteligncia manifestar-se, e a
inteligncia, por sua vez, um fenmeno biolgico condicionado pela base
neurnica do crebro e do corpo inteiro, sujeito ao processo de maturao do
organismo. A inteligncia desenvolve uma estrutura e um funcionamento, e o
prprio funcionamento vai modificando a estrutura. Isto , a estrutura no fixa e
acabada, mas dinmica, um processo de construo contnua. A construo se faz
mediante a interao do organismo com seu meio ambiente, visando adaptar-se a
ele para sobreviver e realizar o potencial vital deste organismo. Piaget ainda afirma
que a aprendizagem se processa atravs de dois movimentos simultneos e
integrados, mas de sentido contrrio: a assimilao e a acomodao.
Para a assimilao, o organismo explora o ambiente, toma parte dele,
transformando-o e incorporando-o a si. A mente assimila o mundo exterior, atravs
de um processo de percepo, de interpretao, de assimilao a prpria estrutura.
Para a acomodao, o organismo transforma sua prpria estrutura para
adequar-se a natureza dos objetos que sero apreendidos. Pela acomodao a
mente aceita as imposies da realidade.
Gagn (1971), destaca a importncia de uma hierarquia de tipos de
aprendizagem que vo da simples associao de estmulos complexidade da
soluo de problemas, onde qualquer habilidade intelectual pode ser analisada em
termos da combinao de habilidades mais simples para produzir a sua
aprendizagem. Essa classificao indica a necessidade de diferentes tipos de
ensino para cada uma delas. Ele ainda afirma que a aprendizagem uma mudana
de estado interior que se manifesta por meio da mudana de comportamento e na
persistncia dessa mudana. Um observador externo pode reconhecer que houve
aprendizagem quando observa a ocorrncia de uma mudana comportamental e
tambm a permanncia desta mudana.
As teorias de aprendizagem buscam reconhecer a dinmica envolvida nos
atos de ensinar e aprender, partindo do reconhecimento da evoluo cognitiva do
homem, e tentam explicar a relao entre o conhecimento pr-existente e o novo
conhecimento (Santos; Santoro e Borges,1999). A Tabela a seguir apresenta as
caractersticas bsicas de algumas das principais teorias da aprendizagem:

24

Teorias da Aprendizagem

Caractersticas

Epistemologia Gentica de
Piaget (1950)

O ponto central a estrutura cognitiva do


organismo.
Nveis diferentes de desenvolvimento
cognitivo.
Desenvolvimento facilitado pela oferta de
atividades e situaes desafiadoras.
Interao social e troca entre indivduos
funcionam como estmulo ao processo de
aquisio de conhecimento.

Teoria
Sociocultural
Vygotsky (1987)

Desenvolvimento cognitivo limitado a um


determinado potencial para cada intervalo
de
idade
(Zona
Proximal
de
Desenvolvimento)
Desenvolvimento cognitivo completo requer
interao social

de

Aprendizagem baseada em
problemas
/
Instruo
ancorada (Howard Barrows,
1970)

Aprendizagem se inicia com um problema a


ser resolvido (ncora ou foco).
Centrada no aprendiz e contextualizada.

Cognio
Distribuda
(Vygotsky (1978) e Minsky
(1985)

Interao entre indivduo, ambiente e


artefatos culturais.
Ensinamento recproco.
Importante papel da tecnologia.

Cognio Situada (Brown;


Col-lins e Duguids,1989)

Aprendizagem ocorre em funo da


atividade, contexto e cultura e ambiente
social na qual est inserida.
Interao social e colaborao so
componentes crticos para aprendizagem
(comunidade de prtica).

Aprendizagem
Auto-regulada/Metacognio
(Klauer, (1996)

Controle e monitoramento da prpria


cognio pelo sujeito.
Auto-observao,
auto-julgamento,
auto-reao.

Aprendizagem
por
observao (Bandura, 1962)

No ao, no participao.
Ouvir ou assistir libera a realizao de
outros processos mentais.
Utilizao da memria.
Obteno de informaes em um dilogo.

Tabela 2 - Teorias da aprendizagem e suas caractersticas


Fonte: Adaptado de Santos; Santoro e Borges, 1999

25

3.2.

Processo de Ensino

De acordo com Bordenave e Pereira (2004), existem diversos fatores que afetam o
processo de ensino, relacionados com o trip aluno-professor-contedo, e este
processo consiste no manejo desses fatores e da sua dinamizao em uma
sequncia mais ou menos planejada ou sistemtica. Esses fatores so
apresentados a seguir:
Aluno

Assunto

Professor

Motivao

Situao estimuladora ambiental

Conhecimentos
prvios

Comunicao verbal de instruo

Relao com
professor
Atitude
com
disciplina

Estrutura: componentes e
relaes
Informao ao aluno sobre os
o
seus progressos
Tipos de aprendizagem
requeridos
Relacionamento com o aluno
a
Ordem de apresentao Atitude com a matria ensinada
Tabela 3 - Fatores que afetam o processo de ensino
Fonte: Bordenave e Pereira, 2004

Partindo da pergunta Como os alunos e os membros do corpo docente


podem melhorar o ensino?, Chickering e Gamson (1987), desenvolveram sete
princpios para a boa prtica na educao de Ensino Superior, que apresenta o
COMO ensinar, mas no O QUE ensinar, reconhecendo a complexa interao entre
pedagogia e contedo. Estes princpios foram criados com o objetivo de ajudar no
atendimento s mudanas educacionais necessrias no ensino superior dos
Estados Unidos e de outros pases do mundo.
Princpio n 1: A boa prtica encoraja o contato entre o aluno e o professor
Professores que encorajam o contato com os estudantes, tanto dentro como fora da
sala de aula, obtm alunos mais motivados, comprometidos intelectualmente e com
melhor desenvolvimento pessoal.
Princpio n 2: A boa prtica encoraja a cooperao entre os alunos
O processo de aprendizagem mais favorecido quando resulta de um esforo de
equipe do que quando resultante de um trabalho isolado. Trabalhar com outras
pessoas normalmente aumenta o envolvimento com a aprendizagem, e dividir as
prprias idias com os colegas ou responder s aes destes, afia o raciocnio e
aprofunda o entendimento.

26

Princpio n 3: A boa prtica encoraja a aprendizagem ativa


Os alunos devem falar e escrever sobre o que esto aprendendo, fazer relaes
com experincias anteriores e saber como aplicar o aprendido na vida prtica. Isto
significa que eles precisam reconhecer o que est sendo ensinado como importante
e tornar isso parte deles mesmos.
Princpio n 4: A boa prtica fornece feedback imediato
Os alunos precisam checar constantemente sua performance para obter um melhor
aproveitamento num determinado curso. Para isso, buscam por contnuos
feedbacks que possam indicar-lhes o que sabem e o que no sabem, ajudando-os a
focar melhor os objetivos da aprendizagem.
Princpio n 5: A boa prtica enfatiza o tempo da tarefa
Aprender como usar bem o tempo crtico tanto para os alunos como para os
professores. As decises tomadas pelos professores sobre a alocao e o
gerenciamento do tempo afetam diretamente a aprendizagem dos alunos. Assim
como os estudantes necessitam de ajuda para gerenciar o tempo necessrio para
uma aprendizagem efetiva, a alocao realstica do tempo pelo professor lhe
proporcionar atingir a eficcia do ensino.
Princpio n 6: A boa prtica comunica altas expectativas
A manuteno de altas expectativas importante para todos os tipos de alunos,
tanto para os menos preparados e/ou motivados, como para os mais brilhantes e
interessados. As expectativas e esforos (formais e informais) dos professores
criam um clima que pode ser desafiador para o aluno ou exigir pouco dele.
Princpio n 7: A boa prtica respeita os diversos talentos e as diferentes
formas de aprendizagem.
Este princpio enfatiza a necessidade de o professor reconhecer os diferentes
talentos e estilos de aprendizagem que os alunos trazem consigo para a faculdade.
Portanto, o professor dever buscar variar constantemente as suas
tcnicas/mtodos de ensino visando atender aos diferentes estilos de aprendizagem
dos alunos e, ainda, ser sensvel s diferenas existentes entre os estudantes,
respeitando sempre as suas individualidades.
Em relao aos mtodos de ensino e algumas ferramentas didticas que os
docentes utilizam no processo de ensino-aprendizagem, Bordenave e Pereira
(2007) destacam:

27

Tcnica

Descrio

Aula Expositiva

Aula
ministrada
nos moldes tradicionais,
normalmente, conduzida pelo docente responsvel
pela disciplina.

Aula Prtica

Aula realizada em ambiente de laboratrio


utilizando alguma ferramenta computacional

Desenvolvimento
Projetos

Um ou mais projetos so propostos turma para


serem desenvolvidos ao longo da disciplina. O
projeto pode ser trabalhado individualmente ou em
grupo dependendo da sua complexidade e do
tempo disponvel, havendo casos em que um
de projeto transcende o tempo de vida de uma
disciplina.

Estudo de Caso

Uma situao real trazida para o ambiente


acadmico no sentido de discutir e vivenciar a
experincia original ocorrida no caso em estudo.

Mini-teste

Testes mnimos feitos ao longo da disciplina,


possibilitando a realizao de um modelo de
avaliao contnua, sem marcao prvia, com o
intuito de forar a turma a estudar continuamente
os contedos ministrados.

Um problema proposto turma e o docente faz a


mediao em busca da soluo mais apropriada. A
PBL (Aprendizagem tcnica PBL tem semelhanas com o estudo de
baseada em Problemas)
caso.

Trabalho em Grupo

Tcnica que pode ser combinada com outras,


visando dar experincia em questes especficas
do trabalho em equipe, permitindo vivenciar a
prtica no gerenciamento de tarefas, cumprimento
de prazos, liderana de equipes, gesto de
conflitos etc.

Seminrio

Temas pertencentes disciplina so distribudos


entre os membros da turma e eles fazem
apresentaes no mbito da turma ou mais geral
sobre o assunto, podendo ser uma atividade
individual ou em grupo.

Experimentao

Os alunos so envolvidos com projetos de


pesquisas cientficas, visando introduzi-los no

28

mundo cientfico atravs dessa integrao entre o


ensino e a pesquisa.
Tabela 4 - Tcnicas de ensino e suas caractersticas
Fonte: Adaptado de Bordenave e Pereira, 2007

Dentre as ferramentas citadas anteriormente, merece destaque em relao


ao ensino da engenharia de software, o projeto, pois na abordagem de
desenvolvimento de projetos, as atividades so centradas nos alunos que
produzem, documentam e avaliam artefatos intermedirios, que podem ter sido
produzidos pelo prprio aluno ou pelos demais alunos da turma, para a concluso
do projeto. Os alunos so estimulados a refletir, formular questes e expressar
dvidas sobre os artefatos produzidos e o professor atua como um orientador dos
projetos.

3.3.

Engenharia de Software em vrios contextos

A engenharia de software est relacionada tanto com a cincia da computao,


como com a engenharia de computao e sistemas de informao. Nesse contexto
(ACM/IEEE,2004 e Sommerville,2011) apresentam essa relao da seguinte forma:
Cincia da computao: se preocupa com as teorias e mtodos que so a
base dos sistemas de software, enquanto a engenharia de software est
preocupada com os problemas prticos da produo de software, como a
viabilidade de desenvolvimento e entrega de um software til. esperado
que os graduado em cincia da computao esteja apto a executar tcnicas
bsicas de engenharia de software, mas no h a necessidade de um
conhecimento profundo como exigido em reas como a teoria da
computao, por exemplo.
Engenharia da computao: est preocupada com a concepo e
construo de computadores e sistemas baseados em computadores.
Engenharia de software parte deste processo mais geral. Os graduados
so capazes de praticar tcnicas de engenharia de software com foco em
software para dispositivos digitais e suas interfaces com os usurios e outros
dispositivos.
Sistemas de Informao: se preocupa com a integrao de solues de
tecnologia da informao e processos de negcios para satisfazer as
necessidades de informao das empresas atravs do uso de processos da
engenharia de software. Os graduados so capazes de desempenhar um
papel fundamental na determinao dos requisitos para os sistemas de
informao da organizao e ser ativo em sua especificao, design e
implementao.

29

Sommerville3 ainda afirma que no faz sentido pensar em engenharia de


software como um "suplemento" para cursos de cincia da computao. Se o
objetivo for cobrir a diversidade na disciplina, ento isso s pode ser feito no mbito
de um curso dedicado que apresenta todas as abordagens para o desenvolvimento
de software.
Para melhor ilustrar como a engenharia de software pode ser vista em vrios
contextos, o currculo SE2004 (ACM/IEEE)4 fornece padres de como suas reas de
conhecimento podem ser aplicadas em diferentes cursos e em diferentes fases do
curso (primeiro ou segundo ano). Para o primeiro ano, ele afirma que essa
abordagem mais cedo ensina ao aluno o hbito de pensar sobre tudo que
necessrio para desenvolver um sistema grande, desde o incio. O aluno
apresentado as duas disciplinas, SE101 e SE102 que introduzem a engenharia de
software, em conjunto com alguma programao e outros conceitos de cincia da
computao.

Figura 4 - Engenharia de Software no primeiro ano

SE101 Introduo Engenharia de Software e Computao


Uma primeira disciplina de engenharia de software e computao para a
engenharia de software. Introduz conceitos fundamentais de programao,
bem como conceitos bsicos de engenharia de software.
SE102 Engenharia de Software e Computao II
Uma segunda disciplina de engenharia de software que aprofunda os
conceitos em engenharia de software e apresenta fundamentos de cincia da
computao.
SE200 Engenharia de Software e Computao III
Continua uma ampla introduo aos conceitos de engenharia de software e
computao.
Para a abordagem do segundo ano, onde os alunos so apresentados
primeiro a disciplinas de cincia da computao, o SE2004 afirma que a
programao uma habilidade fundamental exigida por todos os engenheiros de
software; ela tambm uma habilidade que preciso muita prtica para se tornar
um bom programador. Neste contexto, o aluno comea com uma das sequncias
iniciais de disciplinas de cincia da computao e a disciplina de engenharia de
software comea no segundo ano.
3
4

"Systems, software and technology." <http://iansommerville.com/systems-software-and-technology/>


"SE2004, Software Engineering 2004 - IEEE Computer Society." <http://sites.computer.org/ccse/>

30

Figura 5 - Engenharia de Software no segundo ano

SE201 Introduo Engenharia de Software


Esta uma disciplina central, apresentando os princpios e conceitos bsicos
de engenharia de software. Aps a concluso desta disciplina, os alunos
sero capazes de fazer modelagem e projeto bsico, especialmente usando
Linguagem de Modelagem Unificada (UML). Eles tambm tero uma
compreenso bsica de requisitos, arquitetura de software e testes.
Aps a introduo dos tpicos de engenharia do software no primeiro
ou no segundo ano, o SE2004 apresenta duas sequncias de disciplinas
essenciais para que o ensino da engenharia de software seja eficaz. O
objetivo de separar duas sequncias essenciais se d ao fato de que
algumas instituies podem ter disciplinas que j se encaixem em um dos
pacotes e que gostaria de reutilizar o mximo possvel. Por exemplo, o
pacote I possui um campo de requisitos, enquanto o pacote II distribui este
assunto em outras disciplinas. O pacote II, no entanto, tem um campo de
testes puro, enquanto o pacote I tem uma disciplina que abrange tanto os
testes como a garantia da qualidade.

Figura 6 - Sequncias de ensino da engenharia de software

SE211 Construo de Software


Abrange questes de design de baixo nvel, incluindo abordagens formais.
SE212 Abordagem de Interao Humano-Computador
Abrange uma ampla variedade de temas relacionados com a concepo e
avaliao de interfaces de usurio, bem como uma base psicolgica
necessria para entender as pessoas.
SE311 Projeto e Arquitetura de Software
Design de software avanado, em particular os aspectos relacionados com
sistemas distribudos e arquitetura de software.

31

SE321 Garantia de Qualidade e Testes de Software


Ampla cobertura de qualidade e teste de software.
SE322 Anlise de Requisitos de Software
Cobertura ampla de requisitos de software, aplicado a uma variedade de
tipos de software.
SE323 Gesto de Projetos de Software
Disciplina aprofundada sobre gerenciamento de projetos. Supe-se que pelo
tempo da disciplina(ela ocupa a carga horria que seria relativa a duas
disciplinas), os alunos vo ter uma compreenso ampla e profunda de outros
aspectos da engenharia de software.
O SE2004 ainda afirma que uma disciplina essencial para a
engenharia de software o SE400 Capstone Project, que fornece aos alunos
uma significativa experincia de projeto no qual eles podem integrar o que
aprenderam anteriormente, trabalhando em grupos. Esta disciplina deve ter
durao de dois semestres. A seguir apresentada uma estrutura geral para
um curso de computao.
1 ano
1
2
semes semes
tre
tre

2 ano
2
1
semes
semestre tre

3 ano

4ano

1
semes
tre

2
semes
tre

1
semes
tre

2
semes
tre

Sequncia de introduo
Computao
CS

CS

CS

SE400

SE400

CS

CS

MA

MA

MA

SE

SE

TE

CS

TE

SE200/20
1
SE

SE

SE

TE

TE

TE

TE

CS

CS

TE

TE

TE

SE

Disciplinas tcnicas (TE)

Ncleo de disciplinas relacionadas ao curso vigente

Disciplinas de Matemtica
(MA)
Ncleo de disciplinas de matemtica
Disciplinas de Engenharia Ncleo de disciplinas relacionadas a engenharia de
de Software (SE)
software
Disciplinas
Computao (CS)

de Ncleo de disciplinas de fundamentos de engenharia,


computao essencial e cincia da computao
Figura 7 - Estrutura geral para um curso de computao
Fonte: Adaptado de ACM/IEEE (2004)

32

3.4.

Consideraes Finais

A engenharia de software, ao contrrio da cincia da computao, precisa de


pensamento divergente, onde mltiplas respostas so possveis e os alunos devem
encontrar uma soluo que nica quando comparada com solues de outros
alunos. O pensamento divergente incentivado atravs da atribuio de problemas
que tm muitas solues. A engenharia uma disciplina extremamente
colaborativa, e os estudantes de engenharia de software so melhor ensinados com
a aprendizagem colaborativa (Jeff Offutt, 2013). Os alunos devem ser encorajados a
trabalhar para resolver os problemas em conjunto, e aprender juntos.
Na engenharia de software a noo de sucesso varia muitas vezes de acordo
com o contexto e isto sugere que os docentes devem utilizar avaliaes
diferenciadas. Levando isto em considerao, Jeff Offutt diz que Em vez de cada
estudante tentar acumular exatamente os mesmos pontos para os mesmos
requisitos, ns [como educadores] poderamos oferecer um menu de recursos
potenciais e atributos para os alunos escolherem, cada um dos quais acumula um
certo nmero de pontos.
H um consenso de que o ensino da engenharia de software, tradicional e
focado em metodologias, deve ser transformado para refletir a demanda por
software mais complexo (Bakeret al., 2005). Os mtodos de ensino podem ser
ajustados para casos particulares e vrias reas. No caso da engenharia de
software, se precisa de elementos complementares que envolvem
princpios(conceitos que fundamentam a rea), prtica(tcnicas de resoluo de
problemas), aplicaes(reas de conhecimento em que os princpios e prticas
encontram a sua melhor expresso) e matemtica(a base formal que torna possvel
compreender todo o resto).
No Centro de Informtica da Universidade Federal de Pernambuco, a
disciplina de Engenharia de Software ensinada no curso em que a computao
uma atividade-meio(Sistemas de Informao) e nos cursos cuja computao uma
atividade-fim (Cincia da Computao e Engenharia de Computao). Para
caracterizar as habilidades dos alunos egressos das disciplinas de engenharia de
software e revelar os desafios e limitaes do ensino da mesma, o captulo a seguir
pretende fazer uma descrio do cenrio atual do centro.

33

4.

Metodologia

A presente pesquisa caracterizada como descritiva, j que por meio de tcnicas


padronizadas de coleta de dados, foram extrados conhecimentos sobre o ensino da
engenharia de software no Centro de Informtica (CIn) da Universidade Federal de
Pernambuco. Como definido por Gil (2008), o uso de questionrio uma tcnica de
investigao composta por um conjunto de questes que so submetidas a pessoas
com o propsito de obter informaes sobre conhecimentos, crenas, sentimentos,
valores, interesses, expectativas, aspiraes, temores, comportamento presente ou
passado, etc. Construir um questionrio consiste basicamente em traduzir objetivos
da pesquisa em questes especficas. As respostas a essas questes que iro
proporcionar os dados requeridos para descrever as caractersticas da populao
pesquisada.
Por fim, a abordagem adotada na anlise dos dados de carter quantitativa
e qualitativa. Quantitativa porque o questionrio disponibilizado apresenta questes
objetivas, e nesta abordagem foram usadas anlises estatsticas nos dados
coletados. A abordagem qualitativa foi usada para entender como ocorre o processo
de ensino-aprendizagem no CIn.

4.1.

Planejamento e Aplicao do S
urvey

Um survey no apenas um instrumento para a coleta de informaes, ele um


mtodo de pesquisa abrangente para a coleta de informaes que visam descrever,
comparar ou explicar conhecimentos, atitudes e comportamentos (Kitchenham e
Pfleeger, 2008). A finalidade de um survey produzir estatsticas, ou seja,
descries quantitativas ou numricas de alguns aspectos da populao de estudo.
A partir disto, este survey pretende coletar informaes sobre as opinies de
alunos e professores do Centro de Informtica e dos profissionais da rea de
engenharia de software em Recife-PE, representados por uma amostra, em relao
ao que se ensinado e aprendido nos cursos de graduao.

4.2.

Pblico-alvo

Como pblico-alvo do survey, definiu-se:


Professore(a)s que lecionam/lecionaram disciplinas de engenharia de
software no Centro de Informtica da UFPE;
Aluno(a)s concluintes de alguma disciplina de engenharia de software no
Centro de Informtica da UFPE; e
Profissionais que atuem em alguma rea relacionada a engenharia de
software em Recife, Pernambuco.

34

Foram excludos os participantes que no atendiam estes critrios ou que no


estavam motivados a participar da pesquisa. Estes critrios de incluso e
excluso foram divulgados no protocolo do survey.

4.3.

Questionrios

Foram utilizados como instrumentos para aplicao do survey 3 (trs) questionrios


auto administrados, com questes de pesquisa que tinham um conjunto de
respostas pr-definidas. As questes de pesquisa, principalmente para o
questionrios administrado aos profissionais de engenharia de software, foram
fortemente baseadas no survey aplicado por Lethbridge(2000). Revisando os
currculos de referncia da ACM/IEEE(2014) e o SWEBOK(2004), identificaram-se
15 reas de conhecimento: 1) Requisitos de Software 2) Design de Software
3)Construo de Software 4)Teste de Software 5)Manuteno de Software
6)Gerenciamento de Configurao 7)Gerenciamento de Engenharia de Software
8)Processos de Engenharia de Software 9)Modelos e Mtodos de Engenharia de
Software 10)Qualidade de Software 11)Prtica Profissional de Engenharia de
Software
12)Economia de Engenharia de Software
13)Fundamentos de
Computao 14)Fundamentos de Matemtica 15)Fundamentos de Engenharia.
Para as abordagens do ensino de engenharia de software, identificou-se o
trabalho de Prikladnicki (2009), que destaca os principais mtodos de ensino e
abordagens de avaliao adotadas nas disciplinas de Engenharia de Software no
Brasil. Tomando esta pesquisa como base, foram selecionadas para anlise os
seguintes elementos de ensino: A) Abordagens de Ensino; e B) Estratgias de
Avaliao.
Estes questionrios foram disponibilizados na web,utilizando a ferramenta
Google Forms, que permite a coleta de informaes atravs de uma pesquisa
personalizada que automaticamente ligada a uma planilha. Sua divulgao foi
realizada em listas de e-mails, grupos da rea de engenharia de software e em
redes sociais.
4.3.1.

Survey com professores das disciplinas de engenharia de


software

A Tabela 5 mostra as 3 principais questes de pesquisa feita aos professores das


disciplinas de engenharia de software a fim de identificar quais reas de
conhecimento e abordagens de ensino esto sendo adotadas.

35

Questo

Opes de Resposta

Q1. Quais currculos de referncia so


adotados na definio da ementa da
sua disciplina de engenharia de
software?

() Curriculum Guidelines da ACM/IEEE


() Currculo de Referncia da SBC
()Currculo de Referncia do MEC
() Outro

Q2. Quais dessas reas de


conhecimento voc contemplou na
ementa da sua disciplina de Engenharia
de Software?

Para cada uma das 15 reas de


conhecimento do SWEBOK o professor
deveria marcar se ela foi ou no
contemplada.

Q3. Quais processos de ensino voc


adotou na sua disciplina de Engenharia
de Software?

A. Abordagens de ensino(aulas
expositivas, uso de jogos,etc);
B. Estratgias de avaliao(provas
objetivas, confeco de artigos,
implementao de projeto, etc)

Tabela 5 - Questes e opes de respostas para os professores

4.3.2.

Survey com alunos concluintes de alguma disciplina de


engenharia de software

A Tabela 6 mostra as 3 principais questes de pesquisa feita aos alunos concluintes


das disciplinas de engenharia de software.
Questo

Opes de Resposta

Q1. Quais as reas de conhecimento


da Engenharia de Software que voc
mais aprendeu ao longo da(s)
disciplina(s)

Dentro das 15 reas de conhecimento


do SWEBOK o aluno deveria responder
em quais obteve maior conhecimento.

Q2. Quais os principais problemas que


voc pode destacar que influenciaram
negativamente seu aprendizado em
Engenharia de Software?

Algumas das opes de respostas


eram:
A. Distncia entre o que se ensina
e a realidade existente no
mercado de trabalho
B. Pouco interesse do professor e
aulas puramente tericas
C. Pouco tempo para muito
contedo

Q3. Quais as reas de conhecimento


voc acha que deveriam receber maior
nfase na(s) disciplina(s) de
Engenharia de Software?

Dentro das 15 reas de conhecimento


do SWEBOK o aluno deveria responder
quais deveriam receber maior nfase
por parte do professor.

Tabela 6 - Questes e opes de respostas para os alunos

36

4.3.3.

Survey com profissionais da rea de engenharia de


software

A Tabela 7 mostra as 4 principais questes de pesquisa feita aos profissionais de


engenharia de software. Estas questes foram retiradas de um questionrio
utilizado por (Lethbridge, 2000) que visava descobrir qual conhecimento
importante para um profissional de software.
Questo

Opes de Resposta

Q1. Quanto voc aprendeu sobre os


tpicos de engenharia de software
durante a graduao?

Para cada uma das 10 reas de


conhecimento do SWEBOK, o
profissional deveria responder:
0. Aprendi nada
1. Tornei-me vagamente familiar
2. Aprendi o bsico
3. Me tornei funcional
(conhecimento moderado)
4. Aprendi muito
5. Aprendi em profundidade, me
tornei um especialista (aprendi
quase tudo)

Q2. Qual o seu atual conhecimento


sobre isso, considerando que voc
aprendeu isso no emprego e quanto
voc esqueceu-se desde a sua
graduao?

Para cada uma das 10 reas de


conhecimento do SWEBOK, o
profissional deveria responder:
0. Sei nada
1. Estou vagamente familiarizado
2. Sei o bsico
3. Estou funcional (conhecimento
moderado)
4. Sei muito
5. Sei em profundidade, Sou um
especialista (sei quase tudo)

Q3. Este assunto especfico foi til pra


voc na sua carreira?

Para cada uma das 10 reas de


conhecimento do SWEBOK, o
profissional deveria responder:
0. Completamente intil
1. Quase nunca usei
2. Ocasionalmente til
3. Moderadamente til - em
determinadas atividades
4. Muito til
5. Essencial

Q4. Quanto seria til aprender mais

Para cada uma das 10 reas de

37

sobre este assunto na graduao?

conhecimento do SWEBOK, o
profissional deveria responder:
0. Intil
1. Dificilmente til
2. Possivelmente til
3. Moderadamente til
4. Importante aprender mais
5. Essencial aprender mais

Tabela 7 - Questes e opes de respostas para os profissionais de engenharia de software

4.4.

Os participantes do S
urvey

Os dados foram coletados durante o perodo de 28 de outubro a 26 de novembro de


2016. Durante esse perodo, recebeu-se respostas completas de 41 participantes,
sendo 5 professores, 32 alunos e 4 profissionais.
Quanto ao curso de graduao onde os professores lecionam ou lecionaram
disciplinas de engenharia de software, 60% se referem ao curso de cincia da
computao e 40% ao curso de engenharia da computao. Em relao ao
semestre em que a disciplina foi lecionada, o semestre mais antigo foi 2000.1 e o
mais atual 2016.2. 80% dos professores possuem mais de 6 anos de atividade
docente, enquanto 20% possuem atividade docente que vai de 4 a 6 anos.
Para os alunos participantes, 65,6% so do curso de sistemas de informao,
21,9% de engenharia da computao e 12,5% de cincia da computao. Em
relao ao semestre em que foi cursada a disciplina de engenharia de software, o
semestre mais antigo foi 2012.1 e o mais atual 2016.2. Dos 32 alunos, 53,1%
responderam que tinham pouca habilidade em desenvolvimento de software antes
de cursar alguma disciplina de engenharia de software.
Para os profissionais, 50% vieram do curso de sistemas de informao, 25%
do curso de cincia da computao e 25% de outros cursos relacionado a rea de
tecnologia da informao. Em relao o tempo de atuao na rea de engenharia
de software, 25% tm menos de 1 ano de atuao, 50% tem de 2 a 3 anos e 25%
tem mais de 5 anos na rea.

38

5.

Resultados dos Questionrios


5.1.

Professores
5.1.1.

Planejamento pedaggico das disciplinas de engenharia de


software

Em relao a etapa do planejamento pedaggico adotado pelos professores que


lecionam disciplinas em que h pr-requisitos entre 2 disciplinas D1 e D2
ministradas por 2 docentes P1 e P2, 100% dos professores responderam que o
planejamento ocorre levando em conta os contedos das 2 disciplinas (D1 e D2) de
forma isolada por cada um dos responsveis (P1 e P2) pelas disciplinas
respectivamente.
5.1.2.

Contedo programtico das disciplinas de engenharia de


software

Quando questionados se o contedo programtico previsto para a disciplina de


engenharia de software trabalhado com a qualidade desejada e necessria, 80%
dos professores responderam que no e 20% dos professores responderam que
esto satisfeitos com a qualidade da disciplina.
5.1.3.

Carga Horria das disciplinas de engenharia de software e


aptido dos alunos

A mdia semestral de horas da(s) disciplina(s) ensinada(s) na rea de engenharia


de software de at 60h para 60% dos professores, de at 75h para 20% dos
professores e mais de 75h para 20% dos professores.
Para 80% dos professores esta carga horria vista como suficiente para
que se trabalhe os contedos necessrios, e 20% acham que essa carga horria
insuficiente.
Com relao a aptido dos alunos para atuarem como engenheiros de
software, 80% dos professores acreditam que os alunos ainda no esto aptos, mas
com um pouco mais de aperfeioamento isto ser possvel, e 20% dos professores
acreditam que definitivamente os alunos no esto aptos a atuar na rea.
5.1.4.

Currculos de Referncia
engenharia de software

adotados

na

ementa

de

Em relao aos currculos de referncia adotados pelos professores, observa-se


que 40% utilizam o currculo de referncia da SBC, 40% utilizam o Curriculum
Guidelines da ACM/IEEE e 20% indicou que no utiliza currculo algum. Tambm foi

39

dada como possvel resposta, o currculo de referncia do MEC, mas nenhum


professor indicou utiliz-lo.

Grfico 1 - Currculos de referncia adotados para ensino da engenharia de software

5.1.5.

reas de conhecimento contempladas na ementa de


Engenharia de Software

H vrias formas de destacar a relevncia de uma rea de conhecimento, mas


neste survey, a forma usada ser a quantidade de adoo de uma rea,
considerando-se como relevantes as reas que so adotadas por mais de 60% dos
professores. No Grfico 2, observa-se que as reas Requisitos de Software, Design
de Software, Construo de Software e Teste de Software so consideradas as
reas de maior relevncia. Tambm observa-se que as reas de Economia de
Engenharia de Software, Fundamentos de Matemtica e Fundamentos de
Engenharia so as reas consideradas de menor relevncia.

Grfico 2 - Relevncia das reas de conhecimento da engenharia de software

40

5.1.6.

Abordagens de Ensino das disciplinas de engenharia de


software

Em relao s abordagens de ensino utilizadas pelos professores, 60% dos


professores adotam abordagens de ensino que focam nos alunos, como
execuo de projetos, 40% adotam o uso de analogias, 20% usam jogos, 20%
utilizam dinmicas de grupo, 40% adotam discusso de casos prticos; 80% adotam
abordagens onde o professor o principal fornecedor da informao, como aulas
expositivas e 40% adotam aulas de laboratrio. O Grfico 3 apresenta os processos
de ensino que poderiam ser escolhidos pelos professores e suas porcentagens de
escolha.

Grfico 3 - Abordagens de ensino

Quanto aos mecanismos de avaliao utilizados ao longo da disciplina, o


Grfico 4 demonstra que os mais relevantes, levando em considerao a
quantidade de adoo so provas subjetivas e implementao de projetos.
importante ressaltar que enquanto 60% dos professores veem o projeto de software
como forma de ensino, 100% deles o veem como um mecanismo de avaliao.

41

Grfico 4 - Mecanismos de avaliao

5.1.7.

Desafios do ensino em Engenharia de Software

Em relao aos principais desafios de ensino enfrentados pelos professores,


observa-se no Grfico 5 que mais da metade deles (60%) informaram que o
desinteresse dos alunos, por conta das aulas tericas dificulta o ensino. Dentre os
desafios que foram marcados como Outros, esto: dificuldade de encontrar
clientes reais para levantamento de requisitos e fazer com que os alunos vejam o
valor prtico do que est sendo apresentado a eles, j que os problemas que a
engenharia de software ataca surgem muito mais naturalmente em contextos que
extremamente difcil emular em sala de aula.

Grfico 5 - Principais desafios no ensino da engenharia de software

42

5.2.

Alunos
5.2.1.

Carga horria
software

Habilidade em desenvolvimento de

Em relao a habilidade em desenvolvimento de software depois de cursar a(s)


disciplina(s) de engenharia de software, 46,9% afirmaram que sua habilidade
passou a ser boa, 40,6% adquiriu habilidade regular, 6,3% afirmaram possuir pouca
habilidade, 3,1% nenhuma habilidade e 3,1% grande habilidade.
Quanto a carga horria para as disciplinas de engenharia de software, 75%
dos alunos afirmaram que o tempo no suficiente para adquirir um bom
aprendizado, e 25% afirmaram que esto satisfeitos com a carga horria.
5.2.2.

Ferramentas Didticas das disciplinas de engenharia de


software

Quanto s ferramentas didticas utilizadas pelos professores, agora vistas pela


percepo dos alunos, o Grfico 6 mostra que 100% dos professores utilizam
projetos ao longo da disciplina, 90,6% utilizam aulas expositivas e 62,2% adotam
aulas prticas.

Grfico 6 - Ferramentas Didticas

Em relao aos projetos desenvolvidos ao longo das disciplinas de


engenharia de software, 71,9% informaram que o projeto serviu apenas para obter a
nota da disciplina, 15,6% afirmaram que o projeto serviu para viabilizar um produto
que foi para o mercado e 12,5% indicaram que o projeto teve outras finalidades,
como complementar as atividades e os conhecimentos adquiridos no decorrer da
disciplina, e conceder uma experincia mnima no desenvolvimento de uma
aplicao.

43

5.2.3.

Aprendizagem em Engenharia de Software

Observa-se que a rea de Requisitos de Software possui a maior porcentagem de


aprendizado contando com 90,6% dos alunos assinalando que esta foi a rea que
mais aprenderam ao longo das disciplinas.
Conforme apresentado no Grfico 7, observa-se que, alm da rea de
Requisitos de Software, as reas de Modelos e Mtodos de Engenharia de
Software, Processos de Engenharia de Software e Teste de Software possuem
grande aprendizagem, acima de 50%. J as reas de Prtica Profissional de
Engenharia de Software, Fundamentos de Computao e Fundamentos de
Engenharia apresentam menor aprendizagem, abaixo de 20%.

Grfico 7 - Percentual de aprendizagem por rea de conhecimento

Sobre as reas de conhecimento em que o aluno obtiveram maior nvel de


aprendizagem, 68,8% deles afirmaram acreditar que estas so as principais reas
em que um engenheiro de software deve ter conhecimento, e 31,1% acreditam que
o seu maior nvel de aprendizagem foi em uma rea considerada como no sendo
principal para um engenheiro de software.
Em relao a estar apto a entrar no mercado de trabalho levando em
considerao os contedos aprendidos, 68,8% informaram estarem aptos contra
31,1% que informaram no estarem aptos. Ainda com relao aos contedos de
engenharia de software, 50% informaram que possuem um bom domnio do
contedo, 37,5% disseram ter um domnio regular, 9,4% apontaram seu domnio de
contedo como ruim e 3,1% informaram no ter domnio algum dos contedos de
engenharia de software.
Conforme apresentado no Grfico 8, observa-se que 71,9% dos alunos
acreditam que a rea de Qualidade de Software deveria receber maior nfase por

44

parte dos professores, seguida pelas reas de Teste de Software(65,6%) e


Construo de Software(62,1%).

Grfico 8 - reas de conhecimento que deveriam receber maior nfase

5.2.4.

Desafios do Aprendizado em Engenharia de Software

Em relao aos principais desafios do aprendizado enfrentados pelos alunos,


observa-se no Grfico 9, que mais da metade deles (78,1%) informaram que o
pouco tempo para muito contedo o principal problema que influencia
negativamente no aprendizado, seguido pela distncia entre o que se ensina e a
realidade existente no mercado de trabalho(34,4%).
Dentre os desafios marcados como Outros esto: os alunos foram
obrigados a aprender uma nova linguagem em pouco tempo para implementar um
sistema, e por isso no obtiveram xito na implementao do mesmo; poucas
disciplinas de engenharia de software, sendo que esta rea muito mais aderente
ao que ser visto no mercado de trabalho, contra muitas disciplinas de reas menos
aderentes; resoluo de problemas prprios quando engenheiros de software
resolvem problemas de outras pessoas; e falta de resumos, summaries e Cheat
Sheets que os profissionais usam no dia a dia durante a fase de aprendizado.

45

Grfico 9 - Principais problemas que influenciam negativamente no aprendizado

5.3.

Profissionais

Como a amostra dos profissionais que responderam ao questionrios no tida


como considervel (4 participantes), os resultados aqui apresentados so tratados
como amostras no probabilsticas, onde h o risco da amostra ser parcial, ou
seja, no pode ser representativa do pblico-alvo (Kitchenham e Pfleeger, 2008).
Assim, seus resultados no podem ser usados para a obteno de concluses
realsticas.
5.3.1.

Importncia geral das reas de Engenharia de Software

A importncia das reas de conhecimento foi calculada sobre a proporo de


respostas dos participantes, que receberam trs pontos (indicando, que a utilidade
do tpico era no mnimo moderada) ou mais para a questo 3: Este assunto
especfico foi til pra voc na sua carreira? No Grfico 10 mostrada a ordem das
reas de conhecimento por importncia.

46

Grfico 10 - Importncia das reas de engenharia de software

5.3.2.

Importncia dada s reas de conhecimento de Engenharia


de Software no ensino da graduao

Kitchenham (2005) definiu o gap de conhecimento como a diferena entre a


educao formal e a importncia do tpico. Usando esta definio, definimos o gap
de conhecimento na graduao como sendo: Gap de Conhecimento =
(porcentagem de respostas da pergunta Q1 que receberam trs pontos ou mais) (porcentagem das respostas da pergunta Q3 que receberam trs pontos ou mais).
Assim, um valor negativo indica que a graduao deixou a desejar em relao
importncia dada rea de conhecimento.
rea de Conhecimento

Rank de Importncia

Gap de conhecimento
(Q1-Q3)

-75

Economia de Engenharia
de Software

12

-75

Prtica Profissional em
Engenharia de Software

-50

Fundamentos de
Matemtica

15

-50

Fundamentos de
Computao

-50

Design de Software

47

Gerenciamento de
Configurao

-50

Teste de Software

10

-50

Construo de Software

-25

Manuteno de Software

-25

Gerenciamento de
Engenharia de Software

-25

Fundamentos de
Engenharia

11

-25

Modelos e Mtodos de
Engenharia de Software

14

-25

Processos de Engenharia
de Software

Requisitos de Software

Qualidade de Software

13

Tabela 8 - Gap de conhecimento das reas de engenharia de software

5.3.3.

Importncia de se aprender mais sobre as reas de


conhecimento da Engenharia de Software na graduao

Em relao s reas que os profissionais da engenharia de software


acreditam que devem receber maior ateno quanto ao seu ensino na graduao,
que receberam 3 pontos (indicando, que a importncia de se aprender mais no
mnimo moderada) ou mais, se destacam as reas de Prtica Profissional da
Engenharia de Software, Design de Software, Manuteno de Software, Teste de
Software, Gerenciamento de Configurao, Gerenciamento de Engenharia de
Software, Economia de Engenharia de Software e Qualidade de Software que so
unanimidade em importncia com 100% cada uma.

48

Grfico 11 - reas que devem receber maior ateno quanto ao seu ensino na graduao

5.3.4.

Importncia dos tpicos em relao a outras pesquisas

Para analisar esta questo, foi feita uma comparao e classificao dos
tpicos ordenados pela importncia da pesquisa aqui mostrada, com a classificao
das pesquisas realizadas por Lethbridge,2000 e Kitchenham, 2005. Entretanto,
importante ressaltar que a importncia foi avaliada de forma diferente em cada uma
das pesquisas. No presente estudo, assim como no estudo de Kitchenham, a
importncia foi calculada sobre a proporo de respostas dos participantes, que
receberam trs pontos (indicando, que a utilidade do tpico era no mnimo
moderada) ou mais para a questo 3.
No estudo de Lethbridge, vrias maneiras de avaliar a importncia foram
aplicadas (Lethbridge, 2000). No entanto, a apresentao da lista completa dos
tpicos est disposta pelo clculo do valor mdio das respostas das questes 3 e 4.
Outro aspecto a ser considerado a variao dos tpicos considerados em
cada uma das pesquisas. Em razo da quantidade diferente de tpicos nas
pesquisas, foram considerados os tpicos de engenharia de software que estavam
entre os 5 mais importantes da pesquisa de Lethbridge, e os tpicos que estavam
entre os 5 mais importantes com relao aos resultados aqui apresentados, e os de
Kitchenham.
Lethbridge, 2000

Kitchenham et al., 2005

Design de software geral

Concepo essencial de
subsistema

Construo de Software

Mtodos de engenharia
de software

Gerenciamento de
software

Manuteno de Software

49

Gerenciamento de
software

Mtodos de engenharia
de software

Requisitos de Software

Concepo essencial de
subsistema

Design de software geral

Prtica Profissional de
Engenharia de Software

Tcnicas de aplicao
especializadas

Tcnicas de aplicao
especializadas

Processo de Software

Tabela 9 - Importncia dos tpicos de engenharia de software em relao a outras pesquisas

5.

Discusses dos Resultados Obtidos


5.2.1.

Sobre a adoo de currculos de referncia

Em relao a adoo de currculos de referncia, observa-se que 80% dos


professores adota algum currculo de referncia para guiar sua ementa nas
disciplinas de engenharia de software. de grande importncia o uso destes
currculos, pois eles so elaborados por rgos de grande representatividade na
rea, como a ACM e IEEE Computer Society. Alm disso, eles tem o intuito de
enfrentar os desafios da rpida mudana da paisagem tecnolgica da computao e
fornecer uma referncia importante para o estabelecimento da engenharia de
software como uma disciplina reconhecida de engenharia, alm de definir o perfil
profissional e acadmico esperado para os estudantes da rea. Tambm
apresentam uma estruturao e detalhamento das matrias, como carga horria,
tpicos a serem abordados e aprendizagens esperadas para cada um destes
tpicos. Sem a referncia destes currculos, os professores podem criar ementas
que no condizem com as diretrizes nacionais e internacionais de ensino, e
possivelmente, seus alunos no atendero as demandas do mercado e no
possuiro o conhecimento que se espera para a rea.
5.2.2.

Sobre a relevncia dos tpicos

Identificando as 5 reas de conhecimento mais adotadas pelos professores nas


ementas das disciplinas de engenharia de software, possvel correlacionar o
percentual de reas relevantes com o percentual de aprendizagem dos alunos,
conforme pode ser visto no Grfico 12.

50

Grfico 12 - Correlao entre maior relevncia e aprendizagem

Acredita-se que a relevncia da rea de Requisitos de Software se deve ao


fato de que essa rea representa as necessidades reais dos usurios, clientes e
outras partes interessadas afetadas por um sistema. Para que essas necessidades
sejam atendidas, o profissional de engenharia de software dever ter conhecimento
em elicitao e anlise das necessidades das partes interessadas e a criao de
uma descrio adequada do comportamento e qualidades do sistema desejado,
juntamente com restries e suposies relevantes. Neste contexto, pode ser
inserido a segunda reas mais relevante, Testes de Software.
Uma propriedade essencial de um requisito de software que deve ser
possvel validar que o produto acabado o satisfaz. Requisitos que no podem ser
validados so apenas "desejos". Uma tarefa importante , portanto, o planejamento
de como testar cada requisito. Na maioria dos casos, a concepo de testes de
aceitao faz isso para a forma de como os usurios finais tipicamente realizam
negcios usando o sistema [SWEBOK, 2004].
A terceira rea mais relevante, Design de software, consiste em duas
atividades que se encaixam entre a reas de Requisitos de Software e a Construo
de Software. So elas: desenho arquitetnico de software (s vezes chamado
design de alto nvel), que desenvolve estrutura e organizao de alto nvel do
software e identifica os vrios componentes; e design detalhado do software, que
especifica cada componente em detalhes suficientes para facilitar sua construo.
[SWEBOK, 2004].
Por fim, Modelos e Mtodos de Engenharia de Software usa tcnicas para
ajudar engenheiros de software a entenderem e comunicarem aspectos do software
para os stakeholders, como tambm fornece uma abordagem organizada e
sistemtica para o desenvolvimento de softwares que permite ao engenheiro de

51

software visualizar os detalhes do software e, finalmente, transformar a


representao em um conjunto de trabalho de cdigo e dados.
Assim, como possvel correlacionar as reas mais relevantes, tambm
possvel correlacionar o percentual de reas menos relevantes com o
percentual de baixa aprendizagem dos alunos, como mostra o Grfico 13.

Grfico 13 - Correlao entre menor relevncia e aprendizagem

O fato das reas de Manuteno de Software, Fundamentos de Computao


e Prtica Profissional de Engenharia de Software serem consideradas menos
relevantes para os professores, impacta diretamente na aprendizagem dos alunos,
que demonstram baixa aprendizagem , 25%, 12,5% e 6,3% respectivamente.

5.1.

Consideraes Finais

Neste captulo foram abordados aspectos dos processo de ensino-aprendizagem no


Centro de Informtica (CIn). Por meio dos resultados obtidos, certificou-se que a
relevncia dada pelos professores a determinadas reas de conhecimento da
engenharia de software impacta diretamente no grau de aprendizagem dos alunos.
Devido a no obteno de quantidade de respostas considervel no
questionrio dos profissionais da rea de engenharia de software, e visto que a
quantidade de alunos excludos, cerca de 1200, foi maior que a amostra obtida, isto
impactou diretamente a abrangncia e o resultado do survey. Uma amostra
inadequada pode levar a resultados que no so estatisticamente significativos. O
prximo captulo conclui a pesquisa, fazendo uma comparao objetiva do cenrio
atual do CIn com os mtodos e tcnicas descritos.

52

6.

Concluso

Com o estudo realizado foi possvel verificar que embora a maior parte dos
professores acreditem que a carga horria da sua disciplina seja suficiente, eles no
conseguem trabalhar seu contedo da forma desejada. Isso pode dever-se ao fato
de que os contextos em que a engenharia de software se insere, seja difcil de
trabalhar em sala de aula, o que torna as aulas tericas de difcil entendimento e
no desperta interesse nos alunos. Embora abordagens alternativas de ensino que
foquem nos alunos e os ajudam a aprender de maneira mais efetiva sejam
fortemente recomendadas para o ensino da engenharia de software, os professores
costumam utilizar estas abordagens como forma de avaliao e no de ensino.
A pesquisa tambm averiguou que as 5 reas de conhecimento consideradas
relevantes so totalmente complementares, sendo possvel correlacionar seus
tpicos. Os professores tendem a ministrar mais adequadamente os tpicos ligados
a essas reas porque estes so mais compreensveis do que os tpicos de outras
reas (como Economia de Engenharia de Software). Para as estratgias de ensino,
deve-se ter uma ateno maior para os tpicos de Manuteno de Software e
Prtica Profissional de Engenharia de Software que apesar de consideradas
relevantes pelos profissionais da rea, apresentaram um baixo ndice de
aprendizagem pelos alunos entrevistados.
Este estudo visou ainda fazer uma comparao objetiva entre os mtodos e
tcnicas descritos. Esta comparao ser apresentada a seguir:
Enquanto a mdia de horas para as disciplinas de engenharia de software
apresentadas no currculo da ACM/IEEE, 2014 de 46,7h, a mdia de horas
das disciplinas ministradas no Centro de Informtica(CIn) de 67h. Apesar
da mdia de horas do CIn ser maior, h uma grande diferena quanto
importncia dada a determinadas reas de conhecimento. Por exemplo,
enquanto a disciplina de qualidade de software na ACM/IEEE, 2014 dispe
de apenas 10h, no Centro de Informtica esta disciplina ministrada em at
60h.
O uso de projetos (ACM/IEEE, 2004) para ensinar e/ou avaliar os alunos,
comumente usado no Centro de Informtica. Porm, sua durao de
apenas um semestre, quando o indicado que o projeto seja desenvolvido
nos dois ltimos semestres do curso de graduao, para que o aluno tenha
tempo suficiente para praticar as habilidades e aplicar o conhecimento
adquirido ao longo do curso. Para disciplinas de engenharia de software que
ocorram antes do ltimo ano do curso de graduao, indicado o uso de
atividades baseadas em projetos, onde algumas atividades de aprendizado
devem ser criadas para imitar projetos tpicos da indstria.

53

Os alunos por sua vez, precisam ter a viso de que, como os engenheiros de
software, eles tm de produzir artefatos de utilidade genuna(ACM/IEEE,
2004) e no apenas para receber uma nota. Com isso em mente, a
experincia da disciplina se torna mais rica e ajuda a criar um ambiente que
favorvel produo de graduados de alta qualidade.
Embora tenhamos de ter muito cuidado ao interpretar os resultados, devido
ao pequeno tamanho da amostra e a sua restrio a profissionais, os resultados
podem ser relevantes como base para reexaminar as competncias profissionais
necessrias que devem ser aprendidas na graduao para se ter sucesso na rea
de engenharia software.

6.1.

Trabalhos Futuros

Para melhorar o cenrio de ensino identificado neste survey, recomenda-se para


trabalhos futuros relacionados ao tema, uma proposta para a integrao eficaz de
conceitos e prticas no ensino da engenharia de software , a fim de diminuir o gap
de conhecimento, desenvolver prticas de ensino que foquem nos tpicos
considerados relevantes para a formao profissional dos alunos e que realmente
desenvolvam competncias e habilidades profissionais, e que reflitam a realidade do
contexto no qual os alunos atuaro quando ingressarem no mercado de trabalho.
Como trabalho futuro, tambm recomenda-se o uso de inteligncia artificial
para a criao de um bot assistente que auxilie os estudantes com questes de
rotina da disciplina de engenharia de software, fazendo lembretes de datas de
entrega de trabalhos e sendo um apoio aos monitores e professores.

54

7.

Referncias Bibliogrficas

ACM/IEEE. Computer Engineering Curriculum. Guidelines for Undergraduate


Degree Programs in Computer Engineering, 2004.
ACM/IEEE. Computer Science Curriculum. Guidelines for Undergraduate Degree
Programs in Computer Science, 2008.
ACM/IEEE. Computer Science Curriculum.Guidelines for Undergraduate Degree
Programs in Computer Science, 2013.
ACM/IEEE. Information Systems Curriculum. Guidelines for Undergraduate Degree
Programs in Informations Systems, 2006.
ACM/IEEE. Information Systems Curriculum. Guidelines for Undergraduate Degree
Programs in Informations Systems, 2010.
ACM/IEEE. Software Engineering Curriculum. Guidelines for Undergraduate Degree
Programs in Software Engineering, 2004.
ACM/IEEE. Software Engineering Curriculum. Guidelines for Undergraduate Degree
Programs in Software Engineering, 2014.
BACH, J. SE Education: Were on Our Own, 1997.
BANDURA, A. A modificao do Comportamento. Trad. do original de 1969 por
Eva Nick e Luciana Peotta 1 ed., Rio de Janeiro:Interamericana, 1979.
BAKER, A., NAVARRO, E., HOEK, A. An Experimental Card Game for Teaching
Software Engineering Processes. In: Journal of Systems and Software, 2005.
BARROWS, H.S. A taxonomy of problem based learning methods. Medical
Education, 1986.
BAVOTA, G., LUCIA, A., FASANO, F., OLIVETO, R., ZOTTOLI, C. Teaching
Software Engineering and Software Project Management: An Integrated and
Practical Approach, 2012.
BOEHM, B. A View of 20th and 21st Century Software Engineering, 2006

55

BORDENAVE, J, D; PEREIRA, A. M. Estratgias de ensino-aprendizagem. 25 ed.


Petrpolis: Vozes, 2004.
BORDENAVE, J, D.; PEREIRA, A. M. Estratgias de ensino-aprendizagem. 28. ed.
Petrpolis:Vozes, 2007.
BROWN, J. S.; COLLINS, A.; DUGUID, P. Situated cognition and the culture of
learning. Educational Researcher, v. 18, n. 1, 1989.
CARVER, J., JACCHERI, L., MORASCA, S., SHULL, F. Issues in Using Students in
Empirical Studies in Software Engineering Education, 2003
CHICKERING, A.W., GAMSON, Z.F. Seven Principles For Good Practice in
Undergraduate Education, 1987.
FLOWERS, J.G. Improving the Capstone Project Experience: A Case Study in
Software Engineering, 2008.
GAGN, R.M. Como se realiza a aprendizagem, Rio de Janeiro: Livros Tcnicos e
Cientficos, 1971.
GIL, A.C. Mtodos e Tcnicas de Pesquisa Social. 6 Ed. So Paulo: Atlas, 2008
GIMENES, ITANA M. S. ; BARROCA, LEONOR ; BARBOSA, E. F. . The future of
human resources qualifications in Software Engineering meeting demands from
industry and benefiting from educational and technological advances. Anais do 26.
Simpsio Brasileiro de Engenharia de Software (SBES) - Trilha Especial. USA:
IEEE, 2012.
GNATZ, M., KOF. L., PRILMEIER, F., SEIERT, T. A Practical Approach of Teaching
Software Engineering, Proc. 16th Conf. Software Eng. Education and Training,
2003.
GRIER, D. A. Software Engineering: History, 2011.
GUEDES, S.S. Teorias da Aprendizagem. Tcnicas Instrumentais de Didtica
Contempornea TIDC, 2009
IEEE COMPUTER SOCIETY. SWEBOK: guide to the software engineering body of
knowledge, 2004.

56

JIANGUO, L. Combination of Research and Teaching in Software Engineering


Education , WASE International Conference on Information Engineering, 2009.
KITCHENHAM, B., BUDGEN, D., BRERETON, P., WOODALL P. An investigation
of software engineering curricula , 2005.
KITCHENHAM, B., PFLEEGER, S. Personal Opinion Surveys, In: Guide to
Advanced Empirical Software Engineering, Springer, 2008.
KLAUER, K. Training of inductive reasoning: A developmental program of
higher-order cognitive skills. Simpsio Formao da Mente atravs da Educao,
Geneve, Switzerland, 1996.
LETHBRIDGE, T.C. A Survey of the Relevance of Computer Science and Software
Engineering Education, 2000
LETHBRIDGE, T.C., SINGER, J., SIM, S.E. Software Engineering Data Collection
for Field Studies, 2008.
LI, P.L., KO, A.J., ZHU, J. What Makes A Great Software Engineer? IEEE/ACM 37
IEEE International Conference on Software Engineering, 2015.
MELO, C.O., FERRAZ, R., PARSONS, R.J., Brazil and the Emerging Future of
Software Engineering, 2016.
MEYER, B. Software Engineering in the Academy, 2001.
MINISTRIO DA EDUCAO. Diretrizes Curriculares de Cursos da rea de
Computao e Informtica, 2012.
MINSKY, M. The society of mind. London: Picador, 1986.
OFFUTT, Jeff. Putting the Engineering into Software Engineering Education, 2013.
OLISKOVICZ, K., PIVA, C.D. Estratgias Didticas no Ensino Superior, 2014.
OSMAN, R., DIAS-NETO, A.C. Motivating by examples: An empirical study of
teaching an introductory software engineering course in Brazil, 2014.
PARNAS, D.L. Software Engineering Programs Are Not Computer Science
Programs, 1999.

57

PIAGET, J. A epistemologia gentica. Trad. Nathanael C. Caixeira. Petrpolis:


Vozes, 1971
PRIKLADNICKI, Rafael et al. Ensino de Engenharia de Software:
desafios,estratgias de ensino e lies aprendidas, 2009.
Disponvel em:http://fees.inf.puc-rio.br/FEESArtigos/FEES09/FEES_2.pdf.
SANTOS, R.E.S., MAGALHES, C.V.C., CORREIA-NETO, J.S., SOUZA, E.P.R.,
VILAR, G. Ferramentas, mtodos e experincias no ensino de Engenharia de
Software: um Mapeamento sistemtico. Anais do 25 Simpsio Brasileiro de
Informtica na Educao, SBIE 2014.
SANTOS, M. S.; SANTORO, N.; BORGES, F. M. Um framework para estudo de
ambientes de suporte aprendizagem cooperativa . Revista Brasileira de
Informtica na Educao, UFSC, Florianpolis, 1999.
SGUIN, N., ABRAN, A., DUPUIS, R. Software Engineering Principles: A Survey
and an Analysis, 2010.
SHAW, M. Software Engineering Education: A Roadmap, 2000.
SHULL, F., SINGER, J., SJOBERG, D.I.K. Guide to Advanced Empirical Software
Engineering 2008.
SHUKLA, R., SUREKA, A., JOSHI, R., MALL, R. A Report on Software Engineering
Education Workshop, 2012.
SILVA, L. F.; LEITE, J. C. S. P.; BREITMAN, K. K. Ensino de Engenharia de
software: Relato de Experincias. Anais do XII Workshop de Educao em
Informtica (WEI). Salvador, 2004.
SOMMERVILLE, I. Engenharia de Software, 9 Edio. Pearson Education,

2011.
STEVENS, K.T., Experiences Teaching Software Engineering for the First Time,
2001.
TOMAYKO, J.E Teaching a Project-Intensive Introduction to Software Engineering,
1987.
TOMAYKO, J.E., SHAW, M. Models for undergraduate project courses in software
engineering, 1991.

58

VYGOTSKY, L.S. Pensamento e linguagem. So Paulo: Martins Fontes, 1987.


(Coleo Psicologia e Pedagogia)
X.X. Li. "Research and Practice of Model Based Case Utilized Teaching", Computer
Education, vol. 2, 2006.
WANGENHEIM, C. G. v., SHULL, F. To Game or Not to Game?, IEEE Software,
2009.
ZHANG, J., LI, J. Teaching Software Engineering Using Case Study, 2010.

59