Gestão de projetos de Software GTI-16 Aula 2 Processo Unificado Processos • Porque não usamos? – – – – Sentimento de perda de tempo Falta de informação Falta de uma política organizacional Frases-chave: • “Já está dando certo do jeito que está” • “O usuário quer resultado logo” • Decidimos usar quando... – Sentimento de “falta de direção” – A manutenção de um sistema está saindo “cara” demais Ger. Proj. de Software GTI - 16 2 Modelo cascata • Primeiro processo – Managing the development of large software systems. W.W.Royce (1970) – Modelo seqüencial de atividades • Fortemente inspirado dos processos de engenharia tradicionais – “Engenharia de Computação” – Necessidades Projeto Execução • Atividades – Análise Projeto Codificação Teste Manutenção Ger. Proj. de Software GTI - 16 3 Modelo cascata • Suposições – Todos os requisitos são previamente conhecidos – Requisitos não mudam – Usuários sabem o que querem e só precisam ver o sistema quando este estiver concluído – Projetos podem ser feitos de maneira completamente abstrata – Codificação sempre se adequa aos projetos (design) – Manutenção é trivial • Evolução – Fonte – Espiral Análise Testes Codificação Testes Projeto Projeto Codificação Análise Ger. Proj. de Software GTI - 16 4 Surgiu então o Processo Unificado • O que é o Processo Unificado (UP)? – Metodologia de desenvolvimento de software iterativo e incremental – Procura estabelecer práticas que visem garantir a produção de um software de alta qualidade, dentro de um cronograma e orçamento possível. • Principais práticas – – – – – – Desenvolver iterativamente Gerenciar Requisitos Usar arquiteturas baseada em componentes Modelar software visualmente Verificar continuamente a qualidade do software Controlar mudanças Ger. Proj. de Software GTI - 16 5 Visão em espiral do UP Ger. Proj. de Software GTI - 16 6 Visão Geral Ger. Proj. de Software GTI - 16 7 Conceitos principais • Componentes estáticos – – – – – Disciplinas Fluxos Papéis Atividades Artefatos • Componentes dinâmicos – – – – Ciclos Fases Iterações Marcos Ger. Proj. de Software GTI - 16 8 Conceitos-chave: Disciplina • Disciplina – Uma disciplina é um conjunto de atividades relacionadas a uma “área de interesse” importante em todo o projeto. – O fluxo de trabalho de uma disciplina é uma seqüência semi-ordenada das atividades que são realizadas para alcançar um determinado resultado. • Tipos – Relacionadas ao desenvolvimento • Requisitos, análise e Design, implementação, implantação,... – Relacionadas ao suporte • Ger. de projeto, ger. de configuração e mudança, ambiente,... Ger. Proj. de Software GTI - 16 9 Conceitos-Chave: Fluxo de trab. • Fluxo de Trabalho – Uma simples enumeração de todos os papéis, atividades e artefatos não constitui um processo; – É necessária uma forma para descrever as seqüências significativas das atividades que produzem algum resultado importante e para mostrar as interações entre os papéis. – O fluxo de trabalho é uma seqüência das atividades que produzem um resultado de valor observável. Ger. Proj. de Software GTI - 16 10 Conceitos-Chave Ger. Proj. de Software GTI - 16 11 Conceitos-Chave: Papel • Define – Comportamento e as responsabilidades de um indivíduo ou de um conjunto de indivíduos que trabalham juntos como uma equipe • Papéis não são indivíduos – Descrição do comportamento e das responsabilidades que eles devem ter. – Mapeamento Indivíduo/Papel é feito pelo Gerente do Projeto • Exemplos – Analista de Sistemas, Designer de Negócio, Revisor de Requisitos, Implementador, Arquiteto de Software,… Ger. Proj. de Software GTI - 16 12 Conceitos-Chave: Atividade • Uma atividade é uma unidade de trabalho que um indivíduo, desempenhando o papel descrito, pode ser chamado a realizar. • Os papéis possuem atividades que definem o trabalho que executam. Uma atividade é algo que um papel faz e produz um resultado significativo no contexto do projeto • Exemplos – Avaliar viabilidade do conceito arquitetural – Estruturar modelo de implementação Ger. Proj. de Software GTI - 16 13 Conceitos-Chave: Artefato • Um artefato é um produto de trabalho do processo: os papéis usam os artefatos para executar atividades e produzem artefatos ao executarem as atividades • As atividades possuem artefatos de entrada e saída • Exemplo Analista de Sistema/ Especificador de Requisitos Domínio de Negócio e Especificação de Casos de uso Ger. Proj. de Software GTI - 16 14 Componentes dinâmicos • UP é um processo baseado no modelo espiral – Projeto dividido em ciclos – Cada ciclo representa uma nova versão do produto – Cada ciclo possui 4 fases consecutivas • Fases – – – – Iniciação – definição do escopo Elaboração – análise e projeto Construção – desenvolvimento e integração Transição – passagem ao “domínio público” • O final das fases define os principais marcos do projeto • Cada fase pode ser quebrada em iterações – Cada iteração resulta em uma nova release Ger. Proj. de Software GTI - 16 15 Fase de iniciação • Objetivos – Definir o caso de negócio do sistema • Critério de sucesso, análise de risco, planejamento de recursos e de tempo (cronograma) – Delimitar o escopo do projeto • Saídas – – – – Documento de visão do projeto Caso de uso inicial (~ 20%) Caso de negócio do sistema Planejamento inicial (custo, cronograma, processo,...) – Possíveis protótipos (avaliação) Ger. Proj. de Software GTI - 16 16 Marco da fase de incepção • O fim da fase é um marco do projeto (milestone), cujos critérios de avaliação são: – Tomador de decisão (stakeholder) está de acordo com o escopo e o custo e tempo estimados – Requisitos bem compreendidos (a julgar pelo caso de uso inicial) – Custos e cronograma correspondem a realidade – Avaliação dos protótipos desenvolvidos • O projeto pode ser cancelado ou revisto se não passar nos critérios desse marco Ger. Proj. de Software GTI - 16 17 Fase da elaboração • Objetivos – Analisar o domínio do problema – Definir uma arquitetura de base – Desenvolver o planejamento do projeto, de forma a eliminar os maiores riscos • Visão de um “oceano com um palmo de profundidade” • Saídas – – – – Caso de uso (~80 %) Arquitetura do sistema Protótipo funcional da arquitetura Planejamento mais detalhado, incluindo as iterações – Detalhamento do processo de desenvolvimento Ger. Proj. de Software GTI - 16 18 Tarefas na elaboração (1) Ger. Proj. de Software GTI - 16 19 Tarefas na elaboração (2) Ger. Proj. de Software GTI - 16 20 Marco da fase de elaboração • Critérios de avaliação – A visão do produto é estável? – A arquitetura proposta é estável? – O protótipo mostra que os riscos identificados foram levados em conta e resolvidos? – O plano para a fase de construção está bem detalhado? – Os stakeholders concordam que o produto pode ser feito no planejamento estipulado com a arquitetura proposta? – Os custos investidos estão de acordo com o planejado? Ger. Proj. de Software GTI - 16 21 Fase de construção • Objetivos – Desenvolver os componentes e funcionalidades da aplicação – Integrar e testar os componentes • Saídas – O produto integrado e testado – Manual do usuário – Descrição da versão atual do produto Ger. Proj. de Software GTI - 16 22 Marco da fase de construção • Critérios de avaliação – O produto está suficientemente estável e maduro para ser colocado a disposição? – Todos os stakeholders estão satisfeitos em colocar o produto à disposição? – Os custos investidos ainda estão de acordo com o planejado? • A fase de transição pode ser adiada se os critérios falharem Ger. Proj. de Software GTI - 16 23 Fase de transição • Objetivos – Realizar a transição do software aos usuários • Inclui – – – – – Beta-testing Treinamento dos usuários Conversão das bases de dados funcionais Execução paralela com o sistema que estará substituindo Envio do produto ao marketing e vendas Ger. Proj. de Software GTI - 16 24 Marco da fase de transição • Critérios de avaliação – O usuário está satisfeito? – As despesas reais com recursos são aceitáveis se comparadas com as planejadas? • Final – Reiniciar um novo ciclo de vida com uma nova versão do produto – Manutenção total dos artefatos para terceiros que serão responsáveis pela manutenção – Comercialização do produto Ger. Proj. de Software GTI - 16 25 Sintetizando…. Ger. Proj. de Software GTI - 16 26 Artefatos Documento Iniciação Elaboração Construção Transição Análise de Domínio de Negócio 80% 13% 5% 2% Arquitetura de Software 10% 70% 10% 10% Camada de Dados 5% 45% 40% 10% Especificação de Casos de Uso 50% 10% 30% 10% Realização de Casos de Uso 0% 20% 75% 5% Implementação 0-5% 30-40% 50-60% 0-5% Ger. Proj. de Software GTI - 16 27 Atividade em grupo Ger. Proj. de Software GTI - 16 28