{"title":"Reasoning tradeoffs in languages with enhanced modularity features","authors":"J. Sánchez, Gary T. Leavens","doi":"10.1145/2889443.2889447","DOIUrl":"https://doi.org/10.1145/2889443.2889447","url":null,"abstract":"The continuous need for more ambitious, more complex, and more dependable software systems demands mechanisms to modularize such systems and reason about their correctness. The reasoning process is affected by the programming language’s features, like dynamic dispatching, implicit invocation and oblivious aspect weaving, and by how the programmer uses them. In this paper, by devising a unifying formal setting, we show how reasoning varies with the different language mechanisms, and provide sound rules for reasoning about programs that use these features. While analyzing these mechanisms we explore the main compromises or tradeoffs that led to them and explain the disciplines they impose and the strength of the reasoning conclusions one can derive in each case. Our contributions will benefit both language designers and programmers. Language designers will benefit from learning the effects of different modularity features on reasoning. Programmers will learn how to reason about programs that use such features.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"202 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133653840","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":"Cooperative decoupled processes: the e-calculus and linearity","authors":"Andi Bejleri, M. Mezini, P. Eugster","doi":"10.1145/2889443.2889449","DOIUrl":"https://doi.org/10.1145/2889443.2889449","url":null,"abstract":"Event-driven programming has become a major paradigm in developing concurrent, distributed systems. Its benefits are often informally captured by the key tenet of “decoupling”, a notion which roughly captures the ability of modules to join and leave (or fail) applications dynamically, and to be developed by independent parties. Programming models for event-driven programming either make it hard to reason about global control flow, thus hampering sound execution, or sacrifice decoupling to aid in reasoning about control flow. This work fills the gap by introducing a programming model – dubbed cooperative decoupled processes – that achieves both decoupling and reasoning about global control flow. We introduce this programming model through an event calculus, loosely inspired by the Join calculus, that enables reasoning about cooperative decoupled processes through the concepts of pre- and postconditions. A linear type system controls aliasing of events to ensure uniqueness of control flow and thus safe exchange of shared events. Fundamental properties of the type system such as subject reduction, migration safety, and progress are established.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"208 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116424047","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. Oliveira, R. Bonifácio, G. N. Ramos, Márcio Ribeiro
{"title":"Unveiling and reasoning about co-change dependencies","authors":"M. Oliveira, R. Bonifácio, G. N. Ramos, Márcio Ribeiro","doi":"10.1145/2889443.2889450","DOIUrl":"https://doi.org/10.1145/2889443.2889450","url":null,"abstract":"Product flexibility is one of the expected benefits of a modular design, and thus \"it should be possible to make drastic changes to a module without changing others.\" Accordingly, the data available on version control systems might help software architects to reason about some quality attributes of the modular decomposition of a system. In this paper we investigate the impact of co-change dependencies into system stability, that is, the potential ripple effect that might occur during maintenance tasks. Here we use (a) Design Structure Matrices (DSMs) for visualizing dependencies motivated by assets’ co-change and (b) two metrics for estimating system stability: Propagation Cost of Changes and Clustered Cost of a Decomposition. We conducted a comprehensive study about co-change dependencies and their effects on system stability, considering the change history of six open-source Java systems: Derby, Eclipse UI, Eclipse JDT, Hadoop, Geronimo, and Lucene; and one relevant financial systems of the Brazilian Government (SIOP). We evaluated two distinct situations: first considering only the static dependencies of each system and then considering both static and co-change dependencies of each system. There is a significant impact of the co-change dependencies on the stability measurements for Derby, Hadoop, Lucene, and SIOP. This result suggests that the modular decomposition of these systems does not resemble their change history. Accordingly, our findings provide empirical evidence that the common approach for reasoning about the modular decomposition, which often uses only static dependencies, hides important details about the costs of maintenance tasks.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127782876","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}
Oliver Bracevac, Sebastian Erdweg, G. Salvaneschi, M. Mezini
{"title":"CPL: a core language for cloud computing","authors":"Oliver Bracevac, Sebastian Erdweg, G. Salvaneschi, M. Mezini","doi":"10.1145/2889443.2889452","DOIUrl":"https://doi.org/10.1145/2889443.2889452","url":null,"abstract":"Running distributed applications in the cloud involves deployment. That is, distribution and configuration of application services and middleware infrastructure. The considerable complexity of these tasks resulted in the emergence of declarative JSON-based domain-specific deployment languages to develop deployment programs. However, existing deployment programs unsafely compose artifacts written in different languages, leading to bugs that are hard to detect before run time. Furthermore, deployment languages do not provide extension points for custom implementations of existing cloud services such as application-specific load balancing policies. To address these shortcomings, we propose CPL (Cloud Platform Language), a statically-typed core language for programming both distributed applications as well as their deployment on a cloud platform. In CPL, application services and deployment programs interact through statically typed, extensible interfaces, and an application can trigger further deployment at run time. We provide a formal semantics of CPL and demonstrate that it enables type-safe, composable and extensible libraries of service combinators, such as load balancing and fault tolerance.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-02-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122185311","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}
A. Peternier, Walter Binder, Erik Ernst, R. Hirschfeld
{"title":"Proceedings of the 15th International Conference on Modularity","authors":"A. Peternier, Walter Binder, Erik Ernst, R. Hirschfeld","doi":"10.1145/2889443","DOIUrl":"https://doi.org/10.1145/2889443","url":null,"abstract":"These are the proceedings of the 13th International Conference on Modularity (Modularity'14, formerly AOSD) in Lugano, Switzerland. This year's conference continues the tradition of being the premier international conference on modularity in software systems. \u0000 \u0000Modularity'14 addresses all aspects of modularity, abstraction, and separation of concerns as they pertain to software, including new forms, uses, and analysis of modularity, along with the costs and benefits, and tradeoffs involved in their application. The broadening in scope of the conference is also reflected in the change of its name: the International Conference on Aspect-Oriented Software Development (AOSD) has evolved to become the International Conference on Modularity. Modularity provides the international computer science research community and its many subdisciplines (including software engineering, languages, and computer systems) with unique opportunities to come together to share and discuss perspectives, results, and visions with others mninterested in modularity as well as in the languages, development methods, architectures, algorithms, and other technologies organized around this fundamental concept. \u0000 \u0000Modularity'14 comprises two main parts: Research Results and Modularity Visions. Both parts invited full, scholarly papers of the highest quality on results and new ideas in areas that include but are not limited to complex systems, software design and engineering, programming languages, cyber-physical systems, and other areas across the whole system life cycle. \u0000 \u0000Research Results invited papers on new ideas and results, stressing the contribution of significant new research with rigorous and substantial validation of its technical claims, based on scientifically sound reflections on experience, analysis, experimentation, or formal models, and emphasizing compelling new ideas. The review process consisted of two rounds, as a further development of the multi-round model that has been used for four years at this conference. The outcome in the first round could be 'accept' and 'reject' as usual, but also 'reject, with a recommendation to resubmit'. The intention behind the third outcome is to push for improvements to papers that are promising, but not quite ready; and letting the same reviewers judge the improved paper. The multi-phase model is being used by multiple conferences in its own right, but it could also be considered to be a highly extended version of the well-known concept of an author response period. It is definitely our experience that this mechanism produces significant improvements in several papers, and we are very happy about the high quality of the selected papers. The Program Committee (PC) meetings were online meetings, heavily supported by online discussions in smaller groups. Submissions where one or more of the authors were members of the PC were reviewed and decided by the External Review Committee (ERC) before the PC meetings, such that the PC wa","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"101 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122618421","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}