Przepływ sterowania w programach komputerowych
— | ||
tl Corrado Bohm INAC-CNR, Rzym |
Dla każdego programu istnieje równoważny program korzystający jedynie z sekwencji i iteracji (while) jako struktur przepływu sterowania. | |
C. Bóhm, G. Jacopini, Flow diagrams, Turing Machines and Languages with only Two Formation Rules, Comm. olttie ACM, 9(5): 366-371,1966. |
P rog ramo wan ie stru ktu raln e:
• sekwencja
■ selekcja (if-then-else)
• iteracja (while-do)_
Edsger W. Dijkstra E.W. Dijkstra, Go To Statement
Eindhoven Univ. of Technology Considered Harmful, Comm.ofthi
ACM, Volume 11 (3): 147 -148,
If-then-else może być szkodliwe | |
Boolean Primary (int n){ int i, result; if (n < 1) {result= False; ERROR "Wrong Input" } |
Sprawdzanie, że N jest liczbą pierwszą |
2. System ustawia zmienną pomoc. RESULT naTRUEiKna 3. 3. W przypadku podzielności N przez K system ustawia RESULT na FALSE. 4. System powiększa K o 2 i wraca do kroku 3. | |
(result= True; for (i=3; i < n/2; i+=2) [ if (n%i==0) result= FalseJ |
2a.N<1 2a1. System informuje o błędzie. 2b. N=1 or N=2 2b1. System ust RESULT na TRUE. 2c. N jest podzielne ... |
• Wcześniejsze podejścia do wymagań funkcjonalnych
■ Przypadki użycia
• If-then może być szkodliwe
■ Wzorce przypadków użycia
• Przypadki użycia a IEEE 830
Transakcje wartościowe dla użytkownika
Zidentyfikuj wartościowe usługi, jakie system dostarcza aktorom, aby osiągnęli swoje cele biznesowe._
4