Skip to content

Commit

Permalink
add software update slides
Browse files Browse the repository at this point in the history
  • Loading branch information
Solomon Berhe committed Feb 21, 2025
1 parent 2173840 commit d97d8a6
Show file tree
Hide file tree
Showing 2 changed files with 296 additions and 2 deletions.
298 changes: 296 additions & 2 deletions i40/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@ <h4>Welcome<br> Software Engineering in Industry 4.0 Ecosystems</h4>
</tr>
<tr style="color: #ccc;">
<td style="padding: 6px; border: 1px solid #666;">6 (Feb <a href="./#/feb-19">19</a>,
21)</td>
<a href="./#/feb-21">21</a>)
</td>
<td style="padding: 6px; border: 1px solid #666;"><a href="./#/module-6">Legal
Constraints for Industry 4.0 Applications</a></td>
<td style="padding: 6px; border: 1px solid #666;"></td>
Expand Down Expand Up @@ -4759,7 +4760,7 @@ <h5>Additional Methods to Improve Data Quality</h5>

<section>
<h5>Legally Accountable Roles (Management)</h5>
<p>Define internal standards....</p>
<p>Define internal standards...</p>
</section>

<section>
Expand Down Expand Up @@ -4801,10 +4802,303 @@ <h5>Example 4: Bicycle crash alert algorithms wrong in production</h5>
<h5>Example 5: GDPR pushed project timeline by a year</h5>
</section>

<section id="feb-21">
<h4>February 21, 2025</h4>
<ul>
<li>Legal impact of Software Updates in IoT</li>
<li>Legal impact of Software Quality in IoT</li>
<li>Spring Demo #4</li>
</ul>
</section>

<section>
<h5>Fuel Injection Software Update</h5>
<ul>
<li><strong>Manufacturer:</strong> Honda</li>
<li><strong>Issue:</strong> Faulty fuel injection software may cause engine stalling</li>
<li><strong>Affected Vehicles:</strong> ~300,000 Honda & Acura models</li>
<li><strong>Solution:</strong> Free software update at dealerships</li>
<li><a href="https://abcnews.go.com/GMA/News/honda-issues-recall-300k-cars-due-fuel-injection/story?id=118265293"
target="_blank">More Info</a></li>
</ul>
</section>

<section>
<h5>Recalling Certain 2025 R1S and R1T Vehicles for Headlight Issue</h5>
<ul>
<li><strong>Manufacturer:</strong> Rivian</li>
<li><strong>Issue:</strong> Headlight software malfunction</li>
<li><strong>Affected Vehicles:</strong> 2025 R1S & R1T models</li>
<li><strong>Solution:</strong> Over-the-air software update</li>
<li><a href="https://www.autoevolution.com/news/rivian-is-recalling-certain-2025-r1s-and-r1t-vehicles-for-headlight-issue-247366.html"
target="_blank">More Info</a></li>
</ul>
</section>

<section>
<h5>Legal & Safety Impact of Software Updates</h5>
<ul>
<li><strong>Liability:</strong> Manufacturers are accountable if software defects cause
accidents</li>
<li><strong>Regulatory Compliance:</strong> Agencies (e.g., NHTSA, EU Commission) enforce
mandatory safety updates</li>
<li><strong>Consumer Protection:</strong> Owners have rights to timely fixes and transparency in
recalls</li>
<li><strong>Safety Risks:</strong> Delayed or faulty updates may lead to system failures,
increasing accident risks</li>
<li><strong>Data & Privacy:</strong> Updates must comply with laws (e.g., GDPR, CCPA) to protect
user data</li>
<li><strong>Case Studies:</strong> Past recalls highlight the legal duty to ensure software
reliability</li>
</ul>
</section>

<section data-background="white">
<img src="legal_sw_update.png">
</section>

<section>
How to prioritize software updates?
</section>

