{"title":"Patterns for C Iterator Interfaces","authors":"C. Preschern","doi":"10.1145/3147704.3147714","DOIUrl":"https://doi.org/10.1145/3147704.3147714","url":null,"abstract":"Iterating over a set of elements is a very common operation in any program. Some programming languages provide native constructs to iterate over elements and for object-oriented progamming languages there exists guidance in form of design patterns on how to implement generic iteration functionality. However, there is just very few guidance of this kind for procedural programming languages like C. This paper provides such guidance and presents three patterns on how to design generic iterator interfaces in C.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115224883","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Specification in Continuous Software Development","authors":"Theo Theunissen, Uwe van Heesch","doi":"10.1145/3147704.3147709","DOIUrl":"https://doi.org/10.1145/3147704.3147709","url":null,"abstract":"The procession of lean, agile and DevOps development processes introduces new challenges and offers new chances regarding software specification and documentation. Challenges for instance because specifications, just like code and applications, are subject to continuous change; chances, because continuous software processes make use of a high degree of automation which also introduces efficient means for specification and documentation. In this paper, we describe the continuous software design specification pattern, which contains guidelines and principles for specification in continuous development processes. In these processes, a software system is an evolution of life cycles where each iteration has a start, continuation and end of defining specifications. Therefore, the pattern explicitly distinguishes specifications to be created at the start of an iteration, specifications during an iteration, and a specification-refactoring at the end of each iteration. Apart from the pattern description, this paper describes the principles of continuous software development derived from lean software development, agile, and DevOps.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128160167","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Fellmann, A. Koschmider, R. Laue, Andreas Schoknecht, Arthur Vetter
{"title":"A Taxonomy and Catalog of Business Process Model Patterns","authors":"M. Fellmann, A. Koschmider, R. Laue, Andreas Schoknecht, Arthur Vetter","doi":"10.1145/3147704.3147725","DOIUrl":"https://doi.org/10.1145/3147704.3147725","url":null,"abstract":"While a large number of business process model patterns have been suggested in the literature, it is currently difficult to find patterns that might be useful in a given context. The reason is that the relevant publications are spread in various journals and other types of publications, and there is no guidance for locating a pattern that can be useful for solving a given problem. In our article, we present the results of a literature survey that has been conducted with the aim to get an exhaustive overview on existing publications on business process modeling patterns. The results of the survey allowed us to propose a taxonomy of existing patterns as a first step towards a pattern language of business process model patterns. Furthermore, we created an online catalog that allows finding publications on business process model patterns based on various search criteria. It is intended to be useful both for business process modeling practitioners as for researchers in need of sound literature references. Currently, this catalog includes links to 89 publications (usually containing more than one pattern). It is our aim to populate the catalog with patterns published in the future.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134166348","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Eva-Maria Schön, Jörg Thomaschewski, María José Escalona Cuaresma
{"title":"Identifying Agile Requirements Engineering Patterns in Industry","authors":"Eva-Maria Schön, Jörg Thomaschewski, María José Escalona Cuaresma","doi":"10.1145/3147704.3147733","DOIUrl":"https://doi.org/10.1145/3147704.3147733","url":null,"abstract":"Agile Software Development (ASD) is gaining in popularity in today's business world. Industry is adopting agile methodologies both to accelerate value delivery and to enhance the ability to deal with changing requirements. However, ASD has a great impact on how Requirements Engineering (RE) is carried out in agile environments. The integration of Human-Centered Design (HCD) plays an important role due to the focus on user and stakeholder involvement. To this end, we aim to introduce agile RE patterns as main objective of this paper. On the one hand, we will describe our pattern mining process based on empirical research in literature and industry. On the other hand, we will discuss our results and provide two examples of agile RE patterns. In sum, the pattern mining process identifies 41 agile RE patterns. The accumulated knowledge will be shared by means of a web application.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"22 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116857461","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Patterns for Idea Management in Innovation Communities","authors":"M. Weiss","doi":"10.1145/3147704.3147708","DOIUrl":"https://doi.org/10.1145/3147704.3147708","url":null,"abstract":"Innovation communities enable companies and their customers to create new products, discuss product ideas, and promote new products. The patterns in this paper focus on idea management, an essential element of innovation communities concerned with attracting, evaluating, and developing ideas. The paper is part of a series of papers on patterns for designing innovation communities. The audience for the patterns includes organizations and individuals involved in the creation, operation, and growth of innovation communities.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126650584","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Empirical Evaluation Methods for Pattern Languages: Sketches, Classification, and Network Analysis","authors":"Niels Seidel","doi":"10.1145/3147704.3147719","DOIUrl":"https://doi.org/10.1145/3147704.3147719","url":null,"abstract":"After elaborating design patterns in a certain field or domain building a pattern language will be the next step. This can be a challenging task, because a large amount of text with numerous cross-references and dependencies needs to become inherently consistent. In order to improve the quality of a pattern language it is necessary to analyse and evaluate all individual patterns as well as the pattern language as a whole. This paper provides an overview of existing evaluation methods for pattern languages and contributes further empirical methods that aim to assess and analyse pattern languages from different perspectives. Methods for sketching patterns, pattern classification, and the network analysis of pattern interrelation will be introduced and explained. The three methods are applied and tested in a case study about a pattern language for video learning environments.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123756132","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Analysis of GoF Design Patterns used in Knowledge Processing Systems","authors":"Stefan Nadschläger, J. Küng","doi":"10.1145/3147704.3147711","DOIUrl":"https://doi.org/10.1145/3147704.3147711","url":null,"abstract":"To increase the quality of knowledge processing systems and provide help to software developers, selected existing knowledge processing systems are analysed for the occurrence of used object-oriented design patterns (especially from the Gang-of-Four catalogue). This analysis intends to draw attention to the lack of good software design in the area of knowledge processing systems and at the same time provides a smaller catalogue of design patterns with proven usage in practice, to support development. The design patterns were identified manually in a structured analysis by reverse engineering the source code, supported by a design pattern detection tool. As a result, Gang-of-Four design patterns, suitable for developing custom knowledge processing systems, are presented and discussed.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133229251","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
P. Inventado, P. Scupelli, Cristina Heffernan, N. Heffernan
{"title":"Feedback Design Patterns for Math Online Learning Systems","authors":"P. Inventado, P. Scupelli, Cristina Heffernan, N. Heffernan","doi":"10.1145/3147704.3147738","DOIUrl":"https://doi.org/10.1145/3147704.3147738","url":null,"abstract":"Increasingly, computer-based learning systems are used by educators to facilitate learning. Evaluations of several math learning systems show that they result in significant student learning improvements. Feedback provision is one of the key features in math learning systems that contribute to its success. We have recently been uncovering feedback design patterns as part of a larger pattern language for math problems and learning support in online learning systems. In this paper, we present three feedback design patterns developed from the application of the data-driven design pattern methodology on a large educational dataset collected from actual student data in a math online learning system. These design patterns can help teachers, learning designers, and other stakeholders construct effective feedback for interactive learning activities that facilitate student learning.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"8 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126100899","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Dennis Dubbert, Meryem Dural, Matthias Gross, Christian Kohls, Beate Münster, Guido Münster, Thomas Raser
{"title":"Patterns for cross-device communication in a blended space for innovation","authors":"Dennis Dubbert, Meryem Dural, Matthias Gross, Christian Kohls, Beate Münster, Guido Münster, Thomas Raser","doi":"10.1145/3147704.3147740","DOIUrl":"https://doi.org/10.1145/3147704.3147740","url":null,"abstract":"Blended spaces are spaces that mix different spaces (e.g. physical and digital, social and conceptual) into one coherent whole. The blend is more than the sum of its part because new properties emerge. In a blended space, physical and digital activities overlap. A blended space consists of several physical devices that connect to the digital world (e.g. digital whiteboards, interactive tablets, smartphones, game arcades etc.). It is important to connect the digital devices between each other in order to create one holistic experience of the space.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129933913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
O. Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun
{"title":"Interface Representation Patterns: Crafting and Consuming Message-Based Remote APIs","authors":"O. Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun","doi":"10.1145/3147704.3147734","DOIUrl":"https://doi.org/10.1145/3147704.3147734","url":null,"abstract":"Remote Application Programming Interfaces (APIs) are technology enablers for major distributed system trends such as mobile and cloud computing and the Internet of Things. In such settings, message-based APIs dominate over procedural and object-oriented ones. It is hard to design such APIs so that they are easy and efficient to use for client developers. Maintaining their runtime qualities while preserving backward compatibility is equally challenging for API providers. For instance, finding a well suited granularity for services and their operations is a particularly important design concern in APIs that realize service-oriented software architectures. Due to the fallacies of distributed computing, the forces for message-based APIs and service interfaces differ from those for local APIs -- for instance, network latency and security concerns deserve special attention. Existing pattern languages have dealt with local APIs in object-oriented programming, with remote objects, with queue-based messaging and with service-oriented computing platforms. However, patterns or equivalent guidance for the structural design of request and response messages in message-based remote APIs is still missing. In this paper, we outline such a pattern language and introduce five basic interface representation patterns to promote platform-independent design advice for common remote API technologies such as RESTful HTTP and Web services (WSDL/SOAP). Known uses and examples of the patterns are drawn from public Web APIs, as well as application development and software integration projects the authors have been involved in.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123395157","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}