[email protected]
[email protected]
fábrica de software:
processos estocásticos,
otimização, lógica de
restrições... ?
1-23
uma idéia: integrar
projeto de sistemas
integrados
1998-2001
Orientação: Claudionor Coelho Jr.
DCC – UFMG
Lecom
AudioLab
2-23
o problema
“Analisar e particionar o projeto de um sistema
no nível conceitual utilizando restrições de
desenvolvimento (times) e de implementação
(tecnologias)”
3-23
Restrições de Projeto

Desenvolvimento




Implementação





Times de desenvolvimento
Carga de times
Custo de integração
Área
Consumo de potência
Atraso de propagação
Custo de comunicação
Restrições são traduzidas
em estimativas dos times de
desenvolvimento
Produção


Custo
Risco
4-23
Estimativas de Times


PSP (Personal Software Process) [Hum95,Hum97c]
TSP (Team Software Process) [Hum97b,Hum00]
Histórico de atividades
 Relatórios de tempo, esforço e recursos
 Definições de métricas



Método de estimativas baseado em regressão-linear
simples
Estimativa de times

(valor, intervalo de predição)
5-23
Caracterização de Estimativas

(m,M,c)
m: minimum value
 M: maximum value
 c: confidence degree


Normal distribution
(m,s) = (m,M,c)
 m = (m+M)/2
 s = (M-m)/2c

99.7%
95.5%
68.3%
6-23
Suposições



Cargas dos times não mudam durante o projeto
ou um novo conjunto de estimativas deve ser
fornecido
Times fornecem os dados honestamente
Distribuição gaussiana (normal) é uma boa
aproximação para estimativas dos times em
todas as tecnologias
7-23
Processo de Desenvolvimento




Especificação da visão hierárquica do sistema
Especificação das visões seqüencial e de
desenvolvimento do sistema (restrições)
Times fornecem suas estimativas para o projeto
O sistema é particionado de acordo com as
visões especificadas e com as estimativas dos
times
8-23
O Particionamento

Formulado como um problema de programação
estocástica linear inteira
max z = ij cij xij
Prob{j aijxij  bi}  (1 - i)
aij : variáveis aleatórias distribuídas por gaussianas
xij : variáveis de decisão especificando se a
estimativa ij será utilizada, xij  {0,1}
i : probabilidade de falha, {0 < i < 1}
9-23
Aproximação por Valor Esperado
aij = (ma + F-1 (1 - i) sa ) ,
ij
ij
onde F-1 (1 - i) é a função de distribuição
inversa da gaussiana [Tri82]
1
- i = 50% => F-1 (1 - i) = 0
1
- i = 80% => F-1 (1 - i) = 1
1
- i = 97% => F-1 (1 - i) = 2
1
- i = 99% => F-1 (1 - i) = 3
10-23
Estudos de Caso



Dados gerados aleatoriamente para as
restrições não divulgadas na literatura
Utilizamos C_PLEX em AMPL [FGK93]
Times de desenvolvimento simulados e suas
estimativas geradas respeitando-se alguns
princípios
11-23
Princípios: Estimativas



Times mais precisos
apresentam custos
maiores e tempos de
desenvolvimento
menores
Times precisos
apresentam pouca carga
de trabalho disponível
Times implementando
tecnologias de hardware
apresentam estimativas
de tempo de execução
menores.



Times menos precisos
são mais baratos e
estimativas de baixos
tempos de
desenvolvimento
Times menos precisos
apresentam estimativas
de boa carga de trabalho
Normalização dos dados
12-23
Exemplo:SAR Image Processing
Minimizing Development Time
0.5
0.8
0.97
0.99
13
14
18
19
13-23
Exemplo: Network Controller
14-23
Exemplo: Network Controller
15-23
Exemplo: Network Controller
16-23
Avaliando Tendências



O particionamento tende a escolher times mais
precisos quando aumentamos o risco de
sucesso
Quando minimizamos custo, o particionamento
tende a escolher times imaturos e vice-versa
Quando minimizamos tempo de
desenvolvimento, o particionamento tende a
escolher times mais precisos
17-23
Agrupando Soluções
Minimizing Development Time
Risk / Objects (Teams)
0.5
0.8
0.97
0.99
1
6
5
5
5
2
6
6
6
6
3
3
4
6
5
4
3
6
3
4
5
6
1
1
1
6
3
1
1
5
7
2
1
3
2
8
2
2
5
6
9
1
1
4
1
10
1
3
5
6
11
5
6
3
6
3
1
3
3
3
4
1
3
3
4
5
4
1
4
1
6
6
1
1
2
7
3
3
3
3
8
2
5
5
6
9
3
3
3
4
10
4
4
4
4
11
4
4
4
4
4
4
4
4
4
5
5
6
2
2
6
6
3
5
2
7
6
5
5
5
8
6
6
6
6
9
5
5
6
6
10
6
6
6
6
11
1
5
5
5
4
5
6
7
8
9
10
11
Minimizing Cost
Risk / Objects (Teams)
0.5
0.8
0.97
0.99
1
3
3
3
6
2
1
3
3
3
Minimizing Execution Time
Risk / Objects (Teams)
0.5
0.8
0.97
0.99
1
6
6
6
6
2
5
5
5
5
3
6
6
6
6
Summary
Risk / Objects (pesos – CLUSTERS)
1
2
3
0.5
0.8
0.97
0.99
Ordem Decrescente de estabilidade: mais estáveis 2,10... mais instáveis 5,9 e 6...
2,10
1,7
3,11
4,8
5,9
6
18-23
uma fábrica de software… amanhã?

DESENVOLVIMENTO
Modelagem e implementação usando Mozart, UML,
SDL…
 Componentes



http://www.cin.ufpe.br/~in1045/
Acompanhamento de atividades com timesheet +
ms_project  retro-alimentação
simulação de processos
 modelagem de seres humanos
 IA



Análise interativa e iterativa
COMERCIAL
TOC – based on risks
 Engenharia de Vendas


QUALIDADE
19-23
o que mais fazer?





engenharia de produção…
framework para fábricas
constraint logic
KOBRA
… 2005/1??
20-23
Download

1 -23