{"title":"Sensors, actuators and services: a distributed approach","authors":"Tiago Boldt Sousa","doi":"10.1145/2508075.2508464","DOIUrl":"https://doi.org/10.1145/2508075.2508464","url":null,"abstract":"Proliferation of the Internet is enabling the use of sensors and actuators to capture data and control devices remotely in a multitude of domains. Still, there is a general lack of best practices while designing such large scale real-time systems. This paper describes a generic architecture used on the implementation of a framework for deploying such systems in the cloud, enabling run-time evolution of the system with new sensors, actuators or services possibly developed by third-parties being integrated dynamically. Such architecture orchestrates the flow of information in the ecosystem and scales transparently to external components when needed, requiring no change in them. Adoption in the Portuguese nation-wide AAL project AAL4ALL is then described.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114131317","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":"Does thought crime pay?","authors":"Gilad Bracha","doi":"10.1145/2508075.2508191","DOIUrl":"https://doi.org/10.1145/2508075.2508191","url":null,"abstract":"Who controls the past controls the future; who controls the present controls the past. -- George Orwell We examine the past, present and future of radical innovation in programming languages. How did Lisp, Simula, Actors, Beta, Smalltalk and Self give us the world of C++, Java, Javascript, Perl, Python and PHP? We'll ponder such questions and speculate what new wonders await us down the road.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129505839","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":"Session details: Posters","authors":"Jayaram Radhakrishnan, E. Torlak","doi":"10.1145/3245140","DOIUrl":"https://doi.org/10.1145/3245140","url":null,"abstract":"","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"124 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126786615","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":"Client-aware checking and information hiding in interface specifications with JML/ajmlc","authors":"Henrique Rebêlo, Gary T. Leavens, R. Lima","doi":"10.1145/2508075.2514569","DOIUrl":"https://doi.org/10.1145/2508075.2514569","url":null,"abstract":"Information hiding controls which parts of a module are visible to different clients. This aids maintenance because hidden implementation details can be changed without affecting clients. The benefits of information hiding apply not only to code but also to other artifacts, such as specifications. In this demonstration we show how our client-aware checking (CAC) technique, which is implemented by our JML/ajmlc compiler and freely available online, use the privacy information in specifications to promote information hiding. We demonstrate the benefits of CAC over existing runtime assertion checkers (RACs) of contemporary interface specification languages. Client-aware checking allows runtime assertion checking and error reporting based solely on specifications visible to clients. This avoids exposing hidden implementation or specification details that cannot be understood by non-privileged clients. This demonstration will proceed by discussing the goals of the CAC technique by means of realistic examples. Attendees will mainly see JML specifications, including pre- and postconditions for methods. They will learn how to use the JML/ajmlc compiler, which also provides information hiding capabilities. In addition, they will learn how to use model fields to hide the actual field declarations in classes, and how model fields play an important role in achieving information hiding. We will conclude with pointers to ongoing work on design, implementation and runtime checking of Java programs with CAC-based JML/ajmlc.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130139342","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":"Splash'13 workshops summary","authors":"Stephanie Balzer, U. Schultz","doi":"10.1145/2508075.2514885","DOIUrl":"https://doi.org/10.1145/2508075.2514885","url":null,"abstract":"Following its long-standing tradition, SPLASH 2013 will host 19 high-quality workshops, allowing their participants to meet and discuss research questions with peers, to mature new and exciting ideas, and to build up communities and start new collaborations. SPLASH workshops complement the main tracks of the conference and provide meetings in a smaller and more specialized setting. Workshops cultivate new ideas and concepts for the future, optionally recorded in formal proceedings. We invite you to explore the workshops program online at http://splashcon.org/2013/program/workshops. This paper contains brief summaries of each of the accepted workshops, grouped by topic. The SPLASH-E workshop is separate from the regular workshop program, and its program is available at http: //splashcon.org/2013/program/educator-symposium.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126572998","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":"Identifying and specifying crosscutting contracts with AspectJML","authors":"Henrique Rebêlo","doi":"10.1145/2508075.2514877","DOIUrl":"https://doi.org/10.1145/2508075.2514877","url":null,"abstract":"I propose AspectJML, a simple and practical aspect-oriented extension to JML. It supports the specification of crosscutting contracts for Java code in a modular way while keeping the benefits of a design by contract language, like documentation and modular reasoning.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130957884","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":"TruSSCom: proposal for trustworthy service representation, selection and negotiation for integrating software systems","authors":"Lahiru S. Gallege","doi":"10.1145/2508075.2508077","DOIUrl":"https://doi.org/10.1145/2508075.2508077","url":null,"abstract":"Integrating a distributed software system using publically available software services saves effort, time, and cost. One key step in this process is the service selection which identifies a relevant set of services for this integration. In an open service marketplace, it is hard to judge the trust of software services using a static view (consisting of service specifications) published by their developers. Instead, the concepts of trust in the context of services needs to be properly quantified, specified, negotiated, and then used in the selection process. Prevalent service selection and negotiation approaches do not consider the trust aspect of services. Trustworthy service representation, selection, and negotiation are challenging tasks due to the subjective and temporal nature of trust, lack of standards, and associated uncertainty. This proposal defines the trust of a service, quantifies the trust by monitoring and aggregating various evidences, represents the trust in the service specification and improves the service selection and negotiation process using this representation. Publically available software objects (from Java collection framework library) and mobile app services (from the Android marketplace) are used as datasets to empirically evaluate this proposal.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125525229","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":"Ultimate architecture enforcement: custom checks enforced at code-commit time","authors":"P. Merson","doi":"10.1145/2508075.2508433","DOIUrl":"https://doi.org/10.1145/2508075.2508433","url":null,"abstract":"Creating a software architecture is a critical task in the development of software systems. However, the architecture discussed and carefully created is often not entirely followed in the implementation. Unless the architecture is communicated effectively to all developers, divergence between the intended architecture (created by the architect) and the actual architecture (found in the source code) tends to gradually increase. Static analysis tools, which are often used to check coding conventions and best practices, can help. However, the common use of static analysis tools for architecture enforcement has two limitations. One is the fact that design rules specific to a software architecture are not known and hence not enforced by the tool. The other limitation is more of a practical issue: static analysis tools are often integrated to the IDE or to a continuous integration environment; they report violations but the developers may choose to ignore them. This paper reports a successful experience where we addressed these two limitations for a large codebase comprising over 50 Java applications. Using a free open source tool called checkstyle and its Java API, we implemented custom checks for design constraints specified by the architecture of our software systems. In addition, we created a script that executes automatically on the Subversion software configuration management server prior to any code commit operation. This script runs the custom checks and denies the commit operation in case a violation is found. When that happens, the developer gets a clear error message explaining the problem. The architecture team is also notified and can proactively contact the developer to address any lack of understanding of the architecture. This experience report provides technical details of our architecture enforcement approach and recommendations to employ this or similar solutions more effectively.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125527517","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":"Session details: Doctoral symposium","authors":"Lukasz Ziarek","doi":"10.1145/3245138","DOIUrl":"https://doi.org/10.1145/3245138","url":null,"abstract":"","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126426075","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":"Finding architectural flaws in android apps is easy","authors":"R. Vanciu, Marwan Abi-Antoun","doi":"10.1145/2508075.2514574","DOIUrl":"https://doi.org/10.1145/2508075.2514574","url":null,"abstract":"Mobile devices store confidential information. As a result, security vulnerabilities such as information disclosure in mobile apps can have serious consequences. To build secure apps, developers are expected to follow security policies that are described only informally. Some policies target architectural flaws, rather than coding defects, and are not easily checked or enforced with existing tools. Scoria is a prototype tool that allows architects to write security policies as machine-checkable constraints that are executed against a program abstraction that is a hierarchy of abstract objects with dataflow communication edges. Using Scoria, architects reason not only about the presence or absence of communication, but also about object provenance, hierarchy and reachability. We show how Scoria can find information disclosure in an open-source Android app.","PeriodicalId":430425,"journal":{"name":"Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121590120","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}