Modifiability in Software Systems
11 Questions
100 Views

Modifiability in Software Systems

Created by
@EnthralledSaxhorn

Questions and Answers

What does modifiability refer to?

  • The cost and risk of making changes (correct)
  • Database management
  • The time taken for software development
  • The user interface design principles
  • Who are the potential stakeholders involved in the modifiability of a system?

    End user, developer, system administrator

    What types of changes does modifiability address?

    Add, delete, modify functionality or change a quality attribute, capacity, or technology

    What are some examples of artifacts in modifiability?

    <p>Code, data, interfaces, components, resources, configurations</p> Signup and view all the answers

    The different times at which changes can occur are ___, compile time, build time, initiation time, design time.

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

    What is a response measure in modifiability?

    <p>The cost in terms of effort and money</p> Signup and view all the answers

    Increasing cohesion in a module reduces the cost of future changes.

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

    What is one tactic for reducing coupling?

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

    Match the modifiability tactic to its description:

    <p>Reduce Size of a Module = Split a module into smaller modules to decrease future costs Increase Cohesion = Ensure responsibilities in a module serve the same purpose Reduce Coupling - Encapsulate = Introduce an explicit interface to manage module interactions Defer Binding = Postpone binding until later in the lifecycle for flexibility</p> Signup and view all the answers

    What should be considered when determining which changes are likely to occur?

    <p>Technical, legal, social, business, and customer forces</p> Signup and view all the answers

    Choosing appropriate technology can make modifications easier.

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

    Study Notes

    Modifiability Overview

    • Modifiability refers to the cost and risk associated with making changes in a system.
    • Key considerations include what can change, the likelihood of change, and when and who executes the change.

    Stakeholders in Modifiability

    • End users, developers, and system administrators play crucial roles in modifiability decisions.

    Stimuli for Modifiability

    • Changes can arise from directives to add, delete, modify functionality, or adjust quality attributes, capacity, or technology.

    Artifacts Impacted by Modifiability

    • Relevant artifacts include code, data, interfaces, components, resources, and configurations that may need change.

    Timing of Modifiability

    • Changes can occur at various stages: runtime, compile time, build time, initiation time, and design time.

    Responses to Change

    • Responses to modifiability include making modifications, testing them, and deploying the updates.

    Response Measure for Modifiability

    • Cost aspects of modifiability include the number, size, complexity of affected artifacts, effort, time, monetary cost, and potential introduction of new defects.

    Modifiability Tactics

    • Tactics aim to manage complexity and reduce time/cost for changes, with strategies such as:
      • Reducing module size
      • Increasing cohesion
      • Reducing coupling
      • Deferring binding

    Tactics: Reduce Size of a Module

    • Splitting modules can lower modification costs, particularly if individual module capabilities are high.

    Tactics: Increase Cohesion

    • Responsibilities within a module should serve a common purpose. Non-related responsibilities should be separated into different modules for clarity and efficiency.

    Tactics: Reduce Coupling

    • Various strategies to reduce coupling include
      • Encapsulate: Introduce explicit interfaces.
      • Intermediary: Break dependencies through intermediaries.
      • Restrict Dependencies: Limit interactions between modules.
      • Refactor: Merge modules with overlapping responsibilities.
      • Abstract Common Services: Implement similar services in an abstract form for efficiency.

    Tactics: Defer Binding

    • Binding values later in the lifecycle can reduce costs. Mechanisms for late binding may add complexity.

    Allocation of Responsibilities

    • Anticipating likely changes based on external influences can help allocate responsibilities effectively to modules.

    Coordination Model

    • Monitor which functionalities or communication paths can change at runtime. Changes should minimize impacts across modules.

    Data Model Considerations

    • Data models must ensure user visibility and privileges for necessary modifications and should be designed to facilitate simultaneous changes.

    Mapping Among Architectural Elements

    • Assess the desirability of changing functionality mapping across various timeframes and define the extent of necessary modifications.

    Resource Management

    • Analyze how modifications impact resource usage. Encapsulate resource managers to maintain effective resource allocation post-change.

    Binding Time Decisions

    • Identify the latest point for implementing changes and choose appropriate defer-binding mechanisms, considering complexity and cost implications.

    Technology Choices

    • Technology decisions can facilitate or hinder modifications. Select technologies that enable manageable changes effectively.

    Summary of Modifiability

    • Overall, modifiability encompasses understanding change impacts and costs, including effects on functions and quality attributes.

    Tactics for Modifiability

    • Effective modifiability tactics include reducing module size, enhancing cohesion, minimizing coupling, and utilizing deferred binding to manage change costs efficiently.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    This quiz explores the concept of modifiability within software systems, focusing on the costs and risks associated with changes. It covers the roles of various stakeholders, the types of changes that may occur, and the impact on system artifacts. Additionally, it discusses the timing and responses to changes in a system.

    Use Quizgecko on...
    Browser
    Browser