Archive for the Ensino de engenharia de software Category

Oficina de artigos

Posted in Ensino de engenharia de software on January 5, 2016 by José Augusto Fabri

Pessoal, eu juntamente com o professor Alexandre L´Erario, formalizamos a aplicação do conceito de oficina de artigos. A oficina tem como objetivo promover o trabalho colaborativo entre pesquisadores de uma determinada área para materializar conhecimento científico.

Esta oficina vem sendo configurada de forma sistemática junto ao GTI,  LabINOV e alunos da área de Engenharia de Software do Programa de Pós-Graduação em Informática da Universidade Tecnológica Federal do Paraná – Campus Cornélio Procópio. Salientamos que a oficina pode ser customizada para qualquer área.

O artigo apresenta os resultados preliminares obtidos com o GTI.

Outra informação importante, é a publicação de 9 artigo dos alunos que cursaram as disciplinas de Engenharia de Software e Experimentação em Computação nos anos de 2012, 2013 e 2014.

O link para acesso a publicação da oficina pode ser obtida por meio deste link.

Se você encontrar dificuldade para realizar o download do artigo, clique aqui.

Boa leitura

J. A. Fabri e A. L´Erario.

 

Aplicando o Mindstorms no ensino de processo e gestão de projetos de software

Posted in Ensino de engenharia de software on November 4, 2015 by José Augusto Fabri

Pessoal,

Trabalhamos a algum tempo com processo e gestão de projetos de software. Focamos basicamente a implantação e melhoria de processo de software e as áreas chaves da atividade de gestão, principalmente a questão do planejamento do projeto.

Fizemos diversas experiências utilizando o Mindstorms ev3 dentro deste contexto. No mês de outubro, consolidamos um trabalho prático. O trabalho pode ser acessado neste link. O trabalho foi apresentado no IEEE – Frontier Education – Texas – USA.

O vídeo abaixo apresenta o final a aula (de ontem) que utilizou toda a metodologia desenvolvido no trabalho.

Abraços

Fabri e L´Erario.

A relação entre a teoria e a prática no ensino de engenharia

Posted in Ensino de engenharia de software with tags , , on August 26, 2015 by José Augusto Fabri

Pessoal, nesta semana me deparei com o um texto Sistemas de Informação e Engenharia de Software: Cadê as Escolas? (Silvio Meira)

De antemão, afirmo que o texto é excelente e concordo os vários pontos relatados.

Ao ler o texto você consegue visualizar rapidamente a relação entre teoria e prática no ensino de engenharia. Ao meu ver, esta relação é apresentada, de forma concisa na figura abaixo.

teoriaPrarica

Perceba que a figura mostra que os docentes imersos no sistema de ensino superior brasileiro são extremamente teóricos (quadrante roxo), fato este que não caracterizo como demérito. O problema encontra-se na capacidade de aplicarmos todo aparato teórico de forma prática, possibilitando a conjunção das ações pesquisar e desenvolver – maximizar a agregação de valor e gerar riqueza de forma sólida e consistente (quadrante vermelho).

Nossa missão é transpor o aluno, imerso no quadrante azul, para o quadrante vermelho. Para cumpri-la devemos nos posicionar neste quadrante. Fato este que não ocorre facilmente, pois esbarramos sempre na base legal que rege as universidades públicas, que impede que os professores se insiram na indústria e obtenham algum retorno. Saliento também que o sistema de avaliação CAPES não colabora com a transposição. O referido sistema, caracterizado como “meritocrático”, qualifica de forma ampla aquilo que chamo de publicação de prateleira (ninguém usa, ninguém lê e não gera valor de forma efetiva). Eu mesmo tenho uma série destas publicações – é meu amigo, são as regras do jogo. Outro fato que colabora com a não transposição dos docentes para o quadrante vermelho é o comodismo, conheço diversos professores que se acostumam com este sistema e são avessos a mudanças.

Por fim, os fatos explicitados no parágrafo anterior nos leva ao fluxo 3 da Figura, na qual o aluno é transposto para o quadrante roxo, ou seja, quando formados são mais teórico e menos práticos. Este fato não possibilita a união das ações pesquisar e desenvolver retratada no quadrante vermelho.

