Software Reuse Landscape Overview

0.0(0)
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/60

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

61 Terms

1
New cards

System Reuse

Reusing complete systems, including multiple application programs.

2
New cards

Application Reuse

Reusing an application by incorporating it into others or developing application families.

3
New cards

Component Reuse

Reusing components of an application, from sub-systems to single objects.

4
New cards

Object and Function Reuse

Reusing small-scale software components implementing a single object or function.

5
New cards

Accelerated Development

Speeding up system production by reducing development and validation time through software reuse.

6
New cards

Effective Use of Specialists

Developing reusable software by specialists to encapsulate their knowledge.

7
New cards

Increased Dependability

Reused software is more dependable due to prior testing and fixing of design and implementation faults.

8
New cards

Lower Development Costs

Reducing costs by writing fewer lines of code through software reuse.

9
New cards

Reduced Process Risk

Knowing existing software costs versus uncertain development costs reduces project cost estimation errors.

10
New cards

Standards Compliance

Implementing standards like user interface standards using reusable components for consistency.

11
New cards

Creating a Component Library

Populating and ensuring usability of a reusable component library, adapting development processes.

12
New cards

Adapting Reusable Components

Discovering, understanding, and sometimes modifying reusable components for new environments.

13
New cards

Increased Maintenance Costs

Higher maintenance costs if source code of reused software is unavailable, leading to compatibility issues.

14
New cards

Lack of Tool Support

Some tools do not support development with reuse, complicating integration with component libraries.

15
New cards

Not-Invented-Here Syndrome

Engineers rewriting components due to trust issues or the challenge of creating original software.

16
New cards

Range of Reuse Approaches

Various levels of reuse from simple functions to complete application systems.

17
New cards

Application Frameworks

Collections of abstract and concrete classes adapted to create application systems.

18
New cards

Application System Integration

Integrating multiple application systems for extended functionality.

19
New cards

Architectural Patterns

Using standard software architectures to support common application system types.

20
New cards

Aspect-Oriented Software Development

Weaving shared components into applications at different stages during compilation.

21
New cards

Component-Based Software Engineering

Developing systems by integrating collections of objects conforming to component-model standards.

22
New cards

Configurable Application Systems

Designing domain-specific systems configurable to specific customer needs.

23
New cards

Design Patterns

Representing generic abstractions across applications as design patterns.

24
New cards

ERP Systems

Configuring large-scale systems encapsulating generic business functionality for organizations.

25
New cards

Legacy System Wrapping

Providing access to legacy systems through defined interfaces.

26
New cards

Model-Driven Engineering

Representing software as domain models and generating code from these models.

27
New cards

Program Generators

Systems embedding knowledge to generate domain-specific systems from user-supplied models.

28
New cards

Program Libraries

Class and function libraries for commonly used abstractions available for reuse.

29
New cards

Service-Oriented Systems

Developing systems by linking shared services, which may be externally provided.

30
New cards

Software Product Lines

Generalizing application types around a common architecture for adaptation to different customers.

31
New cards

Systems of Systems

Integrating two or more distributed systems to create a new system.

32
New cards

Framework Definition

An integrated set of software artifacts collaborating to provide a reusable architecture for related applications.

33
New cards

Framework Complexity

Frameworks provide a skeleton architecture but can be complex, requiring time to use effectively.

34
New cards

System Infrastructure Frameworks

Supporting the development of system infrastructures like communications, user interfaces, and compilers.

35
New cards

Middleware Integration Frameworks

Standards and classes supporting component communication and information exchange.

36
New cards

Middleware integration frameworks

Support component communication and information exchange

37
New cards

Enterprise application frameworks

Aid in developing specific application types like telecommunications

38
New cards

Software product lines

Applications with generic functionality adaptable for specific contexts

39
New cards

Software product line

Set of applications with shared components but specialized for different needs

40
New cards

Adaptation in product lines

Involves component/system configuration, adding new components, selecting from a library, and modifying components

41
New cards

Core components

Provide infrastructure support, remain unmodified in new product line instances

42
New cards

Configurable components

Modified and specialized for new applications, may use a built-in configuration language

43
New cards

Domain-specific components

Specialized components replaced in new product line instances

44
New cards

Object-oriented features in frameworks

Application frameworks use polymorphism for extensions, unlike product lines

45
New cards

Architectures in product lines

Structured to separate subsystems and allow modifications

46
New cards

Elicit stakeholder requirements

Use existing family members as prototypes to understand needs

47
New cards

Design time configuration

Modifying a common product line core to create a new system

48
New cards

Deployment time configuration

Generic system designed for customer configuration using embedded data

49
New cards

Component selection

Choosing modules providing required functionality in a system

50
New cards

Workflow and rule definition

Defining information processing workflows and validation rules

51
New cards

Parameter definition

Specifying values for system parameters reflecting the application instance

52
New cards

Application system product

Adaptable software system without changing source code, with generic features

53
New cards

Configurable application systems

Generic systems designed to support specific business types or activities

54
New cards

Domain-specific systems

Support business functions likely needed by various users

55
New cards

Integrated application systems

Include multiple application system products or legacy systems

56
New cards

Service-oriented approach

Access application system functionality through standard service interfaces

57
New cards

Software reuse benefits

Lower costs, faster development, increased dependability

58
New cards

Application frameworks

Collections of objects designed for reuse through specialization

59
New cards

Application system reuse

Reusing large-scale off-the-shelf systems to reduce costs and development time

60
New cards

Potential problems with system reuse

Lack of control over functionality, system evolution, inter-operability, and vendor support

61
New cards

Design patterns in frameworks

Incorporate good design practices for reuse and specialization