Podcast
Questions and Answers
What is one of the most obvious advantages of software reuse?
What is one of the most obvious advantages of software reuse?
What is a result of increased productivity due to software reuse?
What is a result of increased productivity due to software reuse?
What is a type of reuse model that involves designing and implementing reusable components?
What is a type of reuse model that involves designing and implementing reusable components?
What is another term for 'development-for-reuse' process?
What is another term for 'development-for-reuse' process?
Signup and view all the answers
What is a risk associated with the proactive approach to reuse?
What is a risk associated with the proactive approach to reuse?
Signup and view all the answers
What is a benefit of software reuse in terms of reliability?
What is a benefit of software reuse in terms of reliability?
Signup and view all the answers
What is a result of reduced process risk due to software reuse?
What is a result of reduced process risk due to software reuse?
Signup and view all the answers
What is a characteristic of software reuse that involves creating reusable assets?
What is a characteristic of software reuse that involves creating reusable assets?
Signup and view all the answers
What is a necessary condition for software reuse to succeed?
What is a necessary condition for software reuse to succeed?
Signup and view all the answers
What is the minimum number of times an artifact needs to be reused to recoup the extra cost of developing reusable components?
What is the minimum number of times an artifact needs to be reused to recoup the extra cost of developing reusable components?
Signup and view all the answers
What is the purpose of a reuse library?
What is the purpose of a reuse library?
Signup and view all the answers
What is domain engineering also referred to as?
What is domain engineering also referred to as?
Signup and view all the answers
What is the goal of domain engineering?
What is the goal of domain engineering?
Signup and view all the answers
What is a way to collect library assets?
What is a way to collect library assets?
Signup and view all the answers
What is a key factor in software reuse?
What is a key factor in software reuse?
Signup and view all the answers
What is a potential problem in software reuse?
What is a potential problem in software reuse?
Signup and view all the answers
Which activity is NOT one of the main activities involved in software reuse?
Which activity is NOT one of the main activities involved in software reuse?
Signup and view all the answers
Who is credited with introducing formal software reuse?
Who is credited with introducing formal software reuse?
Signup and view all the answers
What is meant by 'domain analysis' in the context of software reuse?
What is meant by 'domain analysis' in the context of software reuse?
Signup and view all the answers
Which type of reusable artifact involves the reuse of executable code?
Which type of reusable artifact involves the reuse of executable code?
Signup and view all the answers
What necessary component is highlighted for data reuse?
What necessary component is highlighted for data reuse?
Signup and view all the answers
Which concept was introduced by David Parnas?
Which concept was introduced by David Parnas?
Signup and view all the answers
What does design reuse primarily deal with?
What does design reuse primarily deal with?
Signup and view all the answers
Which types of reuse involve creating a set of generic design styles and functional elements?
Which types of reuse involve creating a set of generic design styles and functional elements?
Signup and view all the answers
What is a key characteristic of reactive approaches in reuse models?
What is a key characteristic of reactive approaches in reuse models?
Signup and view all the answers
Which of the following is a situation where a reactive approach to reuse would be effective?
Which of the following is a situation where a reactive approach to reuse would be effective?
Signup and view all the answers
What is one potential downside of using reactive approaches in reuse models?
What is one potential downside of using reactive approaches in reuse models?
Signup and view all the answers
Which approach reuses operational software products to establish an initial baseline for domain engineering?
Which approach reuses operational software products to establish an initial baseline for domain engineering?
Signup and view all the answers
What prerequisite is necessary for an organization to effectively use an extractive approach in domain engineering?
What prerequisite is necessary for an organization to effectively use an extractive approach in domain engineering?
Signup and view all the answers
Which factor related to systematic software reuse is linked with cultural, social, and political factors?
Which factor related to systematic software reuse is linked with cultural, social, and political factors?
Signup and view all the answers
Which factor of systematic software reuse emphasizes the need for upper management support due to required investment and organizational changes?
Which factor of systematic software reuse emphasizes the need for upper management support due to required investment and organizational changes?
Signup and view all the answers
Which of the following is NOT one of Frakes and Gandel's four major factors for systematic software reuse?
Which of the following is NOT one of Frakes and Gandel's four major factors for systematic software reuse?
Signup and view all the answers
Study Notes
Benefits of Reuse
- Software reuse provides several benefits, including economic benefits, increased reliability, reduced process risk, increased productivity, compliance with standards, accelerated development, improved maintainability, and less maintenance effort and time.
Reuse Models
- There are three types of reuse models: proactive, reactive, and extractive approaches.
- Proactive approaches involve designing and implementing reusable components for all conceivable variations, including design of reusable assets.
- Reactive approaches involve developing reusable assets when a reuse opportunity arises.
- Extractive approaches fall in between proactive and reactive approaches, reusing some operational software products to make a domain engineering's initial baseline.
General Idea of Reuse
- Formal software reuse was first introduced by Doug McIlroy.
- Early development of reuse includes the concept of program families introduced by David Parnas.
- Domain analysis was introduced by Jim Neighbors, which means finding objects and operations of a set of similar software systems in a specific problem domain.
- There are four types of reusable artifacts: data reuse, architectural reuse, design reuse, and program reuse.
Factors Influencing Reuse
- Four major factors that influence systematic software reuse are: managerial, legal, economic, and technical.
- Managerial factors require upper management support, as it may need years of investment before it pays off.
- Legal factors are linked with cultural, social, and political factors, and present difficult problems.
- Economic factors require that software reuse provides economic benefits, and some artifacts need to be reused more than 13 times to recoup the extra cost.
- Technical factors have received much attention from researchers, and involve library development, object-oriented development paradigm, and domain engineering.
Domain Engineering
- Domain engineering refers to a development-for-reuse process to create reusable software assets (RSA), also known as product line development.
- It is the set of activities that are executed to create reusable software assets to be used in specific software projects.
- Domain engineering involves identifying the requirements of a software product family, designing a reusable, generic software structure, and developing members of the family.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz covers chapter 9 of Software Evolution and Maintenance, focusing on reuse and domain engineering, including topics like formal software reuse, domain engineering, and maturity models.