Skip to content
Academia.
ELEmbedded LinuxT550077101 · Fall 2026
CourseFall 2026

Friday · 12:00–16:00 · Odense U174

Project Integration, Security, and Verification

Lecture 10: Module 10 is the project integration and convergence point of the Embedded Linux course. It connects requirements, architecture, interfaces, implementation, cybersecurity, failure analysis, verification, testing, deployment, rollback, observability, and portfolio evidence into one auditable engineering process. The module emphasizes measurable requirements, traceability, explicit responsibilities, threat and fault analysis, verification and validation, effective testing, reproducible deployment, operational acceptance, and evidence of individual engineering competence.

Learning objectives

✓By the end of this module, students should be able to:
✓1. Explain how the project moves from module foundations to an integrated prototype.
✓2. Translate stakeholder needs into measurable functional and quality requirements.
✓3. Establish traceable interfaces between components, architecture, implementation, tests, and individual contributions.
✓4. Divide a practical field-mode system and rank analysis for cyber-physical systems.
✓5. Distinguish verification, validation, testing levels, and acceptance evidence.
✓6. Design threat, boundary, fault-injection, recovery, performance, and security tests.
✓7. Plan reproducible deployment, rollback, configuration control, and operational monitoring.
✓8. Form an auditable portfolio evidence chain that demonstrates individual engineering competence.
Block 112:00–12:50content

Block 1 · 12:00–12:50 · Requirements and Project Integration

CHAPTER 10

Project Integration, Security, and
Verification

Learning objectives

After completing this module, students should be able to:

  • explain how a project concept should mature from Module 1 to an integrated prototype;
  • translate stakeholder needs into measurable functional and quality requirements;
  • establish bidirectional traceability between requirements, architecture, implementation, tests, results, and individual contributions;
  • divide a system into components with explicit responsibilities and versioned interface contracts;
  • identify assets, threat actors, attack surfaces, trust boundaries, abuse cases, and proportionate controls;
  • conduct a practical failure-mode and risk analysis for cyber-physical systems;
  • distinguish verification, validation, testing levels, and acceptance evidence;
  • design nominal, boundary, fault-injection, recovery, performance, and security tests;
  • plan reproducible deployment, rollback, configuration control, and operational monitoring; and
  • assemble attributable portfolio evidence that demonstrates individual engineering competence.
Integration is where assumptions become failures
Components often work separately because each developer supplies the missing assumptions mentally. During integration those assumptions conflict: units differ, clocks drift, identifiers change, buffers fill, credentials expire, and recovery paths are absent. Successful integration makes assumptions explicit and tests them at boundaries.

10.1  Module 10 Is a Review and Convergence Point

The project does not begin in Module 10. It begins in Module 1 with a need, an initial system concept, physical inputs and outputs, communication, a useful result, and at least one failure condition. Each subsequent module should refine the project:

Stage Project development Expected evidence
Modules 1–2 Need, users, computing platform, deployment concept Initial concept, platform rationale, repository, managed service
Modules 3–4 Network boundary, data contract, sensors and actuators API/topic schema, wiring, calibration, safe-state definition
EMBEDDED LINUX Fall 2026
Stage Project development Expected evidence
Modules 5–6 Distributed nodes, framing, wireless and MQTT Node responsibilities, protocol, sequence handling, outage behavior
Modules 7–8 LoRaWAN/cloud or ROS 2/container integration End-to-end data path, QoS, deployment and trust boundaries
Module 9 Automation or intelligent feature where justified Baseline, measured benefit, authority and fallback
Module 10 Integration review and design convergence Thin vertical slice, traceability, risks, threat model, verification plan
Modules 11–12 Completion, fault correction, demonstration and portfolio Verified release, reproducible evidence, reflection, presentation

By this module, the team should demonstrate a thin vertical slice: the smallest end-to-end implementation crossing the real architectural boundaries. For a GPS tracker, this could be one GNSS observation acquired on the target, validated, buffered, transmitted, stored, and displayed with identity and timestamp. It need not contain every feature, but it must expose the difficult interfaces early.

10.2  From Interesting Idea to Engineering Claim

A project becomes defensible when it answers six questions:

  1. Need: Whose problem is being solved, and why does it matter?
  2. Context: In what physical, network, environmental, and regulatory conditions must it operate?
  3. Behavior: What must the system observe, compute, communicate, store, and control?
  4. Quality: How fast, accurate, available, secure, maintainable, and energy efficient must it be?
  5. Evidence: What measurement will show that each important claim is true?
  6. Ownership: Who designed, implemented, reviewed, and verified each part?

“Build an intelligent IoT monitoring system” is a theme, not a specification. “The deployed node shall record a time-stamped GNSS position every 5 ± 0.5 seconds during a 30-minute outdoor route and retain at least 95% of scheduled observations” is testable.

10.3  Stakeholders and Operational Scenarios

A stakeholder is anyone affected by, operating, maintaining, approving, attacking, or depending on the system. Users are only one stakeholder group. For an agricultural monitoring system, stakeholders may include the farmer, field worker, service technician, data controller, network operator, equipment owner, course examiner, nearby public, and system administrator.

Describe the system using operational scenarios rather than only a feature list:

  • normal startup and shutdown;
  • routine acquisition and control;
  • installation and commissioning;
  • loss and restoration of power or connectivity;
  • sensor replacement or recalibration;
  • software update and rollback;
