terça-feira, 6 de novembro de 2012
Aplicação inspeções de código - O Bom, o Mau eo Feio
Por que é que depois de muita discussão ao longo dos anos que ainda estamos falando sobre fornecedores de software colocando para aplicações de mercado que são claramente não está pronto para o horário nobre? Aplicações com vários bugs, peculiaridades sem documentos, e falhas de segurança estão sendo desenvolvidos e vendidos todos os dias por grandes empresas de software e desenvolvedor de aplicativos independente tanto. É que inspeções de código não são amplamente implementadas ou que o teste realizado não é abrangente o suficiente? O que é inspeção de código e como um fornecedor de software de gestão, juntamente com a natureza humana interagir junto a desempenhar um papel neste problema?
Inspeção de código é uma análise muito aprofundada de código que coloca um grupo de pessoas para atravessar a lógica de cada linha de código em um aplicativo. O primeiro problema que vem à mente é que as aplicações podem variar de algumas linhas de código para vários milhões e torna-se evidente que a tarefa de inspeção de código poderia ser uma provação muito longo e enfadonho, e exigente para os envolvidos na revisão. Isso me leva ao próximo ponto de discutir quem seria envolvido na revisão. Um grupo envolvido seriam os desenvolvedores do aplicativo e haverá vários outros envolvidos que são ou programadores si mesmos e / ou testadores de aplicações profissionais. Do ponto de vista dos desenvolvedores de aplicativos, este processo poderia ter a aparência de uma inquisição e eles podem não ser muito próxima durante o processo. No caso em que todos os envolvidos são cordial, profissional, e os desenvolvedores de aplicativos não se ofender facilmente para fechar inspeção de seu trabalho, então o processo deve funcionar sem problemas.
Inspeção de código por estas equipas normalmente pode ser realizada a uma taxa de cerca de 150 linhas de código por hora e se a minha matemática está correta, uma aplicação de médio porte, com 99 mil linhas de código levaria aproximadamente 660 horas para completar ou mais de 82 oito horas por dia. Claro, quebrando a tarefa em vários blocos para várias equipes para trabalhar em reduziria a linha do tempo, mas pode não ser vantajoso, pois o benefício da continuidade e conhecimento acumulado adquirida por rever a aplicação do início ao fim, o que contribui para inspeções melhores, seria perdida. Depois, há a questão de ele ser quase humanamente impossível passar todo um código de 8 horas dia de trabalho de revisão, portanto, um valor mais realista de tempo por dia para revisar o código é de 5 horas, o que aumentaria o cronograma geral para a conclusão, no exemplo , a quase quatro meses e meio.
Infelizmente, a gestão de muitas empresas de software não financiar tal um processo de revisão em profundidade e pode permitir apenas uma inspeção superficial então adaptar uma postura que vai desenvolver manchas, se e quando os erros são relatados pelos consumidores. Os desenvolvedores de software que criam aplicativos que controlam equipamentos médicos e de segurança normalmente não tomar essa atitude, mas já houve casos (a máquina de radioterapia Therac-25 vem à mente), onde inspeções completas e testes não foram realizados e vidas foram perdidas.
Os clientes normalmente, e compreensivelmente, acreditam que eles têm uma relação de confiança entre eles e as empresas que os vendem produtos. Esta natureza humana de confiança estende-se a desenvolvedores de software, onde eles acreditam que o vendedor tenha feito a sua diligência para assegurar que a aplicação é livre de defeitos e que eles estão comprando um produto de qualidade. Nós sabemos que este não é sempre o caso, especialmente quando você lê os acordos de licenciamento ... sim, o acordo de licenciamento. Esse é o texto que você vê primeiro ao instalar um aplicativo e completamente explica os direitos conferidos ao consumidor e os direitos concedidos para o fornecedor. Clicando no botão "Eu compreendo" caixa e, em seguida, clicando em "Next" sem lê-lo, como a maioria das pessoas faz, vai impedir o cliente de perceber que o uso, ou simplesmente a instalação, da aplicação implica a aceitação integral dos termos que, invariavelmente, tem um disposição que indeniza os desenvolvedores de aplicativos ou a empresa de software de qualquer responsabilidade decorrente do uso do produto.
Talvez a solução para este problema aparentemente velhice é a introdução de legislação que exige a eliminação de tais cláusulas de acordos de licenciamento que podem, eventualmente, tornar-se o catalisador no desenvolvimento de software livre de defeitos.
Este artigo foi publicado anteriormente em 2007/10/30.
2010/02/21 Update - Veja aqui informações sobre as iniciativas para tratar mal escrito http://www.sans.org/appseccontract/ aplicações
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário