Standard Exam Preparation Guide for Requirements Engineering and Cyber-Physical Systems
Requirements Engineering (RE) Fundamentals
Origins and Significance:
- Historically, Requirements Engineering has its roots in the field of Information Technology and Computer Science (Informatik).
- The importance of RE varies by industry; it is considered to have the least significance in the development of products or works within the Arts and Culture (Kunst und Kultur) sector, whereas it is critical in sectors like Healthcare, Aviation, and Automotive.
- In modern Requirements Engineering, the User (Benutzer) is placed at the center of the process.
Stakeholders:
- A "Stakeholder" is defined as any project participant who serves as a source for requirements for the product.
Understanding and Content of Requirements:
- Requirements can have different readerships (Leserkreise); therefore, the way they are formulated may need to vary to suit the intended audience.
- Redundancy in requirements should be avoided whenever possible to ensure clarity and maintainability.
- It is not necessary for requirements to be formulated exclusively in English, nor must every requirement be paired with a circuit diagram for visualization.
Quality Characteristics of Individual Requirements:
- A single requirement should possess the following qualities:
- Necessity (Notwendigkeit)
- Correctness (Korrektheit)
- Feasibility (Machbarkeit)
- Note: "Simplicity" (Einfachheit) is not explicitly listed as a standard quality metric for a single requirement in this context.
- A single requirement should possess the following qualities:
Quality Characteristics of Requirements in Totality:
- When looking at the entire set of requirements (their totality), the following qualities are required:
- Completeness (Vollständigkeit)
- Consistency (Konsistenz)
- Traceability (Nachverfolgbarkeit)
- Modifiability (Änderbarkeit)
- "Eloquence" (Eloquenz) and "Credibility" (Glaubwürdigkeit) are not considered formal quality metrics for a set of requirements.
- When looking at the entire set of requirements (their totality), the following qualities are required:
Requirement Patterns (Anforderungsmuster):
- Typical patterns used to structure requirements include:
- Behavior Limitation (Verhaltensbeschränkung)
- Prohibition (Verbot)
- Situation Behavior (Situationsverhalten)
- "Probability Analysis" (Wahrscheinlichkeitsanalyse) is NOT categorized as a requirement pattern.
- Typical patterns used to structure requirements include:
Requirement Examples:
- An example of an appropriately worded requirement is: "When it is installed, the system shall offer the homeowner the possibility to configure the security system."
- Nonsensical or recursive logic (e.g., "If it is installed, it should provide the possibility to install it") does not qualify as a valid requirement.
Systems Engineering and Management
Systems Engineering Scope:
- This discipline encompasses activities such as:
- Problem Definition
- Design of Solutions (Entwurf von Lösungen)
- Verification and Validation (V&V)
- It does not typically include Basic Research (Grundlagenforschung).
- This discipline encompasses activities such as:
Requirements Management Scope:
- Activities include:
- Tracking and controlling the development of requirements.
- Communicating requirements to all disciplines and participants.
- Performing change and configuration management for requirements.
- It does not encompass the entirety of Systems Engineering; rather, it is a component of it.
- Activities include:
Cyber-Physical Systems (CPS)
Definitions:
- Cyber-Physical Systems are defined as the planned interaction of potentially networked computing units with physical systems.
Challenges:
- The greatest challenge for Cyber-Physical Systems is posed by the Laws of Nature (Naturgesetze).
The Kopetz Principle:
- This principle states: "Many of the (predictable) properties/characteristics that we observe in systems are not properties of the real system, but instead properties of a model of the system."
- Consequently, we can make clearly defined statements about models, from which we can derive the properties of a realization of the system.
Properties of Real Systems:
- In real systems, we can observe properties such as Timeliness (Rechtzeitigkeit), Reliability (Zuverlässigkeit), and Operational Safety/Safety (Betriebssicherheit).
- Determinism is often an attribute of the model rather than the physical reality itself.
Programming Languages and Time:
- Traditional programming languages (C, C++, Java, Python, etc.) operate under the premise that the correct execution of programs has nothing to do with the execution time of any process.
System Analysis:
- Analysis is defined as the process of gaining a deeper understanding of a system through decomposition (Zerlegung).
Modeling and Signals
Continuous-Time Actors:
- If a continuous-time system is modeled as an "Actor," the domain (Definitionsmenge) corresponds to time, and the codomain (Bildmenge) corresponds to the values at those specific points in time.
Signal Types:
- A "pure" signal is one that carries no information (it conveys only the presence or absence of an event).
State Definition:
- The state of a system is a coding of everything in the past that had an influence on the system's reaction to current and future input signals.
- For an Integrator, the state at any time is represented by a real number ().
State Machines (FSM)
Acronyms:
- FSM stands for Finite State Machine.
State Space Size:
- For an extended state machine with states and variables, where each variable can take possible values, the size of the state space is calculated as:
Visual Notation:
- In a state diagram:
- Guard (A) refers to the condition for a transition.
- Action (B) refers to the output/operation performed during transition.
- State (C) refers to the condition/mode of the system.
- Initial State Indicator (D) points to the starting state.
- In a state diagram:
Logic Example (Thermostat):
- Given a system with transitions:
- This state machine has a hysteresis range, but the specific target or limit values identified are and degrees. It does not have a single "target temperature" value of 25 among the options if not explicitly calculated as a setpoint.
- Given a system with transitions:
Hierarchical FSMs:
- In a preemptive state transition, the Guard is evaluated before the Refinement reacts.
Sensors and Hardware Components
Microelectromechanical Systems (MEMS):
- MEMS stands for Microelectromechanical System.
- Modern, commercially available acceleration sensors (Beschleunigungssensoren) can detect distance changes in the range of .
- A Rotation Rate Sensor (Drehratensensor) based on the vibration circle principle detects Angular Rate/Angular Velocity, though the options provided include physical quantities like vibration frequency, acceleration, capacitance, and angle.
Microcontrollers:
- Typically integrated components on a microcontroller include:
- Brown-Out Reset
- Watchdog
- Oscillator
- While ADCs, Timers, and I/Os are common, components like WLAN or SSDs are usually external or specialized.
- Typically integrated components on a microcontroller include:
Oscillators:
- Quartz crystals (Schwingquarze) are known for being highly accurate. Oscillators with quartz crystals are more accurate than RC oscillators.
Watchdog Timers:
- A "Window Watchdog" functions such that the trigger must occur within a specific time window; the trigger must not come too early and must not come too late.
Communication Interfaces:
- RS-232 voltage levels on the sender side typically utilize a maximum of .
Real-Time Systems and Processing
Hard Real-Time Requirements:
- A hard real-time requirement is defined as: "The time from the occurrence of an event to the (complete) handling by the processor shall guaranteed not exceed a specified time limit ."
Event Handling:
- Interrupts are the best mechanism for handling aperiodic events and/or exception situations with relatively simple means compared to polling.
Digital Signal Processors (DSP):
- DSPs are specialized for Audio and Video processing, which distinguishes them from General Purpose CPUs.
C Programming and Memory
Memory Management:
- In C, the function
mallocis used to reserve a contiguous block of memory at runtime. - The function
freeis used to release memory.
- In C, the function
Static Variables:
- Consider the following code:
c void foo() { static int n = 0; printf("%d", ++n); } void main() { int n; foo(); // Increments static n to 1, prints 1 n++; // Increments local n (undefined/garbage), no effect on static n foo(); // Increments static n to 2, prints 2 } - Output: 12.
- Consider the following code:
Enums:
- In C, an
enum { a, b, c, d };assigns integer values starting from 0 by default. Thus,a = 0. Carrying outint t = a; printf("%d", t);will result in an output of 0.
- In C, an
Storage Class Specifiers:
- Examples include:
register,extern, andauto. intis a data type, not a storage class specifier/modifier.
- Examples include:
Operating Systems
Microkernels:
- Operating systems that utilize a microkernel architecture include Minix and QNX.
Memory Management:
- The logical memory (virtual memory) is usually larger than the physical memory.
Process and Thread Management:
- Based on POSIX standards, a child process can terminate itself using the
exitfunction (waitpidis for waiting on a child,forkis for creating one). - Under Linux, standard signal names include SIGKILL, SIGTERM, and SIGHUP.
- Threads generated by the same process share the same Address Space (Adressraum). They do not share individual stacks, registers, or execution states (running/blocked), which are unique to each thread.
- Based on POSIX standards, a child process can terminate itself using the