EMBEDDED LINUX Fall 2026
  • unauthorized access attempt;
  • storage exhaustion;
  • operator override and emergency response; and
  • end-of-life credential and data removal.

Scenarios expose requirements that a happy-path demonstration misses.

10.4  Writing Good Requirements

A requirement states a necessary capability, property, or constraint. Requirements should be necessary, clear, feasible, singular, implementation-aware only when justified, and verifiable. Use “shall” for mandatory project requirements and give each a stable identifier.

Weak statement Problem Improved requirement
The system shall be fast. No operation, condition, or limit R-12: The dashboard shall display a valid received measurement within 2.0 s of gateway reception for at least 95% of trials.
The sensor shall be accurate. No range or reference R-18: From 10–35°C, the absolute difference between reported and reference temperature shall not exceed 0.5°C after calibration.
The system shall never fail. Impossible and unverifiable R-24: Following broker loss of up to 10 min, the gateway shall retain and replay all valid records without duplicate database entries.
The UI shall be user friendly. Subjective R-31: A trained operator shall locate a named node and its data age within 20 s in 9 of 10 timed trials.
Use Raspberry Pi and MQTT. A design choice presented as a need State the required Linux services and publish–subscribe behavior; justify the selected implementation in the architecture.

10.4.1  Functional and quality requirements

Functional requirements describe what the system does. Quality requirements constrain how well or under what conditions it does it. Relevant quality categories include performance, timing, availability, reliability, safety, security, privacy, energy, interoperability, usability, maintainability, and deployability.

Every numerical target should have a rationale. An arbitrary number is measurable but not necessarily meaningful. Base targets on stakeholder needs, physical dynamics, regulations, interface limits, baseline measurements, or explicit design assumptions.

Block 213:00–13:50content

Block 2 · 13:00–13:50 · Architecture, Interfaces, and Cybersecurity

EMBEDDED LINUX Fall 2026

10.5  Acceptance Criteria and Definitions of Done

An acceptance criterion is a measurable condition used to judge whether a requirement is satisfied. It should state environment, stimulus, expected output, tolerance, and evidence. A team’s definition of done should additionally require reviewed code, tests, documentation, configuration, security checks, and integration into the main branch.

Example:

Given a running gateway with 200 queued records and the broker disconnected for 10 minutes, when connectivity is restored, all records shall arrive in sequence within 60 seconds, no database identity shall occur more than once, and queue depth shall return to zero. Evidence: broker log, gateway metric, database query, and test timestamp.

10.6  Traceability

Traceability connects engineering artifacts so a reviewer can move in both directions: from a stakeholder need to its evidence, and from code or a test back to the requirement it supports. Traceability prevents impressive demonstrations from hiding untested requirements and prevents unnecessary features from consuming project time.

ID Requirement Component Verification Owner Status
R-01 Position recorded every 5 s outdoors GNSS acquisition T-01 route test; ≥ 95% valid Student A Partial
R-02 Retain data during 10 min outage Local queue T-07 disconnect and replay count Student B Pass
R-03 Unauthorized publish rejected Broker policy T-14 invalid-client negative test Student C Pass
R-04 Safe output after controller loss Actuator node T-19 command-lease timeout A+C Open

Status should mean something precise: proposed, approved, implemented, verified-pass, verified-fail, deferred, or not applicable. “Done” must not mean that code exists without evidence.

10.7  Architecture and Responsibility Allocation

Architecture defines components, their responsibilities, interfaces, constraints, and deployment. A useful diagram distinguishes physical devices, processes or containers, communication links, external services, data stores, users, and trust boundaries.

For every component state:

  • inputs, outputs, and owned state;
  • deadlines and update rates;
  • authority over physical actions;
  • behavior during dependency failure;
  • configuration and secrets;
  • deployment and update method;
  • health indicators and logs; and
  • responsible team member and reviewer.
EMBEDDED LINUX Fall 2
ChatGPT Image Sep 26, 2026, 12_45_46 PM
Figure 10.1.
A deployment diagram should expose physical and trust boundaries rather than showing an unexplained cloud of software.

Avoid the god process: one application that acquires every sensor, controls every actuator, stores data, serves the dashboard, and manages updates. It is easy to demonstrate initially but difficult to isolate, test, secure, and recover. Excessive microservices are also harmful. Choose boundaries that isolate different rates, privileges, failure modes, deployment cycles, or responsibilities.

10.8  Interface Contracts

An interface contract is an agreement between a producer and consumer. For every boundary define:

Contract element Questions to answer
Identity and ownership Who produces and consumes it? Which component owns the authoritative state?
Transport and endpoint UART, I²C, CAN, HTTP, MQTT, ROS 2, file, or function? Which address/topic/service?
Schema and version Fields, types, byte order, encoding, units, valid range, missing representation, version evolution
Time semantics Observation time, receive time, clock source, time zone, freshness limit, sequence numbering
EMBEDDED LINUX Fall 2026
Contract element Questions to answer
Capacity Maximum size, average and peak rate, buffer limit, backpressure, overflow behavior
Reliability Timeout, retry, acknowledgement, duplicate detection, ordering, idempotency
Security Identity, authentication, authorization, encryption, replay protection, secret lifecycle
Errors Validation errors, unavailable dependencies, partial results, diagnostic visibility
Compatibility Supported versions, deprecation, migration, backward/forward compatibility
Listing 10.1.  Illustrative versioned measurement contract
1 {
2   "schema": 2,
3   "device_id": "tracker-04",
4   "sequence": 3812,
5   "observed_at": "2026-10-23T12:00:05.120Z",
6   "position": {
7     "latitude_deg": 55.3681,
8     "longitude_deg": 10.4282,
9     "horizontal_accuracy_m": 2.4
10   },
11   "quality": "valid",
12   "firmware": "1.4.2"
13 }

