Architecture for Characterizing Reuse-Driven Software Engineering (original) (raw)

An introduction and history of software architectures, components, and reuse

Software Architectures: Advances and …, 1999

Software components and architectures are gaining considerable support as the way to develop object-oriented systems and business applications. Current developments in component-based software reuse is taking place in the context of some thirty years of history. It is as well to rehearse that history, as we do in this chapter, and draw lessons from it, lest we repeat the errors of the past.

A Framework for Describing Software Architectures for Reuse

1999

We present a formal description of softwate atchitectures for softwate reuse to support a view of systematic softwate reuse as the plugging of components into an architecture. The components ate object descriptions in the object calculus. Interconnection between the components is defined via synchronisation morphisms within a framework based on category theory. Component composition is defined via the pushout construction, giving the atchitecture as a "calculated" component, from which the atchitecture's properties may be derived. We show that the architectures described ate reusable in our Reuse Triplet that forms the motivation for our on-going work on systematic softwate reuse. This work provides further support for the suggestion that category theory provides the appropriate level of mathematical abstraction to describe softwate atchitectures.

1. An Introduction and History of Software Architectures, Components, and Reuse

Software components and architectures are gaining considerable support as the way to develop object-oriented systems and business applications. Current developments in component-based software reuse is taking place in the context of some thirty years of history. It is as well to rehearse that history, as we do in this chapter, and draw lessons from it, lest we repeat the errors of the past.

Approaches and Challenges of Software Reusability: A Review of Research Literature

IRJET, 2023

The article is discussing the practice of software reuse, which involves building new software applications and systems from pre-existing software components. This approach has become increasingly important in recent times as it can improve the quality and productivity of software development by providing support to software engineers throughout various phases of software engineering. The article outlines three main approaches to software reuse: component-based software reuse, domain engineering and software product lines, and architecture-based software reuse. Component-based software reuse involves developing software components that can be reused across different software applications or systems, Domain engineering and software product lines involve identifying and documenting the commonalities and variabilities of a set of related software systems, and using this information to develop reusable components. Architecture-based software reuse involves creating a software architecture that can be reused across multiple software applications or systems. Despite the potential benefits of software reuse, there are also challenges that can affect the development process. These challenges include issues related to finding, selecting, and adapting existing software components, as well as organizational and cultural challenges that can make it difficult to implement software reuse practices effectively.

A STRUCTURAL APPROACH TO IMPROVE SOFTWARE DESIGN REUSABILITY

Software reuse become a very promising area that has many benefits such as reducing costs, time, and most importantly, increasing quality of software. However, the concept of reuse is not only related to implementation level, in fact, it can be included in the earlier stages of the software development life cycle such as design stage. Adopting reuse at this stage provides many benefits such as increasing productivity, saving time and reducing cost of software development. Accordingly, this paper presents the concept of reuse at design level in more details. As well as, it proposes an approach to improve the reusability of software design using the directed graph concept. This leads to produce a design to be considered as reusable components which can be adapted in many software systems.

A Component-Based Framework for Software Reusability

Component-based development allows us to develop and integrate product components which facilitate software reusability, high quality and simplification for testing. Component-Based Software Engineering makes use of approaches which are based on architecture definition languages, object oriented design and software architecture. These strategies assist in the development of both domain-specific and generic software products. Reusability approach speeds up software development by using already developed components, thus software development cost and time is substantially reduced. I this paper, we present a Component-Based Software Engineering framework for software reusability

Style-based reuse for software architectures

Proceedings of Fourth IEEE International Conference on Software Reuse

Although numerous mechanisms for promoting software reuse have been proposed and implemented over the years, most have focused on the reuse of implementation code. There is much conjecture and some empirical evidence, however, that the most effective forms of reuse are generally found at more abstract levels of software design. In this paper we discuss software reuse at the architectural level of design. Specifically, we argue that the concept of "architectural style" is useful for supporting the classification, storage, and retrieval of reusable architectural design elements. We briefly describe the Aesop system's Software Shelf, a tool that assists designers in selecting appropriate design elements and patterns based on stylistic information and design constraints.

Software engineering with reusable components

1997

Software is rarely built completely from scratch. To a great extent, existing software documents source code, design documents, etc. are copied and adapted to t new requirements. Yet we are far from the goal of making reuse the standard approach to software development.

Design for large scale software reuse: an industrial case study

Software Reuse, 1996., …, 1996

Reuse of sofhvare is an excellent way for saving costs and development efforts. Design for large scale reuse addresses the need for higher productivity in a domain-specific (telecommunication) product line. This paper presents our approach to design for large scale reuse. The large-scale granularity of reusable components includes subsystems, building blocks (a collection of object classes} and architectures. The main principles are configurability, conceptual integri9, domain-specific architectures (for a product family), design for reuse, reuse guidelines and rules. We have achieved more than 70% reuse within a product family and more than 40% on a different product family.