Jane Cleland-Huang
University of Notre Dame
Workshop on Emerging Software Engineering Education,
Indian Software Engineering Conference
Partially funded by US National Science Foundation Grant CCF:1319680
A Case Study: Injecting Safety-Critical Thinking
into Graduate Software Engineering Projects
University of Notre
Dame
Summary
• Taught a 5 month, project-based, graduate level Software
Engineering course in which teams of students
developed non-trivial products using UAVs and/or various
types of sensors.
• Our projects represented “light-weight” safety applications
that might normally be built without thinking about safety
implications.
• Exposed students to some basic practices for identifying
and mitigating safety-related risks.
• Evolved into a more stable course in Software
Engineering for UAVs.
2
Jane Cleland-Huang, Mona Rahimi: A Case Study: Injecting Safety-Critical Thinking into
Graduate Software Engineering Projects. ICSE-SEET 2017: 67-76
Project Domains and Ideas
3
Medical Fleet
Fleets of drones
are coordinated to
deliver medical
supplies in a
natural catastrophe
and to use aerial
reconnaissance for
tracking.
E-Health
A person
recovering from
a medical issue
such as a heart
attack, is safely
monitored
during his/her
rehabilitation.
Environment
Crowd-sourced
pollution
detection in
case of a
chemical spill.
(Also for
environmental
pollution).
Mission-Control
Monitor position
& health of a
rescue team.
Provide instruct-
ions and informa-
tion via visor.
Are these projects really safety-critical?
Example Project: Medical Fleet
4
Drone
supply
base
Request
for help
Central controller,
dispatch algorithms,
drone tracker.
Project: Rehabilitation
5
Doctor or therapist
creates a safe
exercise plan for
the patient.
Exercise sessions are
monitored and data is
tracked via the mobile
to the server.
You can also include
outside exercise and
GPS tracking.
Project: Rescue Mission
6
Group dynamics, route
plan, and instructions
displayed on glasses.
Centralized
control tracks
mission and
plans route.
Health of team members
continually monitored using
health-sensors.
Project: Environmental Disaster
7
Web-server captures
information about pollutants
(aka dangerous chemicals)
and displays them on a map.
Crowd-source the collection process.
CO2
levels: XX
SO2
levels: XX
Ozone
levels:
XXX
Ordinary users can
download an App that
warns them if they
approach unsafe areas.
Project: Aerial Reconnaissance
8
Time: 10.14 am
Drone: 105
Comment: Running East
Status: Tracking
Drones used to
perform aerial survey.
Images processed into
map.
Central dispatcher tags
interesting sightings.
Data is streamed from
copter to central server.
Tracking is performed
in real-time.
Our very own “Q”
9
We hired an Undergraduate two months in
advance of the start of the course to test all
the interfaces to physical devices and
created and collected instructions for how to
send commands and/or extract data from
the devices.
We distributed physical devices and
hardware to each team in Week 3.
At that time, met with each team to explain
how to control and/or to retrieve data from
your device.
He has also set-up instructions online at
http://sarec.nd.edu/studio
Process/Artifacts (Steps 1-3)
10
Step 3: Create 3-5 high-level use
cases.
(Doors Next)
Step 1: Start creating a glossary of terms.
Add to it incrementally (Doors Next)
Step 2: Define clear system goals
(Doors Next)
Outcome: You know what your product should do.
Process/Artifacts (Steps 4-)
11
Step 4: Identify technical risks
and plan/start work on
architectural spikes.
Outcome: You know more about your product.
• Interface with physical
devices
• Mobile iOS/Android
• Web-Service
• Project environment
• Tools
• Team collaboration
mechanisms
• Other project
specific??
Step 5: Start defining
requirements or user stories
(agile/upfront?) (Doors Next)
Step 6: Start defining
performance/quality related
requirements.
Step 7: Safety Analysis. Construct a
FMECA (Doors Next)
Coding
starts
Process/Artifacts (Steps 4-)
12
Outcome: You know that your product is viable.
Step 8: Security Analysis
Security Cards
(Doors Next)
Step 9: Architectural Design. Consider multiple
solutions. Use UML.
Step 10: UX
Design
Mockup your main
screens.
Determine task
flows.
Process/Artifacts (Steps 4-)
13
Outcome: You deliver a fully functioning architectural spike.
Steps 1-12: Create
trace links as-you-go.
Step 11: Code, Test
(Start this early – for
architectural spikes)
Step 12: Build an initial safety-
assurance case.
14
Managing the Artifacts
Hazard
Fault
Goal
UseCase
hinders
FMECA
helps
describes
mitigates
depends
on
Design
Source
Code
Implements
tests
Acceptance
Test
tests
Unit
Test
Context
Diagram
Environmental
Assumptions
depends
on
influences
Safety
Assurance Case
------------------------------------
----Compiles
evidence for
safety
Package
Fault Occurs in
JIRA
Trace Matrix
in excel.
Trace links
embedded in
tool
Artifact in tool,
spreadsheet,
word doc etc.
This is an interactive
Traceability
Information Model.
Click on any node to
modify/view data.
Commit your changes
via Github.
Project
Glossary
GitHub
Threat Model
------------------------------------
----Documents
security
vulnerabilities
User Story
15
What did Students Think?
18
4
4
Yes No No Preference
Did you like the Safety-Critical
nature of the Project?
18
6
2
Did you like working with
physical sensors/UAVs?
16
What Aspects were helpful for
understanding safety related issue?
0
0.5
1
1.5
2
2.5
Readings on
Safety Critical
Systems
Safety Case
Tool and
tutorials
Interactive
Team meetings
External Safety-
Speaker
FMECAs and
Tutorials
External Panel
(Final
Presentations)
Mean
Ranking
17
What did students say?
The focus on CPS:
1. Added a “real-world”
aspect to the course,
2. Forced us to “consider
the user of the product”,
3. “gave insight into some of the more bureaucratic
processes that software development has to go through”
4. offered “a first-hand experience in developing safety-
critical systems” and…
5. Required us to “think about what could go wrong and do
risk assessments.”
What’s next?
• Focus on one type of CPS
(e.g. UAVs)
• Provide “more” getting started
help:
• Programming UAVs
• Analyzing hazards and writing
mitigating requirements.
• Building Safety Assurance
Cases
18
Take 2! Software Engineering for UAVs
Our Infrastructure
http://Dronology.info
Not all smooth sailing
Rescued Drone
Trajectory
challenged, upside
down drone
Bent prop drone
Broken leg drone
Drowned and
missing drone
?
Challenging assignments
Scoped architectural design problems
Requirements, Code, Testing, Safety Analysis
Jane Cleland-Huang
University of Notre Dame
Workshop on Emerging Software Engineering Education,
Indian Software Engineering Conference
Partially funded by US National Science Foundation Grant CCF:1319680
A Case Study: Injecting Safety-Critical Thinking
into Graduate Software Engineering Projects
University of Notre
Dame