Consumers must reject unsupported schemas and physically impossible values rather than guessing. Units belong in the contract, not in team memory. A sequence counter must remain unique across restart or be combined with a session identifier. A receiver-reported accuracy field also needs a defined confidence level or vendor uncertainty convention; it is not a measured ground-truth error. Add consumer-driven contract tests so both sides detect breaking changes before field integration.

10.9  Integration Strategy

Big-bang integration combines all completed components late. It produces many simultaneous failures with unclear causes. Prefer continuous vertical integration:

  1. define the contract;
  2. build a simulator or stub for the missing side;
  3. integrate one path end to end;
  4. instrument the boundary;
  5. automate a small test;
  6. replace stubs with real components; and
  7. add failure and recovery cases.

Use a known-good test message, recorded sensor data, loopback fixture, or protocol simulator. Preserve one golden end-to-end path while adding features. Integration freezes should stabilize interfaces, not prevent defect fixes.

EMBEDDED LINUX Fall 2026

10.10  Configuration and Build Reproducibility

Source code alone does not reproduce an embedded system. Record:

  • operating-system image and architecture;
  • package and container versions;
  • application commit or release tag;
  • firmware, bootloader, and hardware revision;
  • schemas and configuration versions;
  • required kernel interfaces and permissions;
  • calibration coefficients; and
  • deployment command and expected health checks.

Configuration belongs under version control when it is not secret. Secrets require separate protected storage and documented provisioning. Pin important dependency versions. A lock file is evidence of inputs, not proof that dependencies are secure or available forever.

10.11  Security Engineering Fundamentals

Cybersecurity protects confidentiality, integrity, and availability while supporting authentic identity, accountability, and recovery. In a cyber-physical system, integrity and availability can have direct physical consequences.

Asset: Something requiring protection, such as actuator authority, location history, keys, firmware, or service availability.

Threat actor: A person, group, service, or compromised device capable of causing harm. Not every threat is malicious; mistakes and faulty automation matter too.

Vulnerability: A weakness that can be exploited or triggered.

Threat: A circumstance or event that could exploit a vulnerability and cause harm.

Risk: The combination of uncertainty, likelihood, exposure, and consequence used to prioritize action.

Attack surface: Reachable interfaces and behaviors through which a system can be influenced.

Trust boundary: A boundary across which identity, data, or authority changes trust assumptions.

Control: A safeguard that prevents, detects, limits, responds to, or supports recovery from a threat.

Security is not achieved by adding TLS at the end. Correctly configured TLS protects confidentiality and integrity in transit and usually authenticates the server; client identity requires an additional authentication mechanism or mutual TLS. It does not make a compromised endpoint trustworthy, validate physical plausibility, authorize every operation, protect stored secrets, or guarantee availability.[38, 76]

10.12  Threat Modeling Step by Step

A lightweight threat-modeling session can follow this sequence:

  1. define system scope and unacceptable consequences;
  2. inventory assets and safety-relevant authority;
  3. draw data flows, external actors, entry points, and trust boundaries;
  4. ask how identity, data, commands, availability, and updates can be abused;
EMBEDDED LINUX Fall 2026
  1. record preconditions and consequences;
  2. select preventive, detective, responsive, and recovery controls;
  3. assign an owner and verification test; and
  4. revisit the model after architecture changes.

STRIDE is one useful prompt:

Category Embedded example Possible controls
Spoofing Rogue node claims a trusted device identity Unique credentials, mutual authentication, protected provisioning
Tampering Measurement or firmware altered Authenticated transport, signatures, integrity checks, least privilege
Repudiation Operator denies issuing a command Authenticated audit event, synchronized time, protected logs
Information disclosure Location or key appears in logs Data minimization, access control, encryption, secret redaction
Denial of service Message flood fills queue or disk Rate and size limits, quotas, bounded queues, degradation plan
Elevation of privilege Web service gains device or root authority Dedicated users, capability reduction, input validation, isolation

STRIDE is a checklist, not a proof of completeness. Physical access, supply-chain compromise, unsafe operator behavior, radio jamming, and environmental failure may require additional analysis.

10.13  Worked Threat Register

Asset/threat Attack or fault path Consequence Controls and verification Owner
Actuator authority Stolen API credential publishes command Unsafe motion or irrigation Narrow ACL, expiry, command lease, interlock; negative and timeout tests A
Sensor integrity Forged MQTT observation Incorrect decision Client identity, topic ACL, sequence and plausibility checks; injected-message test B
Availability Retry storm or full disk Monitoring and buffering lost Backoff, quotas, rotation, disk alert; load and exhaustion tests B
Software integrity Malicious or corrupt update Persistent compromise or failure Signed release, hash, protected key, A/B rollback; corrupt-image test C
Privacy GNSS history exposed Tracking people or assets Minimize collection, narrow access, encryption, retention policy; permission audit C

