VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Modelo de Fábrica de Software Jorge Risco Becerra, Fábio Levy Siqueira e Beatriz Borsoi O conceito de Fábrica de Software busca a obtenção de produtividade e qualidade no desenvolvimento de software através de padronização e controle. Neste tutorial é apresentado como esse conceito foi empregado para a criação de um modelo de Fábrica de Software. São assim apresentados o embasamento teórico (introdução à qualidade em software, arquitetura de processos e a definição de Fábrica de Software) e o método de criação desse modelo. Também é discutido como esse modelo foi instanciado em uma Fábrica de Software para dispositivos móveis. VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Modelo de Fábrica de Software Prof. Dr. Jorge Risco Becerra [email protected] Prof. Msc. Fábio Levy Siqueira [email protected] Profa. Msc. Beatriz Borsoi [email protected] Escola Politécnica da Universidade de São Paulo Sumário Apresentação do LTS Introdução à Qualidade Arquitetura de Processos Definição de Fábrica de Software A Parceria Fábrica de Software de Objetos Educacionais Modelo de Fábrica de Software Análise do Processo Definição do Modelo Instanciação do Modelo Conclusão e Trabalhos Futuros São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Modelo de Fábrica de Software O LTS Laboratório de Tecnologia de Software Escola Politécnica da Universidade de São Paulo www.pcs.poli.usp.br/lts [email protected] Tel: 3091 5200 Fax: 3091 5294 Laboratório de Tecnologia de Software Missão Ter excelência em Tecnologia de Software para promover transformações na sociedade Objetivos Ensino Pesquisa • • • • Formar recursos humanos com experiência Desenvolver programas integrados de pesquisa alinhados com as áreas de interesse Realizar pesquisas de impacto que conduzam ao seu reconhecimento Direcionar a pesquisa para obtenção de tecnologia Extensão • • • Tornar-se centro de referência Transferir tecnologia Formar profissionais VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Áreas de Atuação 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Arquitetura de Software Banco de Dados Engenharia de Requisitos Gerência de Projeto de Software Interface Homem-Computador Métodos Formais em Engenharia de Software Processos de Software Qualidade de Software Reutilização de Software Técnica de Orientação a Objetos Membros Jorge Luis Risco Becerra (doutor) Jorge Rady de Almeida Júnior (associado) Kechi Hirama (doutor) Lúcia Vilela Leite Filgueiras (doutor) Maria Alice G.V. Ferreira (doutor) Paulo Sergio Muniz Silva (doutor) Reginaldo Arakaki (doutor) Selma Shin Shimizu Melnikoff (titular) Solange Nice Alves de Souza (doutor) VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Modelo de Fábrica de Software Introdução à Qualidade Porque qualidade em software? VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Qualidade A Qualidade é a chave dos negócios Melhoras na qualidade de software trazem melhoras na produtividade de software A qualidade do suporte de software é tão importante quanto a qualidade do software Para atingir a qualidade de software, pessoas e cultura são tão importantes quanto a tecnologia Qualidade Melhora na qualidade de software, significa melhora no processo de desenvolvimento (pessoal, facilidades, equipamentos, tecnologia, metodologia, conceitos) Deve existir um compromisso da Diretoria na melhora dos processos Sistemas baseados em modelos é um bom início para muitas empresas. O sistema de qualidade é “customizado” para cada empresa VII Simpósio Internacional de Melhoria de Processos de Software Conceitos Necessidades Mercado do software Fator crítico Globalização Competitividade Sucesso Satisfação do usuário Confiança nos negócios São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Características Qualidade fator de competitividade Funcionalidade como fator de avaliação Qualidade do produto Qualidade do suporte Assegurar a qualidade Padrão como pré-requisitos dos negócios Qualidade na corporação Características Qualidade fator essencial no mercado Fábrica de software • Componentes Projetos Cooperativos Exportação • Competir com qualidade • Off-shore São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Características Qualidade aumenta o custo-benefício Visa aumentar a produtividade Reduz os custos • Redução dos defeitos Reutilização Análise da redução dos custos • Técnica: “Custo do programa de qualidade” • Análise da figura a seguir Custo da qualidade falhas diminuição das falhas verificação melhoras nos testes prevenção básico maior prevenção melhores processos Antes Depois VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Características Qualidade protege os negócios Aumenta a satisfação do cliente Assegurar o cliente Aumento de 5 % na retenção do cliente aumenta em 35 % os lucros • (CRM - Customer Relationship Managment) Qualidade será a marca registrada dos negócios Definição “ Todas as funcionalidades e características dos produtos ou serviços que se relacionam com a capacidade de atingir necessidades específicas” International Standards Quality Vocabulary (ISO 8402-1986) VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Definição Satisfação do Usuário = Qualidade A qualidade de um produto é determinado: Total entendimento das necessidades Definição dos requisitos Transformação dos requisitos em produto Suporte ao desenvolvimento do produto Definição Qualidade e os requisitos O processo de aquisição dos requisitos deve identificar e definir as características de um produto para determinar sua qualidade Determinação dos requisitos objetivos e subjetivos Comunicação com o usuário ou determinação dos requisitos do mercado VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Definição Qualidade e o processo de desenvolvimento Utilizar as melhores técnicas da engenharia de software Utilizar ferramentas adequadas Equipe especializada Técnicas para determinação de erros Análise estatístico do processo Definição Qualidade e o suporte ao produto Documentação, textos de ajuda (on-line) Distribuição Assistência e serviços específicos e consultoria Treinamento Melhoras São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Sistema de Qualidade Descreve os processos que asseguram qualidade dos produtos e os serviços Processos, políticas, procedimentos, ferramentas, recursos técnicos e humanos CMM e o SPICE definem os requisitos do sistema de qualidade Modelo de Fábrica de Software Arquitetura de Processos São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Problema CMM-I PSP-TSP “Boas Práticas” ISO-12207 Recomendações Processos Implementação Melhoria SPICE Qualidade de software e Processos Pesquisa ODP Open Distributed Processing Empresa Informação Computação Engenharia Arquitetura de Software ODP – MDA Métodos Objeto Sistema Objeto Sistema Objeto Sistema Objeto Sistema Corporativo M Gerencial M Objeto Sistema Objeto Sistema Tecnologia Processo de Negócio Principal Operacional Produto Serviço Arquiteturas Corporativas São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Arquitetura ODP Objeto Empresa Objeto Sistema = Processos Objeto Computação Objeto Informação Objeto Engenharia Objeto Tecnologia Arquitetura Arquitetura Corporativa Processos de Negócios Sistema Corporativo Sistemas de Informação Sistema de Informação São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Modelo de Fábrica de Software Definição de Fábrica de Software Fábrica de Software Ambiente Cooperativo de Desenvolvimento de Software Modelo de Objetos Processos • Arquitetura dos processos de negócios Modelo de Objetos Sistemas de Informação • Arquitetura do sistema de informação São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Fábrica de Software Sistema Processos Estratégico Project Processos Processos RUP Processos ISO 12207, CMM, ISO 15504 SourceSafe Sistemas de Informação Técnicas, métodos, roteiros Reutilização, Componentes, arquiteturas CRM, SCM, RH Tecnologia Instância de Fábrica Processo de Supervisão Corporativo Processo Processo Processo Supervisão e Controle de Planejamento G.Configuração Linha de Linha de Linha de Linha de Produção 1 Produção 2 Produção 3 Produção N Processos de Desenvolvimento VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Modelo de Fábrica de Software A Parceria Laboratório USP – Microsoft 3 anos 2 monitores Apoio em pesquisa e ensino Infra-estrutura 12 Estações 64 bits 8 pockets 7 Tablets 10 Estações Pentium São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Modelo de Parceria Modelos de Fábrica Pólos tecnológicos Arquiteturas Corporativas Middleware LTS Meta Acadêmica Meta Curto Prazo Instancia de Modelo De Fábrica VSTS Microsoft Modelo de Fábrica de Software Fábrica de Software de Objetos Educacionais VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Exemplo A Fábrica de Software Objetos Educacionais: “Qualquer recurso digital que pode ser reusado para apoiar o aprendizado” (Wiley, 2000) Estudantes definem a simulação Ensino médio / Escolas públicas Aplicação de conceitos de física Disponível na Internet http://www.labvirt.futuro.usp.br/ VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Partes Envolvidas Escola do Futuro Faculdade de Educação Escola de Comunicações e Artes Escola Politécnica Secretaria de Educação de São Paulo Microsoft Particularidades da Fábrica Domínio de aplicação específico Produção rápida 15 horas em média Preocupação com o conteúdo educacional Manter a filosofia VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Processo Geral Escola Criação dos Roteiros Faculdade de Educação Escola do Futuro - Equipe de Designers Fábrica de Software POLI BPMN Notação gráfica para expressar processos de negócio Legível para diferentes públicos Transformação automática para uso de Web Services Ponte para projeto de processos de negócio e implementação do processo Padrão Versão 1.0 – 2004 Envolvimento de diversas empresas do setor VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Elementos Gráficos do BPMN Artefatos Objetos de Fluxo Objetos de Conexão Swimlanes Modelo BPMN São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Ferramentas Project / Project Web InfoPath Medições esforço e tamanho SharePoint Planejamento e acompanhamento Workflow de documentos Visual SourceSafe Gerência de Configuração Resultados 28 escolas envolvidas 120 professores treinados 60 objetos educacionais produzidos pela Fábrica de Software Complexidade do OE Duração Média Produção (horas) Baixa 5 Média 8 Alta 22 17% 48% 35% Baixa Média Alta São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Resultados 10,00 9,00 Estimado Real 8,00 7,00 6,00 Duração média (horas) 5,00 4,00 3,00 2,00 1,00 0,00 Análise de Viabibildade Análise de Requisitos Modelagem Implementação Testes Fase do Processo Modelo de Fábrica de Software Modelo de Fábrica de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Objetivo Definir um Modelo de Fábrica de Software ? ? ? Modelo de Fábrica de Software Pocket PC Aplicativos Embasamento Fábrica de Software de Objetos Educacionais (FSW-OE) Processos de desenvolvimento Processos de gerência CMM Processos de gerência UP Processo de desenvolvimento São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Método Fase 1 Fase 2 Fase 3 Análise do Processo da Fábrica Definição do Modelo Instanciação em uma Fábrica Protótipo Modelo do CMM em BPMN Avaliar Fábrica de Objetos Educacionais Definir pontos fortes e pontos fracos Corrigir problemas encontrados Montar processo Montar guia de processo Instanciar o processo conceitual Foco em aplicativos Móbile Modelo de Fábrica de Software Avaliação do Processo VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Objetivo Avaliar o processo de software Seguir a filosofia do CMM (nível 2) Comparar o processo com o CMM Pontos fortes e fracos do processo Porque CMM? Definição de fábrica Necessidade de um processo bem definido Gerência adequada A filosofia do CMM está diretamente ligada à idéia de Fábrica de Software VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Base do Método de Avaliação CBA-IPI (CMM-Based Appraisal for Internal Process Improvement) Método para avaliação de pontos fortes e fracos de uma organização usando CMM Três fases: • Planejar e preparar a avaliação • Conduzir a avaliação • Exibir os resultados Base do Método de Avaliação SPF (Software Process Framework) Guia para projetar, analisar e revisar projetos Consistência com o CMM Define um quadro de referência básico Restringem Padrões Políticas Processos Implementados por Procedimentos Apoiados por Treinamento Ferramentas VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Processo de avaliação Atividades principais Questionário Criado a partir das práticas Adaptado para cada papel Importância de cobrir diversos papéis Consolidação dos dados Absorção das visões dos funcionários Definição de uma visão geral VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Atividades principais Análise dos pontos fortes e pontos fracos Checklist do SPF como base Comparação • Processo CMM conceitual • Processo da fábrica de software Processo Conceitual do CMM Objetivos Baseado nas práticas do CMM Atividades e Verificações Compromissos, Habilidades e Medições CMM não define processo Observar graficamente o processo do CMM Facilitar a análise de processos Adicionadas seqüências e mensagens Adicionadas atividades (raramente) Suposições foram documentadas São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Comparação BPMN Equipe de Desenvolvimento Obter Documentos Análise de Requisitos E-mail Teste Implementação Entrega E-mail Cronograma Gerência Sênior SharePoint Controle de Versão Grupo de Engenharia de Software SharePoint Revisar o status Semanalmente Gerente de projeto Equipe de Planejamento Gerente de Projetos Roteiro e Telas Outros Grupos afetados Equipe de Planejamento Problemas Revisar superficialmente o roteiro e as telas Criar o cronograma Dados Históricos Gerente de Primeira Linha Equipe de Desenvolvimento Grupo de Controle de Mudanças ? Documento de Viabilidade Fazer a análise de viabilidade Ficha de Atividade Planejamento do CMM Planejamento da Fábrica de Software Modelo de Fábrica de Software Definição do Modelo VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Modelo de Fábrica de Software Não é específico a um domínio de aplicação Tarefas principais Necessário instanciar o processo Dificuldades Interdependência dos processos Atividades que estão em diversos processos Discussões entre os responsáveis pelo processo Diferentes níveis de abstração Visões diferentes do processo “Burocratização” do processo Problema do processo teórico Necessária a implantação do processo São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Resultado Guia do processo Modelos BPMN dos processos Passo-a-passo das atividades Modelo de Fábrica de Software Instanciação do modelo VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Instanciação do modelo Especialização dos guias para um contexto específico Desenvolvimento de aplicações para dispositivos móveis Fábrica Móbile Pocket PC, SmartPhones Consideração dos requisitos do domínio de aplicação Seleção das Ferramentas Necessidade de escolher ferramentas Desenvolvimento Modelagem UML Planejamento e acompanhamento Gerência de Configuração • Códigos e os demais artefatos de projeto Coleta de dados gerenciais Suporte ao processo • Facilitar o uso do processo • Automatizar atividades São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software Fábrica Móbile Apoio ao processo Visual Studio 2005 Team System (Beta 2) Ferramentas Microsoft Office, Visio e Project VSTS para a Fábrica Móbile Atividades Eventos Papéis Artefatos Work items Transições Campos Estados Visual Studio Team Systems 2005 Guia dos Processos Template de Processo da Fábrica de Software Diagramas BPMN dos processos Guia do Processo Requisitos do Desenvolvimento Pocket VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br A Ferramenta Resultados Guia do Processo para a Fábrica Móbile Template de Processo para Fábrica Móbile (VSTS) Ferramentas empregadas Visual Studio Team System Office (Word, Excel, Project e Visio) SharePoint São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br VII Simpósio Internacional de Melhoria de Processos de Software VSTS e o Modelo de Fábrica Pontos Cobertos Medidas das atividades Papel 1 Atividades e seus estados internos Papel 2 Respositório de artefatos integrado Papéis e suas permissões Modelo de Fábrica de Software Conclusão e Próximos Passos VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Conclusões Resultados gerais Guia de Processo para a Fábrica Móbile Template de Processo da Fábrica Móbile para o VSTS Aplicação do VSTS • Problemas e pontos positivos • Caso de aplicação do VSTS e de seus benefícios Próximos passos Relação arquitetura de processos e workflow Modelo de fábrica para pequena empresa de inovação “Residência” em Engenharia de Software Modelo de pólo tecnológico Especialista aprende especificamente uma área do processo Objetos educacionais para Engenharia de Software VII Simpósio Internacional de Melhoria de Processos de Software São Paulo, SP – Brasil 21-23/11/2005 www.simpros.com.br Referências CUSUMANO, M. A. The Software Factory: A Historical Interpretation. IEEE Software, v.6, n.2, p.23-30. March 1989. DUNAWAY, D. K.; MASTERS, S. CMM – Based Appraisal for Internal Process Improvement (CBA-IPI). Technical Report CMU/SEI-2001-TR033. Carnegie Mellon Software Engineering Institute, 2001. FERNSTROM, C.; NARFELT, K.; OHLSSON, L. Software Factory Principles, Architecture, and Experiments. IEEE Software, v.9, n.2, p.36-44. March 1992. JACOBSON, I; BOOCH, G.; RUMBAUGH, J. The Unified Software Development Process. Addison-Wesley, 1999. OLSON, T. G. et al. A Software Process Framework for the SEI Capability Maturity Model: Repeatable Level. Special Report CMU/SEI93-SR-007. Carnegie Mellon Software Engineering Institute, 1993. PAULK, M.; CURTIS, B.; CHRISSIS, M. B.; WEBER, C. V. Capability Maturity Model for Software. Technical Report CMU/SEI-93-TR-024. Carnegie Mellon Software Engineering Institute, 1993. WILEY, D. A. Connecting learning objects to instructional design theory: A definition, a metaphor, and a taxonomy. In D. A. Wiley (Ed.), The Instructional Use of Learning Objects: Online Version. 2000. Disponível em: <http://reusability.org/read/chapters/wiley.doc>. Obrigado! Prof. Dr. Jorge Risco Becerra [email protected] Prof. Msc. Fábio Levy Siqueira [email protected] Profa. Msc. Beatriz Borsoi [email protected]