Podcast
Questions and Answers
What does modifiability refer to?
What does modifiability refer to?
Who are the potential stakeholders involved in the modifiability of a system?
Who are the potential stakeholders involved in the modifiability of a system?
End user, developer, system administrator
What types of changes does modifiability address?
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?
What are some examples of artifacts in modifiability?
Signup and view all the answers
The different times at which changes can occur are ___, compile time, build time, initiation time, design time.
The different times at which changes can occur are ___, compile time, build time, initiation time, design time.
Signup and view all the answers
What is a response measure in modifiability?
What is a response measure in modifiability?
Signup and view all the answers
Increasing cohesion in a module reduces the cost of future changes.
Increasing cohesion in a module reduces the cost of future changes.
Signup and view all the answers
What is one tactic for reducing coupling?
What is one tactic for reducing coupling?
Signup and view all the answers
Match the modifiability tactic to its description:
Match the modifiability tactic to its description:
Signup and view all the answers
What should be considered when determining which changes are likely to occur?
What should be considered when determining which changes are likely to occur?
Signup and view all the answers
Choosing appropriate technology can make modifications easier.
Choosing appropriate technology can make modifications easier.
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.
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.