Você está na página 1de 10

Métodos Algorítmicos

e Modelos
Schirigatti, Jackson
SST Métodos Algorítmicos e Modelos / Jackson Schirigatti
Ano: 2020
nº de p.: 10

Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados.


Métodos Algorítmicos e
Modelos

Apresentação
Em nosso estudo compreenderemos os modelos algorítmicos relacionados a
métricas de softwares de custo e prazos. Em um primeiro momento, estudaremos
o modelo de estimativa de custo construtivo COCOMO, que utiliza modelagem
algorítmica do esforço nominal. Em um segundo momento, compreendermos
um modelo de estimativa de prazo e custo feita por Linha de Código, em que as
medidas de tamanho de projeto de software podem ser facilmente utilizadas,
contudo deve existir certa padronização na linguagem de programação dos projetos
de software. Por fim, estudaremos o modelo de estimativa Slim, cujo modelo de
estimativa depende de múltiplas variáveis e inclui, em sua estimativa, o número de
linhas de código do software ao tempo de esforço de desenvolvimento.

Modelos de Estimativa de Custo


COCOMO
Existem modelos para a estimativa de software que vão desse estimativas macros,
que tratam do software como um todo, até estimativas micro, tratando do software
de maneira detalhada.

Segundo Pressman (2016, p. 744),

[…] um modelo de estimativa deve ser calibrado para refletir condições


locais. O modelo deve ser testado aplicando-se dados coletados de
projetos completos, anexando-se os dados ao modelo e comparando-se
resultados reais com os prévios. Se a concordância for baixa, o modelo
deve ser ajustado e novamente testado antes de ser usado.

Uma das abordagens de estimativa de custo muito utilizada, que se baseia na


modelagem algorítmica do esforço nominal e se realiza por meio de equações
matemáticas, estatísticas e opinião de especialistas, é modelo híbrido e empírico
conhecido como COCOMO.

3
Saiba mais
COCOMO é o acrônimo das iniciais das palavras COnstructive
COst MOdel, ou seja, modelo de custo construtivo. É um modelo
que calcula o esforço e o tempo de desenvolvimento de software.

Para Sommerville (2011, p. 443), a modelagem algorítmica de custos usa uma


fórmula de tamanho de projeto e de tipo de software que está sendo desenvolvido,
além de fatores relacionados aos projetos anteriores. O modelo algorítmico é
baseado em análise de custos e atributos de projetos concluídos anteriormente. A
fórmula principal para a estimativa é:

Esforço = A * TamanhoB x M
Em que A é um fator que depende das práticas organizacionais da região e do tipo
de software em desenvolvimento. Tamanho é o tamanho do código do software
ou a estimativa da funcionalidade (pontos por função ou ponto por caso de uso).
O expoente B varia entre 1 e 1.5. M é um fator multiplicador, que inclui atributos
de processos, produto e desenvolvimento (SOMMERVILLE, 2011, p. 443). O
fator M pode aumentar ou diminuir a estimativa. Sommerville (2011) utiliza sete
fatores: confiabilidade e complexidade, reuso requerido, dificuldade de plataforma,
capacidade de pessoal, experiência de pessoal, cronograma e recursos de apoio.

Já os multiplicadores de Schach são um total de 15 fatores. É possível visualizar no


quadro a seguir alguns deles.

Multiplicadores de Schach

Multiplicador de
Fatores Classificação
esforço (M) Schach
Confiabilidade de software exigida Alta 1,15

Complexidade do produto Muito alta 1,30

Restrição de tempo de execução Alta 1,11

Experiência em aplicações Nominal 1,00

Experiência com linguagem de Nominal 1,00


programação

4
Uso de práticas modernas de Baixa 0,91
programação com as ágeis e híbridas
Capacidade do banco de dados Alta 0,94
Restrição de memória principal Grande 1,06
Volatilidade de memória em disco Nominal 1,00
Tempo de resposta Baixa 1,00
Excelentes habilidades do analista de Alta 0,86
sistemas
Excelentes programadores sêniores Alta 0,86
Experiência em armazenamento virtual Baixa 1,10
Uso de ferramentas de software Baixa 1,10
Exigência de cronograma de Nominal 1,00
desenvolvimento
Fonte: Elaborado pelo autor (2019).

O primeiro cálculo é realizado pela fórmula do esforço nominal:

Esforço nominal = 3,2 x (KDSI)1,05 homens-mês


Nela, KDSI é o comprimento do produto em termos de instruções-fontes. Se
tivermos 10 KDSI, teremos 10.000 instruções-fonte. Já o valor 3,2 e 1,05 são
constantes de melhor adaptação para desenvolver um produto pequeno e objetivo,
denominado de modelo orgânico. Para desenvolvimentos de tamanho médio,
teremos o modelo semiobjetivo, e para projetos complexos, o modo embutido.

Modelo orgânico

As equipes são relativamente pequenas e


o processo de software é executado em
ambiente familiar. O ambiente é estável para o
desenvolvimento sem entregas rígidas.

