A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses

Total Page:16

File Type:pdf, Size:1020Kb

A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses Vom Fachbereich Informatik der Technischen Universit¨atDarmstadt genehmigte Dissertation zur Erlangung des akademischen Grades eines Doktor-Ingenieurs (Dr.-Ing.) vorgelegt von Sven Amann, M.Sc. geboren in Darmstadt (Hessen). Referent: Prof. Dr.-Ing. Mira Mezini Korreferent: Prof. Dr.-Ing. Andreas Zeller Datum der Einreichung: 20. M¨arz2018 Datum der m¨undlichen Pr¨ufung: 07. Mai 2018 Erscheinungsjahr 2018 Darmst¨adterDissertationen D17 . Amann, Sven : A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses Darmstadt, Technische Universit¨atDarmstadt Jahr der Ver¨offentlichung der Dissertation auf TUprints: 2018 URN: urn:nbn:de:tuda-tuprints-74222 URL: http://tuprints.ulb.tu-darmstadt.de/id/eprint/7422 Tag der m¨undlichen Pr¨ufung:07.05.2018 Ver¨offentlicht unter CC BY-SA 4.0 International https://creativecommons.org/licenses/ Preface I love solving challenging problems. Maybe this is why I became interested in program- ming. The very idea of solving problems by writing down executable solution routines fascinates me. And the additional challenge of developing and maintaining high-quality solutions keeps me hooked. During my studies, I kept coming back to practices and tools that support software quality, such as testing and code-analysis tools. Finally, in my Master's thesis, I devel- oped a code recommender system based on implicit user feedback, to assist developers in writing high-quality code. This thesis was supervised by Marcel Bruch and Andreas Sewe from Prof. Mira Mezini's Software Technology Group (STG) at the Technische Univer- sit¨atDarmstadt. Marcel and Andreas introduced me to academic software-engineering research. They also introduced me to Sebastian Proksch, a PhD student at the STG, who asked me to join the research project KaVE, where we researched and developed recommender systems for software engineering. What followed were five years of contin- uous learning, hard work, and many many ups and downs. These years ultimately led to the thesis you hold before you. And since I did not walk this path alone, what follows is an attempt to thank all the people who accompanied me. First, I would like to thank my supervisor, Prof. Mira Mezini, for the opportunity to do my PhD and for the liberty to pursue my own projects and ideas during this time. I highly appreciate that you trusted me to find my way, that you supported me in following this way, and that you acknowledged where it has led me. I also thank Prof. Andreas Zeller for being the second examiner of my thesis. I am grateful for the time you spent on carefully reviewing my thesis and for your honest feedback. Next, I want to thank Sebastian Proksch, with whom I collaborated very closely during the first half of my PhD. We shared many ups and downs during this time, and I am happy that the work we did back then ultimately contributed to your PhD thesis. I learned a great deal working with you and I am very glad to have had the opportunity. Another person without whom I would not be where I am today is Sarah Nadi, who joined the STG as a PostDoc during my second year as a PhD student. Your guid- ance and example strongly influenced how I work, as well as my thoughts and believes about research and academia as a whole. I am deeply grateful for your advice and your reliability, even after you had long left to become a professor at the University of Alberta. Soon after I started the work presented in this thesis, I had the privilege to get in contact with Hoan Anh Nguyen and Prof. Tien N. Nguyen, two experts in the field of recommender systems for software engineering. I am grateful that you two took the chance to work with a complete stranger, who you would only ever meet on Skype for almost a year to come. I highly appreciate all the guidance and assistance you put into 3 our work and that you continued to believe in me, despite all the bad luck we had, in addition to Reviewer 2. One of the many things I can look back on is my research project Eko that was funded by the German Ministry of Education and Research (BMBF). It was a great honor to receive funding at this early career stage. It enable me to lead a research team and back my work up with working prototypes, which we released along with the publications. The motivated people involved in this project were Dr. Sarah Nadi, the PhD student Leonid Glanz, and the undergraduate students Mattis Manfred K¨ammerer, Jonas Schlitzer, Simon Weiler, Manuel Benz, and Govind Singh. We grew as a team over the course of the project and still collaborate on new topics. In this very project, I had the chance to meet Willi Weiers and Joachim Heldmann from DHL IT Services, who mentored me over the course of the project. I am very grateful for your time and advice during that time. Our meetings provided me with ideas, confidence, and insights to tackle all obstacles on the path to a successful project, as well as this thesis. My research would have been impossible without the people who went before me and who openly shared their work, data, and tools with me, no questions asked. These are Prof. Martin Monperrus, Prof. Michael Pradel, Andrzej Wasylkowski, and Prof. Andreas Zeller. May your example inspire many generations of researchers to come. Over the years, I was happy to work with a number of excellent student assistants, namely Mattis Manfred K¨ammerer,Jonas Schlitzer, David Albrecht, Uli Fahrer, and An- dreas Bauer. Your hard work and dedication to high-quality software engineering enabled both development and maintenance of the many research prototypes that we published and contributed to over the years. You did a great service to the research community and myself, for which I am truly grateful. I would also like to include the students I had the pleasure to supervise in the last years. These are Michael Kutschke, David Dahlen, Oliver Abt, Waldemar Graf, Markus Zimmermann, Carina Oberle, Manuel Benz, Simon Weiler, Mattis Manfred K¨ammerer,Govind Singh, Rossana Berm´udezDe La Hoz, and Vidyashree Nanjunde Gowda. I would also like to thank the people who have provided their help in proof reading this thesis. First and foremost there is Andreas Sewe, whose amazingly detailled and constructive feedback has|over and over again|brought my thinking to higher levels of clarity. Second, there is Ben Hermann, who I am convinced was an extraordinary salesperson in a prior life. Furthermore, I would like to thank the anonymous reviewers of all my submitted publications (including Reviewer 2). Though I sometimes disagreed with your opinions, I always came to value your criticism and did my best to consider it in my work. Like probably all PhD students, I came to loath the peer-review system at times, when a reject deprived me of so much of what little time I had. I sincerely hope that the community will find ways to continue providing insightful and constructive reviews in the face of the growing numbers of the submissions. The past five years would not have been half as fun without my brilliant colleagues Andi Bejleri, Oliver Bracevac, Ervina Cergani, Joscha Drechsler, Michael Eichberg, Matthis Eichholz, Sebastian Erdweg, Leonid Glanz, Sylvia Grewe, Dominik Helm, Ben Hermann, Sven Keidel, Mirko K¨ohler,Florian K¨ubler,Edlira Kuci, Johannes Lerch, Ingo 4 Maier, Ralf Mitschke, Ragner Mogk, Patrick M¨uller,Sarah Nadi, Sebastian Proksch, Michael Reif, Guido Salvaneschi, Jan Sinschek, Jurgen van Ham, Manuel Weiel, Pascal Weisenburger, and Anna-Katharina Wickert. Ultimately, my PhD would have come to a grinding halt many times without the invaluable support of Gudrun Harris. You certainly are the single most important person along the journey towards a doctoral degree at the STG. Your rigorous work ensures that we are well funded, fulfill regulations, and do not loose ourselves in paperwork. Your open ears and your humor ensure that we stay on our paths, with both feet on the ground, and free of illusions regarding our baking skills. I cannot thank you enough. And of course, I would not have made it without the support of my girlfriend, my friends, and my family. I am deeply grateful to every single one of you, for excepting me for who I am and for having shared so much with me|the good, the bad, and the ugly. Editorial notice: Throughout this thesis I use the term \we" and \us" to describe my work. This is meant to underline that research is always a cooperative effort and that I would have much less (if something at all) to present here, if other people had not took the time off of their own work to review, discuss, and contribute to mine. I am deeply grateful for their effort. 5 Abstract Today's software industry relies heavily on the reuse of existing software libraries. Such libraries provide the building blocks for modern software products. Reusing them allow developers to focus on innovation, while standing on the shoulders of giants. To use libraries effectively, developers need to know the Application Programming Interfaces (APIs) through which they communicate with the libraries. This includes both the APIs' semantics and the (implicit) usage constraints that come with them. In the face of the rapidly growing and evolving supply of software libraries, this has become a challenging task. As a result, incorrect usages of APIs, or API misuses, are a prevalent cause of software bugs, crashes, and vulnerabilities.
Recommended publications
  • Build an Eclipse Development Environment for Perl, Python, and PHP Use the Dynamic Languages Toolkit (DLTK) to Create Your Own IDE
    Build an Eclipse development environment for Perl, Python, and PHP Use the Dynamic Languages Toolkit (DLTK) to create your own IDE Skill Level: Intermediate Matthew Scarpino ([email protected]) Java Developer Eclipse Engineering, LLC 03 Feb 2009 Eclipse presents a wealth of capabilities for building tools for compiled languages like C and the Java™ programming language, but provides little support for scripting languages like Perl, Python, and PHP. For these and similar languages, the Eclipse Dynamic Languages Toolkit (DLTK) comes to the rescue. Walk through the process of building a DLTK-based IDE and discover sample code for each step. Section 1. Before you start About this tutorial This tutorial shows how Eclipse's DLTK makes it possible to build development tools for scripting languages. In particular, it explains how to implement syntax coloring, user preferences, and interpreter integration in a plug-in-based project. Objectives This tutorial explains — one step at a time — how to build a DLTK-based Build an Eclipse development environment for Perl, Python, and PHP © Copyright IBM Corporation 2008. All rights reserved. Page 1 of 33 developerWorks® ibm.com/developerWorks development environment. The discussion presents the DLTK by focusing on a practical plug-in project based on the Octave numerical computation language. Topics covered include: Frequently used acronyms • DLTK: Dynamic Languages Toolkit • GPL: GNU Public License • IDE: Integrated Development Environment • JRE: Java Runtime Environment • MVC: Model-View-Controller • SWT: Standard Widget Toolkit • UI: User Interface • Creating a plug-in project. • Configuring the editor and the DLTK text tools. • Adding classes to control syntax coloring in the text editor.
    [Show full text]
  • Customizing Eclipse RCP Applications Techniques to Use with SWT and Jface
    Customizing Eclipse RCP applications Techniques to use with SWT and JFace Skill Level: Intermediate Scott Delap ([email protected]) Desktop/Enterprise Java Consultant Annas Andy Maleh ([email protected]) Consultant 27 Feb 2007 Most developers think that an Eclipse Rich Client Platform (RCP) application must look similar in nature to the Eclipse integrated development environment (IDE). This isn't the case, however. This tutorial will explain a number of simple techniques you can use with the Standard Widget Toolkit (SWT) and JFace to create applications that have much more personality than the Eclipse IDE. Section 1. Before you start About this tutorial This tutorial will explain a number of UI elements that can be changed in Eclipse RCP, JFace, and SWT. Along the way, you will learn about basic changes you can make, such as fonts and colors. You will also learn advanced techniques, including how to create custom wizards and section headers. Using these in conjunction should provide you the ability to go from a typical-looking Eclipse RCP application to a distinctive but visually appealing one. Prerequisites Customizing Eclipse RCP applications © Copyright IBM Corporation 1994, 2008. All rights reserved. Page 1 of 40 developerWorks® ibm.com/developerWorks You should have a basic familiarity with SWT, JFace, and Eclipse RCP. System requirements To run the examples, you need a computer capable of adequately running Eclipse V3.2 and 50 MB of free disk space. Section 2. Heavyweight and lightweight widgets Before diving into techniques that can be used to modify SWT, JFace, and Eclipse RCP in general, it's important to cover the fundamental characteristics of SWT and how they apply to the appearance of the widget set.
    [Show full text]
  • Recoder with Eclipse
    School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI Recoder with Eclipse Saúl Díaz González Álvaro Pariente Alonso June MSI Report 09031 2009 Växjö University ISSN 1650-2647 SE-351 95 VÄXJÖ ISRN VXU/MSI/DA/E/--09031/--SE Abstract RECODER is a Java framework aimed at source code analysis and metaprogramming. It works on several layers to offer a set of semi-automatic transformations and tools, ranging from a source code parser and unparser, offering a highly detailed syntactical model, analysis tools which are able to infer types of expressions, evaluate compile-time constants and keep cross-reference information, to transformations of the very Java sources, containing a library of common transformations and incremental analysis capabilities. These make up an useful set of tools which can be extended to provide the basis for more advanced refactoring and metacompiler applications, in very different fields, from code beautification and simple preprocessors, stepping to software visualization and design problem detection tools to adaptive programming environments and invasive software composition. The core system development of RECODER started in the academic field and as such, it was confined into a small platform of users. Although a powerful tool, RECODER framework lacks usability and requires extensive and careful configuration to work properly. In order to overcome such limitations, we have taken advantage of the Eclipse Integrated Development Environment (Eclipse IDE) developed by IBM, specifically its Plugin Framework Architecture to build a tool and a vehicle where to integrate RECODER functionalities into a wide-used, well-known platform to provide a semi- automated and user-friendly interface.
    [Show full text]
  • Eclipse (Software) 1 Eclipse (Software)
    Eclipse (software) 1 Eclipse (software) Eclipse Screenshot of Eclipse 3.6 Developer(s) Free and open source software community Stable release 3.6.2 Helios / 25 February 2011 Preview release 3.7M6 / 10 March 2011 Development status Active Written in Java Operating system Cross-platform: Linux, Mac OS X, Solaris, Windows Platform Java SE, Standard Widget Toolkit Available in Multilingual Type Software development License Eclipse Public License Website [1] Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[2] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. Eclipse (software) 2 Architecture Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard coded.
    [Show full text]
  • Flexibility at the Roots of Eclipse
    6°ÊÈ >ʽäÇ Dynamic Wizard Modeling with GMF Introduction to the Using GMF to Build a Dynamic Wizard Generic Eclipse Framework and a Graphical Editor Modeling System Developing a Deploying the BIRT Graphical Modeling Viewer to JBoss Tool for Eclipse Disseminate Report Content to an Application Server Subversive The Eclipse Enabling Plug-In for Integration and Subversion Interoperability for Eclipse based Development An Introduction to the Corona Project Flexibility at the Roots of Eclipse Solving the GUI Dilemma: SWTSwing and Eclipse on Swing 6°ÊÈ >ʽäÇ Vol.6 January 2007 Dynamic Wizard Modeling with GMF Introduction to the Using GMF to Build a Dynamic Wizard Generic Eclipse Table of Contents Framework and a Graphical Editor Modeling System Developing a Deploying the BIRT Graphical Modeling Viewer to JBoss Tool for Eclipse Disseminate Report Content to an Application Server Subversive The Eclipse Enabling Plug-In for Integration and Subversion FEATURES Interoperability for Eclipse based Development An Introduction to the Corona Project Flexibility at the Roots of Eclipse 29 Flexibility at the Roots of Eclipse Solving the GUI Dilemma: SWTSwing and Eclipse on Solving the GUI Dilemma: Swing SWTSwing and Eclipse on Swing No trench in the world of Java is deeper then that between SWT and Swing or Eclipse and Sun. Unity is only found in the knowledge that everybody suff ers from this argument. But how to end this almost religious battle over the righteous GUI-toolkit? How to bang their heads together if they only know DEPARTMENT one point of view—for them or against them! Th e sister projects SWTSwing and Eclipse on Swing News & Trends (EOS) achieve this trick.
    [Show full text]
  • Eclipse's Rich Client Platform, Part 1: Getting Started Skill Level: Intermediate
    Eclipse's Rich Client Platform, Part 1: Getting started Skill Level: Intermediate Jeff Gunther ([email protected]) General Manager Intalgent Technologies 27 Jul 2004 The first in a two-part "Eclipse's Rich Client Platform" series, this tutorial explores the basic design goals of the Eclipse Rich Client Platform (RCP) and how it fits within a developer's toolkit. After introducing this platform and exploring why it is a viable framework to deploy distributed client-side applications, this tutorial demonstrates how to construct a basic RCP application. Section 1. Before you start The first part of a two-part series, this tutorial explores Eclipse's Rich Client Platform (RCP). An example application shows you how to assemble an RCP to create an elegant, client-side interface for your own business applications. The application creates a front end for the Google API and gives you the ability to query and display search results. Having an application that demonstrates some of these technologies in action provides an understanding of the platform and its usefulness within some of your projects. About this tutorial You'll explore each one of these complementary technologies in detail over the course of this tutorial. After a brief introduction to these technologies, the tutorial explores the code and supporting files so you can grasp how to construct an RCP application. If you're new to Eclipse or its complementary technologies, refer to the Resources at the end of this tutorial for more information. Prerequisites Getting started © Copyright IBM Corporation 1994, 2008. All rights reserved. Page 1 of 31 developerWorks® ibm.com/developerWorks You should understand how to navigate Eclipse 3.0 and have a working knowledge of Java™ technology to follow along.
    [Show full text]
  • Understanding Jface Data Binding in Eclipse, Part 2: the Basics of Binding Skill Level: Intermediate
    Understanding JFace data binding in Eclipse, Part 2: The basics of binding Skill Level: Intermediate Scott Delap ([email protected]) Desktop/Enterprise Java Consultant 03 Oct 2006 Almost all applications require synchronization of data between various objects and services. However, moving String instances and writing event notification code can be tedious. Desktop application development is especially full of such tasks. The new JFace data binding application programming interface (API) included in Eclipse V3.2 looks to make this data synchronization process far easier. This "Understanding JFace data binding in Eclipse" series introduces basic and advanced uses of the JFace data binding API. Section 1. Before you start About this series Data binding APIs relieve you from having to write boilerplate synchronization code. The JFace data binding API provides this functionality for user interfaces (UIs) written in the Standard Widget Toolkit (SWT) and JFace. Part 1 of this "Understanding JFace data binding in Eclipse" series explains what a data binding framework does, introduces several popular Java GUI data binding frameworks, and covers the pros and cons of using data binding. This tutorial, Part 2, introduces the basic API components. Part 3 moves on to advanced topics, such as tables, converters, and validation. About this tutorial This tutorial explains reasons for using a data binding API. It then introduces you to using the core components of the JFace data binding API while laying the groundwork for more advanced topics, covered in Part 3. The basics of binding © Copyright IBM Corporation 1994, 2007. All rights reserved. Page 1 of 36 developerWorks® ibm.com/developerWorks Prerequisites This tutorial is written for developers with some experience with the Java™ programming language and Eclipse.
    [Show full text]
  • Copyrighted Material
    23_020059_bindex.qxd 10/8/04 1:23 PM Page 559 Index importing types, 31 A inheriting constructors, 32 AbstractDecoratedTextEditor class, 359 Javadoc comments, 31 AbstractTextEditor class, 357–359 overriding methods, 32 accessibility options (SWT), 202–203 AWT components with SWT, 191 actions (JFace), 226–227, 367 embedded contents, 192 defining events, 192–196 attributes, 368–370 Azzurri Clay, 547 delegates, 371–372 enabling and disabling, 370–371 in the manifest, 368 B selection events, 370 Back function, 37, 53 global, 367 backing up workspaces, 2 implementing manually, 372 beans, 48 local, 367 generic, 48 active help systems, 382, 474–475 properties, 48–49 adapters, SWT events, 142 Beck, Kent, 540 Add Java Exception Breakpoint function, 117 bookmarks agile programming. See extreme programming bookmark manager, 366 annotations (JFace), 223–224 creating, 22 Ant, 388 breakpoints configuring, 388–389 managing, 117–118 editing scripts, 389–390 setting, 116 ANTLR, 547 Breakpoints View, 117–118 applications, exporting (Duke Speaks project), browser widget (SWT), 177 109–110 build.properties files (spell checker project), 493–495 architecture, Eclipse platform BundleActivators (OSGi), 314 core runtime, 315 BusyIndicator class (SWT), 175 extension points, 314 buttons help system, 316 Duke Speaks project GUI, 94–95 OSGi, 314 SWT, 156 overview, 314, 316–317 RCP vs. IDE, 315 C resource management, 315 Call Hierarchy View, 27–28 team support, 316–317 CDT, 547 user interfaces, 316 COPYRIGHTEDcell MATERIAL editors AspectJ, 547 Jukebox project, 285–286,
    [Show full text]
  • Using Jface Tables 3.3 API with Eclipse RCP - Tutorial
    Using JFace Tables 3.3 API with Eclipse RCP - Tutorial http://www.vogella.de/articles/EclipseJFaceTable/article.html Eclipse, Java and Web development - Free Tutorials Home Java Eclipse Web Source Code Browse this article Digg this site Bookmark at del.icio.us Eclipse RCP Training Jointly with the Eclipse Foundation Understand concepts & architecture innoopract.com/en/services/training Eclipse Table 1,000+ Billiard Tables Shop, Compare and Save at Pronto. Table.Pronto.com BIRT Community Site Free, open forum. Share code, tech tips, and report designs. www.BIRT-Exchange.com Free iGrafx Viewer View & Print iGrafx Files with Free Software. Download Now. www.iGrafx.com Using JFace Tables 3.3 API with Eclipse RCP - Tutorial Clemens Muessener < [email protected] > Additons by Hendrik Still Version 0.5 Copyright © 2007 Clemens Muessener 15.12.2007 Abstract This article is a How-to-Guide to build an Eclipse RCP application with a JFace table using the new 3.3 API. Different editors and label provider will be used for different data types. The article demonstrate also how to copy text into the system clipboard using SWT. While we are creating an Eclipse RCP application the approach described here can also be used for building non RCP applications, plug-ins. This article assumes you have already a good general knowledge about using Eclipse. Table of Contents 1 of 23 15/07/2008 7:59 PM Using JFace Tables 3.3 API with Eclipse RCP - Tutorial http://www.vogella.de/articles/EclipseJFaceTable/article.html 1. Scenario 2. Create a project 3. Create the model 4.
    [Show full text]
  • Aspect Impact Analysis
    ASPECT IMPACT ANALYSIS by Dehua Zhang School of Computer Science McGill University, Montr´eal August 2008 A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES AND RESEARCH IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE Copyright c 2008 by Dehua Zhang Abstract One of the major challenges in aspect-oriented programming is that aspects may have unintended impacts on a base program. Thus, it is important to develop techniques and tools that can both summarize the impacts and provide information about the causes of the impacts. This thesis presents impact analyses for AspectJ. Our approach detects different ways advice and inter-type declarations interact and in- terfere with the base program and focuses on four kinds of impacts, state impacts which cause changes of state in the base program, computation impacts which cause changes in functionality by adding, removing or replacing computations of the base program, shad- owing impacts which cause changes of field reference in the base program, and lookup impacts which cause changes of method lookup in the base program. We provide a classification scheme for these kinds of impacts and then develop a set of static analyses to estimate these impacts. A key feature of our approach is the use of points-to analysis to provide more accurate estimates. Further, our analysis results allow us to trace back to find the causes of the impacts. We have implemented our techniques in the AspectBench compiler. By implementing them in an AspectJ compiler, all kinds of pointcuts, advice and inter-type declarations can be analyzed.
    [Show full text]
  • An Easy Way to Web User Interfaces for Ground Segment Systems
    An Easy Way to Web User Interfaces for Ground Segment Systems Felix Flentge, Holger Dreihahn, Gonçalo Lopes, David Marina, Jean Schuetz 03/02/2017 © 2017 by ESA. Published by the Aerospace Corporation with permission. From Rich Client … MMI Deployment Backend System Ground Segment System • Ground Station • Mission Control • Planning & Scheduling Non-space Systems Felix Flentge, Holger Dreihahn, Gonçalo Lopes, David Marina, Jean Schuetz | ESOC | 03/02/2017 | Slide 2 From Rich Client … to Web-based Server Environment Backend MMI System Ground Segment System • Ground Station • Mission Control • Planning & Scheduling Non-space systems Felix Flentge, Holger Dreihahn, Gonçalo Lopes, David Marina, Jean Schuetz | ESOC | 03/02/2017 | Slide 3 Agenda 1. Motivation – Current State 2. Rich Clients vs Web-based User Interfaces 3. Eclipse Remote Application Platform (RAP) 4. Implementation of Web-based MMI a. EGOS User Desktop (EUD) / WebEUD b. Semi-automatic creation of ground station subsystem web-based MMI 5. Conclusion & Outlook Felix Flentge, Holger Dreihahn, Gonçalo Lopes, David Marina, Jean Schuetz | ESOC | 03/02/2017 | Slide 4 Motivation – Current State • MMI for ground data systems used to be implemented as separate standalone application • Use of frameworks (Eclipse Rich Client Platform) allows to exploit commonalities and a more harmonized look & feel • EGOS User Desktop providing common functionality for ground data systems Felix Flentge, Holger Dreihahn, Gonçalo Lopes, David Marina, Jean Schuetz | ESOC | 03/02/2017 | Slide 5 Motivation –
    [Show full text]
  • Eclipse-IT 2013
    Eclipse-IT 2013 VIII Workshop of the Italian Eclipse Community Crema, September 19-20 2013 Elvinia Riccobene (ed.) Elvinia Riccobene (ed.) Eclipse-IT 2013 VIII Italian Workshop on Eclipse Technologies Crema, September 19-20, 2013 Università degli Studi di Milano Eclipse Italian Community http://eclipse.dis.unina.it/ Conference web site: http://2013.eclipse-it.org/ September 2013 ISBN: 978-88-904388-4-4 Preface This volume contains the extended abstracts of the contributions presented at EclipseIT 2013, the 8 th workshop of the Italian Eclipse Community, hosted by the Computer Science Department of the University of Milan (Crema Campus) on September 19-20, 2013. Previous editions took place is Rome (2006), Naples (2007), Bari (2008), Bergamo (2009), Savona (2010), Milan (2011), and Pozzuoli (2012). Although Eclipse was initially designed as an integrated development environment (IDE) for object-oriented application development, today it represents an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software. Around Eclipse, an international live community continuously works on improving the framework and on promoting the use of Eclipse. That happens also in Italy. This workshop is, indeed, the eighth yearly meeting of the Italian Eclipse Community which includes universities, public institutions and industries, researchers and practitioners, students and professionals, all joined by the interest in experimenting, extending, and supporting the Eclipse platform. The special topic of this edition is the Software cooperative development for mobile applications. Two tutorials are offered on this theme: (1) Sviluppo di applicazioni enterprise per il mobile con IBM Jazz, Eclipse e Worklight by Ferdinando Gorga from IBM, and (2) Uso di Eclipse per lo sviluppo cooperativo del software , by Paolo Maresca of the University of Naple, Federico II.
    [Show full text]