CBSoft - Tutorials

 

Invited International Tutorial

Tutorial title: A Formal Approach to Service-Oriented Modelling

Invited speaker: José Luiz Fiadeiro (University of Leicester, UK)

Short bio: José Fiadeiro joined the University of Leicester in December 2002 as Professor of Software Science and Engineering, See more details...

Date: Wednesday (Sep 28, 2011)
Time: 11:00 - 12:30 / 14:30 - 16:00 (*)

Abstract: This tutorial provides an overview of a formal approach to service-oriented modelling that we have developed within the SENSORIA project. We focus on the primitives that SRML – the SENSORIA Reference Modelling Language – offers for modelling business services and activities, their mathematical semantics, and the methodological approach that they support. This is joint work with Antónia Lopes (University of Lisbon), and Laura Bocchi and João Abreu (University of Leicester).





Invited Brazilian Tutorial

Title (Portuguese): Linha de Processos de Software: Explorando Variabilidades na Reutilização de Processos de Software

Invited speaker: Cláudia Maria Lima Werner (COPPE/UFRJ)
Co-speaker: Eldânae Nogueira Teixeira (COPPE/UFRJ)

Short bio (Portuguese): Cláudia Werner é doutora pela COPPE/UFRJ (1992) e professora associada do Programa Engenharia de Sistemas e Computação da COPPE/UFRJ na área de Engenharia de Software desde 1994, onde lidera o Grupo de Reutilização de Software. See more details...

Date: Friday (Sep 30, 2011)
Time: 11:00 - 12:30 / 14:30 - 16:00 (*)

Abstract (Portuguese): Diante da ampla competitividade e dinamicidade de mercado, as organizações têm buscado técnicas que aumentem a produtividade associada à flexibilidade de fornecer serviços e produtos de software de qualidade aos usuários. A qualidade desses produtos está fortemente relacionada à qualidade dos processos de desenvolvimento adotados para construí-los. No entanto, definir um processo de software não é uma atividade trivial. Essa tarefa exige experiência e deve levar em consideração contextos específicos de aplicação, características organizacionais e de projetos. A aplicação de técnicas de reutilização de processos visa auxiliar essa atividade, contribuindo para melhorias na produtividade e qualidade, associadas à redução de esforços e custos envolvidos.
           Aproveitando a analogia existente entre software e processos de software, técnicas de reutilização de software vêm sendo aplicadas na área de processos. Assim, abordagens que seguem a linha de padrões, arquiteturas, templates e componentização de processos são apresentadas como técnicas aplicadas à reutilização de processos. Neste cenário, a abordagem de Linha de Processos surgiu como uma técnica de reutilização de processos que trabalha os conceitos provenientes da abordagem de Linha de Produtos de Software cujos produtos são processos. Uma Linha de Processos de Software pode ser entendida como um conjunto de processos de software que compartilham um conjunto de características comuns e variáveis, e são desenvolvidas a partir de artefatos (core assets), que podem ser reutilizados e combinados entre si, para compor e adaptar processos de software.
           Neste tutorial, apresentaremos os conceitos e as pesquisas realizadas pelo Grupo de Reutilização de Software do Programa de Engenharia de Sistemas e Computação da COPPE/UFRJ, buscando desenvolver uma abordagem de Engenharia de Linha de Processos de Software (ELPS), que compreende toda a estrutura para construir, utilizar e gerir uma Linha de Processos de Software. Desta forma, os processos de software podem ser representados de acordo com as suas similaridades e diferenças, facilitando e guiando a sua adaptação durante a instanciação de processos específicos de projetos.





Selected Tutorial 1

Tutorial title: Rulemakers and Toolmakers: Adaptive Object-Models as an Agile Division of Labor
                     Ultimate Agility: Let your Users Do Your Work!

Tutorial speaker: Joseph W. Yoder (The Refactory, Inc., USA)
Date: Monday (Set 26, 2011)
Time: 11:00 - 12:30 / 14:30 - 16:00 (*)

  • Abstract: Agile practitioners value both the incremental delivery of working software and design simplicity. But when working on Agile projects, developers can become overwhelmed with the rate of requirements change. The ease with which requirements can change encourages users to overwhelm us with requests for features. The result: Featuritis, which can promotes hasty construction of poorly designed software to support those features. The design of an expressive domain model might get lost in the rush to write working code. Adaptive Object-Models support changeable domain modules by casting business rules as interpreted data and representing objects, properties and relationships in external declarations. At first glance, AOM systems seem to contradict Agile values. Yet we find that under the right conditions, an AOM architecture has made our users happier and has given them the ability to control the pace of change. It’s the ultimate in agility!
  • This tutorial presents the core elements of an AOM architecture based on an example from a working system and surveys other patterns essential to this architecture style. I will then showcase several production AOM systems and demonstrate how they have given users the control they needed to confidently revise, extend, and grow their software. (More Info)
  • Level: Advanced
  • Language: English

  • Joseph W. Yoder is a founder and principal of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joseph is an international speaker and pattern author, long standing member of the ACM, and the President of The Hillside Group, a, a group dedicated to improving the quality of software development. Joseph specializes in Architecture, Analysis and Design, C#, Java, Smalltalk, Patterns, Agile Methods, Adaptable Systems, Refactoring, Reuse, and Frameworks. Joe is the author of many patterns, including being an author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture.Joe currently resides in Urbana, Illinois. He teaches Agile Methods, Design Patterns, Object Design, Refactoring, and Testing in industrial settings and mentors many developers on these concepts. He currently oversees a team of developers who have constructed many systems based on enterprise architecture in the .NET environment. Other projects involve working in both the Java and .NET environments deploying Domain-Specific Languages for clients. Joe presents tutorials and talks, arranges workshops, and organizes leading technical conferences held throughout the world, including international conferences such as Agile, Agile Portugal, Encontro Ágil in Brazil, AOSD, CBSoft, JAOO, QCon, PLoP, AsianPLoP, SugarLoafPLoP in Brazil, OOPSLA, ECOOP, SATURN, and SPLASH. Joe thinks software is still too hard to change. He wants do something about this and believes that with good patterns and by putting the ability to change software into the hands of the people with the knowledge to change it seems to be on promising avenue to solve this problem. (home page)

