Software Modifiability Tactics Quiz
24 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

True

In-service software upgrades are considered a type of modifiability tactic.

True

Increasing the coupling of modules is a recommended strategy in modifiability tactics.

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

Exception handling is not relevant to modifiability tactics.

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

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

Localizing modifications helps to prevent ripple effects in a system.

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

Defer binding time is a tactic that can be used to improve the modifiability of a system.

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

Removal from service temporarily places a system component into an operational state to allow for fault prevention.

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

Increasing semantic coherence involves keeping unrelated responsibilities in the same module to simplify modifications.

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

Predictive models play a role in modifiability tactics by monitoring system health to prevent future faults.

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

Interoperability tactics focus solely on the performance of individual systems and do not pertain to modifiability tactics.

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

Encapsulation is a technique that introduces an explicit interface to a module.

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

Orchestrating services involves managing and sequencing the invocation of those services.

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

Splitting a module can decrease the average cost of future modifications.

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

Refactoring involves leaving duplicated services unchecked to enhance modifiability.

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

Fault detection tactics include ping, monitor, and self-test.

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

Active redundancy means that only one redundant component responds to events.

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

Voting is a technique that checks if replicated components produce different results.

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

Condition monitoring is the process of checking the results produced by components.

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

Heartbeat tactics require one component to send periodic signals to another component.

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

The purpose of fault recovery tactics is primarily to enhance the overall performance of a system.

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

Self-test procedures allow a component to examine other components for functionality.

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

A system monitor can detect network failures such as denial-of-service attacks.

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

Quiz Team

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.

More Like This

Use Quizgecko on...
Browser
Browser