Do not record secrets in the threat model. Refer to credential identities or storage locations, never key values.

Block 314:00–14:50content

Block 3 · 14:00–14:50 · Failure Analysis, Verification, and Testing

EMBEDDED LINUX
Fall 2026

10.14  Security Controls in Practice

Core controls for student embedded projects include:

  • unique device and user identities;
  • removal of default credentials;
  • least-privilege accounts, files, topics, and API permissions;
  • input validation at every trust boundary;
  • protected secrets and a rotation/revocation plan;
  • authenticated and integrity-checked software updates;
  • encrypted communication where exposure justifies it;
  • network segmentation and minimal listening services;
  • bounded payloads, queues, retries, storage, and execution time;
  • actionable logs without passwords, tokens, or unnecessary personal data;
  • dependency and vulnerability inventory; and
  • tested backup, rollback, and recovery.
Engineering caution
Never place passwords, MQTT credentials, API tokens, LoRaWAN keys, SSH private keys, or private certificates in Git history, screenshots, reports, firmware repositories, or copied command transcripts. Deleting the visible line does not remove it from earlier commits. Revoke and replace any exposed credential.

10.15  Safety and Security Are Related but Different

Safety addresses unacceptable harm, including harm caused by random faults and foreseeable misuse. Security addresses intentional and accidental compromise of protected properties. An attacker may exploit a security weakness to create a safety hazard; a safe-state design may limit the resulting consequence.

Ask both:

  • What if the component fails randomly?
  • What if an intelligent adversary deliberately produces the worst valid-looking input?

An emergency stop, motor-current limit, travel limit, watchdog, pressure relief valve, or maximum command duration should not depend solely on a remote dashboard. Match assurance effort to consequence. An ordinary microcontroller is not automatically a safety controller: a credited safety function also needs appropriate fault detection, independence, hardware design, verification, and lifecycle assurance.

10.16  Failure-Mode Analysis

A failure mode describes how a component or function fails. An FMEA-style review records its local effect, system effect, cause, detection, prevention/mitigation, and action owner. It is most valuable before implementation is frozen.

EMBEDDED LINUX
Fall 2026
Failure mode System effect Detection Mitigation/recovery Test
GNSS no fix Missing or stale route Fix-quality and age field Buffer invalid status; do not invent position Shield or disconnect antenna
Sensor saturation Plausible-looking limit value Limit flag and persistence Mark quality; use alternate sensor or safe policy Force beyond safe range
Broker unavailable Cloud data path stops Connection and queue metrics Bounded local queue, backoff, later replay Block broker route
Clock unsynchronized Incorrect event ordering Time-sync state and offset Sequence numbers; mark uncertain time Boot without network
Disk full Logging or queue fails Free-space metric and write error Rotation, reservation, alert, controlled discard Fill test partition
Process hangs No useful updates Heartbeat with progress criterion Watchdog and safe restart Inject deadlock/stall
Actuator feedback absent Command state unknown Feedback timeout Stop, inhibit further command, alert Disconnect feedback

10.16.1  Risk scoring without false precision

Teams often multiply severity, occurrence, and detection rankings. This can support prioritization but does not create objective truth. Scores are ordinal judgments and different combinations may produce the same number with different consequences. Always retain the scenario description and treat intolerable safety or security consequences explicitly, even if estimated likelihood is low.

A practical risk register contains:

  • risk identifier and scenario;
  • cause, trigger, and consequence;
  • existing controls;
  • qualitative likelihood and impact with rationale;
  • planned treatment and responsible owner;
  • due date and status;
  • residual risk after treatment; and
  • evidence that the treatment works.

10.17  Fault Trees and Common-Cause Failure

An FMEA begins from component failures. A fault tree begins from an unacceptable top event and reasons backward through combinations of causes. For “uncommanded pump operation,” causes might include a forged network command, stuck relay, software state error, or manual wiring bypass.

Redundancy is ineffective when redundant elements share the same power supply, software defect, network, clock, environmental exposure, or incorrect requirement. This is a common-cause failure. Independence must be argued, not assumed.

EMBEDDED LINUX
Fall 2026

ChatGPT Image Sep 26, 2026, 01_46_31 PM                      Illustrative tree. AND requires both causes; OR requires any listed cause.

Figure 10.2. Fault-tree reasoning complements component-by-component failure analysis by beginning with an unacceptable system event.

10.18  Verification and Validation

Verification asks whether the implementation satisfies specified requirements: Did we build the system right? Validation asks whether the resulting system satisfies stakeholder needs in its intended context: Did we build the right system?

Passing unit tests verifies selected software behavior. It does not validate that the sensor placement, user workflow, communication coverage, or safety concept solves the real problem.

Level Purpose Embedded example
Static analysis/review Find defects without executing the complete system Review schema, code, wiring, unit file, permissions
Unit test Isolate a function or class Parser rejects invalid length and out-of-range values
Component test Exercise one deployed component Gateway queues records while broker is absent
Contract test Verify both sides of an interface agree Producer payload passes consumer schema tests
Integration test Cross one or more real boundaries LoRa receiver validates and publishes to MQTT
System test Evaluate the assembled system Outdoor route from GNSS acquisition to dashboard
EMBEDDED LINUX
Fall 2026
Level Purpose Embedded example
Acceptance test Judge stakeholder requirement Operator locates failed node within required time
Regression test Ensure an old capability still works after change Replay known inputs after decoder update

