Questions and Answers
Match these approaches that support reuse to their description:
Service-oriented systems = Systems are developed by linking shared services which may be externally provided. Model-driven engineering = Software is represented as domain-models and implementation-independent models and code is generated from these models. ERP systems = Large-scale systems that encapsulate generic business functionality and rules are configured for an organization. Component-based development = Systems are developed by integrating components that conform to component-model standards.
Match these approaches that support reuse to their description:
Configurable vertical applications = Generic systems are designed so that they can be configured to the needs of specific system customers. Software product lines = An application type is generalized around a common architecture so that it can be adapted for different customers. Application frameworks = Collections of abstract and concrete classes are adapted and extended to create application systems. Program generators = A system that embeds knowledge of a type of application and is used to generate systems in that domain from a user-supplied system model. Architectural patterns = Standard software collections that support common types of application systems are used as the basis of applications.
Extending a software product line involves carefully following these steps (in order): 1. Elicit stakeholder requirements 2. Select the existing system that is the closest fit to the requirements 3. Renegotiate requirements 4. Adapt existing system 5. Deliver __________.
new family member
Align these software reuse benefits with their proper category:
Signup and view all the answers
What is an integrated set of software artifacts (such as classes, objects, and components) that collaborate to provide a reusable architecture for a family of related applications known as?
Signup and view all the answers
Match these approaches that support reuse to their description:
Signup and view all the answers
Which three statements describe 'Application Frameworks'?
Signup and view all the answers
Which four statements describe 'Software Product Lines'?
Signup and view all the answers
Put these different levels of a resource management architecture in order, beginning with the user interface: 1. The __________ level 2. The I/O management level 3. The resource management level 4. The database management level.
Signup and view all the answers
Study Notes
Approaches Supporting Reuse
- Service-oriented systems: Developed by linking shared services which may be externally provided.
- Model-driven engineering: Involves software represented as domain models with implementation-independent models, generating code from these.
- ERP systems: Large-scale systems that encapsulate generic business functionality and configure rules for organizations.
- Component-based development: Systems developed by integrating components conforming to component-model standards.
Software Reuse Approaches
- Configurable vertical applications: Generic systems designed for configuration to meet specific customer needs.
- Software product lines: An application type generalized around a common architecture for adaptation to different customers.
- Application frameworks: Collections of abstract and concrete classes adapted and extended to create application systems.
- Program generators: Systems embedding knowledge of specific applications to generate systems from user-supplied models.
- Architectural patterns: Standard software collections serving as a basis for common application systems.
Steps to Extend Software Product Line
- Elicit stakeholder requirements.
- Select an existing system closest to the requirements.
- Renegotiate requirements as needed.
- Adapt the existing system accordingly.
- Deliver the new family member.
Benefits of Software Reuse
- Increased dependability: Reused software is more reliable due to prior testing in working systems.
- Reduced process risk: Known costs of existing software versus uncertain development costs.
- Accelerated development: Bringing systems to market quickly is often prioritized over development costs.
- Effective use of specialists: Experts create reusable software, capturing their knowledge rather than repeating work.
- Standards compliance: Reusable components ensure consistent user interfaces across applications.
Definition of Framework
- An integrated set of software artifacts (classes, objects, components) providing a reusable architecture for a family of related applications.
Additional Approaches Supporting Reuse
- Program libraries: Class and function libraries that offer reusable abstractions.
- Design patterns: Generic abstractions represented through abstract and concrete objects and interactions.
- COTS product reuse: Systems configured and integrated from existing application systems.
- Aspect-oriented software development: Shared components woven into applications during compilation.
- Legacy system wrapping: Wrapping legacy systems with defined interfaces for access.
Characteristics of Application Frameworks
- Rely on object-oriented features like inheritance and polymorphism for extension.
- Focus primarily on providing technical rather than domain-specific support.
- Generally remain unmodified over time.
Characteristics of Software Product Lines
- Comprise a family of related applications owned by one organization.
- Not limited to object-oriented approaches for creation.
- Potential for unlimited changes in design and structure.
- Commonly serve as control applications for equipment.
Levels of Resource Management Architecture
- The interaction level: User interface layer.
- The I/O management level: Manages input and output operations.
- The resource management level: Oversees resources within the system.
- The database management level: Handles data storage and retrieval processes.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz tests your knowledge on various software development approaches that support reuse, including service-oriented systems, model-driven engineering, ERP systems, and component-based development. Match each approach with its corresponding description to assess your understanding.