EduardoDeboni.com

Atividades Acadêmicas

Mestrado em Engenharia de Computação

Visite o IPT
Um projeto do Mestrado é um texto curto que resume o trabalho que se pretende desenvolver como pesquisa. Apesar de curto o trabalho para escrev&etcirc;-lo não é pequeno, envolve pesquisa, muita leitura e algumas decisões importantes. Não existe uma receita de como criar um projeto de pesquisa, é um processo iterativo, pode começar com o título, com o objetivo ou com as referências ou até com o metodo de pesquisa. Crie uma primeira versão, veja a relação entre as partes e faça uma nova iteração até convergir para um projeto que agrade e seja viável. Com o projeto em mãos vai ser mais fácil encontrar um orientador. Minha proposta de projeto tem 6 partes: 1. Título, 2. Área, 3. Objetivo, 4.Método de Pesquisa, 5. Prazos disponíveis e 6. Refêrencias comentadas. Veja Mais...
Minha sugestão para encontrar um bom temas é ler bons artigos de pesquisa e buscar ideias semalhantes que tratem de problemas que o aluno é familiar. Me interesso por pesquisas nas áreas das disciplinas que estou ministrando: Testes de Software, Métodos de Desenvolvimento de Software e Projeto de Software. Saiba mais...
O método de pesquisa é talvez a parte mais difícil. A principal questão é saber como responder à pergunta de pesquisa proposta pelo tema. Pesquise sobre Estudo de Casos, Pesquisa-ação e métodos experimentais entre outros. Veja mais...
Publiquei no meu blog algumas outras dicas e sugestões que podem ajudar os alunos na pesquisa de mestrado:

  • Roteiro para Escrever um Projeto de Mestrado blog...
  • Organizar as Referências Bibliográficas blog...
  • Sobre as Metodologias de Pesquisa blog...
  • Dicas para se escreve bem blog...
  • A Empresa como Tema de Pesquisa blog...
  • Diferenças de Mestrado e Certificação blog...
  • Temas de Pesquisa 1 blog...
  • Temas de Pesquisa 2 blog...
  • Temas de Pesquisa 3 blog...
  • Engenharia de Software

    Habilitar o aluno a se desenvolver como um Engenheiro de Software profissional. Promover uma visão consistente da disciplina de Engenharia de Software e seus limites com respeito às outra disciplinas (Ciência da Computação, Gerencia de Projetos, Engenharia da Computação e Matemática). Definir o organizar o Corpo de Conhecimento da Engenharia de Software (SWEBOK).
    Definição, limites e responsabilidades do Engenheiro de Software. Profissão. Áreas do Conhecimento: Requisitos de Software, Design de Software, Construção de Software, Teste de Software, Manutenção de Software, Gerenciamento de Configuração de Software, Gerenciamento da Engenharia de Software, Processos de Engenharia de Software, Modelos e Métodos, Qualidade de Software, Prática profissional e Economia de Software. Projeto de Aplicação. Argumentação lógica. Redação técno-científica.
  • Aula 01 – Introdução à disciplina e à profissão de Engenharia de Software.
  • Aula 02 – Requisitos de Software
  • Aula 03 – Design de Software e Construção de Software
  • Aula 04 – Apresentação 1 dos trabalhos
  • Aula 05 – Teste de Software
  • Aula 06 – Manutenção de Software e Gernciamento de Configuração de Software
  • Aula 07 – Apresentação 2 dos trabalhos
  • Aula 08 – Gerenciamento da Engenharia de Software
  • Aula 09 – Processos de Engenharia de Software e Modelos e Métodos
  • Aula 10 – Apresentação 3 dos trabalhos
  • Aula 11 - Qualidade de Software
  • Aula 12 – Prática profissional e Economia de Software
  • Aula 13 - Apresentação 4 e final.
  • IEEE (2004) Software Engineering Body of Knowledge (SWEBOK)
    Sommerville, I. (1990), 'Software Engineering Software Engineering'.
    Pressman, R. (2010) Software Engineering: A Practitioner's Approach, 2010, 7th edition, McGraw-Hill; ISBN 10: 9780073375977

    Testes de Software

    Habilitar o aluno na elaboração de um plano de teste de software para um projeto de sofware e na seleção e execução dos testes de software. Discutir a importância da fase de teste na obtenção de produtos de software de qualidade.
    Introdução, princípios, limitações, conceitos básicos e terminologia dos testes de software. Técnicas de Projeto de Casos de Teste. Teste Funcional. Teste Estrutural. Teste Estáticos e Dinâmicos. Planejamento da Atividade de Testes. Automação das Atividades de Testes. Testes em Software Orientado a Objetos. Testes em Software para internet. Ferramentas de Suporte aos Testes de software. Ética nos testes. Gestão dos testes. Laboratório. Exercícios práticos de aplicação.
  • Aula 01 - Introdução à disciplina de Testes de Software
  • Aula 02 - Descrição do Processo de Teste de Software
  • Aula 03 - Tipos de teste, teste funcional. (caixa preta) (laboratório)
  • Aula 04 - Teste estrutural estático (cx branca) (laboratório)
  • Aula 05 - Teste de unidade com JUnit. (laboratório)
  • Aula 06 - Técnicas especiais para orientados a objeto (laboratório)
  • Aula 07 - Teste de cobertura e Testes de Banco de Dados (laboratório)
  • Aula 08 - Testes de Usabilidade e Testes em Aplicações web (laboratório)
  • Aula 09 - Testes de Desempenho e Testes de Carga com JMeter (laboratório)
  • Aula 10 - Estudo dirigido 1
  • Aula 11 - Estudo dirigido 2
  • Aula 12 - Revisão geral e planejamento de testes
  • Aula 13 - Avaliação final
  • K. Beck and E. Gamma, “JUnit cookbook,” Available on-line at: http://JUnit. sourceforge. net/doc/cookbook/cookbook. htm, 2002.
    K. Beck, Test-driven development: by example. Addison-Wesley Professional, 2003.
    C. Kaner, J. Falk, and H. Q. Nguyen, Testing Computer Software Second Edition. Dreamtech Press, 2000.
    G. J. Myers, C. Sandler, and T. Badgett, The art of software testing. John Wiley & Sons, 2011.
    G. J. Myers, “The art of software testing. 1979,” ISBN: 0-471-04328-1.
    R. Patton, Software testing. Sams Pub., 2006.
    M. Pezzè and M. Young, “Teste e Análise de software,” Tradução Bernardo Copstein, Flavio Moreira de Oliveira. Porto Alegre: Bookman, 2008.

    Processos de Desenvolvimento de Software com ênfase em UP e Modelos Ágeis.

    Capacitar o aluno na seleção, implantação e gestão do processo de desenvolvimentos de software por meio das melhores práticas da engenharia de software disponíveis. Capacitar os alunos na implantação das metodologias ágeis como a programação extrema (XP) e de métodos baseados no processo unificado (UP), destacando os aspectos técnicos e gerenciais destes dois frameworks de processos de desenvolvimento de software. Avaliar o estado da arte nos processos de desenvolvimento de software com apoio de pesquisas recentes. Exemplificar a aplicaçào das principais técnicas das metodologias com exemplos práticos
    Desafios da Engenharia de Software. Evolução histórica. O Processo Unificado (UP). O UP e a UML. Fundamentos do UP: iterativo, incremental, dirigido por casos de uso e centrado em arquitetura. Fases do UP: Concepção, Elaboração, Contrução e Transição. Pricipais papeis, artefatos e disciplinas. Laboratório de UP. Adaptação e extensão do UP: OpenUP. O Manifesto Ágil. Pricípios e Valores. Fases do Processo Ágil. A Programação Extrema(XP). Práticas do XP: Cliente presente, Jogo do Planejamento, Stand Up Meeting, Programação em Pares, Desenvolvimento Guiado por Testes, Refactoring, Código Coletivo, Códig padronizado, Design Simples, Metáforas, Ritmo sustentável, integração contínua e releases curtos. Laboratório da Programação Extrema. Adaptação e extensão do XP.
  • Aula 01 - Apresentação da Disciplina. Desafios da Engenharia de Software. Evolução histórica das Metodologias de Desenvolvimento. Apresentação dos métodos baseados em planejamento e dos métodos ágeis.
  • Aula 02 – Introdução aos Métodos baseados em planejamento, Conceitos Principais, Disciplinas, Fase de Concepção. Exemplo Prático.
  • Aula 03 – Processo Unificado: Práticas das Fases de Elaboração e Construção, Exemplo Prático.
  • Aula 04 - Processo Unificado: Fase de Transição e Conclusões. Conclusào do Exemplo Prático.
  • Aula 05 – Introdução ao processo ágil de desenvolvimento, O Manifesto Ágil. Práticas XP do nível de organização :Equipe, Jogo de Planejamento, Testes de aceitação e Pequenos Releases), Exemplo Prátio.
  • Aula 06 – Práticas XP do Nível de Equipe: Metáfora, Integração Contínua, Posse Coletiva, Padrões de Codificação e Ritmo Saudável. Exemplo Prático .
  • Aula 07 – Práticas XP no nível individual/pares: Programação em Pares, Projeto Simples, Refatoramento e Desenvolvimento Orientado a Testes. Exemplo Prático .
  • Aula 08 – Avaliar as técnicas em função do tipo de projeto, visando selecionar um processo, ou integrando as boas práticas dos diferentes métodos em um processo único. Avaliar as limitações e requisitos mínimos de cada método.
  • Aula 09 – Apresentação do epf - eclipse process framework, ambiente de definição dos processos Prática de Configuração do Processo com o epf.
  • Aula 10 – Estudo Dirigido
  • Aula 11 - Estudo Dirigido
  • Aula 12 - Estudos de Caso: Problemas relativos a aplicação dos métodos em projetos de software.
  • Aula 13 – Avaliação.
  • Beck, K. (2001), Extreme Programming Explained: embrace change, Addison-Wesley.
    Beck, K. & Andres, C. (2005), Extreme programming explained: embrace change, Addison-Wesley.
    Boehm, B. & Turner, R. (2004), Balancing agility and discipline: evaluating and integrating agile and plan-driven methods, in 'Proc. 26th Int. Conf. Software Engineering ICSE 2004', pp. 718--719.
    Highsmith, J. & Highsmith, J. (2009), Agile Project Management: Creating Innovative Products, Addison-Wesley.
    Kroll, P. & Kruchten, P. (2003), The rational unified process made easy: a practitioner's guide to the RUP, Addison-Wesley.
    Kruchten, P. (2004), The rational unified process: an introduction, Addison-Wesley.
    Rumbaugh, I. (2003), The Unified Software Development Process, Pearson.
    Schwaber, K. & Beedle, M. (2002), Agile software development with scrum, Prentice Hall.

    Algumas das Orientações Concluídas

    Desenvolvimento de Linha de Produtos de Software por equipes ágeis

    2014. Fagner Luiz de Souza. Desenvolvimento Ágil de Linha de Produtos de Software é uma alternativa para a criação de LPS em contextos ágeis, permitindo usufruir dos benefícios da LPS em projetos que demandem software dessa natureza. Saiba mais...

    Refatoração orientada a aspectos: uma proposta de catálogo para refatoração de testes.

    2011. Anderson Keiji Matsuki Ito. Complementação das refatorações orientadas a aspectos com testes descritos neste trabalho de forma a minimizar que as alterações feitas não introduzam novos defeitos ou alterem o comportamento esperado do sistema. Saiba mais...

    Um método para integração do teste automatizado de usabilidade no desenvolvimento dirigido por testes.

    2010. Marcelo Pracanico Serbolonghi. É definido um método de trabalho, englobando a especificação dos requisitos, análise e seleção das técnicas e ferramentas de teste automatizado, especificação da seqüência de execução e relacionamentos entre as atividades. Saiba mais...

    Métodos Ágeis e Desenvolvimento Distribuído de Software: Estudo de Casos

    2013. Ana Lucia Perez Antar. Estudos de casos são realizados para identificar como as empresas aplicam os métodos ágeis em desenvolvimentos de software que contem com equipes geograficamente separadas. Os resultados são analisados e as práticas de um modelo criado são confrontadas com aquelas observadas na prática. Saiba mais...

    Automação de testes funcionais na interface gráfica de telefones celulares

    2012. Cid Adinam Nogueira Santos. Este trabalho propõe uma abordagem de automação de testes por modelo, que permite ao engenheiro de testes modelar o comportamento da GUI com a mesma simplicidade semântica que se programa a própria GUI, contornando o principal problema das técnicas baseadas em modelo que é a necessidade de manipulação explicita de modelos com notações complexas. Saiba mais...

    Um método para gerenciamento de custos em projetos de software desenvolvidos com metodologia Scrum.

    2011. Aline Bicalho Santos. O trabalho destaca a importância em se priorizar os requisitos, como forma de indicar a ordem de implementação das funcionalidades. Deve-se implementar primeiramente os requisitos que tragam maior benefício ao usuário e valor ao negócio da organização. Saiba mais...

    Uma proposta de inspeção em modelos de caso de uso

    2007.Rosângela Gregolin. Com o objetivo de aumentar a qualidade dos modelos de caso de uso, este trabalho apresenta uma proposta de inspeção nesses modelos. A proposta é composta de modelos de qualidade para diagramas de caso de uso e descrições de caso de uso, ckecklists, artefatos de registro de inspeção e uma medição de qualidade de especificação. Saiba mais...

    Uso da Programação Orientada a Aspectos em testes de integração: método e framework de aplicação

    2008. Marcio Ferreira. A proposta deste trabalho baseia-se na utilização da Programação Orientada a Aspectos para criar um método não intrusivo de execução de teste de integração em aplicativos desenvolvidos para Internet. Saiba mais...