Fábrica de Software III Resposta à RFP do IEC Breno Costa Gerente de Negócios Agenda Problema Apresentado Proposta de solução da Fábrica III Metodologia Fases x Artefatos Organização da Fábrica Métrica de Estimativa de Esforço Desenvolvimento Baseado em Componentes Ferramentas Acordo de Nível de Serviço (SLA) Problema Apresentado Alocação automática de recursos humanos e físicos para definição de horário e consultas Sugestão de solução: Job Shop Problem e Time Scheduling Investigações Fábrica III Job Shop não é adequado para o problema Timetabling é mais indicado Diversas abordagens e variações para solucionar timetabling Abordagem e algoritmo serão definidos no início da fase de Desenvolvimento de Componentes Atores e Casos de Uso Atores Gerente de alocações Usuário comum Casos de Uso Manter cadastro de professores/alunos Manter cadastro de disciplina Manter cadastro de recurso físico Realizar alocação Alterar/Cancelar alocação Solicitar sugestão de alocação Consultar alocação Cálculo do esforço Atores 1 2 Gerente de alocações Usuário comum Total de Atores Peso Total Complexidade S M C 0 0 1 0 0 1 0 0 2 6 Casos de Uso 1 2 3 4 5 6 7 Manter cadastro de professores/alunos Manter cadastro de disciplinas Manter cadastro de recurso físico Realizar alocação Alterar/Cancelar alocação Solicitar sugestão de alocação Consultar alocação Total Peso Total Pontos de Casos de Uso Não Ajustados (PCUNA) Complexidade S M C 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 4 2 55 1 61 Peso Valor Peso x Valor 2 0 0 1 4 4 1 1 1 1 3 3 1 0 0 0,5 0 0 0,5 0 0 2 0 0 1 1 1 2 1 2 T11 Inclui características 1 especiais de segurança Fornece acesso direto T12 1 para terceiros T13 facilidades de 1 Total dos Fatores Técnicos Fatores de Complexidade 0 0 0 0 0 0 # T1 T2 T3 T4 T5 T6 T7 T8 Fatores Técnicos Sistema distribuído Objetivos de performance relativos à tempo de resposta e vazão Eficiência para o usuário (online) Processamento interno complexo Reutilização de código Facilidade na instalação Facilidade na utilização Portabilidade T9 Manutenabilidade T10 Concorrência 11 0,71 Cálculo do esforço Peso Valor x Valor # Fatores Ambientais Peso FA1 Familiaridade com o RUP (ou o processo de desenvolvimento utilizado) 1,5 4 6 FA2 Experiência na aplicação 0,5 5 2,5 FA3 Experiência em orientação a objetos 1 5 5 FA4 capacidade de liderança do analista líder 0,5 4 2 FA5 Motivação 1 4 4 FA6 Requisitos estáveis 2 4 8 FA7 Trabalhadores part-time -1 5 -5 -1 0 0 FA8 Dificuldade na linguagem de programação Total dos Fatores Ambientais Fatores Ambientais (FA) 22,5 0,725 Cálculo do esforço RESULTADOS 31,4 Pontos de Casos de Uso (PCU) Estimativa de Esforço (homens-hora) A . Se QFA <= 2 565,1955 Esforço total: 565 horas dias 70,6494 Prazo de entrega 6 semanas a partir da aprovação da proposta Caso proposta seja aprovada em 21/07/2003, o prazo de entrega será 01/09/2003 Metodologia Baseada no RUP Metodologia de desenvolvimento dividida em 4 fases: – Comercial – Planejamento e Gerenciamento – Desenvolvimento de Componentes – Testes e Validação Fases da Metodologia Comercial Planejamento e Gerenciamento Desenvolvimento Testes Levantar Necessidade s do Cliente Elaborar Proposta Técnica Elaborar Plano de Projetos Preliminar Definir o Controle do Projeto Estimar Esforço do Projeto Acompanhar e Gerenciar o Projeto Elaborar Proposta Comercial Comunicar Evolução do Projeto Definir Problema Especificar Componentes Projetar Componentes Implementar Componentes Elaborar Plano de Testes Implementar Testes Realizar Testes Avaliar Testes Validar o Projeto junto ao Cliente Executar Testes de Aceitação Metodologia - Fases 1. Fase Comercial Levantar Necessidades do Cliente Elaborar Proposta Técnica Estimar Esforço do Projeto Elaborar Proposta Comercial 2. Fase Planejamento e Gerenciamento Elaborar Plano de Projetos Preliminar Definir o Controle do Projeto Acompanhar e Gerenciar o Projeto Comunicar Evolução do Projeto Validar o Projeto junto ao Cliente Metodologia - Fases 3. Fase Desenvolvimento de Componentes Definir Problema Especificar Componentes Projetar Componentes Implementar Componentes 4. Fase Testes e Validação Elaborar Plano de Testes Implementa r Testes Realizar Testes Avaliar Testes Executar Testes de Aceitação Fases x Artefatos Fase Comercial Artefatos 1. 2. 3. Planejamento e Gerenciamento 1. 2. 3. 4. 5. 6. 7. Desenvolvimento de Componentes 1. 2. 3. Testes e Validação 1. 2. 3. Proposta Técnica Planilha de Estimativa de Esforço Proposta comercial Plano de Projeto Ata de Reuniões Formulário de Controle de Mudanças Formulário de Validação do Cliente Relatório Avaliando Processo de Desenvolvimento Avaliações periódicas Formulário de Controle de Impactos Documento de Requisitos Documentos gerados no MVCASE Código-fonte Plano de Testes Relatório de Avaliação dos Testes Componentes de Testes Organização da Fábrica Perfis que compõem a Fábrica III Gerente de Negócios Gerente de Projetos Analista de Sistemas Analista de Qualidade Engenheiro de Software Engenheiro de Testes Líder de Equipe Organização da Fábrica Gerente de Negócios Gerente de Projetos Líder de Equipe Engenheiro de Software Analista de Sistemas Engenheiro de Testes Analista de Qualidade Lider de Equipe Engenheiro de Software Analista de Sistemas Engenheiro de Testes Organização da Fábrica Equipe X Perfil Breno Costa Gerente de Negócios e Engenheiro de Testes Carlos Andreazza Engenheiro de Testes e Engenheiro de Software Carlos Júnior Analista de Qualidade e Engenheiro de Software (líder) Clarissa Borba Gerente de Negócios e Engenheiro de Testes (líder) Eduardo Almeida Analista de Qualidade e Engenheiro de Testes Fábio Ferreira Analista de Sistemas e Engenheiro de Software Luiz Eduardo Leite Analista de Sistemas e Engenheiro de Software Mônica Priscila França Analista de Sistemas e Engenheiro de Testes Taciana Vanderlei Analista de Sistemas e Engenheiro de Software Vanessa Bittencourt Gerente de Projeto e Engenheiro de Testes Vivianne Medeiros Gerente de Projetos e Engenheiro de Software Métrica de Estimativa de Esforço Breve Histórico [Kirsten Ribu 01] – – – – Ponto de equilíbrio entre investimento e precisão Estimativa de Especialista Analogia FPA Por que Pontos de Caso de Uso? Benefícios – Facilidade de uso – Experiência da empresa no desenvolvimento O-O Pontos de Caso de Uso [Gustav Karner 93] Passos Necessários: 1. Identificar Atores e Casos de Uso 2. Categorizar Atores e Casos de Uso 3. Calcular PCU Desajustados 4. Calcular Fator Complex. Técnica 5. Calcular Fator Complex. Ambiental 6. Calcular PCU Ajustados 7. Converter PCUA para HH - [Schneider and Winters 98] Pontos de Caso de Uso Experiência com a métrica Registro do esforço estimado x esforço realizado Ajustes baseados em dados históricos Novo fator de conversão Horas por PCU (realizado): 350/22,272 = 15,7148 Novo Fator: 18 Reutilização de Software Software reuse is the use of existing software knowledge or artifacts to build new software artifacts [Frakes, 1995] Vantagens – Qualidade – Tempo de desenvolvimento – Redução nos custos de desenvolvimento, testes, documentação e manutenção Artefatos Reutilizáveis [D’ Souza, 1999] Código compilado [fonte] Casos de testes Modelos e projetos: frameworks e padrões Interface de usuário Planos, estratégias e regras arquiteturais Desenvolvimento Baseado em Componentes (DBC) Visão anterior – Blocos monolíticos – Grande número de partes inter-relacionadas – Relacionamentos implícitos Necessidade de “quebrar” esses blocos – Surgimento do DBC – Redução da complexidade e custo de desenvolvimento Motivação – Desenvolvimento da Internet – Evolução: Mainframes .... Objetos Distribuídos – Surgimento de Padrões – OMG, DCOM Desenvolvimento Baseado em Componentes Home-Page e Ferramentas http://www.cin.ufpe.br/~vnm/fabrica3 (acompanhamento) JBuilder (implementação) MVCASE [3] (modelagem) CVS [4] (controle de versões) Bugzilla [5] (reportar bugs) Project (gerenciador de cronograma) Word (documentação) PostgreSQL (armazenamento de dados) Twiki [6](compartilhamento de conhecimento) Acordo de nível de serviço (SLA) [Naomi Karten] Serviço: desenvolvimento de software Indicadores: – I1 - Problemas não-previstos – I2 - Total de dias de atraso – I3 - Relatórios semanais de status não-enviados Metas Fórmula: Saldo = (I1-1) + (I3) + (I2-3) Penalidade: Saldo x 10 horas Bônus: Saldo x 0,1 (conceito) Aplicação do SLA apenas para o próximo projeto Revisão do SLA é possível e indicada Referências Utilizadas [1] I. Aaen, P. Botcher, L. Mathiassen, Software Factories. Oslo, 1997 . [2] H. P. Siy, J. D. Herbsleb, A. Mockus, M. Krishnan, G. T. Tucker, Making the Software Factory Work: Lessons from a Decade of Experience. [D’Souza, 1999] D’Souza, D., F., Wills, C., A. Objects, Components, and Frameworks with UML – The Catalysis Approach. Addison-Wesley, 1999. [Frakes, 1995] Frakes, W., B., Fox, C., J. Sixteen Question about Software Reuse. Communications of the ACM. June 1995. [3] http://www.recope.dc.ufscar.br/mvcase/. [4] http://www.cvshome.org/. [5] http://bugzilla.mozilla.org/. [6] http://www.natalnet.br/twiki/. [Gustav Karner 93], Resource Estimation for Objectory Projects. Copyright Rational Software, Inc, 1993. [Kirsten Ribu 01], Estimating Object-Oriented Software Projects with Use Cases, Master of Science Thesis, University of Oslo, 2001. [John Smith 99], The estimation of Effort based on Use Cases, Rational Software White Paper, 1999. [Schneider and Winters 98]. Applying Use Cases. Addison-Wesley, 1998. [Naomi Karten], Establishing Service Level Agreements, 2001. Referências Utilizadas [Jain98] Jain, A., Meeran, S. "A state-of-the-art review of job-shop scheduling techniques". Technical report, University of Dundee, Dundee, 1998. [Schaerf95] Schaerf, A., "A survey of automated timetabling,", Report, CWI, Amsterdam, 1995. [Terra01] Terra, I., "Uma Solução para a Confecção do Horário Acadêmico". Dissertação de Mestrado. Universidade Federal de Minas Gerais, 2001. [Gröbner02] Gröbner, M., Wilke P.,"A General View on Timetabling Problems", 4th International Conference on the Practice and Theory of Automated Timetabling, 2002, [Caldeira97] Caldeira, P., Agostinho, R., "School Timetabling Using Genetic Search", Practice and Theory of Automated Timetabling, Toronto, 1997. [Holland75] Holland J., Adaptation in Natural and Artificial Systems, University of Michigan Press, 1975. [Fang94] Fang, H., "Genetic Algorithms in Tametabling Problems", PhD Thesis, University of Edinburgh, 1994. [Fernandes02] Fernandes, C., Caldeira, J., "Infected Genes Evolutionary Algorithm for School Timetabling", WSES, 2002. Referências Utilizadas [Souza01] Souza, F., Ochi, S., Maculan, N., "A GRASP-Tabu Search Algorithm to solve a School Timetabling Problem", Metaheuristics International Conference MIC, July 2001 [Aarts97] Aarts, E., Lenstra K., Local Search in Combinatorial Optimization, Wiley, 1997. [Feo95] Feo, T., Resende, M., "Greedy randomized procedures". Journal of Global Optimization, 1995. adaptive search [Abramson92] Abramson, D., Abela, J., "A Parallel Genetic Algorithm for Solving the School Timetabling Problem", 15 Australian Computer Science Conference, 1992. [Ribeiro01] Ribeiro, G., Lorena, L., "A Constructive Evolutionary Approach to School Timetabling", EvoCOP2001 - First European Workshop on Evolutionary Computation in Combinatorial Optimization, 2001