10.19  Designing Effective Tests

Every test case should contain:

  1. stable test identifier and linked requirement;
  2. purpose and scope;
  3. exact hardware/software/configuration versions;
  4. preconditions and setup;
  5. controlled input or stimulus;
  6. expected result and numerical tolerance;
  7. actual result;
  8. evidence location;
  9. pass/fail decision; and
  10. anomaly, corrective action, and retest reference.

Test the following classes deliberately:

  • nominal behavior;
  • minimum, maximum, and threshold boundaries;
  • malformed, unsupported, or physically impossible input;
  • missing, stale, delayed, duplicated, reordered, and burst data;
  • disconnection and reconnection;
  • process, container, and host restart;
  • power loss during writing or update;
  • clock error and time resynchronization;
  • queue and disk exhaustion;
  • unauthorized and over-privileged requests;
  • long-duration resource and thermal behavior; and
  • rollback from a deliberately bad release.

10.20  A Practical Verification Matrix

Test Requirement Stimulus Expected Evidence Result
T-01 R-01 sampling 30 min outdoor route ≥ 95% valid 5 s records CSV and analysis plot Pass
T-07 R-02 outage Block broker for 10 min All accepted; no duplicate DB IDs Queue metric and query Pass
T-14 R-03 access Valid client; forbidden topic Publish rejected and logged Broker log Pass
T-19 R-04 safe state Remove gateway commands Output safe within 2 s Video and controller log Fail
EMBEDDED LINUX
Fall 2026

The statuses above are illustrative examples, not measured results from supplied hardware. A failed test is useful evidence if the team records the failure honestly, identifies the cause, corrects it, and repeats the test. Concealing failures removes the strongest evidence of engineering learning.

10.21  Measurement Quality

Test instruments and references also have uncertainty. Record sampling rate, time synchronization, reference accuracy, calibration status, environmental conditions, and analysis method. Do not report more numerical precision than the measurement supports.

Repeated trials reveal variability. For latency, report median and a high percentile as well as maximum; for packet delivery, report attempted, received, invalid, duplicate, and late counts. Define the denominator. “99% reliable” is meaningless without observation duration, conditions, and failure definition.

10.22  Fault Injection and Recovery Verification

Fault injection deliberately creates controlled failures to test detection and recovery. Examples include blocking a network route, stopping a service, disconnecting a sensor, corrupting a frame, filling a test partition, supplying an expired command, and restarting during a write.

Perform fault injection only on a safe test setup. Define the abort condition and protect equipment. Never create electrical faults, unsafe motion, or uncontrolled load merely for demonstration.

Measure:

  • fault-detection time;
  • transition to degraded or safe state;
  • data lost, duplicated, or reordered;
  • restart and service-restoration time;
  • operator notification and diagnostic value; and
  • whether manual intervention is required.

10.23  Security Verification

Security tests should include expected rejection, not only successful access:

  • invalid, expired, and revoked credentials;
  • a valid identity attempting an unauthorized topic or operation;
  • oversized and malformed payloads;
  • replayed command identifiers or sequence numbers;
  • unexpected listening ports;
  • secret scanning of repository and release artifacts;
  • file and device permissions;
  • update with invalid signature or incompatible version;
  • log inspection for secret leakage; and
  • resource exhaustion within a controlled environment.

An automated vulnerability scanner cannot determine whether a valve is left open after network loss. Security verification must include application and physical consequences.

Block 415:00–15:50content

Block 4 · 15:00–15:50 · Deployment, Operational Acceptance, and Evidence

EMBEDDED LINUX Fall 2026

10.24  Deployment and Rollback

A deployable release is a traceable set of code, configuration, dependencies, schemas, firmware, and instructions. Deployment should be repeatable and preferably automated. Before release:

  1. tag or identify the approved revision;
  2. build from a clean environment;
  3. run required tests;
  4. archive checksums and dependency inventory;
  5. back up required data and configuration;
  6. state compatibility and migration steps;
  7. define health checks and observation period; and
  8. prepare and test rollback.

Rollback must preserve compatible configuration and data. Reinstalling an earlier binary may fail after an irreversible database or firmware migration. Where possible, use backward-compatible staged migrations and retain a known-good system image.

10.25  Observability and Operational Acceptance

The project is not finished when it works while its developers watch a terminal. An operator needs to know:

  • whether every critical component is alive and ready;
  • when each measurement was physically observed;
  • queue depth and data age;
  • current software/configuration versions;
  • resource and storage state;
  • recent restarts and reset reasons;
  • degraded modes and inhibited actions; and
  • what corrective action an alert requires.

Alert on actionable conditions. Too many non-actionable alarms train users to ignore the system.

10.26  Team Integration and Individual Accountability

Teamwork does not remove individual assessment. Use a responsibility matrix and evidence map. Each interface needs a producer owner, consumer owner, and reviewer. Each student should contribute to design, implementation, verification, and explanation rather than owning only slides or documentation.

Useful attribution includes:

  • meaningful commits and reviewed pull requests;
  • dated design decisions;
  • test cases executed and analyzed by the student;
  • authored interface or threat entries;
  • recorded debugging and correction;
  • individual explanation during demonstration; and
  • reflection connecting evidence to course learning objectives.
EMBEDDED LINUX Fall 2026

