Friday, October 3, 2014

Aula do dia 27/09/2014

Apresentação de metodologias ágeis, conforme apresentação.

Linhas de pensamentos:
  • Engenharia de software necessita de ferramentas;
  • Engenharia de software necessita de novas metodologias.
Manifesto ágil, foi assinado em 2001 por 17 desenvolvedores, “Descobrindo (não inventando) formas melhores de desenvolver software”. 

O manifesto define, 4 valores e 12 princípios 
  • Indivíduos e interações ao invés de processos e ferramentas;
  • Software funcionando ao invés de documentação completa;
  • Colaboração com o cliente ao invés de negociação de contratos;
  • Adaptação a mudança ao invés de seguir um plano.
Na seguência o professor apresentou o comportamento evolutivo de um software.

Comportamento do índice de falhas do hardware em função do tempo. Tipicamente a maior parte das falhas ocorrem nos primeiros meses de funcionamento. Um bom equipamento deve apresentar baixo índice de erros por um certo tempo, após o qual falhas relacionadas ao desgaste começam a comprometer seu trabalho. 



Curva ideal do comportamento do índice de falhas de um software em função do tempo. Após a fase inicial de correção da maioria dos erros, o software tende progressivamente a ter menos erros, finalizando a sua vida útil na obsolescência.



Comportamento real do índice de falhas do software em função do tempo. A implementação de mudanças acarreta elevação do índice de erros. Quando as mudanças começam a ser muito freqüentes novas falhas são incorporadas, podendo levar a uma deterioração do sistema. A partir do nível crítico, quando há falhas que inviabilizam o uso do software, os erros precisam ser rapidamente corrigidos ou o software será descartado. 



Em duplas foi desenvolvido o exercício sobre métodos ágeis/princípios.
Respostas conforme correção em aula.

No do princípio – V1
No do princípio – V2
Valores Relacionados
1
4
V2
2
2
V1
3
11
V2
4
3
V4
5
12
V3
6
6
V1
7
5
V1
8
9
V1
9
10
V2
10
7
V1
11
8
V2
12
1
V4

Em seguida o professor apresentou algumas estatísticas dos métodos ágeis.

Apresentação dos artigos do autos Victor R. Basili:

Experimentation in Software Engineering
Breve resumo:
Objetivos do artigo:
            Descrever um quadro para a experimentação em engenharia de software. Classificar e discutir uma variedade de experiências a partir da literatura de acordo com o quadro. Identificar áreas problemáticas e lições aprendidas na experimentação em engenharia de software.
Conclusão
            Experimentação em engenharia de software suporta o avanço do campo através de um processo de aprendizagem interativo. O processo experimental começou a ser aplicada em uma multiplicidade de ambientes para estudar uma variedade de áreas de tecnologia de software. A partir dos estudos apresentados, fica claro que a experimentação tem se mostrado eficaz para uma melhor compreensão e promover nosso domínio do conhecimento sobre o processo de software e o produto.

          É um trabalho que faz uma revisão de vários trabalhos na área.

          Fortemente aconselhado estudar a técnica adotado pelo autor para qualquer experimento na área, pois é bem definida e utilizada a muito tempo.




Saturday, September 20, 2014

Aula do dia 20/09/2014
Por Juliano Aléssio da Silva e Mário Sérgio Martinelli Medina


Na aula inicial  da matéria de Tópicos em Engenharia de Software, o professor passou aos alunos o que seria trabalhado e como seria o andamento das aulas. Foi feita também uma apresentação inicial dos participantes, em que foi levantado se os mesmos eram regulares, especiais ou externos, o local em que moram, onde trabalham e as areas de interesse. Alguns temas como jogos de cunho educacional e social, TDD, DDS, mineração de dados, suporte de requisitos, métricas, métodos ágeis, modelo conceitual, governança e gestão de projetos, por exemplo, foram levantados como temas de interesse pelos alunos.

Uma breve explicação sobre a avaliação de congressos (Qualis) e do mestrado foi repassada pelo professor. Posteriormente postará uma lista dos congressos com seus respectivos Qualis. 

Durante a aula, também foi realizado um experimento que consistia na busca de bugs em dois códigos distintos. Este foi dividido em duas etapas, uma com caso de teste e outra sem. Os participantes dispuseram de 15 minutos para identificar dois erros em cada código de cada uma das etapas. Caso terminassem antes do tempo estipulado, anotavam o tempo que levaram para conseguir achar os erros.

Ao termino deste experimento, foi preciso realizar a tabulação dos dados. Com o levantamento, foi verificado que sem caso de teste os participantes encontraram erros que não existiam, ou seja, falsos positivos. Neste caso, a minoria, cerca de 30%, conseguiu encontrar os dois erros contidos no código.

     Com os casos de teste, a maioria dos integrantes do experimento, quase 100%, encontrou os dois erros do código e não houve nenhum falso positivo. O tempo para a execução da tarefa também foi menor.

___________________________________

     Foi possível concluir que casos de testes ajudam a eliminar erros na codificação.
___________________________________




Após a tabulação ser realizada, o professor ressaltou que é preciso expor as falhas de uma pesquisa, por exemplo, nesta realizada durante o primeiro dia de aula foram levantados os seguintes problemas: 
  • Experiência dos participantes;
  • Experiência adquirida durante a execução da atividade;
  • Possibilidade do participante não ter utilizado o caso de teste.



Como dica para realizar a tabulação e análise de dados, o professor sugeriu a leitura de artigos publicados pelos autores:
  • Victor Basili;
  • Claes Wohlin.