TUTORIAIS

  • Tutorial I – CVL – Common Variability Language

    DOMINGO (29/09/2013) – 16:30 – 18:00

    Abstract: The tutorial will present the present the outcome of the work done by the Joint Submission Team against the Request For Proposals for a Common Variability Language issued by the OMG (Object Management Group). The tutorial will present the language and experiments done by some of the consortium members on tools supporting preliminary tools for CVL. The Common Variability Language (CVL) defined in this document is a domain-independent language for specifying and resolving variability. It facilitates the specification and resolution of variability over any instance of any language defined using a MOF-based meta-model. The goals of the tutorial are: (i) to show how this fully generic language can be used through simple examples; (ii) to make the participants aware of the opportunities and challenges of getting a CVL standard and allowing the community to influence the process; (iii) to present the CVL language as it is now specified in such a way that the audience will be able to provide meaningful feedback based on their own experience; (iv) to solicit feedback from tutorial participants on the CVL in order to make the CVL even more suitable for the Product Line community; and (v) to encourage independent implementations of tools based on the CVL specification. The audience for our tutorial can be experienced product line engineers as well as beginners in the field of PLE. It will be an advantage if the participant has some experience in modeling e.g. with SysML or UML, but this is not a strict requirement. Academics and practitioners alike will have benefit from the tutorial. We expect that the tutorial is of particular interest for builders of modeling and analysis tools, both academics and practitioners, who would like to support CVL.

    Palestrante

    krzysztof_czarnecki

    Krzysztof Czarnecki é professor de Engenharia da Computação e Elétrica da Universidade de Waterloo, Canadá. Ele foi pesquisador na Daimler Chrysler Research (1995-2002), Alemanha, atuando na melhoria de práticas e tecnologias de desenvolvimento de software para os domínios corporativo, automotivo, espacial e aeroespacial. Ele é co-autor do livro “Generative Programming” (Addison- Wesley, 2000), o qual aborda a automação do desenvolvimento componentizado de software baseado em linguagens específicas de domínio. Como pesquisador na Universidade de Waterloo, ele foi Research Chair em Engenharia de Requisitos de Sistemas de Software Orientado a Serviços do NSERC/Bank of Nova Scotia, e trabalhou em vários tópicos em engenharia de software dirigida por modelos, incluindo linhas de produto de software e modelagem de variabilidade, gerenciamento de consistência e transformações bidirecionais, e modelagem dirigida por exemplos. Ele recebeu os seguintes prêmios: Premier’s Research Excellence Award em 2004 e o British Computing Society in Upper Canada Award for Outstanding Contributions to IT Industry em 2008.

  • Tutorial II – Coding By Example – Tornando-se um desenvolvedor profissional

    SEGUNDA-FEIRA (30/09/2013) – 11:00 – 12:30 e 14:30 – 16:00

    Resumo: Este tutorial procura discutir o perfil de um desenvolvedor profissional,a importância de manter um código limpo além de práticas e ferramentaspodem apoiar neste sentido. Para tanto, é proposto um exercício focando em desenvolvimento dirigido por testes, refatoração e baby steps, visando expor de forma prática os benefícios dessa forma de trabalho.

    Palestrantes

    Guilherme Lacerda

    GuilhermeLacerda

    Mestre em Ciência da Computação, Área de Engenharia de Software (UFRGS). Professor de Graduação (FACENSA, UniRitter) e Pós-Graduação (UniRitter, Unisinos). Consultor de TI com mais de 15 anos de experiência na Área de desenvolvimento de software, onde trabalhei por 9 anos como CTO de uma empresa de consultoria e desenvolvimento de software open source. Assessor de TI da Presidência (CONINF – Tribunal de Justiça do Rio Grande do Sul) e Consultor da Wildtech. Blog: www.codingbyexample.org Daniel Wildt DanielWildt Trabalha com empresas e equipes ajudando na adoção de metodologias ágeis e melhoria das técnicas de engenharia de software. Sempre em busca de simplicidade e aprendizado. Ajuda pessoas a se tornarem melhores profissionais, equipes a crescerem através de melhoria contínua e produtos/serviços a serem formados. CTO na uMov.me (http://umov.me), instrutor/coach pela Wildtech (http://www.wildtech.com.br), tem um blog no http://danielwildt.com e pode ser visto no twitter @dwildt.

  • Tutorial III – Test Driven Development Step Patterns

    SEGUNDA-FEIRA (30/09/2013) – 11:00 – 12:30 e 14:30 – 16:00

    Abstract: Test Driven Development, popularly known as TDD, is a software development technique where the test code is developed before the application code. There were many advances on design techniques for test code automation, however many people still have difficulties on using TDD as a design technique. One of the reasons for this is that it is hard to identify which test should be created to drive the production code development. This tutorial came from a study that analyzed the TDD process and abstracted the kinds of steps that can be done through the creation of tests. Each kind of step was documented as a pattern that captures the motivation and consequences of each one. As a result, it is expected that the participants create a better understanding of the TDD process and how each kind of test can be used to guide production code development.

    Palestrantes

    Eduardo Guerra

    Eduardo Guerra

    Eduardo Guerra is a framework developer, researcher in software design, chief-editor of the MundoJ magazine and researcher at the National Institute for Space Research ñ INPE. He concluded his graduation, mastering and PhD at the Aeronautical Institute of Technology (ITA), where he also acted as a teacher for 6 years. He has industrial experience as software architect in platforms for desktop, mobile and enterprise applications. Eduardo already presented talks and workshops in national and international conferences such as Agile Brazil, AgileVale, Encontro ¡gil, PLoP, JustJava, SSI, XP Brasil, JaVale, Agile Portugal, SugarLoafPLoP and Borcon. He participates as administrator in many open-source frameworks, like Esfinge, SwingBean and ClassMock. Eduardo believes that good software is more made with creativity then with code, and is continuously searching for better ways to develop software.

    Joseph Yoder
    JoeYoder

    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 using 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, AOSD, CBSoft, JAOO, QCon, PLoP, AsianPLoP, SugarLoafPLoP, OOPSLA, ECOOP, 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.

  • Tutorial IV – Selecting Empirical Methods for Software Engineering Research Involving Humans

    QUARTA-FEIRA (02/10/2013) – 11:00 – 12:30 e 14:30 – 16:00

    Abstract: In Software Engineering is a social-technical discipline in which people interact among themselves as part of team efforts and with the methodologies, processes, techniques, and tools used in their activities. The social-technical nature of the interactions in software engineering emphasize the scientific and practical relevance of the study of human factors and their influence on the effectiveness of the work in the software industry. However, selecting and applying empirical research methods in studies involving humans is a challenge, in particular in field studies. Goal: this tutorial has the goal of discussing the main challenges in the empirical research with human subjects in software engineering and how to select research methods that conform to the philosophical stance of the researcher and can adequately address the research questions. Methods: Our emphasis will be on research methods adequate to conduct field studies in industry. Therefore, laboratory experiments will be just briefly discussed. Greater focus will be given to quasi-experimental and nonexperimental study designs. In particular, we will stress the role of qualitative and interpretive research and the techniques that can be used to collect and analyse qualitative data. The difficulties of conducting research in industrial settings will be addressed, in particular, ethical issues related to participant consent and information confidentiality. We will pay attention also to threats to validity that may be introduced due to variability in human behaviour, difficulty of isolating confounding factors, and researcher bias. Finally, The role of theory and theory building will also be emphasized as a necessary tool and goal of research on human aspects in software engineering. Conclusion: the literature in empirical software engineering research has several examples of studies of the impact of human factors in the tasks o software engineering. However, poor choice of research method or poor application of a potentially adequate method introduces several threats to validity the render most results not applicable in practice. We expect that this tutorial will make the participant aware of such problems. We also hope give the participants some guidance to select appropriate empirical methods for their own research and also to better evaluate the strengths and weaknesses of the work of others.

    Palestrante

    Fabio Silva

    FabioSilva

    Fabio Queda Bueno da Silva é PhD em Ciência da Computação pelo Laboratory for Foundations of Computer Science, University of Edinburgh, Scotland, desde 1992. Suas áreas de pesquisa, ensino e consultoria incluem fatores humanos na engenharia de software, equipes e projetos de software, gestão da inovação, sistemas locais e nacionais de inovação, e empreendedorismo. Tem vasta experiência no planejamento e implantação de projetos de arranjos produtivos locais (APL), tendo sido o coordenador do projeto de APL do Estado de Pernambuco, consultor de planejamento estratégico do APL de Tecnologias da Informação de Maceió-AL e de Viçosa-MG, idealizador do projeto de Centros Tecnológicos de Pernambuco e um dos idealizadores do Porto Digital de Recife. Foi Presidente do Instituto Tecnológico de Pernambuco, fundador e Diretor Presidente do Núcleo de Gestão do Porto Digital. É sócio fundador da Sociedade SOFTEX e do Centro de Estudos e Sistema Avançados do Recife – CESAR, do qual também é Diretor Presidente desde Maio de 2013.

  • Tutorial V – Como documentar a arquitetura de sua aplicação usando UML e além

    QUINTA-FEIRA (03/10/2013) – 11:00 – 12:30 e 14:30 – 16:00

    Você já se sentiu confuso ao ler um diagrama de design de software cheio de caixas e linhas? Você usa UML na sua arquitetura de software? Você já se perguntou onde fica a fronteira entre arquitetura e design (ou – argh! -“projeto”) de software? Se a resposta for ‘sim’ a qualquer destas perguntas, este tutorial trará informações práticas e valiosas para você. O objetivo é mostrar quais informações sobre uma arquitetura devem ser capturadas, de forma que outros possam com sucesso usá-la, mantê-la e construir um sistema a partir dela. Conhecimentos importantes passados neste tutorial: arquitetura possui múltiplas visões; como se pode usar UML em cada visão e quando outras notações funcionam melhor; quais visões ajudam a avaliar performance, disponibilidade, manutenibilidade e outras qualidades; como complementar diagramas estruturais com diagramas de sequência, diagramas de estado e outros diagramas de comportamento; como documentar interface de software; templates e recomendações para tornar seu documento de arquitetura mais efetivo.

    Palestrante

    Paulo Merson

    PauloMerson Paulo Merson possui mais de 22 anos de experiência na área de Engenharia de Software. Além de Analista de TI no TCU, é Visiting Scientist do prestigioso Software Engineering Institute (SEI) e membro do corpo de docentes do Mestrado em Computação Aplicada da Universidade de Brasília. Paulo ministra treinamentos profissionais na área de Arquitetura de Software e SOA nos EUA, Canadá, Europa, América Latina e Oriente Médio. Sua experiência como palestrante também inclui tutoriais no JavaOne de San Francisco, SD Best Practices, Dr. Dobb’s Architecture & Design World, SATURN Conference, The SOA and Cloud Symposium, além de palestras a estudantes de pós-graduação de universidades nos EUA, Europa e Brazil, e palestras convidadas em empresas e grupos de usuários diversos. Paulo é co-autor de “Documenting Software Architectures: Views and Beyond, Second Edition”. É Bacharel em Ciência da Computação pela UnB e Mestre em Engenharia de Software pela Carnegie Mellon University.

  • Tutorial VI – Using Ethnographic Methods in Software Engineering Research – Cancelado

    SEXTA-FEIRA (04/10/2013) – 11:00 – 12:30 e 14:30 – 16:00

    Abstract: Ethnographic methods are a powerful qualitative empirical approach to understanding and hence improving software engineering practice. Ethnographic methods are widely adopted in the Social Sciences and Information Systems, but recently they have been applied in Software Engineering research because they provide a complementary source of insight to quantitative methods, which are predominantly applied in software engineering. The proposed half-day tutorial introduces ethnography and its application in software engineering research.

    Palestrantes

    Cleidson de Souza

    cleidson

    Cleidson de Souza é um pesquisador do Instituto Tecnológico Vale e professor da Universidade Federal do Pará Ele têm interesse em entender como engenheiros de software trabalham de maneira colaborativa para desenvolver software. Ele tÍm usado métodos etnográficos na sua pesquisa desde 2012 e publicado seus resultados em conferências e revistas importantes incluindo ICSE, FSE, CSCW, IEEE TSE and jCSCW.

    Yvonne Dittrich

    Yvonne Dittrich é professora associada da IT University of Copenhagen na Dinamarca. A pesquisa dela aborda desenvolvimento de software como uma atividade colaborativa. Ela tem mais de 10 anos de experiência com métodos de pesquisa qualitativos e desenvolveu uma abordagem que combina métodos etnográficos com pesquisa.

    Helen Sharp

    helen

    Helen Sharp é professor de Engenharia de Software na Open University, UK. A pesquisa dela foca nos aspectos sociais do desenvolvimento de software e ela têm conduzido estudos qualitativos de equipes de desenvolvimento de software desde o inÌcio dos anos 1990. Mais recentemente, seu foco têm sido em métodos ágeis de desenvolvimento de software. Ela é coautora do livro Interaction Design que inclui métodos etnográficos em desenvolvimento de software.