What are the Dimensions of Software Quality?
= Degree to which a system satisfies stakeholder needs (quality model = captures functionality, performance, security, maintainability, etc.)
What are common software quality metrics?
Performance (response time, throughput)
Reliability (POFOD, MTTF, MTTBC)
Security (MTTSF = time until a security failure)
What are the dimensions of dependability?
What are real-time systems?
“software system where the correct functioning of the system depends on the results produced by the system AND the time at which these results are produced”
= Systems that monitor and control their environment
Usually embedded systems with sensors and actuators
-> Must respond within specified time!!
What is logical and temporal correctness in real-time systems?
Logical correctness = correct result
Temporal correctness = correct timing
-> Both must be met for overall correctness!!!
What are real-time and hard-& soft real-time systems?
software system where the correct functioning of the system depends on the results produced by the system AND the time at which these results are produced
Soft real-time: degraded if results are not produced according to the specified timing constraints
Hard real-time: incorrect if results are not produced according to the timing specification
What are periodic and aperiodic stimuli in real-time systems?
Periodic: predictable intervals (e.g., 10x/sec)
Aperiodic: unpredictable (e.g., power failure)
-> A powerful processor may replace interrupts with polling
What is the difference between interrupts and periodic processes?
Interrupts: control is automatically transferred to a pre-determined memory location
-> must be be short, simple and fast
Periodic: have period, execution time, and deadline. Managed by real-time clock -> Shorter deadline process gets priority
What classes of Real-time Systems exist?
Monitoring Systems
Control Systems
Data Acquisition Systems
How do monitoring and control systems differ?
Monitoring: act on exceptions
Control: act continuously via actuators
-> Both poll sensors for environmental data
What are data acquisition systems?
Collect sensor data for analysis
Different collection vs. processing deadlines S
What is the sensor-actuator schema?
Sensor triggers system processing
Response sent to actuator
Control loop = same physical parameter
Why are real-time systems designed as concurrent processes?
Timing varies per sensor-actuator pair
Fast switching between handlers required
-> Sequential loops inadequate
What is the difference between safety and reliability?S
Safety = absence of danger
Reliability = failure-free operation (often through redundancy)
Can a system be correct but not reliable (or vice versa)?S
What is the fault-error-failure chain?
Fault → Error → Failure
Fault = defect (may lie dormant)
Error = incorrect internal state
Failure = externally visible misbehavior
Not every fault causes failure
What are the types of faults in systems?
Systematic = design/build mistakes
Random = wear or damage
Transient = disappears (retry works)
Persistent = stays until intervention
What is a real-time (design) pattern?
Real-Time (Design) Patterns = RT-pattern is a solution to recurring software design problems in the area of real-time systems
Focus here: safety and reliability patterns
What is the Channel pattern?
Data flows through sequential filters
Parallelism improves performance & safety
Redundant channels improve reliability
-> Also known as Pipe & Filter pattern
What are safety & reliability patterns exist?
What is Homogeneous Redundancy?
Two identical channels
Switch to backup on fault
-> Protection against random faults, not assuming a fail-safe state
What is Triple Modular Redundancy?
3 identical channels
Majority vote determines output
No validation needed
-> Protection against random faults without a failsafe state
What is Heterogeneous Redundancy?
Same function, different implementations
Protects against random AND systematic faults
No fail-safe state required
-> Protection a ainst random and systematic fa lts
What is the Protected Single Channel pattern?
One channel with error detection
Requires fail-safe state
Handles transient faults (e.g., retry) -> Inexpensive safety improvement without redundancy
What is the Monitor-Actuator pattern?
Monitoring channel supervises actuator
Requires independent actuator sensor
Detects random & systematic faults -> Needs fail-safe state
What is the Sanity Check pattern?
Lightweight form of Monitor-Actuator
Only approximate validation
Needs fail-safe state -> Simpler, less expensive, less precise
What is the Watchdog pattern?
Detects time-based faults or deadlocks
Heartbeat mechanism monitors activity
No actuator supervision -> Lightweight, fail-safe state required
What is the Safety Executive pattern?
For complex systems
Coordinates watchdogs, policies, checks
Centralized fail-safe logic -> Handles complicated failure scenarios
Summary Reliability
What is a Thread?
Petri Nets in a Nutshell
UML oncurrency Modeling
Concurrency Patterns
RTOS
Process Management
Classification of Scheduling Strategies
What is the Ethos for Software Engineers?
“Conscious reflection and evaluation of the potential consequences of using the developed software”
Ethos = Ethical Awareness
“Mindset shaped by moral values”
Why is ethical awareness important in software engineering?
Diesel Scandal
Software impacts grow with digitization
Some areas (e.g., weapons) demand higher awareness
Emerging fields raise new ethical questions -> SEs must evaluate consequences of software use
Can regulation solve software ethics issues?
Limits of Regulation
Software often precedes regulation
Laws are vague, slow, and hard to enforce
Surveillance would be required for enforcement
-> Regulation helps, but cannot fully solve the problem
Why must individual developers take ethical responsibility?
Because laws are not in place and regulation will never be a complete solution:
We must see it as the responsibility of the individual
Summary Ethos Lecture
Critically evaluate the consequences of one’s own actions
Zuletzt geändertvor 3 Tagen