TARSAL Sintesi della relazione

SALMS: software asset library management system

SALMS (Software Asset Library Management System) is a system which supports a Reusable Software Asset Library (RSAL), by providing classification, description, and querying about reusable software assets produced throughout the software life-cycle. SALMS is a system, which supports reuse activities within an organisation. It fills the gap between the development for-reuse activities (creating, acquiring, or re-engineering of reusable assets) and the development with-reuse activities (using reusable assets in the creation of new software products). SALMS plays a central role in the implementation of a reuse program where the process of identification of reuse capabilities and of planning the reuse practices in a software project are integrated in the organisation life-cycle process An asset in SALMS can be viewed as a collection of artifacts produced throughout the life-cycle, such as requirements, architecture model, design specifications, source code, and test scripts. Reuse can happen either at asset or artifact level. SALMS provides a sophisticated mechanism for the classification of assets according to a variety of perspectives (or facets), such as functionality, implementation language, quality level, and so on. The set of available facets can be configured to fit the specific needs and requirements of software development organizations. Asset retrieval is then supported via a number of mechanisms: direct access, filtered access, text-based access, navigation-based access, and faceted access. SALMS adopts a client-server architecture. It has been implemented in C++ and is currently available on HP-UX v9.x and v10.x, Windows NT 3.51, and Windows 95 platform. SALMS is used on a daily basis by the software engineers at Sodalia and two end-user organizations of different size, location, and business domains have begun reuse practices supported by SALMS. This experiment has produced an increase in productivity, flexibility, quality, and maintenance of their software products with a consequent reduction of software development costs and time-to-market.