<section>
<h5>Prioritizing Software Updates</h5>
<ul>
<li><strong><span class="highlight">Legal, Safety</span> & Privacy Impact</strong> Address
compliance, safety risks, and data protection first</li>
<li><strong>Critical Security Patches</strong> Fix vulnerabilities that could be exploited</li>
<li><strong>Performance & Stability</strong> Optimize functionality to prevent failures</li>
<li><strong>User Experience</strong> Improve usability while maintaining reliability</li>
<li><strong>Feature Improvement</strong> Introduce new capabilities without compromising
existing systems</li>
<li><strong><span class="highlight">Testing</span> & Deployment</strong> Ensure updates are
validated before release</li>
</ul>
</section>

<section>
<h5>Security & Breaking Updates (Legal Impact)</h5>
</section>

<section>
<h5>Monitor Security Updates via GitHub</h5>
<ul>
<li><strong>Automated Monitoring:</strong> Use GitHub's Dependabot to track vulnerabilities in
dependencies</li>
<li><strong>Real-Time Alerts:</strong> Receive notifications for security updates and fixes</li>
<li><strong>Seamless Integration:</strong> Automatically create pull requests for updates</li>
<li><strong>Customizable Settings:</strong> Configure update frequency and target versions</li>
<li><strong>Improved Security:</strong> Maintain a secure codebase by promptly addressing issues
</li>
<li><a href="https://github.com/SE4CPS/PlantWaterSystem/security/dependabot"
target="_blank">More Info</a></li>
</ul>
</section>

<section>
<h5>Monitor Breaking Updates via GitHub</h5>
<ul>
<li><strong>Patch Updates:</strong> Small fixes for bugs and security vulnerabilities (e.g.,
`2.0.1` to `2.0.2`)</li>
<li><strong>Minor Updates:</strong> Add functionality in a backwards-compatible manner (e.g.,
`2.0.0` to `2.1.0`)</li>
<li><strong>Major Updates:</strong> Introduce significant changes or breaking features (e.g.,
`2.x.x` to `3.0.0`)</li>
<li><strong>Legal Considerations:</strong> Ensure updates comply with legal standards and user
agreements</li>
</ul>
</section>

<section>
<h5>Managing Breaking Updates with Renovate</h5>
<ul>
<li><strong>Automated Dependency Updates:</strong> Renovate helps automate the process of
updating dependencies, including breaking updates</li>
<li><strong>Version Control:</strong> Monitor major version changes to assess impact on your
codebase</li>
<li><strong>Customizable Update Configurations:</strong> Define rules for handling breaking
updates and set schedules for updates</li>
<li><strong>Pull Request Generation:</strong> Automatically creates pull requests for updates,
allowing for review and testing before merging</li>
<li><strong>Visibility:</strong> Keep track of changes and maintain a history of updates to
manage legal implications</li>
<li><a href="https://github.com/renovatebot/renovate" target="_blank">More Info</a></li>
</ul>
</section>

<section>
<h5>RACI Chart for Monitoring Critical Software Updates</h5>
<table>
<thead>
<tr>
<th>Task</th>
<th>Responsible</th>
<th>Accountable</th>
<th>Consulted</th>
<th>Informed</th>
</tr>
</thead>
<tbody>
<tr>
<td>Define Update Criteria</td>
<td>Project Manager</td>
<td class="highlight">Stakeholders</td>
<td>Team Leads</td>
<td>All Team Members</td>
</tr>
<tr>
<td>Monitor Software Dependencies</td>
<td>Developers</td>
<td class="highlight">Project Manager</td>
<td>System Architect</td>
<td>Stakeholders</td>
</tr>
<tr>
<td>Assess Impact of Updates</td>
<td>QA Team</td>
<td>Project Manager</td>
<td>Developers</td>
<td class="highlight">Stakeholders</td>
</tr>
<tr>
<td>Test Updates</td>
<td>QA Team</td>
<td class="highlight">Project Manager</td>
<td>Developers</td>
<td>Stakeholders</td>
</tr>
<tr>
<td>Deploy Updates</td>
<td>IT Team</td>
<td class="highlight">Project Manager</td>
<td>All Team Members</td>
<td>Stakeholders</td>
</tr>
</tbody>
</table>
</section>

<section>
<h5>Management Must Prioritize Monitoring and Maintaining Software Updates</h5>
</section>