Como mudar esta realidade?

José Augusto Fabri – fabri@utfpr.edu.br

Tecnologia em Análise e Desenvolvimento de Sistemas ou Bacharelado em Engenharia de Software?

Posted in Ensino de engenharia de software on August 5, 2014 by José Augusto Fabri

Vários alunos me questionam, sistematicamente, sobre as diferenças entre o Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas e o Bacharelado em Engenharia de Software.

Neste post tento enumerar rapidamente algumas.

1 – Curso de Bacharelado e Curso Superior de Tecnologia

O bacharelado, segundo o MEC (Ministério da Educação), é o curso superior que “confere ao diplomado competências em determinado campo do saber para o exercício de atividade acadêmica ou profissional”. Perceba que grifei o termo campo do saber. Esse grifo é proposital e indica que este tipo de curso irá possuir uma carga horária maior, pois o aluno irá mergulhar em todos os conteúdos de um determinado campo do conhecimento.

Os cursos superiores de tecnologia, em sua maioria, possuem 2000 horas. Além do tempo reduzido, eles têm um objeto de estudo bastante específico. Por exemplo: não há um curso tecnológico de jornalismo (campo do saber), mas é possível encontrar um de fotografia (objeto de estudo). Como a carga de conteúdo, neste tipo de curso, é menor e mais centralizada, os estudos são mais focados.

2 – Engenharia de Software ou Análise e Desenvolvimento de Sistemas

Engenharia de Software como campo de saber

Segundo Friedrich Ludwig Bauer “Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe em máquinas reais”.

A Engenharia de Software se concentra nos aspectos processuais (levantamento de requisitos, análise e projeto de sistemas, codificação, teste, implantação, manutenção, gestão de projetos, gestão de configuração e gestão da qualidade).

O termo Engenharia de Software foi criado na década de 1960 e utilizado oficialmente em 1968 na NATO Science Committee. Numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos.

Análise e Desenvolvimento de Sistemas como objeto de estudo

Perceba que o curso de Análise e Desenvolvimento de Sistemas se caracteriza como um objeto de estudo da Engenharia de Software. Neste tipo de curso teremos um aprofundamento nas atividades processuais de Modelagem de Negócio, Análise de Sistemas e Programação. As demais atividades do processo de software são encapsuladas em um grupo menor de disciplina.

3 – A diferença das matrizes curriculares e do tempo de integralização (cursos UTFPR – Campus Cornélio Procópio)

Ao analisar as matrizes curriculares dos cursos de Engenharia de Software e Tecnologia em Análise e Desenvolvimento de Sistemas é possível perceber:

  • As disciplinas ligadas algoritmos e programação de computadores são equivalentes em ambas às grades;
  • quando comparado ao curso de Análise e Desenvolvimento de Sistemas, o curso de Engenharia de Software possui um número maior de disciplinas ligadas à ideia de processo de produção  – veja os quadros grafados em azul nas grades. Dada esta diferença no número disciplina, o curso de Engenharia de Software possui uma carga horária 3250 horas, enquanto que o curso Tecnologia em Análise de Sistemas possui 2582.

4 – Qual curso é melhor?

Os dois cursos possuem um alto grau de excelência, a diferença está no tempo de formação. Para escolher você deve responder as seguintes questões:

Eu quero me aprofundar no campo do saber (engenharia de software) e ficar mais tempo na universidade?

Eu quero me aprofundar no objeto de estudo (análise e desenvolvimento de sistemas) e ficar menos tempo na universidade?

A opção pelo curso de Tecnologia em Análise e Desenvolvimento de Sistemas não inviabiliza que você possa complementar sua formação em outro momento. Para isto você pode cursar as demais disciplinas da Engenharia de Software.

José Augusto Fabri – UTFPR

Engenharia de Software, CREA, SBC, ACM e ENADE

Posted in Ensino de engenharia de software on July 4, 2014 by José Augusto Fabri

