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 (A)
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 (A)
In-service software upgrades are considered a type of modifiability tactic.
In-service software upgrades are considered a type of modifiability tactic.
True (A)
Increasing the coupling of modules is a recommended strategy in modifiability tactics.
Increasing the coupling of modules is a recommended strategy in modifiability tactics.
Exception handling is not relevant to modifiability tactics.
Exception handling is not relevant to modifiability tactics.
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.
Localizing modifications helps to prevent ripple effects in a system.
Localizing modifications helps to prevent ripple effects in a system.
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.
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.
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.
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.
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.
Encapsulation is a technique that introduces an explicit interface to a module.
Encapsulation is a technique that introduces an explicit interface to a module.
Orchestrating services involves managing and sequencing the invocation of those services.
Orchestrating services involves managing and sequencing the invocation of those services.
Splitting a module can decrease the average cost of future modifications.
Splitting a module can decrease the average cost of future modifications.
Refactoring involves leaving duplicated services unchecked to enhance modifiability.
Refactoring involves leaving duplicated services unchecked to enhance modifiability.
Fault detection tactics include ping, monitor, and self-test.
Fault detection tactics include ping, monitor, and self-test.
Active redundancy means that only one redundant component responds to events.
Active redundancy means that only one redundant component responds to events.
Voting is a technique that checks if replicated components produce different results.
Voting is a technique that checks if replicated components produce different results.
Condition monitoring is the process of checking the results produced by components.
Condition monitoring is the process of checking the results produced by components.
Heartbeat tactics require one component to send periodic signals to another component.
Heartbeat tactics require one component to send periodic signals to another component.
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.
Self-test procedures allow a component to examine other components for functionality.
Self-test procedures allow a component to examine other components for functionality.
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.
Flashcards
Orchestration
Orchestration
Coordination of multiple systems to achieve a complex task.
Tailor Interface
Tailor Interface
Adding or removing features like translation, buffering, or smoothing data from an interface.
Modifiability Tactics
Modifiability Tactics
Strategies to control the cost and time of implementing, testing, and deploying changes in a system.
Localizing Modifications
Localizing Modifications
Signup and view all the flashcards
Preventing Ripple Effects
Preventing Ripple Effects
Signup and view all the flashcards
Defer Binding Time
Defer Binding Time
Signup and view all the flashcards
Split Module
Split Module
Signup and view all the flashcards
Increase Semantic Coherence
Increase Semantic Coherence
Signup and view all the flashcards
Passive Redundancy
Passive Redundancy
Signup and view all the flashcards
Cold Spare
Cold Spare
Signup and view all the flashcards
Exception Handling
Exception Handling
Signup and view all the flashcards
Rollback
Rollback
Signup and view all the flashcards
Software Upgrade
Software Upgrade
Signup and view all the flashcards
Transactions
Transactions
Signup and view all the flashcards
Discover Service
Discover Service
Signup and view all the flashcards
Ping/Echo
Ping/Echo
Signup and view all the flashcards
Heartbeat
Heartbeat
Signup and view all the flashcards
Condition Monitoring
Condition Monitoring
Signup and view all the flashcards
TMR (Triple Modular Redundancy)
TMR (Triple Modular Redundancy)
Signup and view all the flashcards
Hot Restart
Hot Restart
Signup and view all the flashcards
Fault Detection Tactics
Fault Detection Tactics
Signup and view all the flashcards
Fault Recovery (Preparation & Repair)
Fault Recovery (Preparation & Repair)
Signup and view all the flashcards
Fault Recovery Tactics
Fault Recovery Tactics
Signup and view all the flashcards
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.