Software Development Approaches
9 Questions
100 Views

Software Development Approaches

Created by
@QuietRubidium

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:

<p>Reused software which has been tried and tested in working systems should be more reliable than new software. = Increased dependability The cost of existing software is already known, whereas the costs of development are always a matter of judgment. = Reduced process risk Bringing a system to market as early as possible is often more important than overall development costs. = Accelerated development Instead of doing the same work over and over again, experts can develop reusable software that encapsulates their knowledge. = Effective use of specialists Menus in a user interface that are implemented using reusable components so that all applications present the same menu formats to users. = Standards compliance</p> 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?

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

Match these approaches that support reuse to their description:

<p>Program libraries = Class and function libraries that implement commonly used abstractions are available for reuse. Design patterns = Generic abstractions that occur across applications are represented this way, showing abstract and concrete objects and interactions. COTS product reuse = Systems are developed by configuring and integrating existing application systems. Aspect-oriented software development = Shared components are woven into an application at different places when the program is compiled. Legacy system wrapping = These systems are wrapped by defining a set of interfaces and providing access to these legacy systems through these interfaces.</p> Signup and view all the answers

Which three statements describe 'Application Frameworks'?

<p>...rely on object-oriented features such as inheritance and polymorphism to implement extensions to the framework....are primarily focused on providing technical rather than domain-specific support....are generally not modified.</p> Signup and view all the answers

Which four statements describe 'Software Product Lines'?

<p>...are made up of a family of related applications, owned by the same organization....are not necessarily created using an object-oriented approach....have no limit, in principle, to the changes that can be made....are often control applications for equipment.</p> 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.

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

Quiz Team

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.

More Quizzes Like This

Use Quizgecko on...
Browser
Browser