1,532 research outputs found

    Migration to PaaS Clouds - Migration Process and Architectural Concerns

    Get PDF
    In the cloud computing technology stack, infrastructure has matured more than platform or software service technologies with respect to languages and techniques used for architecting and managing respective applications. Platform-asa- Service (PaaS) emerges as a focus for the near future that we will focus on. We look at software architecture and programming concerns in the context of migration to PaaS solutions, i.e. the transition of platform systems from on-premise to cloud solutions. We investigate best-practice approaches in cloud-aware coding in the form of patterns and formulate these as a migration process. While one-to-one mappings of software from on-premise to cloud platforms are possible, statelessness and data externalisation from stateful sessions and applications emerge as solutions if cloud benefits such as elasticity and performance are aimed at

    Cloud migration of legacy applications

    Get PDF

    Framework change for modernization of webservice

    Get PDF
    Software companies that provide Software as a service, constantly seek to improve their product, by adding features according to the customer's needs. In an attempt to meet all the deadlines set by the customer, an important aspect of software development that gets neglected is code maintenance and code modernization, since this is not something that a customer demands of the software. But from a developer's stand point, a good software is one that is easy to work with and easy to maintain. In the long term ignoring code modernization will produce legacy code. Legacy code need not be code that is old, instead it can be code that is written in an outdated language, or has libraries that are no longer vendor supported. Legacy code then leads to different types of technical debt. This inadvertently affects the customer, because as the technical debt of the codebase increases, new feature development or maintenance will become more expensive and time consuming. This was the situation in the chosen case study company. This thesis focuses on studying the different types of technical debt and the possible code modernization methods and strategies that could be applied to a legacy system and possibly reduce technical debt and make the code more maintainable and modern. For this thesis, the modernization process selected is the Chicken Little methodology. This technique allows both the legacy system and the target system to run in parallel by using gateways, and this is an important feature for this project. Especially during the client-testing phase or in the first few months after the new system is taken into production, if there are any issues with the system, customers can be directed to the old system without losing business. In each step of this technique minimal functionality is selected, there by reducing the chance of risk. By following the steps of the chosen methodology to change the framework, the benefits identified were, easier code re-usability and thus code maintainability, reduced lines of code, more unit test cases and many more. Thereafter, concluding the thesis

    Re-engineering strategies for legacy software systems

    Get PDF
    Re-engineering can be described as a process for updating an existing system in order to meet new requirements. Restructuring and refactoring are activities that can be performed as a part of the re-engineering process. Supporting new requirements like migrating to new frameworks, new environments and architectural styles is essential for preservation of quality attributes like maintainability and evolvability. Many larger legacy systems slowly deteriorate over time in quality and adding new functionality becomes increasingly difficult and costly as technical debt accumulates. To modernize a legacy system and improve the cost effectiveness of implementing new features a re-engineering process is often needed. The alternative is to develop a completely new system but this can often lead to loss of years of accumulated functionality and be too expensive. Re-engineering strategies can be specialized and solve specific needs like cloud migration or be more generic in nature supporting several kinds of needs. Different approaches are suitable for different kinds of source and target systems. The choice of a re-engineering strategy is also influenced by organisational and business factors. The re-engineering of a highly tailored legacy system in a small organisation is different from re-engineering a scalable system in a large organisation. Generic and flexible solutions are well suited for especially smaller organisations with complex systems. The re-engineering strategy Renaissance was applied in a case study at Roima Intelligence Oy in order to find out if such a strategy is realistically usable, useful and valuable for a smaller organization. The results show that a re-engineering strategy is possible to be used with low overhead in order to prioritize different parts of the system and determining a suitable modernization plan. Renaissance was also shown to add value especially in the form of deeper understanding of the system and a structured way to evaluate different options for modernization. This is achieved through assessing the system from different views taking into account especially business and technical aspects. A lesson learned about Renaissance is that determining an optimal scope for the system assessment is challenging. The results are applicable for other organisations dealing with complex legacy systems with constrained resources. Limitations of the study are that the number of different kinds of re-engineering strategies discussed is small and more suitable strategies than Renaissance could be discovered with a systematic mapping study. The amount of experts participating in the process itself as well as the evaluation was also low, introducing some uncertainty to the validity of the results. Further research is needed in order to determine how specialized and generic re-engineering strategies compare in terms of needed resources and added value

    Development of a model for the migration of legacy architectures

    Get PDF
    Diese Arbeit beschäftigt sich mit der Erstellung eines holistischen Modells für Migrationen von Alt(last)systemen in der IT. Dafür ist es notwendig zuerst festzustellen was sogenannte Legacy Systeme überhaupt ausmacht und welche Probleme diese mit sich bringen. Danach werden bestehende Migrationsarten und -vorgehensweisen erörtert und aufgezeigt welche Architekturen und Trends momentan auf dem Markt vorhanden sind. Um die im letzten Abschnitt der Arbeit vorgeschlagene Migrationsstrategie zu unterstützen werden Methoden zur Risikokontrolle, zur Einbeziehung von Stakeholdern und zur wirtschaftlichen Begründbarkeit eingeführt. Schließlich werden der Referenzprozess ReMiP und TOGAF als Framework für Enterprise Architecture vorgestellt und eine Kombination der beiden vorgeschlagen und in einem Referenzmodell beschrieben. Die erwarteten Vorteile durch die in dieser Arbeit diskutierte kombinierte Anwendung werden von einem externen Experten aus dem Arbeitsfeld von IT Migrationen nach ihrer Anwendbarkeit beurteilt.This paper is proposing a holistic process model for the migration of legacy infrastructures. To achieve this objective it is therefore necessary to investigate and define what legacy architectures and their related problems are. After that the established migration approaches to address the legacy challenge and an overview of current and ongoing architectures and trends form a broad enough headstone to then go on discussing which methodologies and means are available to facilitate a smooth migration. These are spanning from the human factor via risk control to economic matters related to system transformation projects. Finally the migration reference process ReMiP and the enterprise architecture framework TOGAF are introduced and combined to consolidate the presented approaches. The closing chapters compare the expected benefits with the requirements of a practitioner, propose a reference migration model and finally summarise the proposed approach

    Kollaboratives Reengineering und Modularisieren von Softwaresystemen

    Get PDF
    Software systems evolve over their lifetime. Changing requirements make it inevitable for developers to modify and extend the underlying code base. Specific requirements emerge in the context of open source software where everybody can contribute and requirements can change over time. In particular, research software is often not structured with a maintainable and extensible architecture. Furthermore, often databases are employed for retrieving, storing, and processing application data. Insufficient knowledge of the actual structure and behavior of such software systems and related databases can entail further challenges. Thus, understanding these software systems embodies a crucial task, which needs to be addressed in an appropriate way to face inevitable challenges while performing software changes. Approaches based on alternative display and interaction concepts can support this task by offering a more immersive user experience. In this thesis, we introduce three complementary approaches to support the evolution and particularly understanding of software systems in different aspects. Our main contributions are (i) an approach named CORAL for enabling collaborative reengineering and modularization of software systems, (ii) a gesture-based, collaborative, and multi-user-featuring Virtual Reality approach named ExplorViz VR for the software city metaphor, and (iii) a database behavior live-visualization approach named RACCOON for database comprehension of software systems. An extensive case study shows that our CORAL approach is capable of supporting reengineering and modularization processes. Furthermore, several lab experiments demonstrate the high usability, and efficiency and effectiveness for solving comprehension tasks when using the visualization within our multi-user VR approach ExplorViz VR. All implementations are available as open-source software on www.explorviz.net. Additionally, we provide an extensive experimental package of our latest VR evaluation to facilitate the verifiability and reproducibility of our results

    Software Product Line Engineering via Software Transplantation

    Full text link
    For companies producing related products, a Software Product Line (SPL) is a software reuse method that improves time-to-market and software quality, achieving substantial cost reductions.These benefits do not come for free. It often takes years to re-architect and re-engineer a codebase to support SPL and, once adopted, it must be maintained. Current SPL practice relies on a collection of tools, tailored for different reengineering phases, whose output developers must coordinate and integrate. We present Foundry, a general automated approach for leveraging software transplantation to speed conversion to and maintenance of SPL. Foundry facilitates feature extraction and migration. It can efficiently, repeatedly, transplant a sequence of features, implemented in multiple files. We used Foundry to create two valid product lines that integrate features from three real-world systems in an automated way. Moreover, we conducted an experiment comparing Foundry's feature migration with manual effort. We show that Foundry automatically migrated features across codebases 4.8 times faster, on average, than the average time a group of SPL experts took to accomplish the task
    corecore