Auflistung nach Schlagwort "Refactoring"
1 - 8 von 8
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.
- KonferenzbeitragErfahrungen mit Refactorings in LabVIEW(Softwaretechnik-Trends Band 25, Heft 2, 2005) Schützler, Kay; Huß, SebastianIn diesem Artikel werden Erfahrungen mit Refactoringaktivitäten in einer grafischen Programmiersprache beschrieben, also auf Design-Level. Es wurde untersucht, inwiefern Fowlers Bad Smells auf eine datenflussorientierte grafische Programmiersprache übertragbar sind. So konnte anhan der übertragbaren Bad Smells eine Auswahl der zu übertragenden Refactorings motiviert werden.
- 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.
- ConferencePaper#ifdef Directives and Program Comprehension: The Dilemma between Correctness and Preference(Software Engineering 2021, 2021) Fenske, Wolfram; Krüger, Jacob; Kanyshkova, Maria; Schulze, SandroIn this extended abstract, we summarize our paper with the homonymous title published at the International Conference on Software Maintenance and Evolution (ICSME) 2020.
- KonferenzbeitragOn the test-driven development and validation of business rules(Information systems technology and its applications, ISTA' 2005, 2005) Dietrich, Jens; Paschke, AdrianIn recent years we have seen the rise of a new type of software called business rule management systems (BRMS). These are systems to externalize business rules and to provide a facility for centralized business rule management. This addresses an urgent need businesses do have nowadays: to change their business rules in order to adapt to a rapidly business environment, and to overcome the restricting nature of slow IT change cycles. Early manifestations of business rule engines which have their roots in the realm of artificial intelligence and inference systems were complex, expensive to run and maintain and not very business-user friendly. Improved technology providing enhanced usability, scalability and performance, as well as less costly maintenance and better understanding of the underlying inference systems makes the current generation of business rule engines (BRE) and rules technology more usable. However, there are a number of risks and difficulties that have to be taken into account when employing a BRMS. Another recent trend that tries to address the same problem of slow IT change cycles is agile software engineering, in particular test driven development. In this paper, we investigate how BRMSs can be used in conjunction with test driven development. The result is an approach that facilitates the authoring of business rules significantly and safeguards it by providing means for automated validation and verification.
- WorkshopbeitragSerious Games for Software Refactoring(Software Engineering and Software Management 2019, 2019) Haendler, Thorsten; Neumann, GustafThis summary refers to the paper Serious Refactoring Games published as a full research paper in the proceedings of the 52nd Hawaii International Conference on System Sciences (HICSS 2019) [HN19]. Software design issues can severely impede software development and maintenance. Thus, it is important for the success of software projects that developers are aware of bad smells in code artifacts and improve their skills to reduce these issues via refactoring. However, software refactoring is a complex activity and involves multiple tasks and aspects. Therefore, imparting competences for identifying bad smells and refactoring code efficiently is challenging for software engineering education and training. The approaches proposed for teaching software refactoring in recent years mostly concentrate on small and artificial tasks and fall short in terms of higher level competences, such as analysis and evaluation. In this paper, we investigate the possibilities and challenges of designing serious games for software refactoring on real-world code artifacts. In particular, we propose a game design, where students can compete either against a predefined benchmark (technical debt) or against each other. In addition, we describe a lightweight architecture as the technical foundation for the game design that integrates pre-existing analysis tools such as test frameworks and software-quality analyzers. Finally, we provide an exemplary game scenario to illustrate the application of serious games in a learning setting.
- ZeitschriftenartikelSoftware Reengineering in der Praxis(Softwaretechnik-Trends Band 38, Heft 2, 2018) Sneed, Harry M.Der Stand der Software Reengineering Praxis wird hier zusammengefasst. Anhand seiner Projekterfahrung schildert der Autor welche Techniken sich bewährt haben und welche nicht. Obwohl es hier und da Erfolge gab, ist die Schlussfolgerung eher ernüchternd. Wir sind immer noch weit entfernt von den ursprünglich hochgesteckten Zielen. Die Erfolge die es gegeben hat wurden zu einem hohen Preis bezahlt. Die Ergebnisse sind bescheidend. Der Automatisierungsgrad lässt immer noch zu wünschen übrig. Zum Schluss folgt ein Ausblick auf die Zukunft der Reengineering Technologien.
- KonferenzbeitragVom Monolithen zur Service-Architektur mit Hilfe von Graphen(Softwaretechnik-Trends Band 40, Heft 2, 2020) Koch, Andres; Koch, RemoMonolithen sind nicht nur bei Mainframe-Applikationen auffindbar. Im Gegenteil, Applikationen der «Moderne», welche mit neueren objektorientierten Technologien, Sprachen und Frameworks erstellt wurden, evolvierten nach einigen Jahren zu noch komplexeren Gebilden, als man es je gekannt hat. Zukunftssichere und flexible Systeme wurden seit vielen Jahren basierend auf Service-Komponenten gebaut. Ein Reengineering, das aus Graphen-Metadaten von bestehenden, komplexen Applikationen mittels gängigen Graphen-Algorithmen sinnvolle Komponenten-Grenzen findet, stellt einen wirkungsvollen, teils heuristischen Ansatz dar.