Commit count and lines of code are not competence measures. A student may make a small but critical architectural or verification contribution. The portfolio must explain the intellectual and practical work.

10.27  Evidence Quality for the Portfolio

Strong evidence answers four questions:

  1. Context: What requirement, component, version, and test setup is shown?
  2. Action: What did the student design, implement, measure, or correct?
  3. Result: What observable output was obtained, including failures?
  4. Meaning: What does the evidence prove, and what does it not prove?
Weak evidence Why weak Improvement
Screenshot of a dashboard or correctness claim No version, input, identity, or correctness claim Link to requirement; show source timestamp, test stimulus, and expected/actual result
Large code listing Does not establish authorship or behavior Select important section; annotate design choice; link commit and test
“MQTT worked” Undefined success State topics, payload, QoS, identity, outage condition, counts, and evidence
Photo of assembled hardware Shows existence, not safe operation Add wiring rationale, limits, test condition, and measured behavior
Group statement only Individual competence unclear Map named evidence and reflection to each student

10.28  Formal Integration Review

The Module 10 review should contain:

  1. one-sentence problem and intended user;
  2. current measurable requirements and priorities;
  3. deployment architecture with trust and safety boundaries;
  4. interface contracts and versioning;
  5. live thin vertical slice;
  6. current traceability and verification matrices;
  7. principal security threats and failure modes;
  8. risk register with owners and planned treatment;
  9. deployment, health, and rollback approach;
  10. prioritized backlog to final demonstration; and
  11. individual portfolio evidence map.

Reviewers should challenge undefined adjectives, hidden units, unbounded retries, missing clocks, shared credentials, absent safe states, unverified recovery, vague ownership, and claims without evidence.

EMBEDDED LINUX Fall 2026
Guided laboratory: formal integration review

Before the session, freeze a review baseline identified by repository revision, firmware versions, configuration version, and hardware revision.

Demonstration

  1. Demonstrate one thin vertical slice across real interfaces.
  2. Repeat it after restarting one component.
  3. Inject one safe communication or data fault and show detection and recovery.
  4. Show that one unauthorized or invalid operation is rejected.

Review package

  1. Present the requirement and traceability matrices.
  2. Walk through architecture, trust boundaries, interfaces, and ownership.
  3. Present the top five risks, top five failure modes, and top five threats.
  4. Review deployment, rollback, health monitoring, and remaining backlog.
  5. Identify individual evidence already available and evidence still required.

Record every finding with severity, action, owner, and due date. The review succeeds when it produces clear engineering decisions, not when reviewers find no problems.

Portfolio evidence
Include the dated review baseline, deployment architecture, requirement and traceability matrices, two complete interface contracts, threat model, failure-mode table, risk register, verification matrix, fault-injection evidence, prioritized review findings, and an individual evidence map. Preserve one failed test and its correction to demonstrate evidence-based engineering.

10.29  Self-Assessment and Job-Interview Questions

These questions assess course learning while preparing students for embedded Linux, IoT, robotics, systems, security, test, and integration interviews. A strong answer identifies assumptions and gives a concrete example.

  1. What is a thin vertical slice, and why is it valuable?
  2. Rewrite “the system shall be reliable” as a testable requirement.
  3. Distinguish a stakeholder need, requirement, architecture decision, and acceptance criterion.
  4. What is bidirectional traceability?
  5. What information belongs in an interface contract?
  6. Why are units and time semantics integration concerns?
  7. Compare big-bang and continuous integration.
  8. Define asset, vulnerability, threat, control, and risk.
  9. What is a trust boundary?
  10. Why does TLS not solve all security problems?
  11. Apply STRIDE to an MQTT-controlled irrigation valve.
  12. Why should each physical command carry an identifier and expiry?
  13. What is least privilege in an embedded Linux project?
  14. Distinguish safety and cybersecurity.
  15. What is a failure mode, and how does FMEA help?
  16. What is a common-cause failure?
  17. Distinguish verification and validation.
  18. Compare unit, integration, system, and acceptance tests.
EMBEDDED LINUX Fall 2026
  1. Why are negative tests important?
  2. What makes a test repeatable?
  3. How would you test a ten-minute broker outage?
  4. Why is average latency alone insufficient?
  5. What must a rollback plan preserve?
  6. Why are screenshots weak evidence by themselves?
  7. How can individual contribution be demonstrated fairly in a team project?
  8. Is a failed test acceptable in a portfolio?
  9. What should the Module 10 review produce?

