Tutorial 1: Smart cities: Technologies, Applications, and Challenges
Monday (19/09)11:00-12:30
14:30-16:30
Fabio Kon (USP)
Abstract:
As the urban population grows, infrastructure problems and limited access to resources in various cities around the world negatively impact the lives of billions of people. Making cities smarter can help improve urban services, improving the quality of life of their citizens. Information and Communication Technologies (ICT) are key tools in this pursuit. Well-designed software platforms can greatly facilitate the creation and integration of robust applications for smart cities. However, significant technical and scientific challenges still remain and need to be addressed before such platforms can be widely used. This tutorial presents the state of the art and the state of the practise on smart cities initiatives and environments. To this purpose, we analyse international initiatives on smart cities and scientific projects aiming at the creation of software platforms for smart cities. We describe the key technologies used by these projects and their functional and non-functional requirements. Finally, we present the research challenges that are still open and discuss our vision for the area in the future.
Tutorialist
Fabio Kon, Professor of Computer Science at IME-USP, Special Advisor to the Scientific Director at FAPESP, and Editor-in-Chief of the SpringerOpen Journal of Internet Services and Applications, carries out research in the fields of Digital Entrepreneurship, Open Source Software, Distributed Systems, and Smart Cities. In addition to his strong activity as a researcher, having published high-impact international papers and having received the ACM Middleware 10-Year Best Paper Award, Fabio is a volunteer adviser to several software startups.
Tutorial 2: Sustainability and Longevity in Software Systems
Tuesday (20/09)11:00-12:30
14:30-16:30
Rodrigo Santos (UNIRIO)
Sabrina Marczak (PUCRS)
Elisa Yumi Nakagawa (ICMC/USP)
Abstract:
Currently, software development has involved a community of many individuals, teams, and even distributed organizations related by one or more central software platforms, e.g., iOS and SAP. Moreover, such organizations have created and maintained products and services with different technologies and for diverse application domains. In this scenario, several research topics in the Software Engineering area have been arisen to adequately deal with such large, complex, and sometimes critical software systems that need to have a long-term survival. In this perspective, Distributed Development, Software Ecosystems, and Systems-of-Systems are three topics that have been separately investigated; however, they should be together and complementarily investigated covering technical, business, and social dimensions of software engineering. When considered together, such topics can contribute to provide sustainability and longevity for current, complex software systems. Sustainability addresses the long-term use of such systems and their appropriate evolution in a constantly changing execution environment, extending their longevity. In this tutorial, we introduce sustainability and longevity in software systems and provide a discussion on how those three topics are related to each other based on real cases.
Tutorialist
- Rodrigo Santos is Lecturer at DIA/UNIRIO and Software Engineering Researcher at COPPE/UFRJ. He visited University College London (UCL) as a researcher in 2014-2015. He holds a PhD degree in Systems Engineering and Computer Science from COPPE/UFRJ. His research interests are Software Ecosystems, Requirements and Reuse. He leaded some projects related to process improvement and software ecosystem management at Coppetec Foundation since 2008 (clients: CEPEL, MPOG and CAPGov). He was the program co-chair of CBSoft/WDES 2015. He gave short courses and tutorials in some conferences: SBQS (2015/2009), CBSOFT (2013/2012), SBSI (2013/2011/2010), CIBSE (2012), SBIE (2010), ICTAC (2010).
- Sabrina Marczak is Adjunct Professor in the Computer Science School at the PUCRS, where she acts as a researcher of the Munddos Research Group. She holds a PhD degree in Computer Science from the University of Victoria, Canada. She was the local chair of the 2012 IEEE ICGSE, and one of the co-organizers of the 2011/2012 Global Software Engineering for Agile Teams and the 2013/2014/2015 Empirical Requirements Engineering workshops co-located to IEEE RE. She was the program co-chair of CBSoft/WDES 2014. Her research area is collaborative software engineering and requirements engineering. She is currently the coordinator of the Dell/PUCRS Research Agreement where she leads a research project on large-scale agile development. CV Lattes: http://lattes.cnpq.br/9458496222461501.
- Elisa Yumi Nakagawa is Associate Professor in the Department of Computer Systems at University of São Paulo, São Carlos, Brazil. She is coordinator of international and Brazilian research projects in the areas of software architecture, reference architectures, and systems-of-systems. She is also supervisor of PhD students and Post-doctoral researchers. She has organized Brazilian and international events in the areas of software architecture and systems-of-systems, e.g., SESoS co-located to ICSE. She was the program co-chair of CBSoft/WDES 2014. She conducted her Post-Doctoral in 2011-2012 in Fraunhofer IESE, Germany, and in 2014-2015 at University of South Brittany, France. She received her Ph.D. degree in 2006 from the University of São Paulo. CV Lattes: http://lattes.cnpq.br/7494142007764616.
Tutorial 3: Mining Software Repositories
Wednesday (21/09)10:15-12:00
13:30-15:30
Ahmed Hassan (Queens University/Canada)
Abstract:
Source control repositories, bug repositories, archived communications, deployment logs, and code repositories are examples of software repositories that are commonly available for most software projects. The Mining Software Repositories (MSR) field analyzes and cross-links the rich data available in these repositories to uncover interesting and actionable information about software systems. By transforming these static record-keeping repositories into active ones, we can guide decision processes in modern software projects. For example, data in source control repositories, traditionally used to archive code, could be linked with data in bug repositories to help practitioners propagate complex changes and to warn about risky code based on prior changes and bugs. In this tutorial, I will present a brief history of the MSR field, then discuss several achievements and results of using MSR techniques to support software research and practice. I will highlight the various opportunities and challenges that lie in the road ahead for this important field. Finally, I will give an overview of best practices for building statistical and machine learning models from mined data, as well as presenting the results of such models in papers.
Tutorialist
Ahmed E. Hassan is the Canada Research Chair (CRC) in Software Analytics, and the NSERC/BlackBerry Software Engineering Chair at the School of Computing at Queen’s University, Canada. His research interests include mining software repositories, empirical software engineering, load testing, and log mining. Hassan received a PhD in Computer Science from the University of Waterloo. He spearheaded the creation of the Mining Software Repositories (MSR) conference and its research community. Hassan also serves on the editorial boards of IEEE Transactions on Software Engineering, Springer Journal of Empirical Software Engineering, Springer Journal of Computing, and PeerJ Computer Science. Contact ahmed@cs.queensu.ca. More information at: http://sail.cs.queensu.ca/
Tutorial 4: Concern Identification and Classification in the Context of Aspect-Oriented Requirement Engineering (AORE)
Thursday (22/09)11:00-12:30
14:30-16:30
Paulo Afonso Parreira Júnior (UFLA)
Rosângela Aparecida Dellosso Penteado (UFSCar)
Abstract:
A software concern may be defined as a set of requirements related to the same purpose. A CrossCutting Concern (CCC) (or Early-Aspect) is a concern whose requirements cut-across other concern requirements and the inadequate modularization of this type of concern may hinder the software development and its evolution. The Aspect-Oriented Requirements Engineering (AORE) area provides more appropriate strategies for CCC identification, representation and composition. A commonly reported issue on AORE approaches is the low effectiveness provided by them, regarding to the concern identification and classification. This is due to two main causes: (i) the lack of a broader understanding about software concerns domain; and (ii) the lack of appropriate resources to support software engineers during the identification and classification of software concerns. This tutorial aims to shed light over these causes, as well to present an AORE approach, called ObasCId (Ontologically-based Concern Identification). ObasCId is an ontologically-based AORE approach, which describes a set of required activities for concern identification and classification from software requirements, as well as for conflict detection among the identified concerns. In addition, ObasCId has a computational support, called ObasCId-Tool, which automates some activities of this approach. The “ontologically-based” expression refers to the fact that ObasCId takes the concepts described in O4C (Ontology for Concerns) ontology into account in its conception.
Tutorialists
- Paulo Afonso Parreira Júnior graduates in Computer Science from the Federal University of Lavras in 2009. He has master (2011) and doctorate (2015) degrees in Computer Science (Software Engineering) from the Federal University of São Carlos. He is currently a professor at the Department of Computer Science of the Federal University of Lavras and a member of the Research Group on Software Engineering. His experience as a researcher is in the computer science area, with emphasis on Software Engineering and Information Technology in Education.
- Rosângela Aparecida Dellosso Penteado is a full professor at the Federal University of São Carlos, with a degree in Mathematics from Julio de Mesquita Filho University (1976). She has a master degree in Computer Science from the University of São Paulo (1984) and a PhD degree in Science, software engineering area, from the University of São Paulo (1996). She works on the software engineering area, especially in: software modernization and re-engineering, software reuse, application frameworks, requirements. She was head of the Department of Computer UFSCar, vice coordinator of the MSc Computing Programm, the applicant and tutor Tutorial Education Program in Computer Science (PET-BCC), and coordinator of the course of Bachelor of Computer Science.
Tutorial 5: Revealing Design Problems in Source Code
Friday (23/09)
11:00-12:30
14:30-16:30
Alessandro Garcia, Diego Cedrim, Leonardo Sousa and Roberto Oliveira (Departamento de Informática, PUC-Rio)
Abstract:
Design problems affect almost all software projects and make their maintenance expensive and impeditive. As design documents are rarely available, programmers often need to identify design problems from the source code. However, the identi cation of design problems is not a trivial task for several reasons. For instance, the reifi cation of a design problem in the software implementation tends to be scattered through several anomalous code elements. Unfortunately, previous work has wrongly assumed that each single code anomaly -- popularly known as code smell -- can be used as an accurate indicator of a design problem. However, hundreds or thousands of code anomalies found in a single program, when analyzed individually, often inform too little about the critical design problems prevailing in a system. There is growing empirical evidence showing that several types of design problems are often related to a set of inter-related code anomalies, the so-called code-anomaly agglomerations, rather than individual anomalies.
This tutorial will first introduce the conceptual background on code anomalies and design problems. We will also introduce the basics of static analysis techniques for code anomaly detection. Then, we will summarize findings of recent studies that reveal the difficulties faced by developers on identifying, prioritizing and refactoring relevant code anomalies. After that, we will: (i) present some techniques for the synthesis of code-anomaly agglomerations, and (ii) discuss the (dis)advantages of these techniques on supporting developers on the efficient location and diagnosis of design problems. These discussions will enable us to sketch a research agenda for researchers interested in this topic.
Tutorialists
- Alessandro Garcia holds a doctorate in Computer Science from the Catholic University of Rio de Janeiro (2004), master's degree in Computer Science from the State University of Campinas (2000) and a degree in Computer Science from the State University of Maringa (1998). He served as Assistant Professor at the University of Lancaster (England) from February 2005 to January 2009. He is currently Associate Professor of Computer Science Department of the Catholic University of Rio de Janeiro. He has experience in computer science, with emphasis on Software Engineering, acting on the following topics: modularity, exception handling, product lines, software metrics, software architecture and model-driven software development. He has often been invited in the past 10 years for the Programme Committees and/or Organizing Committees of the major international conferences of software engineering and related fields such as ICSE, ESF, AOSD /Modularity, MODELS, ICPC, ESEM, SPLC, SANER, AAMAS and several others. He also publishes frequently in these conferences. He hold Research Productivity Grant (CNPq level 1D). He received several awards, distinctions and recognitions such as Best Master's Dissertation 2000 (Brazilian Computer Society), Best Researcher of the Year (Lancaster University, 2006), Young Scientist of Our State (FAPERJ, 2009 and 2013), Distinguished productivity (PUC-Rio, 2009 and 2012) and Affiliate Member of the Brazilian Academy of Sciences (ABC, 2009-2014). Several of his paper have received awards in major international conferences in your area, such as "ACM Distinguished Paper Award" of the ICSE 2014. He is a member of the Editorial Board of two of the main journals in his area: IEEE Transactions on Software Engineering and Journal of Systems and Software. He leads the Opus research group, the Software Engineering Laboratory of PUC-Rio, having several partnerships with other international research groups in the USA, England, Germany, France, Spain, Portugal and Argentina. His research projects are funded by development agencies - CNPq, CAPES, FAPERJ and Newton Fund - and by partners of the Software Industry, such as Petrobras and Minds @ Work..
- Diego Cedrim, Leonardo Sousa e Roberto Oliveira are PhD candidates at PUC-Rio.