Auflistung nach Schlagwort "Reverse Engineering"
1 - 10 von 17
Treffer pro Seite
Sortieroptionen
- Konferenzbeitrag20 Years of Software-Reengineering – A Résumé(Software archeology and the handbook of software architecture, 2008) Sneed, Harry M.This paper is an attempt to define what software reengineering is and what it has accomplished in the light of 20 years of practical application. The paper points out that reengineering is one of the many software maintenance activities, i.e. everything done with software once it has been put to use. Reengineering actions are devoted to improving the technical quality of existing software. By accepting this definition, it is possible to distinguish reengineering from other related activities performed on a software product after its first release such as reverse engineering, redocumentation, evolution and migration.
- KonferenzbeitragBuilding a runtime state tracing kernel(IMF 2008 – IT Incident Management & IT Forensics, 2008) Chakravarthy, Ananth; Vaidya, Vinay G.A process is run by executing a sequence of instuctions by the processor However it is probable that not all of the instructions are executed as there are hundreds of paths that can be taken by the executable to complete ist execution. The path chosen is dependent on a host of factors like the environment, user input, the platform etc. As such, at any given instant of time, the process might be in any of the possible states Sn after traversing states S1, S2, S3 .. where S1, S2, S3 .....Sn, Sn+1, Sn+2,..SM depict the total M states that can be taken by the executable. There is no mechanism currently inside the LINUX kernel to peek into the state of the process to find out which if these states is it currently in and what are the states it has "traversed" to reach the current state while is is executing. If such an effective tracing can be achieved, it would lead to better operating system security. Other advantages are better logs or even building a verifiable software system. This paper looks at the infrastructure that has been developed to realize such a functionality in the Linux kernel and thereby increase the security of the running process. Of particular mention is the framework that has been developed to peek into the state of a running process as it executes and the various mechanisms that could be used to ascertain the state of the running process.
- ZeitschriftenartikelEinordnung und Terminologie des Software Reengineering(Informatik-Spektrum: Vol. 19, No. 4, 1996) Baumöl, Ulrike; Borchers, Jens; Eicker, Stefan; Hildebrand, Knut; Jung, Reinhard; Lehner, Franz
- KonferenzbeitragEinschränkung der Größe migrierter Micro-Services(Softwaretechnik-Trends Band 39, Heft 2, 2019) Sneed, Harry M.Eine Frage, die im Zusammenhang mit der Migration zu Mikro-Services aufkommt, ist die Frage nach deren Größe. Was heißt Mikro? Wie groß darf ein derartiger Service sein und wie wird die Größe gemessen? Bei der Gewinnung von Services aus bestehenden Code müssen diese Fragen beantwortet werden. Der vorliegende Beitrag zu System Reengineering schlägt vor, die Größe von reengineered Services nach dem Testaufwand zu richten. Er ist ein Versuch den Begriff Mikro-Service zu präzisieren.
- KonferenzbeitragExperiences with Using a Pre-Trained Programming Language Model for Reverse Engineering Sequence Diagrams(Softwaretechnik-Trends Band 43, Heft 2, 2023) Greiner, Sandra; Maier, Nicolas; Kehrer, TimoReverse engineering software models from program source code has been extensively studied for decades. Still, most model-driven reverse engineering approaches cover only single programming languages and cannot be transferred to others easily. Large pre-trained AI transformer models which were trained on several programming languages promise to translate source code from one language into another (e.g., Java to Python). Thus, we fine-tuned such a pre-trained model (CodeT5) to extract sequence diagrams from Java code and examined whether it can perform the same task for Python without additional training.
- KonferenzbeitragExploiting Modular Language Extensions in Legacy C Code: An Automotive Case Study(Modellierung 2018, 2018) Grosche, Andreas; Igel, Burkhard; Spinczyk, OlafModel-driven software development using language workbenches like JetBrains MPS provide many advantages compared to traditional software development. Base languages can be incrementally extended to increase the abstractness up to domain-specific languages (DSLs). Changes can be performed more efficiently in problem-oriented language extensions or DSLs, than in a base language. In addition, formal analysis can be performed on abstract models. To benefit from the model-driven approach, non-model-based legacy code has to be reusable and transformable to language extensions and DSLs. For the development of embedded systems, mbeddr provides a C99-like base language and extensions for MPS, such as mathematical symbols and state machines. This paper presents a case study that shows how many legacy C code fragments of three automotive series projects could be replaced by mbeddr language extensions. Furthermore, a proof of concept shows the feasibility of fraction and foreach loop refactorings. This work is a first approach for future language extension refactorings.
- TextdokumentA mapping approach for confguration management tools to close the gap between two worlds and to regain trust(INFORMATIK 2017, 2017) Meissner, Roy; Kastne, MarcusIn this paper we present the tool “DockerConverter”, an approach and a software to map a Docker configuration to various matured systems and also to reverse engineer any available Docker image in order to increase the confidence (or trust) into it. We show why a mapping approach is more promising than constructing a Domain Specific Language and why we chose a Docker image instead of the Dockerfile as the source model. Our overall goal is to enable Semantic Web research projects and especially Linked Data enterprise services to be better integrated into enterprise applications and companies.
- ZeitschriftenartikelMessung und Nachdokumentation eines uralten COBOL-Systems zwecks der Migration zu Java(Softwaretechnik-Trends Band 29, Heft 2, 2009) Sneed, Harry M.Der folgende Beitrag beschreibt die Analyse einer uralten COBOL Applikation als Voraussetzung für eine Migration zu Java. Zunächst wurde der Code gemessen um Basisdaten für die Aufwandsschätzung und Risikoanalyse zu gewinnen. Anschließend wurde der Code nochmals zwecks der Nachdokumentation bearbeitet. Aus den COBOL-Sourcen wurden sämtliche Verweise auf externe Objekte – Calls, IO-Operationen und DBZugriffe, sowie alle interne Verzweigungen, alle Regel und alle Datenreferenzen – abgeleitet und in ein Software-Repository überführt, aus dem es möglich war Modulaufrufe, Datenflüsse, Datenbankzugriffspfade und Datenquerverweise abzufragen und graphisch darzustellen. Darüber hinaus wurden einzelne Programme und Dateien prototypweise automatisch transformiert. Die COBOL Anweisungen wurden 1:1 in JavaMethoden, die VSAM-Dateien 1:n in relationale Tabellen umgesetzt. Zum Schluss wurden die Migrationsaufwände geschätzt und eine Risikoanalyse durchgeführt.
- ZeitschriftenartikelMoSt – Modellbasierte Generierung synthetischer Datenbankstatistiken(Datenbank-Spektrum: Vol. 16, No. 1, 2016) Koch, ChristophIm Zeitalter von Cloud, Mobility und BigData sehen sich moderne (Datenbank-)Anwendungen mit immer höheren Anforderungen konfrontiert. Dabei reicht das Spektrum von funktionalen Aspekten bis hin zu nicht-funktionalen Anforderungen, zu denen vor allem eine hohe Performance zählt. Kontinuierliche Qualitätssicherungsmaßnahmen zur Einhaltung dieser Anforderungen sind unabdingbar und ein zentraler Bestandteil agiler Software- und Datenbankentwicklung. Dazu zählen auch zur Ausführungsplan-Analyse von SQL-Statements etablierte Explain-Mechanismen relationaler Datenbankmanagementsysteme. Diese können anhand von Statistiken zu den datenbankseitig gespeicherten Daten Abschätzungen und Vorhersagen zur erwarteten Performance bei der Abarbeitung von SQL-Statements geben.Speziell für neue Datenbankanwendungen bzw. Anwendungsmodule ohne vorhandene repräsentative Datenbestände existieren damit standardmäßig keine Statistiken. Der vorliegende Beitrag adressiert dieses Problem und stellt einen Ansatz vor, um auch ohne aufwändige Datengenerierung trotzdem die Explain-Mechanismen zur Qualitätssicherung nutzen zu können. Dabei werden die benötigten Statistiken auf Basis von strukturiert im Datenmodell erfassten Performance-Indikatoren künstlich erzeugt. Durch erste Untersuchungen am praktischen Beispiel konnte die Tragfähigkeit dieses Ansatzes bereits bestätigt werden.
- KonferenzbeitragEin Präprozessor-Repository für das Reverse-Engineering(Softwaretechnik-Trends Band 25, Heft 2, 2005) Riediger, VolkerDer Einsatz von Präprozessoren in Programmiersprachen stellt ein bedeutendes Problem in der Softwaretechnik dar. Durch textuelle Transformationen, durch die Inklusion externer Quelltexte und durch tief verschachtelte komplexe Bedingungen wird das Begreifen von Zusammenhängen und die Inspektion bestehender Systeme erschwert. Mit einem sprachunabhängigen Repository-Schema wurde ein Datenmodell für die Repräsentation von Präprozessor-Fakten entwickelt. Dieses Schema erlaubt eine von der konkreten Programmiersprache und deren speziellen Verarbeitungsregeln unabhängige Repräsentation von Präprozessor-Aktionen in Fold-Graphen. Fold-Graphen mit den darauf aufbauenden Algorithmen können als erste Technologie zur feingranularen Analyse größerer Software-Systeme mit Präprozessor eingesetzt werden. Dabei kann die Transformation des Präprozessors auf beliebigen Ebenen untersucht werden. Der Bezug zum Original-Quelltext geht dabei nicht verloren. Die Ergebnisse sind auf viele Präprozessorsprachen anwendbar.