SOFTWARE REUSE
Lesson I
A. Introduction to Software Reuse
What is Software reuse? Integration and use of software assets from a
previously developed system.
Types of Software Reuse:
Reuse over fungible systems
- portability
- commonality
- ex: numeric types of fixed range and/or precision
Reuse over different domains
- inheritance and binding
- generality and instantiation
- ex: object oriented programming, generics, templates, unconstrained types
Reuse over time
- maintenance
- evolution
- versions
- ex:product lines to be updated over time (such as the 360 family),
updating programs for the year 2000
Types of Reusable Assets:
- Code
- Requirements
- Architecture/design documents
- Test Plans
- Manuals
- Templates for any asset
- Design decisions
Benefits of Software Reuse
- Cost
- Time
- Reliability
- Existing parts have experience and real data that testing does not provide
- note: it takes MORE time to design for reuse (producer)
- it takes less time to design with reuse (consumer)
Composition and Generation
- Generation requires mature domain
- Composition requires mature library system
Role of Domain Analysis
- Context analysis
- Domain modeling
- Domain architectures
- object oriented
- event driven
- functional decomposition
B. Designing for Reuse
- defining the interface/ specification
- defining the implementation
- object oriented programming/ inheritance
- generics/ templates
- module decomposition/ parameter passing
- user defined types / strong typing
- portability features
- generality
Reference : Software Reuse Executive Primer, May 17, 1995
C. Ada 83/95
History - goals of Ada83, Ada95
DoD needs
- single language - portability, training
- efficiency
- reliability
- software engineering
- encapsulation
- maintenance
- reusability
- user defined types
- features for modularity
- generics
- object oriented features of Ada95
- megaprogramming
- separate compilation
- package specification
- interface definition
Reference: Wegner, P. Capital-intensive software technology.
IEEE Software 1,3
(July 1984) 7-45
Assignment: pick a topic on reuse for a class report