Introduction |
|
xi | |
|
|
Chapter 1 From Classic Languages to Formal Methods |
|
|
1 | (54) |
|
|
|
1 | (1) |
|
|
2 | (31) |
|
1.2.1 Development process |
|
|
2 | (4) |
|
|
6 | (12) |
|
1.2.3 Specification and architecture |
|
|
18 | (9) |
|
1.2.4 Verification and validation (V & V) |
|
|
27 | (6) |
|
|
33 | (1) |
|
1.3 Structured, semi-formal and/or formal methods |
|
|
33 | (6) |
|
|
33 | (2) |
|
|
35 | (1) |
|
1.3.3 Taking into account techniques and formal methods |
|
|
36 | (3) |
|
|
39 | (6) |
|
|
39 | (1) |
|
1.4.2 Examples of formal methods |
|
|
39 | (6) |
|
|
45 | (4) |
|
|
49 | (6) |
|
Chapter 2 Formal Method in the Railway Sector the First Complex Application: SAET-METEOR |
|
|
55 | (72) |
|
|
|
55 | (1) |
|
|
56 | (6) |
|
2.2.1 Decomposition of the SAET-METEOR |
|
|
57 | (4) |
|
2.2.2 Anticollision functions |
|
|
61 | (1) |
|
|
62 | (1) |
|
2.3 The supplier realization process |
|
|
62 | (16) |
|
|
62 | (2) |
|
2.3.2 The hardware aspect |
|
|
64 | (3) |
|
2.3.3 The software aspect |
|
|
67 | (11) |
|
2.3.4 Assessment of the processes |
|
|
78 | (1) |
|
2.4 Process of verification and validation set up by RATP |
|
|
78 | (36) |
|
|
78 | (1) |
|
|
79 | (1) |
|
2.4.3 Verification carried out by RATP |
|
|
79 | (24) |
|
|
103 | (9) |
|
2.4.5 Assessment of RATP activity |
|
|
112 | (2) |
|
2.5 Assessment of the global approach |
|
|
114 | (1) |
|
|
115 | (1) |
|
|
116 | (6) |
|
2.7.1 Object of the track |
|
|
116 | (4) |
|
|
120 | (2) |
|
|
122 | (5) |
|
Chapter 3 The B Method and B Tools |
|
|
127 | (32) |
|
|
|
127 | (1) |
|
|
128 | (9) |
|
3.2.1 The concept of abstract machines |
|
|
128 | (5) |
|
3.2.2 Machines with implementations |
|
|
133 | (4) |
|
3.3 Verification and validation (V & V) |
|
|
137 | (4) |
|
3.3.1 Internal verification |
|
|
137 | (4) |
|
|
141 | (5) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
142 | (2) |
|
|
144 | (2) |
|
|
146 | (4) |
|
3.5.1 Layered development |
|
|
146 | (2) |
|
3.5.2 Link between the project structure and the POs |
|
|
148 | (1) |
|
3.5.3 Cycle of development of a B project |
|
|
148 | (2) |
|
|
150 | (5) |
|
|
150 | (1) |
|
|
151 | (4) |
|
|
155 | (1) |
|
|
155 | (4) |
|
Chapter 4 Model-Based Design Using Simulink - Modeling, Code Generation, Verification, and Validation |
|
|
159 | (24) |
|
|
|
|
159 | (3) |
|
4.2 Embedded software development using Model-Based Design |
|
|
162 | (2) |
|
4.3 Case study - an electronic throttle control system |
|
|
164 | (9) |
|
|
164 | (1) |
|
|
164 | (5) |
|
4.3.3 Automatic code generation |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
170 | (2) |
|
4.3.6 Including legacy code |
|
|
172 | (1) |
|
4.3.7 Importing interface definitions |
|
|
172 | (1) |
|
4.3.8 Importing algorithms |
|
|
173 | (1) |
|
4.4 Verification and validation of models and generated code |
|
|
173 | (4) |
|
4.4.1 Integrating verification and validation with Model-Based Design |
|
|
173 | (2) |
|
4.4.2 Design verification |
|
|
175 | (1) |
|
4.4.3 Reviews and static analyses at the model level |
|
|
175 | (1) |
|
4.4.4 Module and integration testing at the model level |
|
|
175 | (1) |
|
|
176 | (1) |
|
4.4.6 Back-to-back comparison testing between model and code |
|
|
176 | (1) |
|
4.4.7 Measures to prevent unintended functionality |
|
|
176 | (1) |
|
4.5 Compliance with safety standards |
|
|
177 | (1) |
|
|
178 | (1) |
|
|
178 | (5) |
|
Chapter 5 Proving Global Properties with the Aid of the SIMULINK DESIGN VERIFIER Proof Tool |
|
|
183 | (42) |
|
|
|
|
183 | (1) |
|
5.2 Formal proof or verification method |
|
|
184 | (9) |
|
|
186 | (3) |
|
5.2.2 Formal methods, and proof of correction |
|
|
189 | (3) |
|
5.2.3 Combining models and proof tools |
|
|
192 | (1) |
|
5.3 Implementation of the SIMULINK DESIGN VERIFIER tool |
|
|
193 | (18) |
|
5.3.1 Reminders of the MATLAB modeling and verification environment |
|
|
194 | (7) |
|
|
201 | (3) |
|
|
204 | (7) |
|
|
211 | (1) |
|
5.4 Experience feedback and methodological aspects |
|
|
211 | (7) |
|
5.4.1 Modeling rules and convergence control |
|
|
211 | (2) |
|
5.4.2 Modular proof phase |
|
|
213 | (1) |
|
5.4.3 Proof of global properties |
|
|
214 | (3) |
|
5.4.4 Detection of counterexamples |
|
|
217 | (1) |
|
5.5 Study case feedback and conclusions |
|
|
218 | (2) |
|
|
218 | (1) |
|
|
218 | (2) |
|
5.5.3 Incremental verification approach |
|
|
220 | (1) |
|
5.6 Contributions of the methodology compared with the EN50128 normative referential |
|
|
220 | (2) |
|
|
222 | (3) |
|
Chapter 6 SCADE: Implementation and Applications |
|
|
225 | (48) |
|
|
|
225 | (1) |
|
6.2 Issues of embedded safety-critical software |
|
|
225 | (3) |
|
6.2.1 Characteristics of embedded safety-critical software |
|
|
225 | (1) |
|
6.2.2 Architecture of an embedded safety-critical application |
|
|
226 | (1) |
|
6.2.3 Criticality and normative requirements for embedded safety-critical applications |
|
|
226 | (1) |
|
6.2.4 Complexity, cost and delays |
|
|
227 | (1) |
|
|
228 | (3) |
|
|
228 | (1) |
|
6.3.2 Initial industrial approaches |
|
|
228 | (2) |
|
6.3.3 "Real-time" extensions of current languages |
|
|
230 | (1) |
|
6.3.4 Synchronous formal languages dedicated to "real-time" created in laboratories |
|
|
230 | (1) |
|
|
231 | (1) |
|
6.4 The SCADE data-flow language |
|
|
231 | (9) |
|
|
231 | (1) |
|
6.4.2 Synchronous language |
|
|
232 | (1) |
|
6.4.3 "Data-flow" functional language |
|
|
233 | (1) |
|
|
234 | (1) |
|
6.4.5 Structured data types |
|
|
235 | (1) |
|
6.4.6 Clocks, temporal operators, and causality |
|
|
235 | (2) |
|
|
237 | (1) |
|
6.4.8 Imperative structures |
|
|
238 | (1) |
|
6.4.9 Rigor and functional safety |
|
|
239 | (1) |
|
6.5 Conclusion: extensions of languages for controllers and iterative processing |
|
|
240 | (6) |
|
|
240 | (1) |
|
|
241 | (2) |
|
6.5.3 Iterative processing |
|
|
243 | (3) |
|
|
246 | (10) |
|
6.6.1 Outline of the SCADE workbench |
|
|
246 | (1) |
|
|
247 | (5) |
|
6.6.3 Performance prediction |
|
|
252 | (1) |
|
6.6.4 The qualified code generator |
|
|
253 | (3) |
|
6.7 Application of SCADE in the aeronautical industry |
|
|
256 | (5) |
|
6.7.1 History: Aerospatiale and Thales Avionique |
|
|
256 | (1) |
|
6.7.2 Control/command type applications |
|
|
257 | (3) |
|
6.7.3 Monitoring/alarm type applications |
|
|
260 | (1) |
|
|
261 | (1) |
|
6.8 Application of SCADE in the rail industry |
|
|
261 | (4) |
|
|
262 | (1) |
|
6.8.2 Applications developed for the RATP and other French metros |
|
|
262 | (1) |
|
6.8.3 Generic PAI-NG applications |
|
|
263 | (1) |
|
6.8.4 Example of automated door control |
|
|
264 | (1) |
|
6.9 Application of SCADE in the nuclear and other industries |
|
|
265 | (4) |
|
6.9.1 Applications in the nuclear industry |
|
|
265 | (3) |
|
6.9.2 Deployment of SCADE in the civil nuclear industry |
|
|
268 | (1) |
|
|
269 | (1) |
|
|
270 | (3) |
|
Chapter 7 GATeL: A V & V Platform for SCADE Models |
|
|
273 | (14) |
|
|
|
|
|
|
273 | (2) |
|
|
275 | (1) |
|
|
276 | (3) |
|
|
277 | (1) |
|
|
278 | (1) |
|
7.4 Assistance in the design of test selection strategies |
|
|
279 | (4) |
|
7.4.1 Unfolding of SCADE operators |
|
|
279 | (2) |
|
7.4.2 Functional scenarios |
|
|
281 | (2) |
|
|
283 | (1) |
|
|
284 | (1) |
|
|
285 | (2) |
|
Chapter 8 ControlBuild, a Development Framework for Control Engineering |
|
|
287 | (38) |
|
|
|
287 | (2) |
|
8.2 Development of the control system |
|
|
289 | (11) |
|
|
290 | (1) |
|
8.2.2 Development process equipment |
|
|
291 | (2) |
|
8.2.3 A component-based approach |
|
|
293 | (1) |
|
8.2.4 Development methodology |
|
|
294 | (6) |
|
|
300 | (11) |
|
|
301 | (1) |
|
8.3.2 IEC1131-3 languages for embedded control |
|
|
302 | (7) |
|
8.3.3 Electrical schematics for conventional control |
|
|
309 | (2) |
|
8.3.4 Electromechanical and physical environment |
|
|
311 | (1) |
|
|
311 | (7) |
|
|
313 | (1) |
|
|
314 | (1) |
|
8.4.3 Automatic test procedure execution |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
315 | (1) |
|
8.4.6 SSIL2 code generation |
|
|
315 | (1) |
|
8.4.7 Management of the project documentation |
|
|
316 | (1) |
|
8.4.8 Traceability of requirements |
|
|
317 | (1) |
|
8.5 Examples of railway use cases |
|
|
318 | (5) |
|
8.5.1 Specification validation |
|
|
318 | (1) |
|
|
319 | (1) |
|
8.5.3 Progressive integration bench - HiL |
|
|
320 | (3) |
|
|
323 | (1) |
|
|
323 | (2) |
|
|
325 | (20) |
|
|
|
325 | (1) |
|
|
326 | (1) |
|
|
327 | (5) |
|
|
327 | (1) |
|
9.3.2 Properties and requirements |
|
|
328 | (2) |
|
9.3.3 Implementation of formal methods |
|
|
330 | (2) |
|
9.4 Implementing formal methods |
|
|
332 | (5) |
|
9.4.1 Conventional process |
|
|
332 | (1) |
|
9.4.2 Process accounting for formal methods |
|
|
333 | (2) |
|
|
335 | (2) |
|
9.5 Realization of a software application |
|
|
337 | (2) |
|
|
339 | (1) |
|
|
340 | (5) |
Glossary |
|
345 | (6) |
List of Authors |
|
351 | (2) |
Index |
|
353 | |