Software para Sistemas Críticos Nuno Silva, Engineering Manager Encontro Nacional Colégio Informática da Ordem dos Engenheiros, 16-09-2005 Dependable Technologies for Critical Systems Copyright Critical Software S.A. 1998-2005 All Rights Reserved.
Sumário Critical Software SA Software para Sistemas Críticos Perguntas & Respostas 2
Critical Software SA missão Fornecer soluções, sistemas e tecnologias fiáveis e inovadoras para sistemas de informação críticos das empresas. Fundada em 1998 como spin-off. Início de actividade no nicho de mercado de confiabilidade de software, crescimento pela diversificação. Excelência em Engenharia de Software: qualidade, confiabilidade, inovação. Focus em soluções mission and business crítical 3
A Critical Software num slide Markets Serviços de Engenharia de Software & Consultoria Tecnologias & Produtos Solutions o Enterprise Applications Integration o Embedded Systems & Dependability o Command & Control o Redes e Comunicações Qualidade de Software Areas of expertise 4
Software para Sistemas Críticos Características Sistemas Críticos & Confiabilidade Desenvolvimento de Sistemas Críticos Verificação e Validação de Sistemas Críticos 5
Software para Sistemas Críticos Home Page da IST Results, European Commission R&D, Março 2005 6
Software para Sistemas Críticos na CSW Digisis c o n s u l t o r e s 7
Características I Têm requisitos rigorosos Requisitos temporais agressivos Requisitos funcionais estritos Normalmente são embebidos Difícil acesso aos dados (monitorização) Poucos e limitados recursos 8
Características II Determinismo Temporal Funcional Faz exactamente o que é suposto fazer e na altura que deve fazer Previsibilidade Prever com exactidão os tempos de execução Prever com exactidão os comportamentos que apresenta 9
Sistemas Críticos Safety-critical systems Falhas resultam em perca de vida, ferimentos ou danos ambientais; Sistema de proteção de centrais núcleares/químicas; Mission-critical systems Falhas resultam no incumprimento de objectivos da actividade; Sistema de navegação de satélites/naves espaciais; Business-critical systems Falhas resultam em elevadas percas económicas; Sistemas transacionais & pagamentos (banca); 10
Confiabilidade dos Sistemas Nos sistemas críticos, a confiabilidade dos mesmos é normalmente a propriedade mais importante A confiabilidade do sistema reflete o grau de confiança desse sistema. Reflete a confiança do utilizador de que o sistema operará como esperado e que ' não falhará ' em situações normais. Atenção: Não é porque se confia no sistema que este é útil 11
Importância da Confiabilidade Sistemas que não são confiáveis ou inseguros são rejeitados. Os custos de uma falha do sistema podem ser extremamente elevados. Sistemas não confiáveis podem causar percas de informação com consequências graves a nível de custos de recuperação. 12
Métodos de desenvolvimento Os custos inerentes às falhas de sistemas críticos são tão elevados que os métodos de denvolvimento desses sistemas tornam-se também caros e não são rentáveis para outros tipos de sistemas. Exemplos de métodos Métodos formais para desenvolvimento de software Análise estática Quality assurance independente 13
Custo versus Confiabilidade Cost Low Medium High Very high Dependability Ultra-high 14
Pontos chave I Um sistema crítico é um sistema onde uma falha pode levar elevadas percas economicas, danos físicos ou perigo de vida. A Dependability do sistema reflete a confiança do utilizador no sistema A Availability de um sistema é a probabilidade de que este estará disponível para fornecer serviços quando pedido A Reliability de um sistema é a probabilidade de que o sistema estará operacional (sem avarias) por um dado período de tempo Reliability e Availability são necessários mas não suficientes para a Safety e Security de um sistema 15
Pontos chave II Reliability está relacionada com a probabilidade de uma falha ocorrer durante a utilização nominal do sistema. Um sistema com falhas conhecidas pode ser confiável Safety é um atributo do sistema que reflecte a capacidade do sistema em operar sem ameaças Security é um atributo do sistema que reflecte a capacidade do mesmo em se proteger de ameaças externas (falhas malévolas) 16
Desenvolvimento I Para dar resposta a pedidos com requisitos de timing Sistemas têm de permitir rápida mudança entre os handlers de estimulos. Como recebem diferentes tipos de pedidos Normalmente um só ciclo sequencial de tratamento não é suficiente Sistemas com conjuntos de processos que intercomunicam entre si e com um sistema operativo de tempo real que controla estes processos Os processos executam-se em paralelo nos sistemas de tempo real 17
Desenvolvimento II Sistemas que podem necessitar simulações extensivas de maneira a provar o cumprimento dos requisitos temporais Estratégias de design com OO são ainda pouco frequentes por causa do overhead Programação de baixo nível é imprescindivel por razões de desempenho 18
Desenvolvimento III Sistemas que podem ser desenvolvidos em linguagens como Ada, C e C++. Podendo usufruir da programação de baixo nível (código eficiente) Falta no entanto algumas facilidades para desenvolvimento de sistemas de tempo real (criar e gerir processos concorrentes, sincronização e controlo, acesso a um relógio de tempo real, modificação de prioridades, etc) 19
Desenvolvimento IV Sistemas operativos específicos (memória e recursos limitados), e.g. RTEMS 20
Desenvolvimento V Componentes de sistemas operativos (de tempo real): Relógio de tempo-real Handler de interrupções Escalonador Gestor de recursos Dispatcher 21
Verificação e Validação de Sistemas Críticos ISVV Independent Software Verificação = Do things right Validação = Do the right thing Técnicas de Verificação: Análise de Escalonabilidade, Revisão de requisitos e design de software, Inspecções/Análise de Código, Software Failure Modes, Effects and Criticality Analysis (SFMECA) Hardware Software Interaction Analysis (HSIA) Software Fault Tree Analysis (SFTA) Técnicas de Validação: Ambientes de validação de Software Testes de Robustez Stress Testing e Injecção de Falhas Modelização e simulação 22
Verificação e Validação de Sistemas Críticos Xception: Líder em tecnologia de Injecção de Falhas Testes de robustez high-end para sistemas críticos Ambiente para automatização de testes de robustez: Geração de casos de teste Execução automática Recolha e análise de Resultados Utiliza a plataforma hardware/software real (não simulada) Simula falhas de hardware e software em várias plataformas. 23
Perguntas & Respostas? Nuno Silva, Engineering Manager, Embedded & Dependability nsilva@criticalsoftware.com 24