Software Evolution and Maintenance Chapter 9
32 Questions
4 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is one of the most obvious advantages of software reuse?

  • Reduced productivity
  • Improved maintainability
  • Economic benefit (correct)
  • Increased process risk
  • What is a result of increased productivity due to software reuse?

  • Accelerated development (correct)
  • Compliance with standards
  • Reduced process risk
  • Improved maintainability
  • What is a type of reuse model that involves designing and implementing reusable components?

  • Extractive
  • Domain Engineering
  • Reactive
  • Proactive (correct)
  • What is another term for 'development-for-reuse' process?

    <p>Product Line Development</p> Signup and view all the answers

    What is a risk associated with the proactive approach to reuse?

    <p>Investment risk</p> Signup and view all the answers

    What is a benefit of software reuse in terms of reliability?

    <p>Increased reliability</p> Signup and view all the answers

    What is a result of reduced process risk due to software reuse?

    <p>Increased productivity</p> Signup and view all the answers

    What is a characteristic of software reuse that involves creating reusable assets?

    <p>Development-for-reuse</p> Signup and view all the answers

    What is a necessary condition for software reuse to succeed?

    <p>Providing economic benefits</p> 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?

    <p>13 times</p> Signup and view all the answers

    What is the purpose of a reuse library?

    <p>To provide an interface to search the repository</p> Signup and view all the answers

    What is domain engineering also referred to as?

    <p>Product line development</p> Signup and view all the answers

    What is the goal of domain engineering?

    <p>To create reusable software assets</p> Signup and view all the answers

    What is a way to collect library assets?

    <p>All of the above</p> Signup and view all the answers

    What is a key factor in software reuse?

    <p>Economic</p> Signup and view all the answers

    What is a potential problem in software reuse?

    <p>Liabilities and responsibilities</p> Signup and view all the answers

    Which activity is NOT one of the main activities involved in software reuse?

    <p>Software maintenance</p> Signup and view all the answers

    Who is credited with introducing formal software reuse?

    <p>Dough McIlroy</p> Signup and view all the answers

    What is meant by 'domain analysis' in the context of software reuse?

    <p>Identifying objects and operations of similar software systems in a specific problem domain</p> Signup and view all the answers

    Which type of reusable artifact involves the reuse of executable code?

    <p>Program reuse</p> Signup and view all the answers

    What necessary component is highlighted for data reuse?

    <p>Standard data interchange format</p> Signup and view all the answers

    Which concept was introduced by David Parnas?

    <p>Program families</p> Signup and view all the answers

    What does design reuse primarily deal with?

    <p>Reusing abstract design tailored to meet application requirements</p> Signup and view all the answers

    Which types of reuse involve creating a set of generic design styles and functional elements?

    <p>Architectural reuse</p> Signup and view all the answers

    What is a key characteristic of reactive approaches in reuse models?

    <p>Reuse opportunities are identified during product development.</p> Signup and view all the answers

    Which of the following is a situation where a reactive approach to reuse would be effective?

    <p>There is an aggressive production schedule with limited resources.</p> Signup and view all the answers

    What is one potential downside of using reactive approaches in reuse models?

    <p>They can become more expensive due to continuous reengineering.</p> Signup and view all the answers

    Which approach reuses operational software products to establish an initial baseline for domain engineering?

    <p>Extractive approaches</p> Signup and view all the answers

    What prerequisite is necessary for an organization to effectively use an extractive approach in domain engineering?

    <p>Accumulated artifacts and experiences in a domain</p> Signup and view all the answers

    Which factor related to systematic software reuse is linked with cultural, social, and political factors?

    <p>Legal</p> 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?

    <p>Managerial</p> 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?

    <p>Operational</p> 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.

    Quiz Team

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser