Slide 1

Slide 1 text

Sindelfingen, 2018-12-06 Stefan Wagner Funktionale Sicherheit in agilen Software-Projekten

Slide 2

Slide 2 text

You can copy, share and change, film and photograph, blog, live-blog and tweet this presentation given that you attribute it to its author and respect the rights and licences of its parts. based on slides by @SMEasterbrook und @ethanwhite

Slide 3

Slide 3 text

!3 Agile Software Development

Slide 4

Slide 4 text

!4 Agile Software Development of Safety- Critical Systems? Safety analysis without an upfront architecture design? Unstable requirements that can change every few weeks?

Slide 5

Slide 5 text

The S-Scrum Development Process Safety in Agile Software Projects

Slide 6

Slide 6 text

!6 There are some approaches – S-Scrum Prerequisite SSRS with STPA Pre-Planning Meeting Sprint Planning Meeting STPA Regular Safety Meeting Daily Scrum Meeting TDD/BDD/CI Sprint Review Meeting Sprint Retrospective Meeting Final STPA Validation https://arxiv.org/abs/1703.05375

Slide 7

Slide 7 text

Empirical evaluation in a large student project

Slide 8

Slide 8 text

Safety is a control problem.

Slide 9

Slide 9 text

Safety-guided design Hazard Analysis Design Decisions Fits well to iterative and agile development See also: Wang, Wagner. Toward Integrating a System Theoretic Safety Analysis in an Agile Development Process, 2016

Slide 10

Slide 10 text

Figure by Asim Abdulkhaleq

Slide 11

Slide 11 text

Figure by Asim Abdulkhaleq

Slide 12

Slide 12 text

Figure by Asim Abdulkhaleq

Slide 13

Slide 13 text

Example: ACC – Step 1 Process Model Variables Control Actions Distance Driver Status Hazardous? Accelerate signal provided Distance < safe distance – Yes (H2) Distance > safe distance Driver on driver’s seat No Distance > safe distance Driver not on driver’s seat Yes (H3)

Slide 14

Slide 14 text

Example: ACC – Step 2 "ACC provides accelerate command while driver is exiting vehicle. ACC would accelerate if ACC is engaged and the vehicle in front starts moving again within a short time period. During this time, the driver may try to exit the vehicle because the vehicle was stopped and they believed ACC was off or had timed out." This scenario was formulated by John Thomas. Causal factors could be missing or wrong input from the seat belt sensor or the door sensor.

Slide 15

Slide 15 text

Connection to Verification Abdulkhaleq, Wagner, Leveson. A Comprehensive Safety Engineering Approach for Software-Intensive Systems Based on STPA. Procedia Engineering 128:2–11, 2015

Slide 16

Slide 16 text

