Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Engenharia de Software Tema da Aula .. .. Processo de Desenvolvimento de Software Tema da Aula Processos de Software Processo Unificado RUP® Conceitos Processos de Software Processos de Software: Modelos de Ciclo de Vida do Produto de Software Clássico (cascata ou linear) Outros Modelos: Incremental Evolutivo Prototipação Espiral RAD Outros Processo Unificado (RUP - Unified Process) Modelo Ágil Métodos Formais E outros Ciclos de Vida de Software Modelo Processo Unificado Desenvolvimento de software a partir de um framework genérico, que pode ser especializado para diferentes aplicações, organizações, níveis de competência e tamanho de projetos. Características: Baseado em componentes reutilizáveis Usa UML para modelar o produto Dirigido a casos de uso Centrado na arquitetura Iterativo e Incremental COTS Ciclos de Vida de Software Modelo RUP Desenvolvimento de software a partir de um framework genérico, que pode ser especializado para diferentes aplicações, organizações, níveis de competência e tamanho de projetos. Características: Baseado em componentes reutilizáveis Usa UML para modelar o produto Dirigido a casos de uso Centrado na arquitetura Iterativo e Incremental UML Unified Modeling Language Ciclos de Vida de Software Modelo RUP Desenvolvimento de software a partir de um framework genérico, que pode ser especializado para diferentes aplicações, organizações, níveis de competência e tamanho de projetos. Características: Baseado em componentes reutilizáveis Usa UML para modelar o produto Dirigido a casos de uso Centrado na arquitetura Iterativo e Incremental CASO DE USO (USE CASE): É um texto narrativo ou gabarito que descreve uma função ou característica do sistema do ponto de vista do usuário. O caso de uso é descrito pelo usuário e serve como base para a criação de um modelo de análise mais abrangente. Pressman Ciclos de Vida de Software Modelo RUP Desenvolvimento de software a partir de um framework genérico, que pode ser especializado para diferentes aplicações, organizações, níveis de competência e tamanho de projetos. Características: Baseado em componentes reutilizáveis Usa UML para modelar o produto Dirigido a casos de uso Centrado na arquitetura Iterativo e Incremental Arquitetura de software: Refere-se à estrutura global do software e aos módulos pelos quais essa estrutura fornece integridade conceitual para um sistema. Em sua forma mais simples, arquitetura é: A estrutura ou organização dos componentes de programa (módulos) O modo pelo qual esses componentes interagem As estruturas dos dados que são usadas pelos componentes. Em um sentido mais amplo, no entanto, componentes podem ser generalizados para representar os principais elementos do sistema e suas interações. Pressman. Uma arquitetura de software é o produto do trabalho de desenvolvimento que dá o retorno de investimento mais alto, no que diz respeito a qualidade, cronograma e custo. Len Bass et al. Ciclos de Vida de Software Modelo RUP Recomenda o uso de Casos de Uso (Use Cases) para capturar a funcionalidade do produto. Um modelo de Casos de Uso é formado pelo conjunto de diagramas de Caso de Uso. Vantagem: está dirigido a cada usuário (ator). A arquitetura de software deve contemplar seus aspectos estático e dinâmico. Ciclos de Vida de Software Modelo RUP RUP - Conceitos FASES Na fase de Concepção, decide-se o que será desenvolvido. RUP - Conceitos FASES Na Elaboração faz-se uma análise de risco, constrói-se uma arquitetura executável, para realizar um teste de viabilidade e outras atividades para garantir o sucesso do projeto. RUP - Conceitos FASES Na fase de Construção o produto de software é construído, garantindo que, ao final de cada iteração, teremos um software executável, para ser liberado aos usuários. RUP - Conceitos FASES Finalmente, na Transição o produto de software é instalado na área de produção, juntamente com a documentação, o treinamento e suporte para os usuários. RUP - Conceitos No desenvolvimento de cada fase, executamos diversos tipos de atividades, chamadas disciplinas. Ciclos de Vida de Software Modelo RUP RUP - Conceitos Em cada iteração, empregamos esforço em algumas ou em todas as disciplinas que constituem o processo de software. RUP - Conceitos Cada fase é composta de uma ou mais ITERAÇÕES. Aconselha-se um total de 8 a 9 iterações, no ciclo completo de desenvolvimento de um produto. ITERAÇÕES O Processo Unificado “Hoje, a tendência em software é em direção a sistemas maiores, mais complexos. Isso se deve, em parte, ao fato de que os computadores têm se tornado mais potentes a cada ano, levando os usuários a esperar mais deles. Essa tendência também tem sido influenciada pelo uso da Internet, que está se expandido, para trocar toda espécie de informação... Nosso apetite por softwares cada vez mais sofisticados cresce à medida que aprendemos de uma versão de produto para a seguinte como o produto poderia ser aperfeiçoado. Desejamos softwares que sejam melhore adaptados às nossas necessidades, mas que, por sua vez, não torne o software somente mais complexo. Em resumo, desejamos mais.” Jacobson, Booch e Rumbaugh apud Pressman O Processo Unificado “De certo modo, o PU (Processo Unificado – em inglês PU) é uma tentativa de apoiar-se nos melhores recursos e características dos modelos convencionais de processo de software, mas caracterizá-los de um modo que implemente muitos dos melhores princípios de desenvolvimento ágil de software. O PU reconhece a importância da comunicação com o cliente e dos métodos diretos para descrever a visão do cliente de um sistema (caso de uso). Ele enfatiza o importante papel da arquitetura de software e ajuda o arquiteto a se concentrar nas metas corretas, tais como compreensibilidade, abertura a modificações futuras e reuso. Ele sugere um fluxo de processo interativo e incremental, dando a sensação evolucionária que é essencial no desenvolvimento moderno de software”. Jacobson, Booch e Rumbaugh apud Pressman, 2006 p.51 RUP ou UP? A letra “R” à frente do UP, faz referencia á Rational inc. (hoje uma brand da IBM), empresa de software que foi atora principal no desenvolvimento do Processo Unificado. Rational pertenceu aos três amigos (Booch, Rambaugh e Jacobson) e evoluiu juntamente com o desenvolvimento da UML – desenvolvida em “consórcio” mundial das maiores empresas de software (década de 90). Experiências anteriores de muitos envolvidos, essencialmente de Jacobson no processo Objectory, levaram ao desenvolvimento do RUP. RUP ou UP? A Rational desenvolveu produtos de SW concomitantemente ao UP Um Meta-Processo de Engenharia de Software (UP) É Produto “web” contendo inicialmente o Meta-processo “completo” (conceitos, diretrizes, glossário etc.). O software Method Composer Permite que a área de processo edite-o, adaptando às suas características e cultura organizacional. Este produto documenta, orienta e centraliza o processo padrão, apoiando a sua disseminação. Conjunto de Ferramentas (obviamente, eles preferem as da IBM) para automatizar as atividades que compõem o processo. Livre Versus Proprietário RUP - Processo O RUP (ou UP ou PU) é um modelo de PROCESSO UNIFICADO DE ENGENHARIA DE SOFTWARE. Por Modelo, leia-se META-PROCESSO RUP - Processo Ênfase maior em duas dimensões importantes: Dimensão Tempo: Fases e Iterações Dimensão Conteúdo: Worflows, Papeis, Artefatos, Atividades, Gabaritos, etc... RUP - Processo Introdução do conceito de Disciplinas Uma coleção de atividades relacionadas que definem uma 'área de interesse' maior, identificáveis na engenharia de software. Múltiplas Visões do Processo: Vertical (Detalhamento do Esforço por fase) Horizontal (Detalhamento do Esforço por disciplina) Ciclo de Vida (Esforço Geral de planejamentode um projeto em fases e iterações) RUP - Processo IBM Rational Application Developer IBM Rational AppScan IBM Rational Asset Manager IBM Rational Automation Framework IBM Rational Business Developer Extension IBM Rational ClearCase IBM Rational ClearCase UCM IBM Rational ClearQuest IBM Rational DOORS IBM Rational Functional Tester IBM Rational License Server IBM Rational Method Composer IBM Rational Performance Tester IBM Rational Purify IBM Rational Quality Manager IBM Rational Rhapsody IBM Rational Rose XDE IBM Rational Service Tester IBM Rational Software Architect IBM Rational Software Modeler IBM Rational SQABasic Rational Synergy IBM Rational Team Concert IBM Rational Unified Process System Architect or IBM Rational System Architect RUP – Estrutura Grandes Marcos (milestones) no Ciclo de Vida RUP Disciplina: Engenharia de Software Tema da Aula .. .. Processo de Desenvolvimento de Software Tema da Aula Processos de Software Processo Unificado RUP® DETALHADO RUP - Conceitos (Tempo) Agrupamento Atividades ESFORÇO NO TEMPO (CURVA DAS BALEIAS) RUP – Estrutura Três diferentes visões: 1 – Detalhamento de uma Fase 2 – Detalhamento de uma Disciplina 3 - Visão geral do Esforço de um Projeto RUP - Conceitos FASES Um projeto de desenvolvimento de um produto de software desenvolve-se por meio de quatro fases. RUP - Conceitos FASE 1 – CONCEPÇÃO: Definir o escopo do que será desenvolvido. Identificar e Esboçar requisitos (casos de uso) Analisar riscos essenciais envolvidos Analisar viabilidade técnica e financeira Estimar custos e prazos Levantar Arquiteturas candidatas Gerar plano inicial para prosseguir o projeto RUP - Conceitos FASE 2 – ELABORAÇÃO: Mitigar (suavizar) os principais Riscos Comprovar que arquitetura escolhida suportará o projeto Produzir primeiros releases do software Aferir se os planos estão estáveis MITIGAR (HOUAISS) verbo t.d. tornar(-se) mais brando, mais suave, menos intenso (dor, sofrimento etc.); aliviar, suavizar, aplacar. Ex.: m. a saudade, a sede, a ira etc. RUP - Conceitos FASE 2 – ELABORAÇÃO: Mitigar (suavizar) os principais Riscos RUP - Conceitos FASE 3 – CONSTRUÇÃO: Construir o produto Completar a Análise, Projeto, Implementação e Teste de todos requisitos Gerar releases “úteis” RUP - Conceitos FASE 4 – TRANSIÇÃO: Implantar o produto na Área de Produção (usuário) Conversão de Dados Homologação e Testes Finais Treinamento de usuário Ajustes Avaliação do Produto como um todo RUP – Conceitos Chave Recursos consumidos durante as fases do ciclo de vida RUP (média). RUP – Estrutura Grandes Marcos (milestones) no Ciclo de Vida RUP RUP – Estrutura Fase: Iniciação Critérios de Avaliação Concordância dos principais envolvidos na definição do escopo do projeto e das estimativas de custo/prazo Acordo de que o conjunto correto de requisitos foi capturado e que existe entendimento dos mesmos Acordo de que as estimativas de custo/prazo, prioridades, riscos e processo de desenvolvimento estão apropriados Existe um plano inicial de iterações Todos os riscos foram identificados e há uma estratégia de redução de cada um deles Marco: Objetivo do Ciclo de Vida (LCO) RUP – Estrutura Fase: Elaboração Critérios de Avaliação A visão de Produto e de Requisitos está estável A Arquitetura está estável e suportará o produto de software Os maiores elementos de risco (em especial os riscos tecnológicos) foram encontrados e resolvidos Planos de iteração para a fase de construção estão detalhados Todos os envolvidos concordam que a visão atual pode ser atingida se o plano atual for executado Gastos reais de recursos x gastos previstos são aceitáveis Marco: Arquitetura do Ciclo de Vida (LCA) RUP – Estrutura Fase: Construção Critérios de Avaliação Responder às seguintes perguntas: Este release de produto é estável e maduro o suficiente para ser implantado na comunidade de usuários? Todos os envolvidos estão prontos para a transição do produto para o ambiente do usuário? As despesas reais com recursos ainda são aceitáveis? (reais x planejadas) Marco: Capacidade Operacional Inicial (IOC) “beta” RUP – Estrutura Fase: Transição Critérios de Avaliação Responder às seguintes perguntas: O usuário está satisfeito? As despesas reais com recursos versus despesas planejadas ainda são aceitáveis? Marco: Release do Produto RUP - Conceitos No desenvolvimento de cada fase, executamos diversos tipos de atividades relacionadas, chamadas DISCIPLINAS. DISCIPLINAS RUP - Conceitos DISCIPLINAS RUP - Conceitos Em cada iteração, empregamos esforço em algumas ou em todas as disciplinas que constituem o processo de software. DISCIPLINAS RUP - Conceitos A quantidade de esforço aplicado em cada disciplina, varia conforme a FASE do processo. DISCIPLINAS RUP - Conceitos Esforço total na disciplina de implementação (geração de código), durante as quatro fases do ciclo de desenvolvimento. DISCIPLINAS RUP - Conceitos Entender a estrutura da organização e o processo-alvo. Identificar problemas e possíveis gargalos. Garantir aos stakeholders a mesma compreensão da organização e do problema. Identificar requisitos para o produto de software a ser desenvolvido. DISCIPLINA Modelagem de Negócio RUP - Conceitos Estabelecer e manter acordo entre desenvolvedores e stakeholders” sobre o que o sistema precisa fazer. Obter melhor entendimento dos Requisitos. Definir o escopo do sistema. Obter subsídios para planejar iterações, custo e tempo de desenvolvimento. DISCIPLINA Requisitos RUP - Conceitos Transformar requisitos em modelos de análise e, depois de projeto (design) Desenvolver uma arquitetura robusta Adaptar modelagem ao ambiente de produção DISCIPLINA Análise e Projeto RUP - Conceitos Gerar código para implementar Casos de Uso ou subsistemas organizados como camada Implementar classes e objetos como Componentes Realizar testes Unitários Integrar os resultados para gerar o executável DISCIPLINA Implementação RUP - Conceitos Verificar integração entre os objetos e entre todos os componentes de software Verificar se todos os requisitos foram atendidos Detectar defeitos e garantir que eles serão resolvidos antes de fazer a entrega do software DISCIPLINA Testes RUP - Conceitos Gerenciar atividades de forma a garantir que os relesases do produto estarão disponível para os usuários: Implantar na produção Testar (Beta) Criar documentação de treinamento Criar documentação de operação DISCIPLINA Implantação RUP - Conceitos Identificar itens de Configuração Identificar e autorizar acessos ao repositório Gerenciar atualizações dos itens de configuração controlando mudanças Rastrear e/ou auditar as mudanças requeridas e realizadas DISCIPLINA Gerência de Mudança e Configuração RUP - Conceitos Fornecer uma estrutura (framework) para o gerenciamento do projeto (tempo, orçamento etc.) Fornecer uma estrutura para o gerenciamento de riscos Planejamento, contratação de pessoal, execução e monitoração e demais dimensões da Gestão do Projeto DISCIPLINA Gerência de Projeto RUP - ConceitosConfiguração do Processo Implementação de ferramentas do Processo Apoio às atividades de mentoring Gerenciamento do ambiente de desenvolvimento / teste / produ~ção DISCIPLINA Gerência de Ambiente RUP - Conceitos Cada fase é composta de uma ou mais ITERAÇÕES. Aconselha-se um total de 8 a 9 iterações, no ciclo completo de desenvolvimento de um produto. ITERAÇÕES RUP - Conceitos Cada iteração realiza-se as 9 disciplinas do processo, com esforço adequado à fase da iteração. ITERAÇÕES Iteração #2 da Fase de Construção RUP - Conceitos ITERAÇÕES Exceto na iteração única da Fase de Concepção (Inicial), um produto de software executável (release) é gerado no final de cada iteração. RUP - Conceitos A duração de cada iteração depende do: Tamanho da equipe Tamanho do projeto Familiaridade (maturidade) com o processo Simplicidade técnica O número médio de iterações (recomendado) é: Concepção de 0 a 1 Elaboração de 1 a 3 Construção de 1 a 3 Transição de 1 a 2 (6 3) ITERAÇÕES *
Compartilhar