This paper presents an AI based library system for software reuse, called AIRS, that allows a developer to browse a software library in search of components that best meet some stated requirement. A component is described by a set of ( feature, term ) pairs. A feature represents a classification criterion, and is defined by a set of related terms. The system allows to represent packages (logical units that group a set of components) which are also described in terms of features. Candidate reuse components and packages are selected from the library based on the degree of similarity between their descriptions and a given target description. Similarity is quantified by a nonnegative magnitude ( distance ) proportional to the effort required to obtain the target given a candidate. Distances are computed by comparator functions based on the subsumption, closeness, and package relations. We present a formalization of the concepts on which the AIRS system is based. The functionality of a prototype implementation of the AIRS system is illustrated by application to two different software libraries: a set of Ada packages for data structure manipulation, and a set of C components for use in Command, Control, and Information Systems. Finally, we discuss some of the ideas we are currently exploring to automate the construction of AIRS classification libraries.
Abs_actGTE is the Command and Control contractor for the Domain Specific Software Architectures program. The objective of this program is to develop and demonstrate an architecturedriven, component-based capability for the automated generation of command and control (C2) applications. Such a capability will significantly reduce the cost of C2 application development and will lead to improved system quality and reliability through the use of proven architectures and components.A major focus of GTE's approach is the automated generation of application components in particular subdomains. Our initial work in this area has concentrated in the message handling subdomain; we have defined and prototyped an approach that can automate one of the most software-intensive parts of C2 systems development.This paper provides an overview of the GTE team's DSSA approach and then presents our work on automated support for message processing.The DSSA Concept DSSA is based on the concept of an accepted generic software architecture for the target domain. As defined by DSSA, a software architecture describes the topology of software components, specifies the component interfaces, and identifies computational models associated with those components. The architecture must apply to a wide range of systems in the chosen domain; thus it must be general and flexible. It must be established with the consensus of practitioners in the domain.Once an architecture is established, components that conform to the architecture--i.e., that implement elements of its functionality in conformance with its interfaces---will be acquired. They may be acquired by identifying and modifying (if required) existing components or by specifically creating them. One of the ways they may be created is through,automated component generation. DARPA has sponsored work in this area at USC Information Sciences Institute --the AP5 application generator project, and is interested in incorporating this or related technology.The existence of a domain-specific architecture and conformant component base will dictate a significantly different approach to software application development. The developer will not walt until detailed design or implementation to search for reuse opportunities; instead, he/ she will be driven by the architecture throughout. The architecture and component base will help define requirements and allow construction of rapid prototypes. Design will use the architecture as a starting point. Design and development tools will be automated to "walk through" the architecture and assist the developer in the selection of appropriate components. The ultimate goal is to significantly automate the generation of applications. A major DSSA task is to define such a software lifecycle model and to prototype a supporting toolset. These activities will be accompanied by extensive interaction with the development community for the target domain, and by technology transition activities. One aspect of this is that each domain team is working closely with a DoD agency th...
Software development costs are a major factor in the world's economy. This situation is a result of systems becoming increasingly sophisticated (with software implementing most of the added functionality), while engineering salaries are rising and hardware costs are decreasing. Motivation to find more efficient and predictable ways to create software is growing annually. Comparing the software and hardware industries is interesting. Hardware costs are going down not because hardware engineers are getting cheaper, but because of standardization on common parts, in other words, reuse . Is there a way to achieve the same benefits by practicing reuse in the software field? Hardware engineers today build systems from components that perform complex functions on a single chip, rather than depending on gate level design and wiring. Can software be built from more complex software components, rather than from individual lines of code?, this can be regulated as a “software components industry.” Several trends in software engineering technologies have encouraged this interest in reuse. One of these is the increasing prominence of object‐oriented design and development. Object‐oriented methods encourage software engineers to design components around invariant objects—objects that have meaning outside the system and therefore might be usable by multiple systems. Another factor is the emergence of higher level programming languages and tools, for example, visual programming environments, that support principles of packaging and abstraction. These languages allow development of components with the cohesiveness and parameterization needed to make software more reusable. These technological enablers, coupled with a growing need to control software costs, have made software reuse a major field of research and development. Its promises are great, but there are many open issues and challenges. This article summarizes many of the major ideas and developments in this growing field.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.