Fbrica de Software III Resposta RFP do IEC
Fábrica de Software III Resposta à RFP do IEC Breno Costa Gerente de Negócios
Agenda n n n n n 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 n Alocação automática de recursos humanos e físicos para definição de horário e consultas n Sugestão de solução: Job Shop Problem e Time Scheduling
Investigações Fábrica III Job Shop não é adequado para o problema n Timetabling é mais indicado n Diversas abordagens e variações para solucionar timetabling n Abordagem e algoritmo serão definidos no início da fase de Desenvolvimento de Componentes n
Atores e Casos de Uso Atores n Gerente de alocações n Usuário comum Casos de Uso n n n n 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
Cálculo do esforço
Cálculo do esforço Esforço total: 565 horas
Prazo de entrega 6 semanas a partir da aprovação da proposta n Caso proposta seja aprovada em 21/07/2003, o prazo de entrega será 01/09/2003 n
Metodologia n Baseada no RUP n 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. 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 n Perfis n n n n 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
Organização da Fábrica n 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 n Breve – – Histórico [Kirsten Ribu 01] Ponto de equilíbrio entre investimento e precisão Estimativa de Especialista Analogia FPA n Por que Pontos de Caso de Uso? n 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 n Ajustes baseados em dados históricos n Novo fator de conversão n Horas por PCU (realizado): 350/22, 272 = 15, 7148 Novo Fator: 18
Reutilização de Software reuse is the use of existing software knowledge or artifacts to build new software artifacts [Frakes, 1995] n Vantagens n – 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] n Casos de testes n Modelos e projetos: frameworks e padrões n Interface de usuário n Planos, estratégias e regras arquiteturais n
n Desenvolvimento Baseado em Componentes (DBC) Visão anterior – Blocos monolíticos – Grande número de partes inter-relacionadas – Relacionamentos implícitos n Necessidade de “quebrar” esses blocos – Surgimento do DBC – Redução da complexidade e custo de desenvolvimento n 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 n n n n n http: //www. cin. ufpe. br/~vnm/fabrica 3 (acompanhamento) JBuilder (implementação) MVCASE [3] (modelagem) CVS [4] (controle de versões) Bugzilla [5] (reportar bugs) Project (gerenciador de cronograma) Word (documentação) Postgre. SQL (armazenamento de dados) Twiki [6](compartilhamento de conhecimento)
Acordo de nível de serviço (SLA) [Naomi Karten] n n n n Serviço: desenvolvimento de software Indicadores: – I 1 - Problemas não-previstos – I 2 - Total de dias de atraso – I 3 - Relatórios semanais de status não-enviados Metas Fórmula: Saldo = (I 1 -1) + (I 3) + (I 2 -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 [Jain 98] Jain, A. , Meeran, S. "A state-of-the-art review of job-shop scheduling techniques". Technical report, University of Dundee, 1998. [Schaerf 95] Schaerf, A. , "A survey of automated timetabling, ", Report, CWI, Amsterdam, 1995. [Terra 01] 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öbner 02] Gröbner, M. , Wilke P. , "A General View on Timetabling Problems", 4 th International Conference on the Practice and Theory of Automated Timetabling, 2002, [Caldeira 97] Caldeira, P. , Agostinho, R. , "School Timetabling Using Genetic Search", Practice and Theory of Automated Timetabling, Toronto, 1997. [Holland 75] Holland J. , Adaptation in Natural and Artificial Systems, University of Michigan Press, 1975. [Fang 94] Fang, H. , "Genetic Algorithms in Tametabling Problems", Ph. D Thesis, University of Edinburgh, 1994. [Fernandes 02] Fernandes, C. , Caldeira, J. , "Infected Genes Evolutionary Algorithm for School Timetabling", WSES, 2002.
Referências Utilizadas [Souza 01] Souza, F. , Ochi, S. , Maculan, N. , "A GRASP-Tabu Search Algorithm to solve a School Timetabling Problem", Metaheuristics International Conference MIC, July 2001 [Aarts 97] Aarts, E. , Lenstra K. , Local Search in Combinatorial Optimization, Wiley, 1997. [Feo 95] Feo, T. , Resende, M. , "Greedy randomized procedures". Journal of Global Optimization, 1995. adaptive search [Abramson 92] Abramson, D. , Abela, J. , "A Parallel Genetic Algorithm for Solving the School Timetabling Problem", 15 Australian Computer Science Conference, 1992. [Ribeiro 01] Ribeiro, G. , Lorena, L. , "A Constructive Evolutionary Approach to School Timetabling", Evo. COP 2001 - First European Workshop on Evolutionary Computation in Combinatorial Optimization, 2001
- Slides: 30