Agile está programando também ... ad hoc para os sistemas de segurança crítica? [fechadas]

StackOverflow https://stackoverflow.com/questions/233707

Pergunta

Por exemplo, seria extremamente perigoso para fazer isso por software de aviônicos?

Note, eu não entendo completamente Agile.

Foi útil?

Solução

Eu trabalhei em sistemas de tráfego aéreo controle usando um processo essencialmente cachoeira, e esses projectos definitivamente poderia ter beneficiado de práticas ágeis. Eu não gosto de pensar sobre o quanto desse código funcionou "por acidente", sem qualquer tipo de testes de regressão automatizado de nível unidade. E a coisa-requisitos-up frente é algo de um arenque vermelho. Embora seja verdade que os sistemas aeroespaciais são provavelmente o mais próximo que se pode chegar a ter requisitos de set-em-pedra na frente, você ainda tem argumentos sobre o significado dos requisitos ambíguos que só aparecem quando o sistema está deveria estar em testes de aceitação. Ou você tem rendimento questões que ninguém tinha considerado que aparecem no final do jogo por causa de integração big-bang. Test-primeiro, soluções de pico, integração contínua, par-programação -. Eu acho que tudo isso teria melhorado os projectos em que trabalhei

UPDATE: para não mencionar quantas vezes os "documentos de design" eram um monte de mentiras até o final do projeto, porque o projeto necessariamente evoluiu em face da realidade. Agile reconhece o fato de design emergente, que é tão real em projetos de Cachoeira como em qualquer outro, ao invés de tentar fingir que você pode obter o projeto certo antes mesmo de começar a escrever código.

Outras dicas

Eu trabalho em aeroespaciais (satélites especificamente), e usamos uma abordagem híbrida, porque nós enfrentamos duas preocupações diferentes: Requisitos Requisitos do mundo real e processos de negócios

.

Nós usamos uma abordagem em cascata-ish para os requisitos de naves espaciais e seções críticas porque as mudanças para o satélite são lentos e raro, e estragar não é ruim.

Mas para sempre mudando processos de negócios que usamos uma abordagem ágil-ish porque como eles voam a nave espacial está em constante mutação devido às demandas dos clientes. Estragar Existem meios no pior caso o usuário não-tão-bons obtém resultados.

Eu não tenho bastante experiência nesse campo (que não seja um usuário de sistemas de aviação) para formar minha própria opinião verdadeiramente independente. No entanto, todas as coisas que eu continuo lendo sobre os sistemas críticos que têm as melhores ligações historial me para acreditar que cachoeira é realmente o melhor caminho. É possível porque as pessoas estão dispostas a permitir o desperdício extra de requisitos de congelamento, a fim de promover a segurança. Trade-offs são um pouco diferente, nesse caso, eu acho.

Determinar a aplicabilidade das práticas ágeis de Missão e Vida Critical-Systems

Agile Adequação Filtros

Em suma, não há nenhuma programação "Agile". Há um conjunto de práticas. Alguns prestam-se melhor do que outros, mas em geral, qualquer projeto irá beneficiar de algumas das práticas.

são tipicamente preocupado com os maiores pessoas da área é Modelagem e Arquitetura. Há uma abundância de equipes lá fora, utilizando práticas ágeis - por exemplo, eu sei membros da Fun3d equipe com a NASA - eles usam práticas ágeis e lidar com coisas como suporte Space Shuttle

.

Existem vários grupos lá fora dedicados a este tipo de trabalho - por isso é possível. Você apenas tem que estar ciente de seus riscos -. Como qualquer outra metodologia

Agile deve ser um processo disciplinado. Seja qual for o seu processo, questões de segurança, neste caso, deve ser abordada na frente. Eu não vejo como a entrega em iterações, usando um sistema de compilação contínua, o cálculo das taxas programador de queimaduras, tendo levantar-se reuniões, tendo o cliente envolvido ativa, etc seria negativamente segurança de impacto.

