Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouVitória Robello Alterado mais de 10 anos atrás
1
Run Time Safety Checking MO828 – Tópicos em Engenharia de Software II Profa. Eliane Martins
2
Safety Assurance Safety x Reliability: validação consiste de processos diferentes Reliability: há formas quantitativas para medir Safety: não há formas diretas para medição Importância do processo: garante o nível de safety
3
Validando Safety Provas de corretude de código: código atende especificação de safety esforço e custos altos Alternativa: garantir que, em execução, o programa não entra em um estado inseguro conhecido pré-condições do estado inseguro não devem ser atendidas pelas pós-condições das rotinas
4
Exemplo: Insulin Pump
5
static void administerInsulin ( ) throws SafetyException { int maxIncrements = InsulinPump.maxDose / 8 ; int increments = InsulinPump.currentDose / 8 ; // currentDose <= InsulinPump.maxDose if (InsulinPump.currentDose > InsulinPump.maxDose) throw new SafetyException (Pump.doseHigh); else for (int i=1; i<= increments; i++){ generateSignal () ; if (i > maxIncrements) throw new SafetyException (Pump.incorrectIncrements); } // for loop } //administerInsulin
6
JAVA: comando assert assert Expressao1 [: Expressao2]; Se Expressao1 for verdadeiro, segue a execução Se Expressao1 for falso, lança um AssertionError Expressao2 (opcional) é passado para o construtor do AssertionError
7
JAVA: comando assert Uso: pré e pós condições, invariantes e salvaguardas Asserções presentes no código podem ser ligadas e desligadas javac -source 1.4 MyClass.java java [-enableassertions | -ea:...] [classname]
8
JAVA: comando assert static void administerInsulin ( ) { int maxIncrements = InsulinPump.maxDose / 8 ; int increments = InsulinPump.currentDose / 8 ; assert currentDose <= InsulinPump.maxDose : Pump.doseHigh; for (int i=1; i<= increments; i++){ generateSignal () ; assert i<= maxIncrements : Pump.incorrectIncrements; } // for loop } //administerInsulin
9
Referências SOMMERVILLE, Ian - Software Engineering, chapter 21.4, 6th edition, Addison-Wesley, 2001 Programming with Assertions http://java.sun.com/j2se/1.4/docs/guide/lang /assert.html GRIES, David - The Science of Programming, Spring Verlag, 1981
10
Perguntas? ? Obrigado! rodrigo.tomita@ic.unicamp.br
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.