Programação oficial do 2˚ Workshop do QualiPSo

De CCSL
Ir para navegação Ir para pesquisar

Workshop QUALIPSO: 05 de Setembro de 2007


Agenda: #8:00 - Abertura


8:00 - Abertura

Coordenador: Prof. Maldonado

Resumo:

The Project: QualiPSo is a unique alliance of European, Brazilian and Chinese ICT industry players, SMEs, governments and academics to help industries and governments fuel innovation and competitiveness with Open Source software. To meet that goal, the QualiPSo consortium intends to define and implement the technologies, processes and policies to facilitate the development and use of Open Source software components, with the same level of trust traditionally offered by proprietary

USP - Role in QualiPSo: Based on our experience with methods and tools for software development, VV&T techniques, OSS process, training materials development and empirical software engineering, USP intends to provide support to the main activities in the scenario of QualiPSo – problem activities, QualiPSo factory and competence centre, and exploitation and dissemination.

USP - Tasks and responsibility in QualiPSo: More specifically, USP will participate in the research and development work of the following activities:

  1. Trustworthy Results: The interest here would be to provide tools for testing and software quality evaluation of OSS components.
  2. Trustworthy Process: The main interest is to bring the experience on OSS process, on test, and on supporting tools (such as configuration management, testing and documentation tools) in order to contribute to the establishment of a model for OSS system development. The development of a reference architecture for Software Engineering environments is also in the scope of our research and could be investigated in this scenario as well.
  3. QualiPSo Factory: The interest here would be to help in instantiating and in evaluating the use of the collaborative development environment for OSS components at SERPRO.
  4. Competence Centre: The interest here would be, together with SERPRO, to instantiate a Competence Centre in Brazil (state of São Paulo), and to support its promotion and dissemination.
  5. Exploitation and Dissemination: The interest here would be publishing and promoting the results obtained in the scope of the project.
  6. Training: Our interest is to explore the establishment of a standard training material development process, a kind of CMMI-Educational, and its associated modeling methods. These ideas would lead to a standard training material development platform. Moreover, we also intend to develop and use training materials, either classroom-type or internet-based, in order to disseminate the underlying concepts at the academic and industrial sets.


8:30 - Agilidade é o caminho para qualidade

Palestrante: Agilcoop

Resumo:

A cooperativa ágil é uma iniciativa de professores, ex-alunos e alunos do IME/USP cujo objetivo é ensinar e difundir iniciativas ágeis para desenvolvimento de software pelo Brasil. A cooperativa busca atingir esse objetivo incentivando estudos e pesquisas relacionadas a métodos ágeis e publicando conteúdo informativo como podcasts e videocasts em seu portal. Além disso, o grupo também oferece consultorias, cursos e apóia atividades práticas que destacam algum valor essencial para o pensamento ágil. Devem-se considerar os benefícios que esse tipo de atividade pode levar para um ambiente de desenvolvimento de software livre que possuí características e requisitos muito dinâmicos. Nesse contexto a dificuldade está em manter a qualidade nas adaptações que, por muitas vezes, são feitas diariamente por programadores em diferentes locais de trabalho. Além de apresentar com mais detalhes a cooperativa, a palestra servirá para elaborar as relações entre a AgilCoop e o projeto Qualipso.

9:00 - Métricas para avaliação de ferramentas ORM

Palestrante: Diogo Vernier dos Santos (IME)

Resumo:

Com a popularização das linguagens orientadas a objetos, tornou-se maior a necessidade de armazenar os objetos. Umas das idéias é o Mapeamento Objeto-Relacional, que facilita a persistência de objetos para banco de dados relacional, possibilitando a conversão de objetos para dados de forma automatizada. Neste projeto abordaremos diferentes ferramentas que implementam esta técnica de programação. Temos como meta analisar como cada uma implementa a persistência de dados e também, compará-la através de métricas, como o desempenho em consultas e armazenamentos, a quantidade de dados gerada fisicamente para armazenar o objeto, etc. A partir disso pretende-se gerar relatórios técnicos comparativos, que possam servir como referência para os desenvolvedores de software.


9:25 - Técnicas para Criação de Testes Automatizados de Qualidade Utilizando Ferramentas de Software

Palestrante: Paulo Cheque (IME)

Resumo:

O desenvolvimento de um software é uma tarefa complexa, a qual exige conhecimento, organização, interação entre pessoas e criatividade. Como é difícil reunir estas características durante todo o processo, é inevitável que erros humanos ocorram. Além disso, é comum que um software seja composto por inúmeros arcabouços e componentes ou então dependa de outras aplicações que podem conter erros que irão se propagar até o programa que os englobam. Por isso, é importante que os sistemas de software sejam freqüentemente e intensamente testados. Um bom modo para avaliar a integridade de uma aplicação é através de testes automatizados que são programas simples que executam o software a ser testado e verifica se o comportamento obtido é o esperado.