10.30  Answers and Discussion

  1. A thin vertical slice is the smallest useful path crossing real layers from physical input to useful output, possibly including command feedback. It reveals boundary, deployment, timing, identity, and ownership problems earlier than completing isolated subsystems.
  2. One example is: “During a 24-hour test, the gateway shall deliver at least 99% of valid one-minute measurements to storage, excluding documented maintenance, and shall recover automatically from each broker interruption shorter than five minutes.” The target still requires stakeholder justification.
  3. A need describes stakeholder value; a requirement states mandatory observable behavior or quality; an architecture decision chooses how responsibilities are allocated; an acceptance criterion defines evidence for judging satisfaction.
  4. Forward traceability connects a need and requirement to implementation and test. Backward traceability connects code, tests, and features to the requirement or decision that justifies them. Both directions reveal missing evidence and unnecessary work.
  5. Include producer, consumer, transport, endpoint, schema/version, types, units, identity, timing, size/rate, authentication, authorization, timeout, retry, acknowledgement, duplicate/order behavior, errors, compatibility, and owner.
  6. A temperature value can differ by unit; a timestamp may mean acquisition or receipt; clocks may be unsynchronized. Without explicit semantics, syntactically successful communication can create physically wrong decisions.
  7. Big-bang integration combines many components late and makes fault isolation difficult. Continuous integration connects small vertical paths repeatedly, uses stubs where necessary, and adds automated boundary tests.
  8. An asset requires protection. A vulnerability is a weakness. A threat is a circumstance that can exploit a weakness. A control reduces, detects, responds to, or supports recovery. Risk expresses uncertainty and consequence for prioritization.
  9. A trust boundary is a location where identity, data, authority, or assumptions change, such as from a field radio network to a gateway or from an authenticated API to actuator control. Input must be revalidated there.
  10. TLS can protect data in transit and authenticate endpoints when configured correctly. It does not constrain authorized misuse, repair compromised endpoints, validate physical values, prevent every denial of service, or protect secrets at rest.
  11. Spoofing: fake valve controller identity; tampering: altered duration; repudiation: disputed command; disclosure: exposed farm activity; denial of service: command flood; elevation: dashboard account gains broker administration. Controls and tests should be assigned for the credible cases.
  12. The identifier supports acknowledgement and deduplication. Enforced expiry rejects commands received after their validity window; duplicates replayed within that window still require deduplication or replay protection. An absolute expiry also requires a trustworthy clock or an explicit policy for time uncertainty.
EMBEDDED LINUX Fall 2026
  1. Run services as dedicated non-root users, grant only required device/file/topic/API access, remove unused capabilities and ports, and separate monitoring authority from actuator authority.
  2. Safety protects against unacceptable harm from faults and foreseeable behavior; cybersecurity protects confidentiality, integrity, availability, identity, and authority against compromise. They interact when a cyberattack can cause physical harm.
  3. A failure mode states how a function fails. FMEA systematically records causes, effects, detection, mitigation, verification, and ownership so important faults are addressed before final testing.
  4. A common-cause failure defeats apparently redundant channels through a shared dependency or defect, such as one power supply, clock, library, cable route, or incorrect requirement.
  5. Verification checks conformance to specified requirements; validation checks whether the system meets real stakeholder needs in its intended environment.
  6. A unit test isolates a small software element; an integration test crosses component boundaries; a system test exercises the assembled system; an acceptance test judges stakeholder-facing criteria.
  7. Successful tests show intended access and nominal behavior. Negative tests show that invalid data, unauthorized clients, expired commands, and unsupported versions are safely rejected.
  8. A repeatable test identifies versions, setup, preconditions, stimulus, expected result, tolerances, measurement method, actual result, and evidence. Another person should be able to reproduce it.
  9. Establish known sequence counts, disconnect the broker, continue acquisition, observe bounded queue growth, reconnect, and verify replay time, missing/duplicate identities, ordering policy, queue recovery, logs, and alerts.
  10. Average latency hides tail delays and missed deadlines. Report distributions, high percentiles, maximum, test load, sample count, clock method, and end-to-end boundaries.
  11. Rollback must restore compatible application, firmware, schemas, configuration, secrets references, and data format. It must account for migrations and retain a known-good artifact.
  12. A screenshot rarely establishes the input, time, version, ownership, expected value, or correctness. Annotate it and connect it to a requirement, controlled test, result, and limitation.
  13. Use attributable commits and reviews, authored designs/contracts, executed tests, debugging records, oral explanation, and reflection. Do not reduce contribution to line or commit count.
  14. Yes. An honestly documented failure, diagnosis, correction, and successful retest can demonstrate stronger competence than a context-free success. An unexplained or concealed failure cannot.
  15. It should produce agreed requirements and interfaces, an assessed architecture, prioritized threats/failures/risks, a verification and deployment plan, assigned review actions, a realistic backlog, and an individual evidence map.

10.31  Authoritative References and Verification Links

The following primary sources provide further guidance. Standards may require institutional access:

  • ISO/IEC/IEEE 29148 systems and software requirements engineering
  • ISO/IEC/IEEE 24748-6:2023 guidance for system and software integration
  • NIST Cybersecurity Framework 2.0
  • NIST Secure Software Development Framework SP 800-218
  • NIST Cybersecurity for Internet of Things program
  • OWASP Internet of Things project
EMBEDDED LINUX Fall 2026
  • OWASP Application Security Verification Standard
  • CISA Secure by Design guidance
  • FIRST Common Vulnerability Scoring System
Chapter summary
Module 10 is the point at which an evolving project must become one coherent and defensible system. Requirements state measurable claims; architecture allocates responsibility and authority; interface contracts remove ambiguity; traceability connects needs to evidence. Threat modeling and failure analysis expose how the system can be abused or fail, while proportionate controls reduce consequence and support recovery. Verification requires planned nominal, boundary, negative, fault, performance, security, restart, and rollback tests. The final portfolio should not be a collection of screenshots: it should be an attributable chain of decisions, implementations, measurements, failures, corrections, and reflection demonstrating what each student can engineer and explain.

Summary

