Desenvolvimento de Software SMC-S-012
O objetivo da norma “SMC-S-012 Desenvolvimento de Software”, publicada pelo Centro de Sistemas Espaciais e de Mísseis (SMC) do Comando Espacial da Força Aérea dos EUA, é definir requisitos uniformes para atividades de desenvolvimento de software para sistemas de missão crítica. Esta norma é baseada na norma “MIL-STD-498 Padrão Militar: Desenvolvimento e Documentação de Software”, desenvolvida pelo Departamento de Defesa dos Estados Unidos.

Esta norma se aplica ao desenvolvimento de sistemas de missão crítica que incluem software (como sistemas de hardware-software), sistemas somente de software e produtos de software independentes. Este padrão pode ser aplicado a contratantes que realizam desenvolvimento de software ou a agências internas que fazem compras. Esta norma pode ser adaptada para cada categoria de software à qual se aplica.
Este padrão é independente de qualquer método ou ferramenta específica de desenvolvimento de software. Nenhum requisito nesta norma determina o uso de qualquer método ou ferramenta específica.
A estrutura usada para organizar as principais atividades de software no processo de desenvolvimento de software é chamada de modelo de ciclo de vida de desenvolvimento de software.
- O desenvolvedor deve escolher o modelo ou modelos de ciclo de vida de desenvolvimento de software apropriados para o software que está sendo desenvolvido. Um projeto de software pode ter vários modelos de ciclo de vida de desenvolvimento de software para diferentes categorias de software desenvolvido.
- O desenvolvedor deve registrar o(s) modelo(s) de ciclo de vida de desenvolvimento de software selecionado(s) no modelo “Plano de desenvolvimento de software” em anexo.
- O desenvolvedor deve fornecer uma descrição de cada modelo de ciclo de vida de desenvolvimento de software que será usado no projeto no plano de desenvolvimento de software.
- Para cada modelo de ciclo de vida de desenvolvimento de software a ser utilizado, o desenvolvedor deve definir no plano de desenvolvimento de software:
- Em que ponto do ciclo de vida de desenvolvimento do sistema ele será usado?
- Em que condições ele será usado?
- Quais elementos de software usar para
- O desenvolvedor deve estabelecer um processo de desenvolvimento de software que seja consistente com os requisitos do contrato.
- O processo de desenvolvimento de software deve incluir as seguintes atividades principais e processos integrados:
- Planejamento e controle de projetos
- Criando um ambiente de desenvolvimento de software
- Análise de requisitos do sistema
- Projeto de arquitetura de sistema
- Análise de requisitos de software
- Arquitetura e design de software
- Implementação de software e testes unitários
- Integração e teste de unidades
- Teste de qualificação de elementos de software
- Integração e teste de elementos de software e hardware
- Teste de qualificação do sistema
- Preparando o software para transição para operações
- Preparando o software para transição para manutenção
- Processos integrados:
- Gerenciamento de configuração de software
- Avaliações de software por pares e classificações de produtos
- Garantia de qualidade de software
- Ação corretiva
- Revisões técnicas e de gestão conjuntas
- Gestão de riscos de software
- Medição de software
- Güvenlik e gizlilik
- Gestão de membros da equipe de software
- Interface com agentes de software IV&V
- Coordenação com desenvolvedores parceiros
- Melhorando os processos do projeto
Essas atividades importantes podem se sobrepor, ser implementadas iterativamente ou ser implementadas de forma diferente. Ela se refere a vários elementos do software e não é necessariamente executada na ordem listada acima.
- Os processos de desenvolvimento de software do desenvolvedor devem ser descritos no plano de desenvolvimento de software.
Os requisitos gerais para desenvolvimento de software incluem requisitos gerais para desenvolvedores atenderem aos requisitos detalhados definidos neste padrão. Requisitos mais detalhados estão incluídos no anexo da norma (Anexo H.1).
- Métodos de desenvolvimento de software: O desenvolvedor deve usar métodos sistemáticos e documentados para todas as atividades de desenvolvimento de software. Esses métodos sistemáticos de desenvolvimento de software devem ser especificados no plano de desenvolvimento de software.
- Padrões para produtos de software: O desenvolvedor desenvolve padrões para representar requisitos, arquitetura, design, código, casos de teste, procedimentos de teste e resultados de teste. Esses padrões de representação do produto são especificados no plano de desenvolvimento de software. O desenvolvedor aplica os padrões especificados no plano de desenvolvimento de software para representar requisitos, arquitetura, design, código, casos de teste, procedimentos de teste e resultados de teste.
- Rastreabilidade: A rastreabilidade fornece um relacionamento entre o conteúdo de dois produtos relacionados, por exemplo, o relacionamento de cada requisito de software com os componentes de design de software que satisfazem o requisito. A rastreabilidade bidirecional garante uma relação bidirecional entre o conteúdo de dois produtos relacionados. Um exemplo desse relacionamento bidirecional é a rastreabilidade de cada requisito de software para os componentes de design de software que satisfazem o requisito, e a rastreabilidade de cada componente de design para os requisitos de software satisfeitos pelo componente de design. O objetivo dos requisitos de rastreabilidade bidirecional nesta seção é rastrear tanto para cima quanto para baixo para garantir que:
- Demonstrar que todos os requisitos foram alocados aos componentes, implementados e testados
- Demonstrar que não se aplicam requisitos adicionais
- Fornecer informações sobre o impacto das mudanças propostas
- Fornecer informações sobre o impacto dos problemas descobertos
- Fornecendo informações para manutenção de software.
- Produtos de software reutilizáveis: O desenvolvedor deve identificar produtos de software reutilizáveis que serão usados para atender aos requisitos do contrato. O escopo da busca por um produto de software reutilizável deve ser especificado no plano de desenvolvimento de software. O desenvolvedor deve avaliar os produtos de software reutilizáveis que serão usados para atender aos requisitos do contrato. Os critérios a serem usados para avaliar o produto de software reutilizável devem ser aqueles especificados no plano de desenvolvimento de software. O desenvolvedor deve usar pelo menos os critérios de avaliação do anexo da norma para selecionar produtos de software reutilizáveis (Anexo B). Os critérios de avaliação podem ter pesos diferentes para diferentes categorias de software e diferentes requisitos críticos. Os produtos de software reutilizáveis selecionados devem atender aos requisitos de direitos de dados do contrato. O produto de software reutilizável pode ser usado como está ou pode ser modificado e usado para atender a todo o requisito ou parte dele.
Nossa organização, que vem tentando dar suporte a empresas de todos os setores com uma ampla gama de estudos de testes, medições, análises e avaliações realizados há anos, conta com uma equipe forte que acompanha de perto os desenvolvimentos no mundo no campo da ciência e tecnologia e se aprimora constantemente. Neste contexto, também são prestados serviços de testes às empresas de acordo com a norma “SMC-S-012 Desenvolvimento de Software”.