Selected Tutorial 2

Title (Portuguese): Geração de Dados de Teste (Principais Conceitos e Técnicas)

Tutorial speakers: Silvia Regina Vergilio (UFPR, Brazil), Paulo Marcos Siqueira Bueno (CTI, Brazil), Arilo Claudio Dias Neto (UFAM, Brazil), Eliane Martins (Unicamp, Brazil), Auri Vincenzi (UFG, Brazil)
Date: Tuesday (Set 27, 2011)
Time: 11:00 - 12:30 / 14:30 - 16:00 (*)

  • Abstract (Portuguese): Testar o software de forma completa, considerando todas as possíveis combinações de valores de entrada, é quase sempre inviável. Esta inviabilidade do teste perfeito leva ao problema prático de escolher situações de uso a serem testadas. Critérios de teste visam a selecionar um conjunto de dados de testes que permitam aumentar a confiabilidade do software, avaliar seu comportamento e revelar as deficiências existentes, com um esforço e um custo factíveis. Os critérios de teste orientam sobre como utilizar informações sobre o software (tais como requisitos; modelos; ou o código fonte) e geralmente particionam o domínio de entrada em sub-domínios, requerendo que pelo menos um elemento seja exercitado em cada sub-domínio. A geração de dados de teste em geral, envolve determinar dados de entrada que exercitem os elementos requeridos por um dado critério de teste; é uma tarefa tipicamente complexa, que exige conhecimento técnico e considerável esforço intelectual. Abordagens de automação da geração de dados de teste vêm ganhando espaço como importante área de pesquisa, com grande impacto na adoção dessas técnicas na indústria. O presente tutorial aborda conceitos importantes relativos à etapa de geração de dados de teste e apresenta as principais técnicas de geração existentes tais como: geração aleatória, geração com execução simbólica ou dinâmica, e geração baseada em algoritmos de busca.
  • Level: Introductory
  • Language: Portuguese

  • Silvia Regina Vergilio possui graduação em Bacharelado em Ciências da Computação pela Universidade de São Paulo (1988), mestrado em Engenharia Elétrica pela Universidade Estadual de Campinas (1992) e doutorado em Engenharia Elétrica pela Universidade Estadual de Campinas (1997). Atualmente é professora Associada III da Universidade Federal do Paraná. É bolsista produtividade em pesquisa do CNPQ, nível 2. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: teste de software, aplicações web, utilização de técnicas de Inteligência Artificial em Engenharia de Software. (home page)
  • Paulo Marcos Siqueira Bueno mestre pela Faculdade de Engenharia Elétrica e de Computação da Unicamp (FEEC/Unicamp) e bacharel em ciência da computação pela Pontifícia Universidade Católica de Minas Gerais (DCC/PUC-MG). Atualmente é doutorando na FEEC/Unicamp. Colaborador do Centro de Tecnologia da Informação Renato Archer (CTI) desde 2005, tem atuado como: consultor em diversas iniciativas de implantação e melhoria de processos de teste de software em organizações; instrutor em programas de capacitação em teste e qualidade de software; e como pesquisador no desenvolvimento de novas técnicas de teste de software. É professor universitário há 7 anos e possui 13 anos de experiência em teste de software. Suas áreas de atuação profissional e de pesquisa incluem: melhoria de processos de software, teste de software e inteligência computacional. (home page)
  • Arilo Claudio Dias Neto possui graduação em Bacharelado em Ciências da Computação pela Universidade Federal do Amazonas (2004), mestrado em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro/COPPE (2006) e doutorado em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro/COPPE (2009). Atualmente é professor associado do Departamento de Ciência da Computação da Universidade Federal do Amazonas. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: teste de software, qualidade de software, engenharia de software experimental, utilização de técnicas de otimização em Engenharia de Software. (home page)
  • Eliane Martins possui graduação em Matemática Modalidade Informática pela Universidade Federal do Rio de Janeiro (1976), mestrado em Engenharia de Sistemas e Computação pela Coordenação dos Programas de Pós-Graduação em Engenharia da Universidade Federal do Rio de Janeiro (1982) e doutorado em Informática - Ecole Nationale Supérieure de l'Aeronautique et de l'Espace (1992). Atualmente é professora associada da Universidade Estadual de Campinas. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software. Mais especificamente, os seus interesses de pesquisa incluem melhoria da robustez em sistemas embarcados, melhoria da robustez e da segurança de serviços Web, geração automatizada de testes a partir de modelos, injeção de falhas, métodos de testes para sistemas embarcados e técnicas de teste bio-inspiradas. (home page)
  • Auri Vincenzi é Bacharel em Ciência da Computação pela Universidade Estadual de Londrina UEL (1995) e mestre (1998) e doutor (2004) em Ciências da Computação e Matemática Computacional pela Universidade de São Paulo ICMC/USP. Durante o doutorado realizou sanduíche na University of Texas at Dallas UTDallas - EUA. Foi professor assistente na Universidade Católica de Santos - UNISANTOS (2006-2008), professor adjunto da Universidade Federal de Goiás UFG (2005-2006) e professor colaborador no Centro Universitário Eurípides de Marília UNIVEM (2004-2005). Desde 2008 retornou à Universidade Federal de Goiás - UFG como professor adjunto. Atuou como Coordenador de Informática do Centro de Seleção da UFG (2008 a 2010) e, desde 2010, é Diretor do Instituto de Informática da UFG. É bolsista produtividade em pesquisa do CNPQ, nível 2. Tem experiência na área de Engenharia de Software, com ênfase em Teste de Software, atuando principalmente nos seguintes temas: teste de software, teste funcional, teste estrutural, teste baseado em defeitos, desenvolvimento de ferramentas de teste e estabelecimento de estratégias de teste. É pesquisador Nível 2 do CNPq e membro da Sociedade Brasileira de Computação (SBC) e Association for Computing Machinery (ACM). (home page)