Existem muitas considerações. O primeiro é o que sua criticidade segurança é. Se sua resposta for "A" ou "B" (e realmente "A"), em seguida, absolutamente não. Você não vai se safar fazendo Agile em forma de qualquer maneira ou forma. Existem normas muito rigorosas de codificação, padrões de documentação e padrões de processos necessários de software Nível A (o meu fundo de cerca de 15 anos). Isto inclui:

  • -se Full / baixo rastreabilidade.
  • cobertura ramo completa.
  • cobertura multi-condicional completa.
  • documentos básicos enunciados pela DO-178B incluem: SRD, SDD, SCI, SCMP, SDP, TQP, SCI ...

Assim, não só você tem que certificar o seu código, design e requisitos, mas você também tem que conjuntos de ferramentas, compiladores, equipamentos de teste automatizado certificar e assim por diante.

Em suma, é realmente não é pouca coisa e não vai ser feito com uma pequena equipe. Da mesma forma, as interfaces são realmente sólido e muito específico, bem como estático. Alterar as interfaces normalmente requer coordenação com 3+ empresas (confecção Airframe, Vender 1 conversando com Vender 2).

Em toda a honestidade, a 12 linha de alteração de código pode custar mais de US $ 170.000. Claro, a 500 linha de alteração de código será de R $ 190.000. Em resumo, há um processo de grande sobrecarga associada com o código de nível A (muito menos com Nível B, ainda menos com C e muito pouco com o Nível D) fazendo pequenas iterações muito dispendioso; ie. que custa muito dinheiro para obter um totalmente abastecido e voar 777 para testar uma pequena mudança. Mesmo laboratórios de teste do sistema de grandes aviões comerciais terá uma taxa de queima de US $ 10.000 / dia.

Por exemplo: Nível A: HUD, reversores, poder-Systems, FADEC (controle do motor) Nível B: Switching Secundária Lógica, sistemas Vocal Comunicação. Nível C: Em ligações de dados de voo. Nível D:. Em sistemas de entretenimento de vôo

Nível D e, talvez Nível C, podem ser candidatos para Agile.

Eu acho que depende de como as de segurança-demandas integrado no processo. Se eles são um conjunto extra de testes, de que nada do que está em contradição com a programação ágil. Eu acho que os métodos ágeis pode ajudá-lo a produzir software mais seguro, porque os projetos ágeis tendem a ser de melhor qualidade do Cachoeira-projectos. Importante será, que a qualidade-garantia adicional de ter instalado também está em uso para os ágeis-métodos.

Mas, se a segurança-exigências são aplicadas para o processo de construção, que pode estar em contradição com métodos ágeis.

Na verdade, há uma variação do modelo em cascata chamado o V-modelo, que é favorecido por IEC61508 por exemplo. É cachoeira-sort-of, mas com provisões para re-iteração (s) do ciclo básico do projeto. O principal objetivo dos re-iterações neste caso é lidar com problemas detectados em várias fases do processo. A idéia básica é que quanto mais tarde abaixo da estrada você encontrar um problema, quanto mais para trás em seu processo você tem que ir para cuidar e analisar o impacto das suas alterações.

Portanto, não é realmente Agile, mas ...: -)

Você pode usar a abordagem ágil, mas a primeira passagem teria de incluir seus aspectos de segurança e de segurança, ou pelo menos fornecer para eles, para que você não atirar no próprio pé e acabam reescrevendo a coisa toda. Mas eu concordo com Brian, você é provavelmente melhor fora de usar a abordagem Cachoeira por tais projetos.

Conferência sobre EuroStar 2009 Gittie Ottosen falou sobre como eles fazem ágil em sua companhia. O que é impressionante é que esta empresa sistemática está criando software para aparelhos de ar artesanato, etc. militar Eles fazê-lo em conformidade com CMMI 5, ISO 9001 e AQAP 150 & 2110. Então eu acho ágil pode ser aplicada a sistemas com os regulamentos elevados. Talvez tente olhar-se que a apresentação, e tentar obter mais informações a partir dele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top