context table, the software safety requirements are refined. For example, the software safety requirement (S ) is refined as the ACC software controller should not provide accelerating signal more than the desired speed wh CC is in cruise mode and brake pedal is not pressed. Table 2. Examples of the context table of providing the control actions Control Actions Process Model Variables Hazardous? Distance Speed Brake ACC Mode Accelerate Signal provided Distance < safe distance Speed == desired speed applied Cruise No Distance < safe distance Speed > desired speed Not applied Cruise Yes (H2), SSR3-4 Distance < safe distance Speed > desired speed Not applied follow Yes (H1), SSR1 Once we have identified the software safety requirements, the process model and the unsafe scenarios of ea ntrol action using step 1, the safe behavior model can be constructed based on the process model. The safe behav del of the ACC software controller shows the relations between the process model variables (identified by ste d labeled with software safety requirements. Each transition in the safe behavior model is labeled with the synt ent [safety constraint]/control action. The event is a trigger of the transition and the safety constraint is a Bool ndition that must be true to transit to the next state. The control action describes the effect of the transition, such w the state variables are updated and what events are generated. For example, the transition t6 can be written: ntrolSpeed(currentspeed) [currentSpeed < desiredSpeed && distance > safeDistance && ACCMode ==cru & Brakestatus == Notapplied ]/ accelerateSpeed(currentspeed). 0 Asim Abdulkhaleq et al. / Procedia Engineering 128 ( 2015 ) 2 – 11 The transition t6 constrains the provision of the accelerate control action under the safety constraint derived by step 1 (Table 2). To formally verify the software safety requirements of each control action (refined from Table 2), first each software safety requirement should be formalized into a formal specification such as LTL or CTL to be able to verify them against the safe behavior model of the software controller during the verification phase. For example, the refined software safety requirement SSR1.3 can be expressed as the LTL formula: G ((currentSpeed < desiredSpeed && distance > safeDistance && ACCMode == cruise && Brakestatus == Notapplied) o accelerateSpeed). This formula means that the ACC software controller must always provide an acceleration signal when the current speed of the vehicle is less than the desired speed, there is no vehicle in the lane (distance > safe distance), and the brake pedal is not pressed when the ACC system is in cruise mode. Second, the safe behavior model needs to be Example Abdulkhaleq, Wagner, Leveson. A Comprehensive Safety Engineering Approach for Software-Intensive Systems Based on STPA. Procedia Engineering 128:2– 11, 2015 Semi-automatic transformation

Slide 17

Slide 17 text

BDD for Safety Verification Safety in Agile Software Projects

Slide 18

Slide 18 text

!18 Focus on communication

Slide 19

Slide 19 text

Based on: M. Cohn. Succeeding with Agile. Addison-Wesley, 2010 Test Code Refactor Test Code Refactor Test Code Refactor Passing acceptance test Refactor the test Customer acceptance Implement acceptance test(s) Failing acceptance tests Acceptance- test-driven development Test-driven development Identify conditions of satisfaction Select a user story

Slide 20

Slide 20 text

!20 Behaviour-Driven Development (BDD) Developer Tester Product Owner Examples Scenarios Automated Tests

Slide 21

Slide 21 text

Feature: Refund item Scenario: Jeff returns a faulty microwave Given Jeff has bought a microwave for $100 And he has a receipt When he returns the microwave Then Jeff should be refunded $100 Behaviour-Driven Development (BDD)

Slide 22

Slide 22 text

!22 STPA-BDD

Slide 23

Slide 23 text

!23 Example Unsafe Scenario from STPA Gherkin Scenario During auto-parking, the autonomous vehicle does not stop immediately when there is an obstacle up front. Given the autonomous vehicle is auto-parking When the ultrasonic sensor provides the feedback that the forward distance is smaller or equal to a threshold indicating that ther is an obstacle up front Then the autonomous vehicle stops immediately.

Slide 24

Slide 24 text

!24 Experimental results many safety requirements can be written into test cases within a limited time slot. 25 But: Communication effectiveness is significantly different! The developers consider the safety requirements deeply and initiatively. The business analysts are more confident about the test cases. It becomes easier to identify conflicts in business rules and test cases. The business analysts are clear about the status of acceptance testing. The business analysts could spend less time on sprint-end acceptance tests.

Slide 25

Slide 25 text

!25 Speeding it up with automation

Slide 26

Slide 26 text

!26

Slide 27

Slide 27 text

!27 Agile Software Development of Safety- Critical Systems? Safety analysis without an upfront architecture design? Unstable requirements that can change every few weeks? Iterative Safety Analysis BDD for communication and verification

Slide 28

Slide 28 text

Prof. Dr. Stefan Wagner e-mail [email protected] phone +49 (0) 711 685-88455 WWW www.iste.uni-stuttgart.de/se Twitter prof_wagnerst ORCID 0000-0002-5256-8429 Institute of Software Technology These slides are available at www.stefan-wagner.biz Joint work with Yang Wang (now at Bosch)

Slide 29

Slide 29 text

Pictures used in this slide deck Safety by GotCredit (https://flic.kr/p/qHCmfo, Got Credit) Scrum framework by Dr ian mitchell under CC BY-SA 4.0 (https:// en.wikipedia.org/wiki/Scrum_(software_development)#/media/ File:Scrum_Framework.png) Screenshot from http://agilemanifesto.org by Ward Cunningham