A Case Study Injecting Safety-Critical Thinking Into Graduate Software Engineering Projects

  • 1.
    Jane Cleland-Huang University ofNotre Dame Workshop on Emerging Software Engineering Education, Indian Software Engineering Conference Partially funded by US National Science Foundation Grant CCF:1319680 A Case Study: Injecting Safety-Critical Thinking into Graduate Software Engineering Projects University of Notre Dame
  • 2.
    Summary • Taught a5 month, project-based, graduate level Software Engineering course in which teams of students developed non-trivial products using UAVs and/or various types of sensors. • Our projects represented “light-weight” safety applications that might normally be built without thinking about safety implications. • Exposed students to some basic practices for identifying and mitigating safety-related risks. • Evolved into a more stable course in Software Engineering for UAVs. 2 Jane Cleland-Huang, Mona Rahimi: A Case Study: Injecting Safety-Critical Thinking into Graduate Software Engineering Projects. ICSE-SEET 2017: 67-76
  • 3.
    Project Domains andIdeas 3 Medical Fleet Fleets of drones are coordinated to deliver medical supplies in a natural catastrophe and to use aerial reconnaissance for tracking. E-Health A person recovering from a medical issue such as a heart attack, is safely monitored during his/her rehabilitation. Environment Crowd-sourced pollution detection in case of a chemical spill. (Also for environmental pollution). Mission-Control Monitor position & health of a rescue team. Provide instruct- ions and informa- tion via visor. Are these projects really safety-critical?
  • 4.
    Example Project: MedicalFleet 4 Drone supply base Request for help Central controller, dispatch algorithms, drone tracker.
  • 5.
    Project: Rehabilitation 5 Doctor ortherapist creates a safe exercise plan for the patient. Exercise sessions are monitored and data is tracked via the mobile to the server. You can also include outside exercise and GPS tracking.
  • 6.
    Project: Rescue Mission 6 Groupdynamics, route plan, and instructions displayed on glasses. Centralized control tracks mission and plans route. Health of team members continually monitored using health-sensors.
  • 7.
    Project: Environmental Disaster 7 Web-servercaptures information about pollutants (aka dangerous chemicals) and displays them on a map. Crowd-source the collection process. CO2 levels: XX SO2 levels: XX Ozone levels: XXX Ordinary users can download an App that warns them if they approach unsafe areas.
  • 8.
    Project: Aerial Reconnaissance 8 Time:10.14 am Drone: 105 Comment: Running East Status: Tracking Drones used to perform aerial survey. Images processed into map. Central dispatcher tags interesting sightings. Data is streamed from copter to central server. Tracking is performed in real-time.
  • 9.
    Our very own“Q” 9 We hired an Undergraduate two months in advance of the start of the course to test all the interfaces to physical devices and created and collected instructions for how to send commands and/or extract data from the devices. We distributed physical devices and hardware to each team in Week 3. At that time, met with each team to explain how to control and/or to retrieve data from your device. He has also set-up instructions online at http://sarec.nd.edu/studio
  • 10.
    Process/Artifacts (Steps 1-3) 10 Step3: Create 3-5 high-level use cases. (Doors Next) Step 1: Start creating a glossary of terms. Add to it incrementally (Doors Next) Step 2: Define clear system goals (Doors Next) Outcome: You know what your product should do.
  • 11.
    Process/Artifacts (Steps 4-) 11 Step4: Identify technical risks and plan/start work on architectural spikes. Outcome: You know more about your product. • Interface with physical devices • Mobile iOS/Android • Web-Service • Project environment • Tools • Team collaboration mechanisms • Other project specific?? Step 5: Start defining requirements or user stories (agile/upfront?) (Doors Next) Step 6: Start defining performance/quality related requirements. Step 7: Safety Analysis. Construct a FMECA (Doors Next) Coding starts
  • 12.
    Process/Artifacts (Steps 4-) 12 Outcome:You know that your product is viable. Step 8: Security Analysis Security Cards (Doors Next) Step 9: Architectural Design. Consider multiple solutions. Use UML. Step 10: UX Design Mockup your main screens. Determine task flows.
  • 13.
    Process/Artifacts (Steps 4-) 13 Outcome:You deliver a fully functioning architectural spike. Steps 1-12: Create trace links as-you-go. Step 11: Code, Test (Start this early – for architectural spikes) Step 12: Build an initial safety- assurance case.
  • 14.
    14 Managing the Artifacts Hazard Fault Goal UseCase hinders FMECA helps describes mitigates depends on Design Source Code Implements tests Acceptance Test tests Unit Test Context Diagram Environmental Assumptions depends on influences Safety AssuranceCase ------------------------------------ ----Compiles evidence for safety Package Fault Occurs in JIRA Trace Matrix in excel. Trace links embedded in tool Artifact in tool, spreadsheet, word doc etc. This is an interactive Traceability Information Model. Click on any node to modify/view data. Commit your changes via Github. Project Glossary GitHub Threat Model ------------------------------------ ----Documents security vulnerabilities User Story
  • 15.
    15 What did StudentsThink? 18 4 4 Yes No No Preference Did you like the Safety-Critical nature of the Project? 18 6 2 Did you like working with physical sensors/UAVs?
  • 16.
    16 What Aspects werehelpful for understanding safety related issue? 0 0.5 1 1.5 2 2.5 Readings on Safety Critical Systems Safety Case Tool and tutorials Interactive Team meetings External Safety- Speaker FMECAs and Tutorials External Panel (Final Presentations) Mean Ranking
  • 17.
    17 What did studentssay? The focus on CPS: 1. Added a “real-world” aspect to the course, 2. Forced us to “consider the user of the product”, 3. “gave insight into some of the more bureaucratic processes that software development has to go through” 4. offered “a first-hand experience in developing safety- critical systems” and… 5. Required us to “think about what could go wrong and do risk assessments.”
  • 18.
    What’s next? • Focuson one type of CPS (e.g. UAVs) • Provide “more” getting started help: • Programming UAVs • Analyzing hazards and writing mitigating requirements. • Building Safety Assurance Cases 18
  • 19.
    Take 2! SoftwareEngineering for UAVs
  • 20.
  • 21.
    Not all smoothsailing Rescued Drone Trajectory challenged, upside down drone Bent prop drone Broken leg drone Drowned and missing drone ?
  • 22.
    Challenging assignments Scoped architecturaldesign problems Requirements, Code, Testing, Safety Analysis
  • 23.
    Jane Cleland-Huang University ofNotre Dame Workshop on Emerging Software Engineering Education, Indian Software Engineering Conference Partially funded by US National Science Foundation Grant CCF:1319680 A Case Study: Injecting Safety-Critical Thinking into Graduate Software Engineering Projects University of Notre Dame