0% found this document useful (0 votes)
4 views

Ch1-Concept and Terminology part 2

Uploaded by

wanfadzreena06
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Ch1-Concept and Terminology part 2

Uploaded by

wanfadzreena06
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Software Reuse

Module 1:
Concept and Terminology
Part 2
Software Reuse Processes
• Corporate management
– Initiates the reuse initiative and monitors the
attending costs and benefits
• Domain engineering team
– Responsible for producing, classifying and
maintaining reusable assets
• Application engineering team
– Responsible for producing applications, possibly
using reusable assets
Software Reuse Processes:
Organizational Structures
• Organizational Structures is defined by a set of
rules that describe the relationships between
the various stakeholders of the software reuse
initiative
• Define the goals of each stakeholder,
reporting relations between stakeholders,
accounting procedures (who gets credit for
what), incentives structures and rewards
structures
Software Reuse Processes:
Domain Engineering
• Domain Analysis
• Domain Engineering
• Asset Acquisition
• Asset Classification
• Asset Maintenance
Software Reuse Processes:
Domain and Application Engineering
Software Reuse Processes:
Domain Engineering
• Domain Analysis
– Define application domain
– Analyze to develop reuse infrastructure for the
domain
Software Reuse Processes:
Domain Engineering
• Domain Engineering
– The team proceeds to build the reuse
infrastructure that is required to support
application development within the domain
– Includes generic architecture (captures structural
commonalities/general data identified) and;
– Set of reusable asset specifications and protocols
that fit in the architecture
Software Reuse Processes:
Domain Engineering
• Asset Acquisition
– Consists of development for reuse (some external
procurement of reusable assets)
– Differs from traditional development; meet
requirements of genericity, reliability,
maintainability and documentation
Software Reuse Processes:
Domain Engineering
• Asset Classification
– This task is in effect the database administration
task; consists of cataloging and storing reusable
assets to facilitate retrieval and assessment by
application engineering team
Software Reuse Processes:
Domain Engineering
• Asset Maintenance
– This task is in effect a maintenance task, merged
with a configuration management/ version control
task
– As components evolve through corrective
maintenance (correcting bugs) and perfective
maintenance (producing successive upgrades), the
applications that use these components may be
affected and need to modify
Software Reuse Processes:
Application Engineering
• Development with Reuse
• Specifying Reusable Assets
• Reengineering for Reuse
Software Reuse Processes:
Application Engineering
• Development with Reuse
– Impact whether using top-down OR bottom-up
– Reuse-based top-down discipline of application
development;
• Requirements specification: the application’s
requirements are specified
• Product design: the system’s design is refined to the
point where it is possible to identify design units that
can be found in reusable library
Software Reuse Processes:
Application Engineering
• Retrieval: the units are looked up in the reuse library
and then assessed to determine whether adequate
design for the purposes of the design at hand
• Coding the missing units: not found in the library
• And subsequent integration and testing
– Reuse-based bottom-up discipline;
• After requirements specification, proceed to browse
the library and then to develop a design that takes the
best possible advantage of the assets we have seen in
the library
Software Reuse Processes:
Application Engineering
• Specifying Reusable Assets
– Under an application-centered organization, the
application engineering team is mandated to
commission the development of reusable assets;
for purposes of a specific project with
understanding of long-term reuse potential
Software Reuse Processes:
Application Engineering
• Reengineering for Reuse
– The application engineering team may take
components developed for a specific application
and select them for reuse
– Selected based on their reuse potential; before
they are integrated into the reuse library, they
need to be reengineered to meet the reusability
standards of the library
Exercises
1.3.5
Software Reuse Paradigms
• Paradigms for Software Retrieval
• Paradigms for Software Adaptation
• Paradigms for Software Composition
Software Reuse Paradigms
• Paradigms for Software Retrieval
– Browsing: consists of navigating the software
library
– Retrieval: consists of navigating the library to find
assets that satisfy prespecified requirements
• Exact Retrieval
• Approximate Retrieval
Software Reuse Paradigms
• Paradigms for Software Adaptation
– Blackbox reuse
– Whitebox reuse
• Loss of Productivity
• Loss of Quality
Software Reuse Paradigms