Testes automatizados é umas das práticas fundamentais recomendadas pela Programação eXtrema, e ela é idealmente realizada junto com o desenvolvimento do projeto, pois quanto mais cedo os erros são descobertos mais fácil será para resolvê-los e, ainda, ele ajuda a detectar erros de regressão durante todo o decorrer do desenvolvimento. Um software pode conter diferentes tipos de erros, como lógicos, semânticos ou de má interpretação de uma funcionalidade. Para verificá-los, existem muitos padrões e técnicas que podem ser adotadas para ajudar a testar as situações mais suscetíveis à falhas. Além do mais, existem inúmeros tipos de testes automatizados que ajudam a cobrir todo um sistema. Cada tipo possui características próprias e objetivos distintos, portanto, para cada um deles existem recomendações particulares. Portanto, implementar testes automatizados não é uma tarefa simples e exige uma considerável parcela do tempo de desenvolvimento de uma equipe. Por isso, é fundamental que eles sejam eficientes, verificando contextos importantes para o software, e também robustos, facilitando sua manutenção durante todo o desenvolvimento. Logo, para obter bons resultados, é imprescindível que os testes sejam bem implementados. Minha pesquisa irá estudar técnicas, padrões e ferramentas de software livre que ajudam na criação de bons testes automatizados de diferentes tipos, como os de unidade, aceitação e interface.


9:50 - Métodos ágeis e Software livre: mais que coincidência!

Palestrante: Hugo Corbucci (IME)

Resumo:

Projetos de código aberto, em geral, contam com a colaboração de diversas pessoas geograficamente distantes e sem qualquer tipo de estrutura organizacional comum. A priori esses argumentos parecem indicar que esses projetos não seriam candidatos ao uso de métodos ágeis já que, aparentemente, alguns valores básicos são prejudicados. A distância e a diversidade entre desenvolvedores com certeza prejudica a comunicação que é uma das principais premissas ligadas a métodos ágeis. Apesar disso, os projetos abertos mais conhecidos valorizam muito (e deixam transparecer) a essência passada pelo manifesto ágil. Estar pronto para mudanças, trabalhar com feedback contínuo, entregar funcionalidades reais aos usuários, respeitar os colaboradores e usuários e enfrentar desafios são atitudes muito valorizadas em métodos ágeis que podem ser encontradas naturalmente nas comunidades de software livre. Logo temos como objetivo estudar com mais detalhes os princípios ágeis existentes nesses grupos, e quais práticas ainda inutilizadas podem ser introduzidas para melhorar o desempenho dessas comunidades. Ainda esperamos propor técnicas que unam os dois mundos ou mesmo ferramentas que facilitem a utilização de métodos ágeis em projetos abertos.

10:15 – Coffee Break

Comida & Conversa


10:30 Model Based Testing for Delivering Dependable Services

Palestrante: Adenilso Simão (ICMC)

Resumo:

I have been working with software testing and model-based testing, specifically Finite State Machine Test Generation Methods, and Petri Nets Testing Techniques. These topics are important to achieve highly dependable services. Recently, I have started to do research on Web Services, specially in testing of Web Services Compositions.

10:55 – Teste de Programas Paralelos

Palestrante: Simone Souza (ICMC)

Resumo:

As pesquisas em teste de programas paralelos concentram-se em aplicar o conhecimento adquirido no contexto de teste de programas seqüenciais para a geração de técnicas, critérios e ferramentas para a validação de programas paralelos. Questões importantes como comunicação, concorrência, sincronização e não-determinismo são consideradas. Como resultado, destaca-se a definição de um modelo de teste, critérios de cobertura e a ferramenta ValiPar para apoiar o teste de programas paralelos, caracterizando assim um ambiente de apoio para os desenvolvedores de programas paralelos.

11:20 - Análise e Experimentação de Software

Palestrante: Marcos Chaim (EACH)

Resumo:

Análise de software consiste de algoritmos para analisar as diferentes representações de um software (e.g., especificações, diagramas, código fonte, código executável) com o objetivo de desenvolver ferramentas ou técnicas que auxiliem o desenvolvimento, o teste, a depuração e a manutenção de programas. Outra tarefa não menos importante é avaliar as ferramentas/técnicas baseadas nesses algoritmos. A pergunta é: as ferramentas/técnicas desenvolvidas realmente aumentam a produtividade dos desenvolvedores de software? Esta pergunta somente pode ser respondida por meio de experimentos que avaliem as ferramentas/técnicas. O "Grupo de Análise e Experimentação de Software" da EACH/USP tem como objetivo desenvolver ferramentas/técnicas para análise de software e desenvolver experimentos para a avaliação dessas ferramentas/técnicas.

11:45 - Um arcabouço de estudos experimentais de técnicas de verificação, validação e teste

Palestrante: Erika Höhn (ICMC)

Resumo:

