270 likes | 290 Views
O Fluxo de Distribuição de Software. © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software Processes. Objetivo. Conhecer as atividades e principais decisões relativas ao processo de distribuição de software. Tópicos.
E N D
O Fluxo de Distribuição de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software Processes
Objetivo • Conhecer as atividades e principais decisões relativas ao processo de distribuição de software
Tópicos • Classificação de releases e numeração • Distribuição
Classificação de Releases • A classificação é baseada no objetivo e expectativa que se deve ter do release: • Alpha release • Beta release • Release final
Alpha Release • Foram introduzidas no produto funcionalidades significativas • O Desenvolvedor deseja avaliação e feedback de clientes selecionados • Objetivo: encontrar problemas no produto • Clientes devem estar motivados! • Produto não está suficientemente estável para distribuição em larga escala • Features (funcionalidades) podem ser incluídas/excluídas
Clientes precisando de novas funcionalidades competidores trabalhando em novas funcionalidades Clientes mudando para competidores competidores lançando seus produtos especificação funcional alpha release incorporar feedback release para clientes Alpha Release
Beta Release • Necessidade de feedback sobre estabilidade do produto • Não há mais inclusão/exclusão de funcionalidades • Se estável, o Beta pode virar o próprio produto
Release Final • Disponível para os clientes
Updates e Upgrades • Em geral, há necessidade de manter releases anteriores • Manter compatibilidade de dados, funcionalidades e interface • updates: • consertam defeitos no produto • upgrades: • oferecem novas funcionalidades • novo empacotamento
Patches e consertos de emergência • Disponibilizados devido à urgência • Às vezes disponível apenas para alguns usuários • soluções de curto-prazo, corrigidas adequadamente em um update ou upgrade posterior.
Numeração de releases x.y.z major release number feature release number defect repair number
Numeração de releases x.y.z[{A|B}w] major release number feature release number defect repair number iteração do alpha/beta
Numeração interna de releases • Baseado em data • Um campo a mais
Distribuição de software no RUP • Objetivo: entregar o produto aos usuários finais • Muito dependente do contexto do negócio e do projeto • Precisa ser configurado! • Algumas possíveis atividades • Produção do software • Empacotamento do software • Distribuição do software • Instalação do software • Migração • Suporte aos usuários • Aceitação • Planejamento e execução de Beta testes
Produção do software • Gerar programa/script de instalação • Gerar documentação do usuário • Gerar dados de configuração • exemplo: idiomas, features disponíveis • Gerar programas adicionais para migração • exemplo: conversão de dados
Documentação para o usuário • Guia de instalação • Guia do usuário • Tutorial • Como usar o tutorial e o help online • Release notes • informações sobre o release, compatibilidade, como atualizar, novas features, limitações e bugs conhecidos.
Empacotamento do software • Disponibilizar os artefatos do produto em uma mídia para distribuição • diskettes • fita • CD-ROM • servidores web • Inclui material adicional: documentação, etc.
Distribuição do software • Definição dos métodos de distribuição • envio pelo correio • distribuidores • Internet • Licenciamento • administração de licenças e entrega de códigos de licenças a usuários
Instalação do software • Definição do processo de instalação do software • realizado pelo usuário final • realizado pelo vendedor do produto • detalhamento do processo de instalação
Migração • Definição do processo de migração de uma versão anterior do sistema para uma nova versão • aspectos de continuidade • aspectos de conversão de dados • Programas de migração são desenvolvidos e testados da mesma forma que o próprio produto.
Suporte a usuários • Treinamento • Treinamento pelo computador (tutorial) • Help Online • Suporte telefônico • Suporte via Internet • FAQs, exemplos, wizards. • bug-tracking (Gerência de Mudanças)
Aceitação • Processo formal de aceitação pelo cliente de que o software foi entregue/instalado.
Planejamento de testes Alpha/Beta • Definição de se e quando serão realizados • Definição da equipe envolvida com os testes
Gerente de Implantação Escritor Técnico Implementador Instrutor Plano de Implantação Material de Suporte ao Usuário Release Notes Artefatos de Instalação Material de Treinamento RUP - Artefatos
RUP – Fluxo de Atividades Desenvolver Material de Treinamento Instrutor Desenvolver Material de Suporte ao Usuário Escritor Técnico Empacotar e Liberar o Produto Gerenciar Testes Beta e/ou de Aceitação Planejar Implantação Gerenciar Testes Alfa Gerente de Implantação Produzir Artefatos de Instalação Implementador
Referências • Descrição do workflow de gerência de configuração e mudanças - CD do RUP • Configuration Management Today - http://cmtoday.com • Software Release Methodology, M.E.Bays, Prentice Hall, 1999.
O Fluxo de Distribuição de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software Processes