No MIL-STD-2167A, os termos "módulo" e "unidade" têm significados específicos, embora sejam frequentemente usados de forma intercambiável na programação geral. Aqui está o colapso:
* Módulo
: Um módulo é uma parte logicamente distinta de um programa, projetado para desempenhar uma função ou conjunto específico de funções relacionadas. Normalmente, é composto por um conjunto de rotinas (funções, subprogramas). Os módulos são projetados para promover a modularidade, facilitando o entendimento, a manutenção e a reutilização do código. Pense nisso como um bloco de construção de nível relativamente alto no sistema de software. O aspecto principal de um módulo é sua coesão funcional . Todas as peças internas estão trabalhando juntas para executar uma tarefa definida.
* unidade
: Uma unidade é um componente único e testável de um programa. Geralmente é uma rotina (função, subprograma) ou um pequeno conjunto de rotinas bem acopladas. O foco está no
testabilidade individual . O teste de unidade verifica se cada unidade opera corretamente isoladamente. Se um módulo é como uma sala, uma unidade é um aparelho individual ou móveis naquela sala.
As diferenças de chave resumidas: | Recurso | Módulo | Unidade |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
propósito | Alcance a modularidade, encapsule a funcionalidade relacionada, melhore a organização e a manutenção do código. Concentre -se na função de maior escala ou no conjunto de funções relacionadas. | Facilitar o teste de unidade, verifique se os componentes individuais funcionam corretamente isoladamente. Concentre -se em uma única função ou em um pequeno número de funções fortemente acopladas. |
|
escopo | Mais amplo, abrangendo várias unidades. | Mais estreito, normalmente uma única rotina ou um conjunto muito pequeno de rotinas relacionadas. |
|
testabilidade | Pode ser testado como um todo, mas os testes geralmente se concentram nos testes de integração para garantir que os módulos funcionem juntos corretamente. | Projetado para testes de unidade independentes. Cada unidade deve ser testável sem depender de outras partes do sistema (usando stubs ou zombares, se necessário). |
|
tamanho | Maior, composto por várias rotinas e estruturas de dados. | Menor, geralmente uma única rotina ou algumas rotinas intimamente relacionadas. |
|
foco | Decomposição funcional, coesão e design de alto nível. | Detalhes de implementação de baixo nível, correção de rotina individual e isolamento. |
|
Relacionamento | Um módulo contém uma ou mais unidades. As unidades são os blocos de construção de módulos. | Uma unidade é um componente * de * um módulo. |
Exemplo: Imagine um sistema de software para controlar um braço de robô:
* Módulo
: Um "módulo de controle de movimento" pode ser responsável por controlar os movimentos do braço do robô. Este módulo pode incluir rotinas para calcular ângulos de articulações, controle de velocidades do motor e gerenciamento da trajetória do braço.
* unidade
: A `calcular_inverse_kinematics ()` rotina no "Módulo de Controle de Motion" seria uma unidade. Seria necessário a posição desejada do efetor final como entrada e calcular os ângulos da junta necessários. Essa rotina seria testada na unidade para garantir que ela calcule corretamente os ângulos para várias posições. Outra unidade pode ser uma função chamada `set_motor_speed ()`.
Importância em MIL-STD-2167A: A distinção entre módulos e unidades é importante no MIL-STD-2167A, porque o padrão enfatiza um processo de desenvolvimento estruturado, incluindo:
*
Design modular: O padrão promove o design de software de maneira modular, onde a funcionalidade é dividida em módulos bem definidos com interfaces claras. Isso facilita o desenvolvimento, teste e manutenção.
*
Teste de unidade: O padrão requer testes de unidade rigorosos para verificar se os componentes individuais da função do software funcionam corretamente.
*
Teste de integração: Após o teste de unidade, os módulos são integrados e testados para garantir que eles funcionem juntos corretamente.
Ao entender a diferença entre módulos e unidades, os desenvolvedores podem aderir melhor aos princípios do MIL-STD-2167A e produzir software de alta qualidade e confiável. Embora o MIL-STD-2167A seja um padrão mais antigo, seus princípios de modularidade e testes de unidade permanecem relevantes nas práticas modernas de desenvolvimento de software.