Proposta para definição de um arcabouço de estudos experimentais visando a colaborar com uma maior facilidade no planejamento de famílias de estudos. Um corpo de conhecimento sobre técnicas de VV&T pode ser gerado com base nas evidências e informações geradas por famílias de estudos.

12:10 - Almoço

Comida!!

13:30 - Desenvolvimento de Ferramentas

Palestrante: Márcio Delamaro (UNIVEM – Marília)

Resumo:

Tem atuado no desenvolvimento e aplicação de técnicas e ferramentas de teste de software, principalmente baseados em código como o teste de mutação e teste estrutural. É um dos autores da ferramenta de mutação Proteum, largamente utilizada no desenvolvimento de projetos de pesquisa relacionados ao teste de mutação, no Brasil e no exterior. É também autor da ferramenta JaBUTi que apóia o teste estrutural de programas e componentes Java. Atualmente desenvolve projeto que tem como objetivo o desenvolvimento de uma estratégia de teste estrutural para componentes. Essa estratégia envolve a geração de metadados de teste, encapsulados pelo desenvolvedor junto com o código do componente e reutilizados durante o teste da aplicação que usa o componente.

Participa também no desenvolvimento de ferramenta para o teste de código Java em dispositivos móveis como celulares e PDAs. Para tanto desenvolveu-se um extensão da ferramenta JaBUTi que permite a análise da execução e da cobertura de programas J2ME em emuladores ou no próprio dispositivo alvo Ainda, iniciou projeto para o desenvolvimento de ferramenta para a geração automática de dados de teste para modelos desenvolvidos utilizando a ferramenta Simulink. Tais modelos são muito utilizados em sistemas embarcados como, por exemplo, na indústria aeronáutica e, portanto, possuem altos requisitos de validação. Na fase atual, pretende-se utilizar teste combinatorial para a geração de casos de teste. Possui interesse, também, em técnicas de teste baseadas em modelos formais, padronização e teoria de teste.

13:55 - Mecanismos de Apoio ao Processo de Desenvolvimento e Modelagem de Módulos Educacionais

Palestrante: Ellen Barbosa (ICMC)

Resumo:

Entre as linhas que têm sido objeto de pesquisa no contexto de Ensino e Aprendizado destaca-se o desenvolvimento de módulos educacionais – unidades concisas de estudo, compostas por conteúdos teóricos integrados a atividades práticas e avaliações, cuja disponibilização aos aprendizes é apoiada por recursos tecnológicos e computacionais. Nesse contexto foram investigados e definidos mecanismos de apoio ao processo de desenvolvimento e modelagem de módulos educacionais. Os mecanismos estabelecidos propiciaram a reestruturação de materiais didáticos na área de Engenharia de Software, mais especificamente dentro da temática de Teste de Software.

Pretende-se agora investigar e definir mecanismos de apoio ao processo de desenvolvimento aberto, cooperativo e distribuído de módulos educacionais. Tanto o ensino presencial como a distância devem ser contemplados. A longo prazo, pretende-se estabelecer um cenário para o desenvolvimento de módulos educacionais livres (open learning materials).

14:20 - a definir...

Palestrante: Francisco Mônaco (ICMC)

Resumo: a fazer

14:45 - Gestão de Conhecimento para Definição e Melhoria de Processos de Teste

Palestrante: Viviane Malheiros (ICMC)

Resumo:

A concepção do desenvolvimento de software livre (SL) implica em distribuição do conhecimento subjacente a uma aplicação. Essa distribuição pode ser ampliada para envolver o conhecimento dos processos ou ambientes de desenvolvimento usados. Aqui, propõe-se uma infra-estrutura para definição e evolução de processos livres, inspirada na concepção do desenvolvimento de SL e em práticas de gestão do conhecimento (GC). Propõe-se, ainda, um processo livre para teste de software, já que essa área tem se revelado como muito importante para eliminação de defeitos do produto de software. A extensa gama de técnicas, ferramentas, atividades e habilidades necessárias para testar um produto demonstra a sua complexidade e o potencial de contribuições de GC e da Melhoria de Processos.

15:10 - Coffe Break

Comida & Conversa

15:30 - ESELAW: 3rd Experimental Software Engineering Latin American Workshop

The objective of ESELAW’06 is to provide a forum where researchers and practitioners can report on and discuss new research results in the area of experimental software engineering. This forum intends to bring together Latin America’s academic, industrial and commercial communities interested on Experimental Software Engineering and Empirical Studies

  • Open Source, Agile Methods, Experimentation
  • Coordination: Márcio Delamaro, José Carlos Maldonado

16:00 - Publicações

  • QualiPSo Conference: Fostering trust and quality of Open Source Software systems
    • Rome 4-5th December, 2007
    • Contributions Submission Deadline: 30th September, 2007

16:30 - Discussão Geral

Coordenador: Prof. Maldonado

17:00 - Encerramento