<section>
<h5>Continuous Monitoring Post-Release</h5>
<ul>
<li><strong>Third-Party Updates:</strong> Operating systems, browsers, and libraries are
frequently updated by external providers</li>
<li><strong>Compatibility Issues:</strong> Ensure your software remains compatible with the
latest versions</li>
<li><strong>Security Risks:</strong> Monitor for vulnerabilities introduced by third-party
updates</li>
<li><strong>Performance Optimization:</strong> Address any performance impacts caused by
external changes</li>
<li><strong>User Experience:</strong> Maintain a seamless experience for users across different
platforms</li>
</ul>
</section>

<section>
<div style="display: flex; justify-content: space-around; margin-top: 50px;">
<div
style="border: 2px solid #007BFF; padding: 20px; width: 200px; text-align: center; border-radius: 10px;">
<h5>Automatic Updates</h5>
</div>
<div
style="border: 2px solid #28A745; padding: 20px; width: 200px; text-align: center; border-radius: 10px;">
<h5>Manual Updates</h5>
</div>
<div
style="border: 2px solid #DC3545; padding: 20px; width: 200px; text-align: center; border-radius: 10px;">
<h5>Ignore Updates</h5>
</div>
</div>
</section>

<section>
What happens if the software has no updates (deprecated)?
</section>

<section>
Questions?
</section>

<section>
<h5>Code Quality and Legal Impact Checklist</h5>
<ul style="list-style-type: none;">
<li><input type="checkbox" disabled> Static Code Checking</li>
<li><input type="checkbox" disabled> Dynamic Code Checking</li>
<li><input type="checkbox" disabled> Peer Review Critical Steps</li>
<li><input type="checkbox" disabled> Roundtable Review</li>
<li><input type="checkbox" disabled> Automated Testing for Security Vulnerabilities</li>
<li><input type="checkbox" disabled> Code Coverage Analysis</li>
<li><input type="checkbox" disabled> Compliance with Coding Standards and Guidelines</li>
<li><input type="checkbox" disabled> Documentation Review for Legal Requirements</li>
<li><input type="checkbox" disabled> Continuous Integration and Deployment Practices</li>
<li><input type="checkbox" disabled> Version Control for Change Tracking</li>
<li><input type="checkbox" disabled> Regular Training on Legal and Compliance Issues</li>
</ul>
</section>

<section>
<h5>Legal Compliance Code Review</h5>
<pre><code>
class PlantWateringSystem:
def __init__(self):
self.user_data = [] # Stores user data without consent
self.water_count = 0 # Tracks number of waterings per day

def collect_user_data(self, user_name, email):
self.user_data.append({'name': user_name, 'email': email}) # No consent

def water_plants(self, amount):
self.water_count += 1
print(f"Watered plants with {amount} liters.")
</code></pre>
</section>

<section>
<h5>Legal Compliance Code Review</h5>
<pre><code>
class PlantWateringSystem:
def __init__(self):
self.user_data = [] # Stores user data without consent
self.sensors = {'sensor1': 0, 'sensor2': 0} # Different sensors

def update_sensor_reading(self, sensor, reading):
self.sensors[sensor] = reading
</code></pre>
</section>

<section>
<h5>Legal Compliance Code Review</h5>
<pre><code>
class PlantWateringSystem:
def __init__(self):
self.user_data = [] # Stores user data without consent
self.last_watered_days = 0 # Days since last watering

def check_watering_interval(self):
# self.last_watered_days
</code></pre>
</section>

<section>
Question on Legal Impact?
</section>

<section data-background="white">
<img src="legal_sw_update.png">
</section>

<section>
<p>
<a href="https://github.com/SE4CPS/PlantWaterSystem/issues/160" target="_blank">
Sprint Demo #4 &#128578;
</a>
</p>
</section>

<section>
<p><a href="https://github.com/SE4CPS/PlantWaterSystem/issues" target="_blank">Sprint #4 Backlog
Grooming</a>
Expand Down
Binary file added i40/legal_sw_update.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d97d8a6

Please sign in to comment.