Module 10 brings the Embedded Linux course together around project integration, security, and verification. Students learn to convert stakeholder needs into measurable requirements, connect requirements to architecture and implementation through traceability, define interfaces and responsibilities, analyze threats and failure modes, and verify system behavior through structured testing and evidence. The module also addresses deployment, rollback, observability, operational acceptance, and individual portfolio evidence. The central theme is building an integrated cyber-physical system that can be explained, tested, secured, deployed, monitored, and supported by verifiable evidence.

Course outline

What we will learn

From Linux foundations to physical interfaces, networking, security and a complete embedded system.

Linux foundationsKernel, users, processes and file systems
Command lineShells, scripting and automation
Embedded hardwareBoot, storage and device drivers
Physical I/OGPIO, sensors and actuators
Device busesUART, I²C and SPI
NetworkingTCP/IP, SSH and remote management
Distributed systemsMessage passing and cooperating nodes
Engineering practiceGit, testing, logging and deployment
SecurityLeast privilege, updates and secrets

Teaching method

Short introductions are followed by laboratory activities. Work is normally completed in teams of three. Each team develops an embedded Linux system; the examination portfolio is individual.

Project ideas

Applications you could build

Each project should begin with one reliable end-to-end function.

Automatic Raspberry Pi-based GPS trackerSample examination report available in PDF format
Environmental monitoring stationValidated sensing, local storage and dashboard
Energy monitoring systemMeasure, log and visualize equipment power use
Greenhouse automationClimate sensing, actuation and remote supervision
Field-robot telemetryLocation, operating state, measurements and faults
LoRaWAN sensor networkField nodes, TTN integration and private cloud
Intelligent irrigationSensing, decisions, valves and safe failure handling
Multi-node IoT gatewayProtocol translation, buffering and secure forwarding
ROS 2 communication systemDistributed nodes, QoS and service integration
Edge-AI monitoring systemLocal inference, measured performance and safe fallback

A complete project should demonstrate

NeedA clear user and purpose
Physical interfaceA sensor, actuator or device
Linux integrationPrograms, scripts or services
CommunicationA justified data-exchange method
ReliabilityLogging and failure handling
EvidenceTests, results and reflection

Contractor and client roles

Project groups

Each group develops a project for one client group and evaluates the project received from another contractor group.

Contractor

Heros

ProjectProject 01
Delivers to
Client not assigned
Receives from
Contractor not assigned

Fridays · four 50-minute slots · Odense

Fall 2026 lecture plan

The SDU timetable remains authoritative for dates, times and rooms.

Project progression

Project ideas and proposals begin in Module 1 and evolve throughout the course. Module 10 is the formal integration, architecture and verification review; Modules 11–12 complete implementation, demonstration and individual portfolio evidence.

Lecture 10 · participation

Student questions

Questions remain hidden until the student is called. Model answers are revealed separately.

Instructor classroom view

The roster, answers, attendance and participation records are available only to the authorized primary owner after sign-in.

Instructor sign in

Definitions

Essential course vocabulary

Plain-language definitions for the technical terms used throughout the course.

TermDefinitionExample
ActuatorA device that produces a physical action.Motor, valve, relay or fan
BootThe sequence that starts the hardware, kernel, services and applications.Starting an embedded computer
CLIA text interface that accepts commands.Windows Terminal or a Linux terminal
CommandAn instruction interpreted by a shell.pwd, ls or Get-Location
Device driverSoftware through which the operating system communicates with hardware.GPIO or camera driver
DirectoryA named container for files and other directories./home/student/eml
DistributionA complete operating system built around the Linux kernel.Ubuntu or Debian
Embedded systemA computer integrated into a larger product for a defined purpose.Greenhouse controller
File systemThe structure used to name, store and retrieve files.ext4
GPIOA configurable digital input or output pin.Reading a switch
I²CA two-signal serial bus for peripherals.Environmental sensor
KernelThe privileged core managing memory, processors, devices and processes.Linux kernel
MQTTA lightweight publish/subscribe messaging protocol.Sending sensor data
ProcessA running instance of a program.A data logger
PWMRapid switching used to control average power or a signal duty cycle.Motor speed
RootThe privileged Linux user or the top directory, depending on context.Administrative access
ScriptA file containing commands that automate work.A backup script
SensorA device that converts a physical quantity into data.Temperature sensor
ServiceA background program providing an ongoing function.SSH server
ShellA program that interprets commands and starts programs.Bash or PowerShell
SPIA synchronous bus commonly used for fast peripherals.Display or converter
SSHEncrypted remote command-line access.Managing a Raspberry Pi
TCP/IPThe principal protocol family used across computer networks.Device-to-server communication
UARTAn asynchronous serial interface.Debug console
User spaceThe environment where ordinary programs run outside the kernel.Application software
Version controlA system that records and manages file changes.Git

Official examination information · EKA T550077102

Individual portfolio examination

Form

Portfolio

Individual presentation portfolio submitted at semester end.

Grade

7-point scale

No second examiner.

Weighting

No split published

No separate written-exam or coursework percentages are stated.

Re-examination

Same form

Same form as the ordinary examination.

Team project and individual assessment

The team project creates practical evidence, but each student is assessed individually through the presentation portfolio. Classroom participation points support engagement and do not form part of the official grade.

Document from the beginning

  • Your own decisions and identifiable contribution
  • Commands, code, configuration and version history
  • Tests, results, failures and improvements
  • Reflection on trade-offs and learning

People and course systems

Contacts and official links