O Conselho Regional de Engenharia e Agronomia (CREA) é uma autarquia responsável pela regulamentação das empresas e profissionais da área das engenharias clássicas, suas ramificações, como tecnólogos, técnicos industriais. É importante salientar que todo conselho regional é subordinado ao conselho federal – CONFEA.

O CONFEA surgiu em 11 de dezembro de 1933, por meio do Decreto nº 23.569, promulgado pelo presidente, Getúlio Vargas.

Atualmente, o CONFEA é regido pela Lei 5.194 de 1966, e representa também os geógrafos, geólogos, meteorologistas, tecnólogos dessas modalidades, técnicos industriais e agrícolas e suas especializações.

O objetivo do CREA e do CONFEA é:

Resguardar o interesse público e a ética no exercício das profissões das Engenharias, da Agronomia, das Geociências, das Tecnológicas e Técnicas, buscando sua valorização, através da excelência na regulamentação, organização e controle destas profissões” (fonte CREA-PR e CONFEA).

O curso de Engenharia de Software não é regulamentado pelo CREA.  É importante salientar que o referido curso é relativamente novo – a proposta pedagógica do curso é direcionada pela Association for Computer Machinery (ACM) e pelas diretrizes curriculares MEC desenvolvida em sua grande parte pela Sociedade Brasileira de Computação.

Outro fato de extrema importância, destacado neste texto, é a regulamentação da profissão na área de Informática (incluindo a Engenharia de Software).

A comunidade científica da computação vem trabalhando na regulamentação da profissão de Informática desde a década de 70.

Fruto dos debates ocorridos ao longo dos anos, nos diversos encontros de sua comunidade científica, em relação às vantagens e desvantagens de uma regulamentação da profissão de informática, a Sociedade Brasileira de Computação consolidou sua posição institucional em relação a esta questão pela formulação dos seguintes princípios, que deveriam ser observados em uma eventual regulamentação da profissão:

Exercício da profissão de Informática deve ser livre e independer de diploma ou comprovação de educação formal.

Nenhum conselho de profissão pode criar qualquer impedimento ou restrição ao princípio acima.

A área deve ser Auto-Regulada.

Os argumentos levantado junto à comunidade da SBC e que nortearam a formulação dos princípios acima estão detalhados na Justificação que acompanha o PL 1561/2003, o qual é integralmente apoiado pela Sociedade de Brasileira de Computação.

Fonte: homepage da SBC:

http://www.sbc.org.br/index.php?option=com_content&view=category&layout=blog&id=324&Itemid=964

Desconheço qualquer regulamentação para Engenharia de Software em outros países.

Outro fato que direciona inúmeros questionamentos é Exame Nacional de Desempenho dos Estudantes (ENADE) do curso Engenharia de Software. Neste ano serão avaliados os cursos de:

Arquitetura e Urbanismo; Sistema de Informação; Engenharia Civil; Engenharia Elétrica; Engenharia de Computação; Engenharia de Controle e Automação; Engenharia Mecânica; Engenharia Química; Engenharia de Alimentos; Engenharia de Produção; Engenharia Ambiental; Engenharia Florestal; Engenharia; Ciência da Computação; Ciências Biológicas; Ciências Sociais; Filosofia; Física; Geografia; História; Letras-Português; Matemática; Química; Artes Visuais; Educação Física; Letras-Português e Espanhol; Letras-Português e Inglês; Música; Pedagogia e os de Tecnologia em Análise e Desenvolvimento de Sistemas; Automação Industrial; Gestão da Produção Industrial e Redes de Computadores.

Perceba que o curso de Engenharia de Software não faz parte da lista, neste caso os formandos de 2014 estão isentos de participar do ENADE.

Por fim, em relação às questões que compõem o ENADE, tenho a plena convicção que teremos questões direcionadas a Engenharia de Software, assim como ocorre com os cursos de Licenciatura em Computação, Ciência da Computação, Engenharia da Computação e Sistemas de Informação – vide prova de 2011.

Qualquer dúvida sobre o curso por favor me escrevam.

José Augusto Fabri – fabri@utfpr.edu.br

