Baixe o app para aproveitar ainda mais
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.
Compartilhar