TUTORIALS

  • Tutorial I – CVL – Common Variability Language

    SUNDAY, SEPT 29 – 16:30 – 18:00h

    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.

    Lecturer

    Krzysztof Czarnecki
    krzysztof_czarnecki

    Krzysztof Czarnecki is a Professor of Electrical and Computer Engineering at the University of Waterloo. Before coming to Waterloo, he was a researcher at Daimler Chrysler Research (1995-2002), Germany, focusing on improving software development practices and technologies in enterprise, automotive, space and aerospace domains. He co-authored the book on “Generative Programming” (Addison- Wesley, 2000), which deals with automating software component assembly based on domain-specific languages. While at Waterloo, he held the NSERC/Bank of Nova Scotia Industrial Research Chair in Requirements Engineering of Service-oriented Software Systems (2008-2013) and has worked on a range of topics in model-driven software engineering, including software-product lines and variability modeling, consistency management and bi-directional transformations, and example-driven modeling. He received the Premier’s Research Excellence Award in 2004 and the British Computing Society in Upper Canada Award for Outstanding Contributions to IT Industry in 2008.

  • Tutorial II – Coding By Example

    MONDAY, SEPT 30 – 11:00 – 12:30 and 14:30 – 16:00

    Abstract: This tutorial aims at discussing the profile of a professional developer, the importance of maintaining the code clean, also practices and tools that can support in this way. For this purpose, we propose an exercise focusing on the test driven development, refactoring and baby steps, aiming at showing a practical way the benefits of this way to work.

    Lecturers

    Guilherme Lacerda

    GuilhermeLacerda

    MSc in Computing Science, Software Engineering area (UFRGS) .Graduate (Facensa, UniRitter) and Postgraduate Professor (UniRitter and Unisinos). IT Consultant with +15 years software development experience, where I worked for 9 years as CTO (Open Source Development and Consulting Company). IT President’s Staff (CONINF – Tribunal de JustiÁa do Rio Grande do Sul) and Consultant (Wildtech). Blog: www.codingbyexample.org

    Daniel Wildt

    DanielWildt

    Daniel works with companies and teams coaching and mentoring on Agile Methodologies adoption and techniques to continuously improve software engineer processes. Always looking for simplicity and learning. He helps people to become better professionals, teams to grow through continuous improvement and products/services to go live. He is CTO at uMov.me (http://umov.me), instructor/coach at Wildtech (http://www.wildtech.com.br), blogger at http://danielwildt.com and his twitter is @dwildt.

  • Tutorial III – Test Driven Development Step Patterns

    MONDAY, SEPT 30 – 11:00 – 12:30 and 14:30 – 16: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.

    Lecturers

    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

    WEDNESDAY, OCT 02 – 11:30 – 12:00 and 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.

    Lecturer

    Fabio Silva

    FabioSilva

    Fabio Bueno da Silva holds a PhD in Computer Science from the Laboratory for Foundations of Computer Science, University of Edinburgh, Scotland, since 1992. His areas of research, teaching and consulting include human factors in software engineering, software teams and projects, innovation management, local and national systems of innovation and entrepreneurship. He has extensive experience in planning and implementing projects of local productive arrangements (APL), was the project coordinator of the APL in the State of Pernambuco, a consultant on strategic planning of the APL of Information Technology in Maceió-AL and Viçosa-MG, conceived the project of Technological Centres of Pernambuco and was one of the founders of Porto Digital Science Park in Recife. He was President of the Technological Institute of Pernambuco, founder and CEO of the Center for Management of Porto Digital. He is a founding partner of SOFTEX and the Center for Advanced Studies and Systems at Recife – CESAR. He is also Director President of CESAR since May, 2013.

  • Tutorial V – How to document the architecture of your application using UML and beyond

    THURSDAY, OCT 03 – 11:00 – 12:30 and 14:30 – 16:00

    Have you ever been confused by an arrow in a box-and-line design diagram? Do you use UML in your software architecture? Have you ever wondered where is the line between architecture and detailed design? If your answer is yes to any of these questions, then this tutorial has practical and valuable information for you. The goal is to show you what information about an architecture should be captured, so that others can successfully use it, maintain it, and build a software system from it. Important takeaways from this tutorial include: architecture consists of multiple views; how can we use UML in each view and when other notations work better; what views can we use to evaluate performance, availability, modifiability and other qualities; how to complement structural diagrams with sequence diagrams, statecharts and other behavior diagrams; how to document software interfaces; guidelines and templates to make your architecture documentation more effective. To benefit the most from this tutorial, attendees should have familiarity with basic UML and an interest in software architecture.

    Lecturer

    Paulo Merson
    PauloMerson

    Paulo Merson has 22 years of software development experience. He is a visiting scientist at the Software Engineering Institute where one of his assignments is to teach a 2-day course in “Documenting Software Architectures”. Paulo also works in industry as a software architect. His speaking experience includes tutorials at SD Best Practices, Dr. Dobbís Architecture & Design World, JavaOne, SATURN Conference, The SOA and Cloud Symposium, lectures to graduate students at universities in the US, Europe and Brazil, and invited talks at different companies. He is co-author of Documenting Software Architectures: Views and Beyond, 2nd edition.

  • Tutorial VI – Using Ethnographic methods in Software Engineering Research – Canceled

    FRIDAY, OCT 04 – 11:00 – 12:30 and 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.

    Lecturers

    Cleidson de Souza

    cleidson

    Cleidson de Souza is a Researcher at the Vale Institute of Technology and a faculty at the Federal University of Par·. His main research interest is in understanding how software engineers work collaboratively to develop software. He has been using ethnographic methods in his research since 2002 and has published in leading conferences and journals, including ICSE, FSE, IEEE TSE and jCSCW.

    Yvonne Dittrich

    yvonne

    Yvonne Dittrich is an associate professor at the IT University of Copenhagen, Denmark. Her research addresses software development as cooperative work and use oriented design and development of software. She has more than 10 years of experience with qualitative empirical research methods. She developed a research approach combining ethnographical methods with action research.

    Helen Sharp

    helen

    Helen Sharp is Professor of Software Engineering at The Open University, UK. Her research focuses on the social nature of software development, and she has been conducting qualitative studies of software development teams since the early 1990s. More recently, her focus has been on agile software development. She is joint author of a leading textbook on Interaction Design, which includes ethnographic methods in software development.