Desenvolvendo habilidades da engenharia de software nas séries iniciais dos cursos de computação

Posted in Ensino de engenharia de software on June 12, 2013 by José Augusto Fabri

A maioria das universidades e faculdades da área de computação preocupam-se, no primeiro ano do curso, em ensinar técnicas de programação para os seus alunos, esquecendo das questões relacionadas à qualidade do processo que envolve este tipo de atividade. No primeiro ano, a atividade de programação é vista de forma isolada, muitas vezes os professores se esquecem que tal atividade está conectada, diretamente, com outras: projeto do programa (algoritmo no português estruturado ou no fluxograma) e teste formal. Com base nesta informação é possível afirmar que o aluno, ao ter contato com o desenvolvimento de um programa em uma determinada linguagem, executa, no mínimo, quatro atividades do processo de produção de software (vide Tabela 1).

Ao analisar a Tabela, é possível verificar que a abordagem proposta nas disciplinas de Programação é diferenciada. O aluno, ao implementar um programa, não tem mais contato apenas com um enunciado de uma determinada lista de exercício, ambos: ele e o professor encaram o antigo enunciado como um requisito ou uma funcionalidade do software.

Outro ponto pode ser destacado, o aluno não parte direto para programação, ele é obrigado a desenvolver um fluxograma do algoritmo, que irá atender ao requisito funcional para um determinado cliente, neste caso o professor da disciplina.

Na atividade de implementação, o professor da disciplina salienta a importância de se utilizar um padrão de codificação (o padrão adotado pelo professor é baseado no Código de Convenção JAVA). Além de utilizar o padrão de código, o aluno desenvolve o controle de versão do programa utilizando o CVS.

A atividade de teste é dividida em:

  • Teste interno: O professor divide a sala em grupos, geralmente cada grupo possui 4 alunos. Cada grupo recebe um conjunto de funcionalidades para testar, respeitando a seguinte restrição: O grupo NÃO pode testar uma funcionalidade desenvolvida por um de seus integrantes. Na execução da atividade de teste interno, a célula de teste deve definir: 1) Os casos de teste – quais os atributos que devem ser testados para aquela funcionalidade – para a definição dos casos de teste o aluno respeita este checklist. 2) O dado de entrada (em nosso caso a célula de teste pretende entrar com X para o campo sexo). 3) As saídas: esperadas e obtidas – salienta-se que a célula de teste é responsável por verificar se a redação do programa respeitou a convenção de código estabelecida.
  • Teste de aceitação: O teste de aceitação diferencia-se do teste de interno em apenas um aspecto: O teste é efetuado pelo cliente (o professor) na presença do desenvolvedor (o aluno).

Caso o programa não obtenha sucesso durante a atividade de teste, o mesmo deve ser corrigido pelo aluno – configurando assim o retrabalho.

Além de executar todas as atividades do processo, o aluno deve desenvolver a atividade de planejamento do projeto. Nela, ele estabelece um tempo para execução de cada atividade. Durante a execução do processo, tal cronograma sofre alterações e no final o aluno compara o tempo orçado com o realizado.

Por fim, noções de rastreabilidade de requisitos, também são implementadas na disciplina, lembre-se que a implementação de um programa depende de um enunciado em uma lista de exercício (em nosso caso uma funcionalidade), de um projeto de algoritmo apresentado em fluxograma (ou portugol) e, por fim, o programa será melhorado, constantemente, até chegar a um produto que agrade ao cliente. Tudo isto está interligado e pode ser rastreado.

José Augusto Fabri – fabri@utfpr.edu.br

Tutorial sobre pontos por função

Posted in Ensino de engenharia de software, gestão de projetos, processo de produção de software on April 9, 2013 by José Augusto Fabri

Pessoal, tomei a liberdade de gravar alguns vídeos (caseiros) durante a construção de  um tutorial sobre a pontos por função.

Antes de acessar os vídeos é importante ler este texto.

.

.

.

Fabri – fabri@utfpr.edu.br

Follow

Get every new post delivered to your Inbox.

Join 731 other followers