Software Evolution and Maintenance Chapter 9

RefinedChaos avatar
RefinedChaos
·
·
Download

Start Quiz

Study Flashcards

32 Questions

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

Economic benefit

What is a result of increased productivity due to software reuse?

Accelerated development

What is a type of reuse model that involves designing and implementing reusable components?

Proactive

What is another term for 'development-for-reuse' process?

Product Line Development

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

Investment risk

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

Increased reliability

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

Increased productivity

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

Development-for-reuse

What is a necessary condition for software reuse to succeed?

Providing economic benefits

What is the minimum number of times an artifact needs to be reused to recoup the extra cost of developing reusable components?

13 times

What is the purpose of a reuse library?

To provide an interface to search the repository

What is domain engineering also referred to as?

Product line development

What is the goal of domain engineering?

To create reusable software assets

What is a way to collect library assets?

All of the above

What is a key factor in software reuse?

Economic

What is a potential problem in software reuse?

Liabilities and responsibilities

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

Software maintenance

Who is credited with introducing formal software reuse?

Dough McIlroy

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

Identifying objects and operations of similar software systems in a specific problem domain

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

Program reuse

What necessary component is highlighted for data reuse?

Standard data interchange format

Which concept was introduced by David Parnas?

Program families

What does design reuse primarily deal with?

Reusing abstract design tailored to meet application requirements

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

Architectural reuse

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

Reuse opportunities are identified during product development.

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

There is an aggressive production schedule with limited resources.

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

They can become more expensive due to continuous reengineering.

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

Extractive approaches

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

Accumulated artifacts and experiences in a domain

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

Legal

Which factor of systematic software reuse emphasizes the need for upper management support due to required investment and organizational changes?

Managerial

Which of the following is NOT one of Frakes and Gandel's four major factors for systematic software reuse?

Operational

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.

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.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free
Use Quizgecko on...
Browser
Browser