[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