Managing Hardware and Software as One System
A modern vehicle cannot be understood by separating hardware and software too aggressively.
A brake controller without software is incomplete.
Software without sensors, networks, controllers, actuators, power, and mechanical systems cannot move the vehicle.
The behavior the customer experiences emerges from both.
ZenOps therefore treats hardware and software as one integrated object network.
The chain becomes:
Human Need → NDD → Requirement → Hardware + Software Objects → Relations → Behavior → Test → Evidence
The question is not:
Is the hardware finished?
or:
Is the software finished?
The stronger question is:
Does the complete cyber-physical system produce the required vehicle behavior?
The Vehicle Is Cyber-Physical
Consider traction control.
A simplified behavior chain might be:
Wheel↓Wheel-Speed Sensor↓Electrical Signal↓Controller Hardware↓Software↓Torque Command↓Motor Controller↓Motor↓Wheel Torque↓Road Interaction
Where does the “traction-control system” actually exist?
Not in one component.
Not purely in software.
Not purely in hardware.
It exists across the complete chain.
This is why ZenOps models both objects and relations.
Hardware and Software Share the Same Need
Suppose the NDD contains:
Maintain controllability during low-friction acceleration.
That need might generate requirements involving:
- Wheel-speed measurement
- Signal validity
- Control timing
- Torque reduction
- Motor response
- Diagnostic behavior
Some are implemented physically.
Some are implemented in software.
Some are implemented through the relation between the two.
The need does not care which engineering department owns them.
Reality sees only the final behavior.
Stop Treating Software as an Attachment
A traditional sequence can look like:
Mechanical Design↓Electronics↓Software Added Later
That is increasingly dangerous.
Software often influences fundamental architectural choices:
- Sensor selection
- Controller capability
- Network bandwidth
- Power requirements
- Diagnostic strategy
- Fail-safe behavior
- Actuator characteristics
Software must therefore enter the architecture early.
The better model is:
Requirement↓System Behavior↓Hardware Responsibilities+Software Responsibilities↓Integrated Architecture
Allocate Responsibility Explicitly
Suppose the requirement is:
Prevent battery operation above a defined temperature limit.
Responsibility might be distributed across:
Temperature Sensor→ measuresController Hardware→ receives measurementSoftware→ evaluates temperatureThermal Actuator→ changes coolingBattery Contactors→ isolate energy if required
No single object owns the whole outcome.
The architecture must explicitly assign responsibility across the network.
The Interface Is the Boundary
Hardware and software meet at interfaces.
Examples include:
- Sensor signals
- ADC values
- Network messages
- Interrupts
- Commands
- Status flags
- Diagnostics
- Calibration parameters
An interface should therefore be treated as an engineering object.
For example:
INTERFACE-TEMP-017Source:Battery Temperature SensorReceiver:Battery ControllerMeaning:Cell Temperature EstimateRange:DefinedUpdate Rate:DefinedValidity Rules:DefinedFailure Behavior:Defined
The interface now has meaning, not merely bits.
Incorrect Interface Meaning Can Be Dangerous
Suppose hardware reports:
temperature = 85
What does 85 mean?
85°C?
85°F?
Raw ADC value?
Scaled integer?
Invalid signal?
Without an explicit contract, software can behave incorrectly even though both hardware and software are individually “working.”
Many failures exist at the semantic boundary.
ZenOps therefore treats interface meaning as first-class engineering knowledge.
Timing Belongs to Both Worlds
Automotive behavior is often real-time.
Suppose:
Sensor↓ 5 msController Input↓ 10 msSoftware Decision↓ 5 msCommand Output↓ 20 msActuator Response
The total response time is:
40 ms
The requirement may apply to the entire chain.
Therefore timing cannot be owned only by software or hardware.
It is an end-to-end system property.
End-to-End Requirements Are Stronger
Instead of writing:
Software shall respond within 10 ms.
ask whether the real requirement is:
The physical system shall begin the required actuator response within X milliseconds of the triggering event.
Then allocate the timing budget:
Sensor 5 msNetwork 5 msSoftware 10 msOutput 5 msActuator 20 ms
Now the requirement reflects actual vehicle behavior.
Software Configuration Is Part of Hardware Configuration
A controller is not fully defined by its part number.
Suppose:
Brake Controller #BC-8841
executes:
Brake Software v5.4.2
Then the effective system object is:
Hardware+Software+Calibration+Configuration
Change one of these and behavior may change.
The vehicle configuration must therefore track all of them.
A Physical Vehicle Is a Hardware-Software Configuration
A real vehicle instance might contain:
Vehicle #000142Battery Controller HW 3.1Battery Software 4.8Brake Controller HW 2.2Brake Software 5.4Gateway HW 1.9Gateway Software 3.6
Two mechanically identical vehicles may behave differently if their software differs.
Therefore software belongs in the vehicle’s product identity.
Calibration Is a Third Layer
Automotive behavior often depends not only on code but calibration.
For example:
Control Algorithm+Parameter Set=Actual Behavior
A traction-control algorithm may be unchanged while calibration values alter:
- Slip thresholds
- Torque reduction
- Recovery rate
- Driver feel
The domain model should therefore distinguish:
Software DefinitionCalibration DefinitionHardware Definition
and connect all three to the physical vehicle.
Hardware Changes Can Invalidate Software Evidence
Suppose software passes all tests using:
Controller HW v2.1
Then the controller changes to:
Controller HW v2.2
Perhaps the processor changed.
Perhaps timing changed.
Perhaps ADC behavior changed.
Perhaps network handling changed.
Old software evidence may no longer be fully valid.
ZenOps should trigger impact analysis:
Hardware Change↓Affected Software↓Affected Interfaces↓Affected Requirements↓Affected Tests↓Evidence Revalidation
Software Changes Can Invalidate Hardware-System Evidence
The reverse is equally true.
Suppose the mechanical braking system does not change.
But brake-control logic changes.
Previous vehicle-level braking evidence may need to be reconsidered.
Therefore:
Software Change↓Affected Vehicle Behavior↓Affected Requirements↓Affected Tests↓New Evidence
Hardware and software configuration management must be connected.
The Domain Model Should Capture Compatibility
Suppose:
Software v5.4requiresController HW >= 2.2
while:
Software v5.3supportsController HW 2.0–2.2
These are relations.
The vehicle configuration engine can use them to prevent invalid combinations.
Compatibility becomes explicit engineering knowledge.
Modular Architecture Helps
ZenOps modular architecture can define cyber-physical modules.
For example:
Brake Module│├── Brake Hardware├── Sensors├── Controller├── Embedded Software├── Calibration├── Communication Interface└── Diagnostic Interface
This is more useful than placing software in a separate organization-only hierarchy.
The module represents a complete responsibility.
A Module Should Expose Behavior, Not Internals
Other parts of the vehicle should not need to know every internal software function.
The Brake Module may expose:
Input:Requested DecelerationOutput:Actual Brake StatusGuarantee:Respond Within Defined LimitsFailure Behavior:Defined Degraded State
Internally, implementation may evolve.
The external contract stays controlled.
StoryQ Tests the Complete System
Suppose we have:
Scenario: Low-friction emergency brakingGiven the vehicle is travelling on the defined low-friction surfaceWhen the driver requests emergency brakingThen the vehicle shall decelerate within the required limitsAnd directional controllability shall remain within the accepted range
This scenario does not care which part is hardware and which is software.
That is exactly the point.
The scenario validates system behavior.
Lower-Level Scenarios Still Matter
System-level tests are not enough by themselves.
We may also have:
Scenario: Brake controller rejects invalid wheel-speed data
and:
Scenario: Brake actuator responds to valid command
The evidence hierarchy becomes:
Software Unit Evidence↓Controller Evidence↓Module Evidence↓System Evidence↓Vehicle Evidence
Each level answers a different question.
Hardware-in-the-Loop Becomes a Bridge
Hardware-in-the-loop testing is especially useful for cyber-physical systems.
It allows real controller hardware and software to interact with simulated physical environments.
The structure becomes:
Real Controller Hardware+Real Software+Simulated Vehicle↓Observed Behavior↓Evidence
This creates evidence before a complete vehicle exists.
Software-in-the-Loop Has a Different Role
Software-in-the-loop can test:
- Algorithms
- State machines
- Interfaces
- Fault logic
- Large scenario sets
But it may not expose real:
- Processor timing
- Electrical behavior
- Network hardware effects
- Actuator response
Different test levels produce different strengths of evidence.
QT determines when the evidence set is sufficient.
FMEA Must Cross the Boundary
Hardware failure can cause software problems.
Software failure can cause hardware behavior.
Interface failure can affect both.
Example:
Sensor Failure↓Invalid Input↓Software Misinterpretation↓Incorrect Command↓Actuator Movement
FMEA should therefore model the complete chain.
Not separate “hardware FMEA” and “software FMEA” that never meet.
Common-Cause Dependencies Matter
Suppose several safety functions depend on one compute platform.
Central Compute│├── Braking Support├── Steering Support├── Thermal Control└── Diagnostics
A single hardware or software fault may affect multiple functions.
The object network makes this shared dependency visible.
System safety analysis must consider the combined consequence.
Power Is Also Part of the Software System
Software cannot execute without power.
A controller may depend on:
12V Supply↓Power Management↓Controller Hardware↓Software
A voltage drop may cause:
- Restart
- Corrupted state
- Lost communication
- Delayed recovery
This is a cyber-physical failure path.
The software architecture should understand its physical dependencies.
Network Architecture Is Both Hardware and Software
Vehicle communications include:
physical network
plus:
communication software
plus:
message definitions
plus:
timing
plus:
fault handling.
Therefore:
Communication System=Hardware+Protocol+Software+Message Semantics+Timing
Treating these separately can hide system-level problems.
Diagnostics Must Understand Both
A diagnostic event should often identify more than:
Software error.
It may need to distinguish:
- Sensor physical failure
- Wiring failure
- Communication failure
- Controller hardware failure
- Software logic failure
- Configuration mismatch
The diagnostic model should therefore connect across the whole object network.
Manufacturing Must Install Both Systems
The factory installs physical components.
But it also installs software.
Production may include:
Install Controller↓Verify Hardware Identity↓Flash Software↓Apply Calibration↓Verify Compatibility↓Run End-of-Line Test↓Record Configuration
The manufacturing process creates the cyber-physical vehicle.
Production QT Must Include Software
A vehicle should not cross Production QT merely because physical assembly is ready.
A production gate may need:
[ ] Hardware configuration released[ ] Software configuration released[ ] Compatibility verified[ ] Flashing process validated[ ] Calibration process validated[ ] End-of-line behavior verified[ ] Traceability operational
Production readiness is joint readiness.
Service Must Preserve Compatibility
Suppose a controller is replaced during service.
The replacement process may require:
Install Hardware↓Identify Hardware Version↓Select Compatible Software↓Flash↓Apply Calibration↓Verify↓Update Vehicle History
A mechanically correct repair can still fail if the wrong software is installed.
The service domain must therefore preserve the same hardware-software relationships.
Over-the-Air Updates Are Product Changes
An over-the-air update can change the behavior of an already manufactured vehicle.
Therefore it should be treated as a product change:
Software Update↓Impact Analysis↓Regression Tests↓Evidence↓Release QT↓Deployment↓Field Monitoring
The physical hardware remains fixed.
The product behavior changes.
Field Evidence Should Include Configuration
Suppose a failure appears in the fleet.
The important question is not simply:
Which vehicle model failed?
It may be:
Which combination of hardware, software, calibration, supplier batch, and environment failed?
For example:
Failure Pattern↓Brake Controller HW 2.1+Software 5.4+Calibration C17+Low Temperature
Object-network thinking makes these correlations discoverable.
FLEXI Can Cross Hardware and Software Teams
A useful FLEXI micro-sprint might be:
Verify end-to-end brake response after a wheel-speed sensor failure.
Contributors may include:
- Sensor engineer
- Electrical engineer
- Software engineer
- Brake engineer
- Test engineer
The sprint is organized around the system question, not the department.
That is important.
Organize Work Around Behavior
A work package such as:
Develop brake software
is useful but incomplete.
A stronger system work package might be:
Demonstrate controlled braking under wheel-speed signal failure.
This naturally brings together all required disciplines.
The domain model can still assign sub-work to individual teams.
But the outcome remains integrated.
Avoid the Hardware-Software Handover
One dangerous workflow is:
Hardware Team↓"Finished"↓Hand Over↓Software Team
This creates late discovery.
Instead:
Hardware↔Software↔Interface↔Continuous Integration
should evolve together.
Interfaces should be tested early, even with temporary implementations.
Digital Twins Can Support Integration
A system model can represent both real and simulated objects.
For example:
Real Controller↔Simulated BatteryReal Software↔Simulated VehicleReal Sensor↔Simulated Environment
This can reduce dependency on complete physical prototypes while maintaining system-level testing.
Simulation becomes one part of the evidence chain.
One Requirement, One Evidence Network
Suppose:
The vehicle shall reduce propulsion torque when excessive wheel slip is detected.
Evidence may include:
Sensor Test↓Controller Input Test↓Software Algorithm Test↓Network Timing Test↓Motor Response Test↓Vehicle Low-Friction Test
No single result proves the whole claim.
Together they form an evidence network.
QT Evaluates the Integrated Result
A Propulsion Control QT might ask:
[ ] Sensor behavior verified[ ] Interface timing verified[ ] Control algorithm verified[ ] Hardware execution verified[ ] Actuator response verified[ ] Failure modes verified[ ] Vehicle-level scenario verified
The threshold is crossed when the complete chain is credible.
Hardware and Software Are Different, but Not Separate
The disciplines remain different.
Mechanical engineering has its own methods.
Electronics has its own methods.
Software engineering has its own methods.
ZenOps does not erase those differences.
It creates a common layer above them:
Need
Requirement
Objects
Relations
Scenario
Evidence
Different disciplines contribute to the same outcome.
The Complete Cyber-Physical Chain
The system can be represented as:
HUMAN NEED ↓NDD ↓VEHICLE REQUIREMENT ↓SYSTEM BEHAVIOR ↓┌───────────────┬───────────────┐↓ ↓ ↓HARDWARE SOFTWARE CALIBRATION↓ ↓ ↓└───────────────┴───────────────┘ ↓ INTERFACES ↓ INTEGRATED SYSTEM ↓ STORYQ ↓ TEST ↓ EVIDENCE ↓ QT ↓ VEHICLE RELEASE ↓ FIELD EVIDENCE
That is the integrated engineering model.
Manage the Behavior, Not the Departments
The deepest principle is simple.
Customers do not experience:
hardware behavior
and then separately:
software behavior.
They experience:
the car.
When they press the brake pedal, they expect the vehicle to slow down.
When they plug it in, they expect it to charge.
When a sensor fails, they expect the vehicle to remain predictable.
The human need is holistic.
The vehicle behavior is holistic.
Therefore the engineering model must eventually become holistic too.
ZenOps manages hardware and software as one system by asking every discipline to participate in the same traceable chain:
What human need does this behavior serve?
Which objects participate?
How are they related?
Which part is implemented in hardware, which in software, and which exists in the interface?
How can the chain fail?
What evidence proves the complete behavior?
When those questions remain connected, hardware and software stop being two projects that happen to meet inside a vehicle.
They become what they always were in reality:
two different forms of implementation inside one system.