Fábrica de Software III Mesa de Compras Breno Costa Eduardo Almeida Agenda Embasamento Teórico Metodologia Fases x Artefatos Organização da Fábrica Métrica de Estimativa de Esforço Desenvolvimento Baseado em Componentes Ferramentas Embasamento Teórico “The term factory has, however, the controversial connotation that software development and maintenance is comparable to mass-production of industrial products, and aguarbly this is not the case” [1][Aaen, Botcher, Mathiassen, Software Factories, 1997] Embasamento Teórico “The principles of the software factory and process improvement do not automatically lead to a sucessful development organization” [2][Siy, Herbsleb, Mockus, Krishnan, Tucker, Making the Software Factory Work: Lessons from a Decade of Experience] Metodologia Baseada no RUP Metodologia de desenvolvimento dividida em 4 fases: – Comercial – Planejamento e Gerenciamento – Desenvolvimento de Componentes – Testes e Validaçã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 Implementar 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. 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 Desenvolvimento de Componentes 1. Documento de Requisitos Testes e Validação 1. Plano de Testes Relatório de Avaliação dos Testes Componentes de Testes 2. 3. 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 Líder 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 Analista de Sistemas 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 Qualidade 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 Aspectos Financeiros Custo por PCU Fator de Conversão Cálculo de Custo por Horas Margens 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 MVCASE 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) 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.