Podcast
Questions and Answers
Modifiability tactics include the use of rollback to revert to a previous known good state.
Modifiability tactics include the use of rollback to revert to a previous known good state.
True
Modifiability tactics aim to control the time and cost to implement, test, and deploy changes.
Modifiability tactics aim to control the time and cost to implement, test, and deploy changes.
True
In-service software upgrades are considered a type of modifiability tactic.
In-service software upgrades are considered a type of modifiability tactic.
True
Increasing the coupling of modules is a recommended strategy in modifiability tactics.
Increasing the coupling of modules is a recommended strategy in modifiability tactics.
Signup and view all the answers
Exception handling is not relevant to modifiability tactics.
Exception handling is not relevant to modifiability tactics.
Signup and view all the answers
The purpose of bundling transactions is to enhance the readability of code rather than ensuring state updates are atomic.
The purpose of bundling transactions is to enhance the readability of code rather than ensuring state updates are atomic.
Signup and view all the answers
Localizing modifications helps to prevent ripple effects in a system.
Localizing modifications helps to prevent ripple effects in a system.
Signup and view all the answers
Defer binding time is a tactic that can be used to improve the modifiability of a system.
Defer binding time is a tactic that can be used to improve the modifiability of a system.
Signup and view all the answers
Removal from service temporarily places a system component into an operational state to allow for fault prevention.
Removal from service temporarily places a system component into an operational state to allow for fault prevention.
Signup and view all the answers
Increasing semantic coherence involves keeping unrelated responsibilities in the same module to simplify modifications.
Increasing semantic coherence involves keeping unrelated responsibilities in the same module to simplify modifications.
Signup and view all the answers
Predictive models play a role in modifiability tactics by monitoring system health to prevent future faults.
Predictive models play a role in modifiability tactics by monitoring system health to prevent future faults.
Signup and view all the answers
Interoperability tactics focus solely on the performance of individual systems and do not pertain to modifiability tactics.
Interoperability tactics focus solely on the performance of individual systems and do not pertain to modifiability tactics.
Signup and view all the answers
Encapsulation is a technique that introduces an explicit interface to a module.
Encapsulation is a technique that introduces an explicit interface to a module.
Signup and view all the answers
Orchestrating services involves managing and sequencing the invocation of those services.
Orchestrating services involves managing and sequencing the invocation of those services.
Signup and view all the answers
Splitting a module can decrease the average cost of future modifications.
Splitting a module can decrease the average cost of future modifications.
Signup and view all the answers
Refactoring involves leaving duplicated services unchecked to enhance modifiability.
Refactoring involves leaving duplicated services unchecked to enhance modifiability.
Signup and view all the answers
Fault detection tactics include ping, monitor, and self-test.
Fault detection tactics include ping, monitor, and self-test.
Signup and view all the answers
Active redundancy means that only one redundant component responds to events.
Active redundancy means that only one redundant component responds to events.
Signup and view all the answers
Voting is a technique that checks if replicated components produce different results.
Voting is a technique that checks if replicated components produce different results.
Signup and view all the answers
Condition monitoring is the process of checking the results produced by components.
Condition monitoring is the process of checking the results produced by components.
Signup and view all the answers
Heartbeat tactics require one component to send periodic signals to another component.
Heartbeat tactics require one component to send periodic signals to another component.
Signup and view all the answers
The purpose of fault recovery tactics is primarily to enhance the overall performance of a system.
The purpose of fault recovery tactics is primarily to enhance the overall performance of a system.
Signup and view all the answers
Self-test procedures allow a component to examine other components for functionality.
Self-test procedures allow a component to examine other components for functionality.
Signup and view all the answers
A system monitor can detect network failures such as denial-of-service attacks.
A system monitor can detect network failures such as denial-of-service attacks.
Signup and view all the answers
Study Notes
Lecture Two: Architectural System Requirements
- System requirements are categorized into three: functional requirements (FR), non-functional requirements (NFR), and constraints.
- Functional requirements (FR) define what the system should do.
- Non-functional requirements (NFR) include quality attribute (QA) requirements and operational requirements.
- Constraints are the limitations or boundaries within which the system must operate.
- Quality attributes (QA) are orthogonal to functionality.
- Functionality and quality attributes, while not unrelated, can be tightly linked in practical application.
- Example FR: submitting an order
- Example NFR: Availability (7-5 Mon-Fri)
- Non-functional attributes depend on functional attributes in regards to use and context
Quality Attribute Scenarios (QAS)
- QAS are used to specify quality attribute requirements.
- QAS structure allows examining the impact of quality attributes.
- It consists of six parts:
- Source of stimulus (e.g. human, computer system)
- Stimulus (action, condition or event)
- Environment (system conditions)
- Artifact (system components, collection of systems)
- Response (actions taken by the system)
- Response measure (measure used for testing the response)
- QAS can be general or specific to a particular system.
Availability
- Availability is concerned with system failure and its consequences.
- Key areas of concern include how failures are detected, what happens during a failure, acceptable duration of downtime, how failures can be prevented, the required notifications for failures, and how long it takes to repair the system.
- Availability is defined as the probability of operational status when needed.
- Example: Mean time to failure (MTTF) / (MTTF + Mean Time to Repair) (MTTR)
Performance
- Performance is about timing in relation to events.
- Key aspects include the speed of response after an event, from user requests or other systems.
- Performance response is complicated by numerous event sources.
- Arrival patterns can be periodic, stochastic, or sporadic.
- Key performance measures include latency, deadline, throughput, jitter, and miss rate.
Quality Attributes: Other Considerations
- Standard ISO/IEC 25010 encompasses various quality attributes including adaptability, installability, replaceability, confidentiality, integrity, non-repudiation, security, accountability, authenticity, modularity, reusability, analysability, modifiability, and testability. Factors such as performance efficiency, capacity, resource utilization, and time behavior are also important.
- Different quality attributes can generate overlapping concerns.
Architectural Tactics
- Architectural tactics are design decisions that affect how quality attribute requirements are met.
- Some tactics ensure the achievement of the system's goal, others help manage the QAS by influencing responses.
- Availability tactics focus on fault detection, prevention, and recovery.
Availability Tactics (Categories)
- Fault Detection
- Fault Prevention
- Fault Recovery
Fault Detection Tactics
- Ping/echo, monitor, heartbeat, condition monitoring, and voting (using replication, functional redundancy, analytic redundancy)
- Each detect fault in a system in different ways
Fault Recovery Tactics
- Active redundancy (hot restart)
- Passive redundancy (warm spare)
- Spare (cold spare)
- Exception handling (correcting exceptions, retrying operations)
- Rollback (restoring the system to a known good state)
- Software upgrade (in-service execution, upgrade without affecting service).
Fault Prevention Tactics
- Removal from service
- Transactions (bundling updates to make them atomic, consistent, isolated, and durable)
- Predictive models (monitor system health, take corrective actions, predict future faults)
Interoperability Tactics
- Systems must successfully exchange information (locate tactics) and (manage interfaces tactics).
- Aspects: providing services with correct sequence, modifying information to be accepted by the other system.
- Tactics include discover service, orchestrate, and tailor interfaces.
Modifiability Tactics
- Tactics control time and cost of changes (implementation, testing, and deployment), including: localizing modifications, preventing ripple effects, and deferring binding time.
- Tactics include split module, increase semantic coherence, encapsulate
Security Tactics
- Tactics are divided into those for resisting attacks, detecting attacks, and recovering from attacks.
- Analogy tactics are useful to explain the methods of dealing with attacks.
- Techniques used for detecting attacks are intrusion detection, service denial detection, and message integrity verification and message delay detection.
- Tactics for preventing attacks include identifying actors, authenticating actors, authorizing actors, limiting access and locking computers. Methods are needed for controlling the system in these three different dimensions.
Architectural Patterns
- Architectural patterns are reusable resolutions to common design problems in software architecture.
- Patterns address context, preconditions, problem, and the solution as well as its properties and a set of elements.
- Several types of patterns (or styles) exist, including layered, broker, model-view-controller, pipe-and-filter, client-server, peer-to-peer, service-oriented architecture (SOA), shared-data, and map-reduce, and multi-tiered architectures.
Architectural Styles (Examples)
- Layer
- Broker
- Model-View-Controller
- Pipe-and-filter
- Client-Server
- Peer-to-Peer
- Service-Oriented Architecture (SOA)
- Shared-Data
- Map-Reduce
- Multi-Tier
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your knowledge on modifiability tactics in software engineering. This quiz covers concepts such as rollback, in-service upgrades, and the impact of module coupling on system modifications. Dive deep into the strategies that enhance software adaptability and maintainability.