5
Modelo embutido

Neste modelo, é complexo o contexto de


desenvolvimento relacionado a hardware,
software e regras e procedimentos operacionais.

Modelo semiobjetivo

O contexto de desenvolvimento se dá entre o


modo orgânico e o semiobjetivo. A equipe mescla
experiências e tecnologias.

Após o cálculo do esforço nominal, multiplica-se este pelos multiplicadores de


esforço de desenvolvimento de software (Fator M, conforme tabela de fatores). Com
isso, temos o esforço nominal em homens/mês do projeto de software.

Curiosidade
O COCOMO II é um modelo baseado no modelo COCOMO, de
BOHEM (1991), e BOHEM e ROYCE (1989). O COCOMO II leva em
consideração abordagens mais modernas para o desenvolvimento
de software, tais como o desenvolvimento rápido [XP e Scrum], o
desenvolvimento por componentes e programação de Banco de
Dados. O COCOMO II apresenta submodelos como composição
de aplicações, modelo de projeto preliminar, modelo de reúso e
modelo de pós-arquitetura (SOMMERVILLE, 2010, p. 444).

6
Modelo de estimativa de Prazo/Custo
LOC
Outra técnica de estimativa de prazo e custo pode ser feita por Linha de Código
(LOC). Essa técnica é uma das mais antigas medidas de tamanho de projeto de
software e pode ser facilmente utilizada, contudo deve existir certa padronização
na linguagem de programação dos projetos de software. A dúvida está na
consideração de: o que é uma linha de código?

Atualmente, existe uma grande quantidade de métodos híbridos de programação, sendo


a escolha da estimativa por linha de código não tão propícia nesses casos. Vejamos, a
seguir, um objeto de aprendizado que ilustra as características dessa estimativa.

A funcionalidade pode variar de acordo com a linguagem


de programação

A métrica pode variar de acordo com a linguagem de programação, pois uma


implementação de uma funcionalidade em determinada linguagem atua de
modo diferente em outra, ou seja, as medições não serão equivalentes para a
mesma função.

Facilidade de estimativa

Se a linguagem for padronizada nos projetos de desenvolvimento de


software, o cálculo de estimativa do esforço é de fácil determinação.
É necessário apenas contar as linhas de código do software (no nível
semântico) e as horas trabalhadas por linha.

Depende da qualidade das linhas de código

A estimativa das linhas de código somente é válida se as linhas não


apresentam erro de código. Se as linhas forem inaceitáveis ou descartadas, a
métrica não é aceitável.

É baseada em dados históricos ou especialistas

Esse tipo de estimativa tem como base os dados históricos de um banco de


projetos de software e opiniões de especialistas.

7
Método baseado em linguagens de programação orienta-
das em linha de código

Esse tipo de estimativa surgiu quando as linguagens de programação eram


baseadas em linhas de código, como o Fortran, ou seja, linguagens de
paradigma imperativo.
Em C, Java, as linhas podem ser contadas quando os comandos são
terminados por “;”.

Obtenção da estimativa no início do projeto

Esse tipo de estimativa é obtido logo no início do ciclo de vida do software,


junto aos requisitos ou às especificações.

Modelo de estimativa Custo/Prazo


SLIM
Outra estimativa de custo/prazo de projeto de desenvolvimento de software é de
autoria de Lawrence H. Putnam, de 1978: SLIM (Software Life Cycle Model), cujo
modelo de estimativa depende de múltiplas variáveis, que concentram esforços
específicos ao longo do ciclo de vida do projeto de software. Esse modelo inclui, em
sua estimativa, o número de linhas de código do software ao tempo de esforço de
desenvolvimento.

Os objetos de aprendizagem a seguir caracterizam o modelo Slim.

Suporta a maioria dos métodos de estimativa


por tamanho

O método suporta LOC (Linha de código) e PF


(pontos por função).

8
Calibragem do próprio modelo

O método Slim pode gravar e analisar dados do


projeto em banco de dados histórico. Esses dados
são utilizados para calibrar o modelo.

O método Slim pode gravar e analisar dados do projeto em banco de dados


histórico. Esses dados são utilizados para calibrar o modelo.

Fechamento
Chegamos ao final do estudo de Métodos algorítmicos e modelos e, como vimos, é
importante medir e controlar as atividades e os processos de desenvolvimento de
software através de ferramentas de estimativa de tamanho, custo e prazo de um
projeto de desenvolvimento de software.

Foram abordados os conhecimentos necessários acerca de qualidade, medição e


estimativa de software, mostrando como a qualidade pode ser medida e avaliada
em um processo de desenvolvimento de software.

9
Referências
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem
profissional. 8. ed. Porto Alegre: AMGH, 2016.

SOMMERVILLE, I. Engenharia de software. Tradução de Kalinka Oliveira e Ivan


Bosnic. 10. ed. São Paulo: Pearson, 2018.

10

Você também pode gostar