Silne argumentacje assurance case są tworzone poprzez budowanie zaufania do skuteczności poszczególnych kroków wnioskowania oraz demonstrowanie sposobu rozwiązania znanych słabości i błędów argumentacji. Te dwa podejścia reprezentują dwa różne kierunki argumentacji. Pierwszy koncentruje się na dostarczeniu solidnych podstaw argumentacji, a drugi na jej obronie przed znanymi słabościami i błędami.
Które podejście jest skuteczniejsze i powinno być stosowane? Jawne określenie słabości i błędów argumentacji wydaje się atrakcyjne, ponieważ dostarcza bezpośrednich odpowiedzi na nasze wątpliwości. Kiedy mam uwagę „ale…”, ktoś może wskazać odpowiadający jej fragment argumentacji i przedstawić sposób rozwiązania. W ten sposób argumentacja może rozwiać obawy osób wątpiących. Mogą być oni usatysfakcjonowani, gdy znajdą bezpośrednie odpowiedzi na swoje wątpliwości.
Z drugiej strony, radzenie sobie z argumentami obalającymi tworzy dodatkowe wyjaśnienia dla argumentu, który powinien być przede wszystkim słuszny. Jeśli argument jest słaby, odpowiedź na argument obalający powinna obejmować modyfikację struktury argumentacji. Aby tego uniknąć, powinniśmy od samego początku rozwijać trafne argumenty. Najlepszym sposobem jest oparcie się na sprawdzonych szablonach argumentacji i zapewnienie poprawności wszystkich etapów rozumowania. Celem jest uniknięcie słabości w całym procesie budowania argumentacji.
Jest kilka podstawowych zasad, które pomagają w tworzeniu silnych argumentacji.
- Określ strategię dla każdego kroku wnioskowania, unikaj bezpośredniego wsparcia postulatów przez inne postulaty. Pomoże to recenzentom sprawdzić, czy dekompozycja argumentacji jest kompletna i prawidłowa.
- Podaj uzasadnienie, dlaczego uważasz, że strategia jest prawidłowa dla danego postulatu w jego kontekście. Czy jest prawidłowa we wszystkich scenariuszach zastosowania? Czy uwzględniłeś wszystkie interakcje? Czy wszystkie postulaty podrzędne są prawidłowe w kontekście głównego postulatu? Zidentyfikuj wszystkie możliwe słabości. Uzasadnienie jest szczególnie ważne, gdy ponownie wykorzystujesz argumentację w nowym kontekście.
- Jeśli uzasadnienie nie jest proste, rozszerz je o argumentację zaufania.
Argumentacja zaufania potwierdza skuteczność głównej argumentacji. Te dwie argumentacje tworzą nierozerwalną parę i powinny być zawarte w jednym module assurance case. Pomaga to zapewnić spójność argumentacji. Moduł argumentacji może zawierać jeden lub więcej postulatów argumentacji zaufania. Ogólny schemat stosowania argumentacji zaufania jest przedstawiony na diagramie poniżej.
Argumentacja zaufania dla kroku wnioskowania powinna uzasadniać skuteczność danego wnioskowania, biorąc pod uwagę następujące warunki:
- Reguła wnioskowania jest skuteczna dla danego postulatu w jego kontekście.’
- Reguła wnioskowania została zastosowana poprawnie i obejmuje cały wymagany kontekst.’
- Przesłanki (postulaty wspierające) są poprawnie zdefiniowane i spełniają wszystkie warunki.
- Przesłanki są ważne i spójne.
- Nie ma nierozwiązanych zgłoszonych słabości i błędów wnioskowania.
Jasno określone strategie i uzasadnienia pomagają wcześnie zidentyfikować słabe punkty argumentacji. Chociaż może się to wydawać spowalniające proces rozwoju, wykrycie luk w argumentacji umożliwia wczesne dostosowanie jej struktury. Przeglądy argumentacji pod kątem wiarygodności, w miarę możliwości z udziałem zewnętrznych recenzentów, są dobrą praktyką w procesie zapewnienia bezpieczeństwa systemu.
Więcej na temat stosowania argumentacji zaufania można przeczytać w artykule „Integrating Confidence and Assurance Arguments” opublikowanym w 2015 roku. Główna idea argumentacji zaufania jest nadal aktualna.