Selected Tutorial 3

Tutorial title: An Evolutionary Vision of Framework Development

Tutorial speakers: Eduardo Guerra (ITA, Brazil), Joseph W. Yoder (The Refactory, Inc., USA)
Date: Thursday (Set 29, 2011)
Time: 11:00 - 12:30 / 14:30 - 16:00 (*)

  • Abstract: A Framework is a piece of software that provides reuse at larger granularity, enabling not only code reuse but also design reuse. Frameworks use techniques that allow applications to specialize logic to solve a more specific problem. The goal of this tutorial is to present contemporary techniques for building frameworks. It starts from the fundamental object oriented techniques to achieve behavior adaptation, such as inheritance and composition, and goes through the usage of more advanced techniques, such as reflection and metadata. After the tutorial, the participants should be able to understand the techniques used in recent frameworks to achieve behavior adaptation and know how to apply then to increase flexibility in software architectures.
  • Level: Advanced
  • Language: English

  • Eduardo Guerra is a framework developer, researcher in software design, chief-editor of the MundoJ magazine and teacher at the Aeronautical Institute of Technology (ITA), where he concluded his graduation, mastering and PhD. He has a lot of Java certifications and experience as software architect in platforms like Java SE, Java ME and Java EE. Eduardo already presented talks in many conferences such as Agile Brazil, AgileVale, Encontro Ágil, PLoP, JustJava, SSI, XP Brasil, JaVale and Borcon. He participate as administrator in many open-source frameworks, like SwingBean, JColtrane and ClassMock. Eduardo believes that a good software is more made with creativity then with code, and is continuously searching for better ways to develop software. (CV Lattes, in Portuguese)
  • Joseph Yoder is a founder and principal of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joseph is an international speaker and pattern author, long standing member of the ACM, and the President of The Hillside Group, a, a group dedicated to improving the quality of software development. Joseph specializes in Architecture, Analysis and Design, C#, Java, Smalltalk, Patterns, Agile Methods, Adaptable Systems, Refactoring, Reuse, and Frameworks. Joe is the author of many patterns, including being an author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture.Joe currently resides in Urbana, Illinois. He teaches Agile Methods, Design Patterns, Object Design, Refactoring, and Testing in industrial settings and mentors many developers on these concepts. He currently oversees a team of developers who have constructed many systems based on enterprise architecture in the .NET environment. Other projects involve working in both the Java and .NET environments deploying Domain-Specific Languages for clients. Joe presents tutorials and talks, arranges workshops, and organizes leading technical conferences held throughout the world, including international conferences such as Agile, Agile Portugal, Encontro Ágil in Brazil, AOSD, CBSoft, JAOO, QCon, PLoP, AsianPLoP, SugarLoafPLoP in Brazil, OOPSLA, ECOOP, SATURN, and SPLASH. Joe thinks software is still too hard to change. He wants do something about this and believes that with good patterns and by putting the ability to change software into the hands of the people with the knowledge to change it seems to be on promising avenue to solve this problem. (home page)


(*) Note: All tutorials are three hours long, split into two blocks of one hour and a half each one.



Promotion

   

Organization

       

Sponsorship