Types of Software Reuse:
Opportunistic reuse - While getting ready to begin a project, the team realizes that there are existing components that they can reuse.
• Planned reuse - A team strategically designs components so that they'll be reusable in future projects.
Opportunistic reuse can be categorized further:
- Internal reuse - A team reuses its own components. This may be a business decision, since the team may want to control a component critical to the project.
- External reuse - A team may choose to license a third-party component. Licensing a third-party component typically costs the team 1 to 20 percent of what it would cost to develop internally. The team must also consider the time it takes to find, learn and integrate the component.
` 1. Software libraries :
A very common example of code reuse is the technique of using a software library. Many common operations, such as converting information among different well-known formats, accessing external storage, interfacing with external programs, or manipulating information (numbers, words, names, locations, dates, etc.) in common ways, are needed by many different programs.
` 2. Design patterns:
A design pattern is a general solution to a recurring problem. Design patterns are more conceptual than tangible and can be modified to fit the exact need. However, abstract classes and interfaces can be reused to implement certain patterns.
What is a Software Asset? Any part of the software process that can be reused!!
Types of Reusable Assets:
• Code
• Requirements
• Architecture/design documents
• Test Plans
• Templates for any asset
• Design decisions
Attributes of asset
- unique ID
- is_composed_of (file)
- is_understood_by (teacher)
Stages in Reuse: Code reuse involves three basic steps:
• Accessing the code
• Understanding the code
• Adapting the code
Reuse Process:
Start
Search library
If identical match
Then
End
Else
Collect similar components
For each component
Compute degree of match
End
Rank and select best component
Modify component
Fi
End
No comments:
Post a Comment