Os significados literários da palavra "coesão" são consistência e organização de diferentes unidades. Em ciência da computação e engenharia de software, coesão refere-se ao nível de força e unidade com o qual os diferentes componentes de um programa de software estão inter-relacionados. Permaneceu uma norma na engenharia de software que os programas de software são desenvolvidos por meio de diferentes funções (ou módulos) inter-relacionadas, e cada um desses módulos tem tarefas separadas associadas a eles. A coesão de qualquer software determina a força de seu código-fonte e pode ser melhor compreendida explorando seus princípios associativos, tipos e métodos de cálculo.
Fundamentos
O conceito de coesão é introduzido para capturar as características de 'qualidade', 'concisão' e 'eficácia' de um programa no domínio da engenharia de software. Esse conceito facilita a determinação de quão intimamente ligado está cada módulo do programa de software, o que indica a rapidez com que ele pode executar as diferentes tarefas atribuídas a ele. O aumento da coesão de um programa de software é obtido por meio de operações muito idênticas realizadas por seus diferentes módulos, e é inversamente proporcional à diminuição do número de módulos. Isso significa que um programa de software projetado para executar várias tarefas por meio de vários módulos tem maior probabilidade de ter menor coesão, o que afeta negativamente seu desempenho geral e eficácia em máquinas de computação.
Princípios Associativos
Princípios associativos de coesão de software referem-se aos tipos de relacionamento entre um módulo de software e as ações correspondentes (operações). Esses princípios constituem coletivamente a coesão de qualquer programa de software e variam de acordo com seus diferentes requisitos operacionais. Existem sete princípios associativos formalizados para sete tipos de coesão de software, que incluem coesões coincidentes, lógicas, temporais, procedimentais, comunicacionais, sequenciais e funcionais. Cada um desses tipos de coesão possui um princípio associativo único associado a ele, que define suas propriedades de ação para qualquer módulo de software.
Propriedades
Existem certas propriedades pré-definidas associadas à coesão na engenharia de software. Por exemplo, se algum software é constituído por três módulos diferentes e todos eles são semelhantes entre si em termos de ações, a coesão geral do programa de software aumenta. Da mesma forma, a coesão diminui se esses módulos tiverem ações totalmente diferentes e únicas associadas a eles. Além disso, a coesão dos programas de software também depende dos tipos de dados que processa e é inversamente proporcional ao aumento do número de tipos de dados.
Análise
A coesão de um programa de software pode ser analisada através de métodos quantitativos e qualitativos. No processo de medição qualitativa, o código textual do programa de software é analisado tomando suas diferentes amostras e avaliando-as de acordo com os padrões de codificação da respectiva linguagem de programação. Em contrapartida, a avaliação quantitativa da coesão identifica o número de módulos constituídos dentro de um programa de software e avalia suas ações de acordo com escalas pré-definidas.