Buscar

7-metodos-algoritmos-modelos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Métodos Algorítmicos 
e Modelos
 
SST
Schirigatti, Jackson
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
3
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.
4
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.
Saiba mais
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
Fatores Classificação Multiplicador de 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 
programação
Nominal 1,00
5
Uso de práticas modernas de 
programação com as ágeis e híbridas
Baixa 0,91
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 
sistemas
Alta 0,86
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 
desenvolvimento
Nominal 1,00
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.
6
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. 
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).
Curiosidade
7
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.
8
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 é deautoria 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).
9
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.
10
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.

Outros materiais