Auflistung nach Schlagwort "Java"
1 - 10 von 32
Treffer pro Seite
Sortieroptionen
- WorkshopbeitragAnsatz zur automatischen Generierung von Java-OOP-Aufgaben inkl. Bewertungsschemen(Proceedings of the Fourth Workshop "Automatische Bewertung von Programmieraufgaben" (ABP 2019), Essen, Germany, October 8-9, 2019, 2019) Döring, UlfIm Fach Algorithmen und Programmierung für Ingenieure werden an der TU Ilmenau noch papierbasierte Klausuren mit einem sehr geringen Multiple-Choice-Anteil geschrieben. Entsprechend hoch ist der Aufwand der händischen Korrektur. Zudem müssen selbst zum Zeitpunkt der Prüfung die meisten Studierenden noch als Programmieranfänger gesehen werden. Hierdurch führen Ansätze, welche compilierbaren Quellcode voraussetzen, sowohl beim Üben als auch bei Klausuren regelmäßig nicht zu angemessenen Bewertungen. Dieser Artikel beschreibt die Entwicklung eines Aufgabengenerators für einen bestimmten Aufgabentyp im Kontext von Java und OOP. Die automatische Generierung der Aufgaben soll in Bezug auf die zielgerichtete Vorbereitung auf die Prüfung den Studierenden Übungsmöglichkeiten bieten. Hinsichtlich der Klausurkontrolle sollen zudem auch Bewertungsschemen zur Anwendung bei der händischen Korrektur erzeugt werden.
- ConferencePaperAutomated Large-scale Multi-language Dynamic Program Analysis in the Wild(Software Engineering 2021, 2021) Villazón, Alex; Sun, Haiyang; Rosà, Andrea; Rosales, Eduardo; Bonetta, Daniele; Defilippis, Isabella; Oporto, Sergio; Binder, WalterOur paper published in the proceedings of the 33rd European Conference on Object-Oriented Programming (ECOOP 2019) proposes NAB, a novel framework to execute custom dynamic analysis on open-source software hosted in public repositories. The publication is complemented by an accepted artifact. Analyzing today’s large code repositories has become an important research area for understanding and improving different aspects of modern software systems. Despite the presence of a large body of work on mining code repositories through static analysis, studies applying dynamic analysis to open-source projects are scarce and of limited scale. Nonetheless, being able to apply dynamic analysis to the projects hosted in public code repositories is fundamental for large-scale studies on the runtime behavior of applications, which can greatly benefit the programming-language and software-engineering communities. NAB is fully automatic, language-agnostic, and scalable. We describe NAB’s key features and architecture. We also present three case studies on more than 56K Node.js, Java, and Scala projects, enabling us to 1) understand how developers use JavaScript Promises, 2) identify bad coding practices in JavaScript applications, and 3) locate task-parallel Java and Scala workloads suitable for inclusion in a domain-specific benchmark suite. A preliminary version of NAB is available at http://dag.inf.usi.ch/software/nab/
- KonferenzbeitragAutomatisierte Bewertung von Java-Programmieraufgaben im Rahmen einer Moodle E-Learning Plattform(Proceedings of the Fourth Workshop "Automatische Bewertung von Programmieraufgaben" (ABP 2019), Essen, Germany, October 8-9, 2019, 2019) Gandraß, Niels; Schmolitzky, AxelDie Programmiersprache Java wird an zahlreichen Hochschulen gelehrt, um Studierende mit grundlegenden Programmierkonzepten vertraut zu machen. Zur Integration von Online-Java-Programmieraufgaben in ein Moodle LMS wurde ein Fragetyp entwickelt, welcher die parallele Ausführung sowie die automatisierte Bewertung von Quellcode auf Basis von JUnit-Tests ermöglicht. Studierende erhalten hierbei ein sofortiges und individuelles Feedback, welches dynamisch schon während der Bearbeitung einer Aufgabe erzeugt wird. In diesem Beitrag werden sowohl die technischen Details des entwickelten Fragetyps als auch erste Erfahrungen mit seinem Einsatz in der Programmierlehre an der Hochschule für AngewandteWissenschaften Hamburg thematisiert.
- KonferenzbeitragAutomatisierte Migration von Legacy-Dateien in relationale Datenbanken(Softwaretechnik-Trends Band 42, Heft 2, 2022) Graßler, FelixDieses Paper basiert auf der Masterarbeit des Autors, Felix Graßner: Große Unternehmen setzen noch vielfach auf historisch gewachsene Legacy-Systeme mit dateibasierter Datenhaltung. Oft besteht der Wunsch, diese durch moderne Systeme abzulösen. Das Ziel dieser Arbeit war die Entwicklung einer allgemeinen Technologie für die werkzeuggestützte Migration einer dateiorientierten Datenhaltung zu einer relationalen Datenbank (DB). Dies wird im Kontext einer zeitgleichen COBOL-zu-Java-Programmmigration des umgebenden Softwaresystems betrachtet. Um auch die Migration großer Datenbestände zu ermöglichen, wird eine hohe Automatisierung angestrebt. Der Fokus dieser Arbeit liegt auf zwei Aspekten: Der Migration des Datenschemas (dateiorientiert vs. relationale DB) sowie einer Migration der Datenzugriffe des umgebenden Softwaresystems. Bei letzterem sind die Unterschiede in den Programmiersprachen (COBOL vs. Java) sowie die abweichenden Arbeitsweisen (prozedural vs. SQL) zu beachten.
- ZeitschriftenartikelBuchbesprechung: Karl-Heinz Rau, Thomas Schuster: Schritt für Schritt vom Geschäftsprozess zum Java-Programm(Softwaretechnik-Trends Band 42, Heft 2, 2022) Herrmann, AndreaBuchbesprechung: Karl-Heinz Rau, Thomas Schuster: Schritt für Schritt vom Geschäftsprozess zum Java-Programm
- KonferenzbeitragCall Graph Construction for Java Libraries(Software Engineering und Software Management 2018, 2018) Reif, Michael; Eichberg, Michael; Mezini, MiraProceeding FSE 2016 Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. Today, every application uses software libraries. Yet, while a lot of research exists w.r.t. analyzing applications, research that targets the analysis of extensible libraries and frameworks as such is scarce. This is unfortunate because developers of libraries (e.g. the Java Development Kit) want to ensure that the library behaves as intended regardless of how it is used. To fill this gap, we discuss the construction of call graphs that abstract over all potential usages of the respective library. Additionally, we show that the current practice of using call graph algorithms designed for applications leads to call graphs that, at the same time, lack relevant call edges and contain unnecessary edges when used for libraries. Unlike algorithms for applications, call graph construction algorithms for libraries must also take the goals of subsequent analyses into consideration. We will discuss the differences between an analysis for vulnerabilities vs. one for general software quality attributes, e.g., dead methods. This distinction affects the decision about what constitutes the library-private implementation, which, therefore, needs special treatment.
- KonferenzbeitragCiFi: Versatile Analysis of Class and Field Immutability(Software Engineering 2022, 2022) Roth, Tobias; Helm, Dominik; Reif, Michael; Mezini, MiraThis paper was accepted in 2021 at the 36th IEEE/ACM International Conference on Automated Software Engineering and proposes a model for immutability analysis. Reasoning about immutability is important for preventing bugs, e.g., in multi-threaded software. Static analysis to infer immutability properties has mostly focused on individual objects and references. Reasoning about fields and entire classes, while significantly simpler, has gained less attention. A consistently used terminology is missing, which makes it difficult to implement analyses that rely on immutability information. We propose a model for class and field immutability that unifies terminology for immutability flavors considered by previous work and covers new levels of immutability to handle lazy initialization and immutability dependent on generic type parameters. Using the OPAL static analysis framework, we implement CiFi, a set of modular, collaborating analyses for different flavors of immutability, inferring the properties defined in our model. We propose a benchmark of representative test cases for class and field immutability. We use the benchmark to showcase CiFi's precision and recall in comparison to state of the art and use CiFi to study the prevalence of immutability in real-world libraries, showcasing the practical quality and relevance of our model.
- KonferenzbeitragContrasting Dedicated Model Transformation Languages vs. General Purpose Languages: A Historical Perspective on ATL vs. Java based on Complexity and Size - Extended Abstract(Software Engineering 2022, 2022) Höppner, Stefan; Kehrer, Timo; Tichy, MatthiasModel transformations are one key concept of model-driven engineering, and model transformation languages (MTLs) emerged with its popularity about 15 to 20 years ago. MTLs claim to ease model transformation development by abstracting from recurring transformation aspects and hiding complex semantics behind simple and intuitive syntax. Nonetheless, MTLs are rarely adopted in practice, there is still no empirical evidence for the claim of easier development, and the argument of abstraction deserves a fresh look in the light of modern general-purpose languages (GPLs) which have undergone a significant evolution in the last two decades. In our SoSyM paper, we report on a study in which we compare the complexity and size of model transformations written in three different languages, namely (i) the Atlas Transformation Language (ATL), (ii) Java SE5 (2004-2009), and (iii) Java SE14 (2020); the Java transformations are derived from an ATL specification using a translation schema we developed. Based on the results of these comparisons, we discuss the concrete advancements in newer Java versions. We also discuss to which extent new language advancements justify writing transformations in a GPL rather than a dedicated MTL. We further indicate potential avenues for future research on the comparison of MTLs and GPLs.
- WorkshopbeitragEye-Tracking zur Untersuchung von Problemlösestrategien in einem Serious-Game(DELFI 2021, 2021) Gamper, Paul; Heinemann, Birte; Bachmann, Lisa; Schroeder, UlrikZur Entwicklung adaptiver Komponenten für ein Programmierlernspiel sollen Verhaltensmuster der Spielenden mit Hilfe eines Eye-Trackers untersucht werden. Hierzu werden zuerst die mit der Eye-Tracking-Methode messbaren Metriken und Problemlösestrategien der Literatur vorgestellt. Anschließend wird ein auf die Serious-Game Umgebung angepasster Versuchsaufbau vorgestellt. Die Daten aus dem Eye-Tracker werden mit den Daten aus dem Serious-Game verglichen, um Synergien zu generieren und das Feedback adaptiver und zur richtigen Zeit geben zu können.
- ZeitschriftenartikelfirstCS—New Aspects on Combining Constraint Programming with Object-Orientation in Java(KI - Künstliche Intelligenz: Vol. 26, No. 1, 2012) Wolf, ArminThe aim of the presented constraint programming library firstCS is the integration of the constraint programming paradigm in the object-oriented programming language Java. This open-box library provides its users with the necessary concepts to model and solve constraint satisfaction problems and even constraint optimization problems over finite integer domains. The application focus of firstCS is constraint-based scheduling and resource allocations (e.g. Sandow in INFORMATIK 2011, LNI, vol. P-192, p. 248, 2011), however, it offers all primitives to realize new constraints and according propagation algorithms as well as problem-specific tree search heuristics to find good or even best solutions. Beyond related work and an overview over the general architecture of the system and the supported constraints, this presentation focuses on new aspects of the current version of firstCS, i.e. redundancy checking and the assembling of new search strategies from existing ones using the implementation language Java. The presentation is completed by code fragments showing interesting implementation details.