Mostrando postagens com marcador Engenharia de software. Mostrar todas as postagens
Mostrando postagens com marcador Engenharia de software. Mostrar todas as postagens

terça-feira, 5 de julho de 2016

O que é COCOMO II

COCOMO (COnstructive COst MOdel) é um modelo de estimativa paramétrico que envolve o uso de equações matemáticas para fazer estimativas de esforço, prazo e tamanho da equipe em projetos de software. Suas equações são baseadas em pesquisa e dados históricos e utilizam como entrada a quantidade de linhas de código (ou pontos de função) e a avaliação de outros aspectos relevantes para a estimativa chamados de cost drivers.

A fórmula básica usada pelo modelo é: PMnominal = A x (tamanho)B

Onde PM é o esforço (Person-Month) do projeto, sendo o tamanho chamado de Fator de Custo Primário (expresso em unidades de milhares de linhas de código-KSLOC). Este número pode ser derivado de várias formas, inclusive pela quantidade de pontos de função não ajustados do projeto. A variável A é determinada por uma constante e por características (chamadas fatores multiplicadores) que são avaliadas pelo modelo. A pesquisa que embasa o modelo verificou que a relação entre a variação do tamanho e o esforço é não-linear. Por isto há a também variável B na fórmula que afeta o esforço de forma exponencial. Esta variável é composta por uma outra constante e por características (chamadas fatores de escala) que são também avaliadas pelo modelo. Para que o COCOMOII seja efetivo é necessária a definição das constantes apropriadas para o contexto onde ele será usado, este processo é chamado de calibração e é feito através da análise de dados históricos de projetos realizados pela organização.

Algumas características interessantes do COCOMO II:

  • Modelo aberto, isto permite que o estimador possa entender o porque da estimativa fornecida pelo modelo. E também por ser um modelo aberto, há diversos softwares disponíveis no mercado (vários gratuitos) que o implementam.
  • Modelo bem formal, define explicitamente quais as atividades e papéis incluídos nos produtos da estimativa assim como todas as premissas consideradas em sua definição.
  • Os fatores multiplicadores e de escala podem ser utilizados também como uma lista de verificação para outros métodos de estimativa, ajudando a melhorar as estimativas destes outros métodos. É muito comum uma estimativa falhar por esquecimento do estimador de algum fator crítico para a produtividade do projeto.
  • Os fatores do modelo podem ser usados para a definição de categorias de produtividade e critérios para enquadramento de projetos nessas categorias.
  • É aplicável tanto a projetos com ciclo de vida em cascata ou iterativo incremental.

segunda-feira, 31 de janeiro de 2011

Ferramentas gratuitas para modelagem de sistemas

Para quem trabalha com desenvolvimento de sistemas, eu listei abaixo algumas ferramentas gratuitas para modelagem, que às vezes ajudam um bocado por um preço bem camarada:
Esta é uma ferramenta escrita em Java, só faz diagramas UML e não faz modelagem de dados.

Esta também só trabalha com UML, mas, eu não tenho maiores informações.

Esta é feita para trabalhar junto com o Eclipse. Também só desenha UML.

Esta é a única que eu já vi que trabalha com análise essencial (eu acho que também faz modelagem de dados). O problema é que ela só roda debaixo de Linux. Para executá-la no Windows é preciso instalar um emulador Linux (tipo CYGWIN).

Este é um programa que apenas desenha os diagramas (tipo o Visio da Microsoft).

Esta ferramenta faz apenas a modelagem de dados e trabalha integrada com o MySQL.

sábado, 25 de dezembro de 2010

Frases espirituosas sobre desenvolvimento de software

  • Há duas formas de construir um projeto de software: Uma maneira de fazer isso deve ser tão simples que, obviamente, não deixe deficiências, e a outra forma é a de torná-lo tão complicado que não percebam as evidentes deficiências. O primeiro método é muito mais difícil. – CAR Hoare
  • Se construtores de edifícios construíssem seus prédios como os programadores escrevem seus programas, o primeiro pica-pau que viesse poderia destruir uma civilização. – Gerald Weinberg
  • Hoje a programação é uma corrida entre os engenheiros de software para tentar construir maiores e melhores programas à prova de idiotas, e o Universo tentando produzir maiores e melhores idiotas. Até agora, o Universo está ganhando. – Rich Cook
  • Java pode ser um bom exemplo do que uma linguagem de programação deve ser. Mas as aplicações escritas em Java são um bom exemplo de como as aplicações não devem ser.
  • Análise de sistemas é como criar uma criança; você pode fazer um estrago imenso, mas não pode garantir sucesso. – Tom DeMarco
  • A maioria dos softwares atuais são como as pirâmides do Egito, com milhões de blocos empilhados uns em cima dos outros, nenhuma integridade estrutural, feita apenas pela força bruta e milhares de escravos. – Alan Kay
  • Andar sobre a água e desenvolver software a partir de uma especificação é fácil. Se ambos estiverem congelados...