Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
…
5 pages
1 file
Dual lifecycle software processes have the potential to significantly improve the way in which suites of software applications are generated and sustained. However, several outstanding issues need to be more adequately addressed before the full potential of this philosophy can be realized. Detailed strategies for maintaining domain architectures in parallel with suites of fielded applications are at present particularly conspicuous by their absence. In this paper we present a dual-lifecycle maintenance process that was developed for the ROSE project, a major reengineering and repository-building effort in the domain of Flight Design and Dynamics. We present the major features of the process, the rationale behind these features, and changes which we feel would be beneficial based on lessons learned from the application of the process. The process is presented using a variant of the Fusion object-oriented design method known as ProFusion.
The software development paradigm propounded by Semantic Designs, Inc. envisions a design-centric perspective rather than today's all too prevalent code-centric viewpoint. The Design Maintenance vision mandates notions of design and designing that are both formal and practicable. Our notion of a formal design entails three interrelated parts: specification (the artifact's functionality and performance goals); realization (including architectural design choices and ultimately, code); and rationale (justifying the realization of the specification). By practicable, we mean that each of the three parts of our formal notion of design are: 1) manipulable by both machine and software engineer; 2) scaleable for real, industrial-size systems (10's of MSLOC); 3) able to accommodate systems that are realized using multiple domain specific languages (ranging from high-level specification languages to implementations comprised of multiple target-execution languages); and 4) capable of continuous, incremental enhancement and extension. The implementation of this vision is called the Design Maintenance System™ or DMS™. The current release is DMS 1.0 Reengineering Toolkit, which provides infrastructure for Domain Specific Language (DSL) engineering as well as language neutral components t hat enable construction of large-scale, mixed-language specification analysis, transformation and synthesis tools. Original research and development for DMS was funded by an award from the Department of Commerce, NIST ATP under the Component-Based Software Initiative (NIST Cooperative Agreement Number 70NANB5H1165). The Design Maintenance vision and DMS together form the basis for our full, frontal assault on software engineering's challenging areas of "New Software Development Paradigms" and "Software for the Real World". We claim the Design Maintenance vision and DMS together provide a solid foundation for building a formal, repeatable software engineering discipline and practice. In a DMS-based environment, hard won software engineering synthesis knowledge is made reusable through the incremental accretion of an ever-increasing repository of domain-specific transformations and domain-specific languages. Thus, software engineers reusing such knowledge become more effective in that the artifacts are produced using tested language definitions and transformations. Maintenance productivity will be enhanced as well, since the full-fledged implementation of DMS will support incremental, continuous design modification by capturing and preserving instances of the DMS notion of design-specifications, realizations, rationales. Moreover the leverage afforded by DMS in the identification and disposition of design changes on industrial scale designs promise to yield a 50% reduction in change cycle time while eliminating the software error re-injection rate-"collateral damage" or unintentional consequences of change installation. However, critical technical barriers must be surmounted on the path to achieving these productivity and quality breakthroughs. Some of these barriers include: scalable design capture capabilities; semantic reasoning across DSL boundaries; specification of and reasoning about performance-related aspects for a software artifact.
Journal of Software Maintenance: Research and Practice, 2000
Maintenance is not only performed after a software product has been delivered to the client. On the contrary, the requirements frequently change during development, thereby necessitating reconstruction of the artifacts that have been developed to date. In this paper we present a process for software construction that recognizes maintenance as an essential aspect of the entire life cycle of the software product, considered from the very first steps of the initial development. The process may be used in conjunction with any software development methodology. Our process consists of two components: A procedure that is uniformly applied at every step of the chosen methodology, whether development or maintenance; and a data structure, the propagation graph, which is updated at every step. When requirements change, the propagation graph is used to determine which artifacts of the software product are impacted by the change in requirements. From the viewpoint of changes in requirements, the process treats development as a special case of software maintenance.
Journal of Software Maintenance and Evolution: Research and Practice, 2003
ABSTRACT When an organization considers the evolution of a software-intensive system, the selection of the software maintenance process to be adopted must include consideration of the particular technical criteria, such as the application domain, the size and complexity of the final product, the hosting system characteristics, etc, yet be driven by the specific organization's goals, environment and maturity.By describing and analysing a real project, this paper shows how different approaches and techniques, usually applied in isolation, can be selected, customized and combined to implement a software maintenance and evolution process that better satisfies the goals and meets the constraints of the organization. The project was undertaken to investigate the feasibility of enhancing an aircraft avionics system by integrating new capabilities and, eventually, to identify a quick, low-cost and low-risk solution.
2001
The Object Management Group is rapidly moving from its previous Object Management Architecture vision (OMA) to the newest Model-Driven Architecture (MDA). At the center of this framework, the so-called four-level meta-modeling architecture provides the foundations for building a variety of automatic and semi-automatic model-transformation and code-generation tools. The most important will be platform targeted code-generation tools but there are plenty of other possibilities that we can expect to become available in the near future. As an example, this paper shows how modern metamodeling and meta-programming techniques may be combined to implement a new generation of software maintenance tools. The proposal deals with the future maintenance of software written in the C# programming language, supported by the DotNet platform and uses all support available in the MDA framework (UML, MOF, XMI). In addition to this, we take advantage of the introspection properties of C#. A similar approach could also be used with other modern programming languages like Smalltalk or, to a lesser extent, Java.
Doctoral Symposium 35th International Conference on Software Engineering (ICSE 2013)
At the core of model-driven software development, model-transformation compositions enable automatic generation of executable artifacts from models. Although the advantages of transformational software development have been explored by numerous academics and industry practitioners, adoption of the paradigm continues to be slow, and limited to specific domains.The main challenge to adoption is the fact that maintenance tasks, such as analysis and management of model-transformation compositions and reflecting code changes to model transformations, are still largely unsupported by tools. My dissertation aims at enhancing the field’s understanding around the maintenance issues in transformational software development, and at supporting the tasks involved in the synchronization of evolving system features with their generation environments. This paper discusses the three main aspects of the envisioned thesis: (a) complexity analysis of model-transformation compositions, (b) system feature localization and tracking in model-transformation compositions, and (c) refactoring of transformation compositions to improve their qualities.
Science of Computer Programming, 2012
Software modernization is critical for organizations that need cost-effective solutions to deal with the rapid obsolescence of software and the increasing demand for new functionality. This paper presents the XIRUP modernization methodology, which proposes a highly iterative process, structured into four phases: preliminary evaluation, understanding, building and migration. This modernization process is feature-driven, component-based, focused on the early elicitation of key information, and relies on a model-driven approach with extensive use of experience from the previous projects. XIRUP has been defined in the European IST project MOMOCS, which has also built a suite of support tools. This paper introduces the process using a case study that illustrates its activities, related tools and results. The discussion highlights the specific characteristics of modernization projects and how a customized methodology can take advantage of them.
Proceedings International Conference on Software Maintenance
Conventional software engineering tends to focus on a small part of the software life cycle: the design and implementation of a product. The bulk of the lifetime cost is in the maintenance phase, where one must live with the product previously developed. Presently, we have little theory and fewer tools to help us manage the maintenance activity. We contend that a fundamental cause of the difficulty is the failure to preserve design information. This results from an over preoccupation with the synthesis and maintenance of code. We offer an alternative paradigm: • make the design the central focus of the construction process-get code as a byproduct; • make the design the central focus of the maintenance process-preserve revised designs and get code as a byproduct. A transformational scheme for accomplishing this is presented. We call it the Design Maintenance System. The programming roles change radically from coding instances for ill-defined specifications to specifiers of functionality and (compiler-like) implementation methods. Specification and implementation method debugging would then become prominent activities. The design scheme and change management procedures are illustrated with a simple data processing application. We sketch an ongoing implementation.
Pain and suffering are normal.
2016 4th International Conference on Machinery, Materials and Computing Technology, 2016
Οπτικές Οικοτοπίες: Ιστορία, Θεωρία, Κριτική, B. Φερεντίνου (επιμ.), 2023
Annales Universitatis Mariae Curie-Sklodowska, sectio M – Balcaniensis et Carpathiensis
Asian Journal of Agricultural and Horticultural Research
Hungarian Journal of Legal Studies, 2024
Journal of Clinical Nursing, 2015
Diálogo Andino, 2024
Literature Compass, 2016
American Journal of Physical Anthropology, 2013
Ergodic Theory and Dynamical Systems, 2005
Toxicological Sciences, 2019
Zenodo (CERN European Organization for Nuclear Research), 2022
Pesquisa Agropecuária Brasileira, 2011