• Paradigms for Software Composition


– Compositional Development
• Applicable whenever the reusable assets are finished software products in
compilable/executable form, and consists in composing these assets to
produce larger software systems
• E.g. Consider a reuse library that contains a set of database operations,
including operations to perform the storage, modification, retrieval, and
deletion of entries, as well as operations to reindex, sort, or back-up the
database
• An instance of compositional development would consists of building an
application by defining a sequence menus that invoke these functions
according to user selections
Software Reuse Paradigms

• Paradigms for Software Composition


– Generative Development
• Applicable whenever the reusable assets are represented
intensively in terms of instanciable patterns rather than
finished products
• Consists of instantiating the pattern that embodies the
reusable asset by providing specification-level
parameters (a generator)
Software Reuse Libraries

• Comprehensive Approach to Reusable Defense


Software (CARDS)
• Defense Software Repository System (DSRS)
• Asset Source for Software Engineering Technology
(ASSET)
Software Reuse Libraries

• Comprehensive Approach to Reusable Defense


Software (CARDS)
– To design operational reusable software libraries that
support multiple domains and serve as a model for the
construction of other domain specific reuse libraries
that can be integrated to the CARDS library system
Software Reuse Libraries

• Defense Software Repository System (DSRS)


– Developing a network of software reuse support
centers and is a library of defense reusable assets
• Asset Source for Software Engineering Technology
(ASSET)
– To provide an on-line repository for reusable software
assets
Software Reuse Methodologies

• The DoD Software Reuse Initiative (SRI)


• Software Optimization and Reuse Technology
(SORT)
• Software Technology for Adaptable Reliable
System (STARS)
• FAST: Family-oriented Abstraction, Specification
and Translation
• Software Reuse Business
Software Reuse Methodologies
• The DoD Software Reuse Initiative (SRI)
~To define process to:
– Identify domains where the greatest opportunities exist to apply systematic
reuse
– Identify the domain assets and the domain-specific architectures
– Define the criteria for deciding the ownership of reusable assets
– Integrate reuse into the overall system lifecycle
– Develop and apply new business models that encourages organizations to
practice reuse and define evaluation criteria for reuse success
– Define and implement a technology transition plan to a reuse-based
paradigm
Software Reuse Methodologies

• Software Optimization and Reuse Technology (SORT)


• Two main tasks:
– SORT Domain Engineering
• OBJECTIVES: to scope a selected set of domains of interest to
guide the focus upon which resources will be expended
– SORT Technology Transfer
• OBJECTIVES: to communicate the domain engineering
methodologies and technologies throughout NASA centers
Software Reuse Methodologies

• Software Technology for Adaptable Reliable System


(STARS)
• ~Major Objectives:
– To apply a reuse-based product-line approach to the
development of DoD software systems
– To develop quantitative and qualitative metrics for the
development effort conducted in the product-line
approaches
– To motivate organizations developing projects under
the STARS program to utilize product-line technology
and to continue using and applying the product-line
approach to other projects
Software Reuse Methodologies

• FAST: Family-oriented Abstraction, Specification


and Translation
– A central feature of FAST is planning and structuring
for change by searching for abstraction mechanisms
and applying them for the design and implementation
of components
Software Reuse Methodologies

• Software Reuse Business


• The framework developed by Ivar Jacobson et al.
[1997] is to define a set of guidelines and models
that help ensure success with large-scale object-
oriented reuse
Software Reuse Standards

• The Reuse Library Interoperability Group (RLIG) ~


working group that propose and produce drafts
for standards for interoperability between
software reuse libraries
• Then, submit the standards to formally
standardized by organizations such as IEEE
Review:
Key Concepts of Reuse
1. What are the activities in software reuse?
2. Who are the stakeholders in your project?
3. Why is it important to reuse assets?
4. Explain the use of reusable libraries?
5. Describe an example of analogy for software
reuse?

You might also like