RUP - Rational Unified Process Disciplina: ESOF2 Prof. Adriana M. Martins RUP - Rational Unified Process Objetivo Introduzir os conceitos que fundamentam o Processo Unificado. Mostrar a importância da adoção de um processo de desenvolvimento de software. Aula 01 RUP - Rational Unified Process Agenda Introdução Processo Unificado: Dirigido por Casos de Uso Centrado em Arquitetura Iterativo e Incremental Aula 01 RUP - Rational Unified Process Introdução - Situação atual: - - Pontos a considerar: Computadores mais poderosos e acessíveis; Crescimento da Internet e a troca de informações. Usuários esperam cada vez mais dos sistemas desde uma simples edição de textos até a manipulação de figuras, diagramas e multimídia. - Nós estamos sempre querendo mais!! Aula 01 RUP - Rational Unified Process Introdução - Situação atual: - No processo de desenvolvimento de software: Haverá sempre mais pessoas envolvidas; Necessidade de ser mais rápidos (fazer em menos tempo). - Se não houver melhorias no processo de desenvolvimento de software não haverá aptidão para desenvolver softwares complexos conforme as exigências de mercado. Aula 01 RUP - Rational Unified Process Introdução - A “Crise” do Software: Insatisfação dos usuários é freqüente; A qualidade do software é geralmente suspeita; Poucas medidas e critérios de qualidade aplicados; O software existente é difícil de ser mantido mas precisa permanecer até ser substituído. Aula 01 RUP - Rational Unified Process Introdução - A “Crise” do Software - Causas: Introdução de erros no processo: Má especificação; Mau projeto; Má implementação; Testes incompletos ou mal feitos. Problemas de comunicação; Problemas de Gerência dos Projetos ; Falta de treinamento em novas técnicas de desenvolvimento. Aula 01 RUP - Rational Unified Process Introdução - Desenvolvimento Convencional: Modelo Cascata Aula 01 RUP - Rational Unified Process Introdução - Modelo Cascata - O que deu errado? O Modelo Cascata é baseado em suposições oriundas dos processos de engenharia convencionais; Algumas dessas suposições não foram confirmadas na prática. Exemplo: Todos os requisitos podem ser precisamente identificados antes do desenvolvimento; Os requisitos são estáveis; O projeto pode ser feito totalmente antes da implementação. Aula 01 RUP - Rational Unified Process Introdução - Modelo Cascata: Resultado de projetos de software realizados nos EUA no início da década de 90 (Todos baseados no modelo Cascata): 30% 53% custaram até 200% acima da estimativa inicial. Estimou-se que US$ 81 bilhões foram gastos em projeto fracassados só no ano de 1995. 70% Acabados Inacabados Aula 01 RUP - Rational Unified Process Considerações: O mercado está em mudança constante. As tecnologias inevitavelmente mudam e evoluem; A vontade e objetivos dos usuários mudam, muitas vezes, de forma imprevisível. Aula 01 RUP - Rational Unified Process Como podemos melhorar? Precisamos de um processo que integre as várias etapas do desenvolvimento de software. Precisamos de um caminho comum; Um processo que seja um guia ordenado das atividades da equipe de desenvolvimento. Aula 01 RUP - Rational Unified Process Como podemos melhorar? É preciso: Saber dirigir as tarefas de um indivíduo e da equipe como um todo; - - Especificar qual o produto esperado; Oferecer critérios de monitoramento e medições do produto e atividades. - Aula 01 RUP - Rational Unified Process Como podemos melhorar? A presença de um processo bem definido e bem gerenciado é uma grande diferencial entre projetos muito produtivos e projetos sem sucesso. Aula 01 RUP - Rational Unified Process O que é um processo de Desenvolvimento de software? Um processo: Define quem está fazendo o que, quando e como, para alcançar um determinado objetivo; Provê guias para um desenvolvimento mais eficiente de qualidade de software; Reduz riscos e incrementa possibilidade de previsão; Provê uma cultura e visão comum. Aula 01 RUP - Rational Unified Process O Processo Unificado - Definições: “ O UP é um processo de Engenharia de Software que busca, através de uma abordagem disciplinada, atribuir e gerenciar tarefas e responsabilidades com o objetivo de proporcionar o desenvolvimento, dentro de custos e cronogramas previsíveis, de softwares de alta qualidade que atendam corretamente as necessidades de seus usuários finais.” Aula 01 RUP - Rational Unified Process O Processo Unificado - Definições: O UP é um guia, um passo-a-passo que descreve: - como desenvolver sistemas; - os tipos de pessoas envolvidas e - os tipos de artefatos produzidos, fornecendo até mesmo templates para vários deles. Aula 01 RUP - Rational Unified Process Processo Unificado – Histórico: O UP é balanceado porque ele é um produto fim de 3 décadas(30 anos) de desenvolvimento e uso prático. Seu desenvolvimento como produto segue um caminho: ERICSSON - 1967 - (Blocos interconectados, Tráfico de Casos, versão simplificada da UML) T E M P O OBJECTORY - (1987 -1995), (Ivar Jacobson, conceito Casos de Uso e Workflows(modelos)) RATIONAL- 1995 - (Adquiriu o Objectory, ênfase na Arquitetura e desenvolvimento iterativo) UML - Necessidade de padronização - Grady Booch, James Rumbaugh, Ivar Jacobson se juntaram à Rational no esforço de padronizar a UML. Outros (IBM,HP,Microsoft) Aula 01 RUP - Rational Unified Process Processo Unificado – Histórico: Rational Unified Process 5.0 1998 Rational Objectory Process 4.1 1996-1997 Teste Funcional Teste Desempenho Gerência Requisitos Gerência Configuração Engenharia Negócios Engenharia Dados Projeto UI Abordagem Rational UML Objectory Process 1.0-3.8 1987-1995 Abordagem Ericsson Aula 01 RUP - Rational Unified Process Processo Unificado X UML: O resultado desejado é um software robusto, resistente e escalável. Para isto é necessário um processo e uma linguagem. UML nos dá uma forma padrão para visualizar, especificar, construir, documentar e comunicar os artefatos de um sistema de software. Aula 01 RUP - Rational Unified Process Por que a orientação a objetos? Capacidade de aproveitar novas plataformas e ferramentas; Facilidade de manutenção; Economia de custos; Encapsulamento das aplicações existentes; Melhores interfaces; Maior produtividade; Rápido desenvolvimento de aplicações estratégicas; Reuso de software. Aula 01 RUP - Rational Unified Process O Ciclo de Vida do Processo Unificado Aula 01 RUP - Rational Unified Process O Processo Unificado Conceitos-Chave: - Dirigido por Casos de Uso; - Centrado na Arquitetura; - Iterativo e Incremental. Isto faz o Processo Unificado ÚNICO. Aula 01 RUP - Rational Unified Process O Processo Unificado – Dirigido por Casos de Uso Características: Conhecer perspectivas e necessidades dos usuários; - Todos os Casos de Uso juntos formam o modelo de Casos de Uso; - Baseados nos Casos de Uso, desenvolvedores criam uma série de modelos que implementam os Casos de Uso. - Aula 01 RUP - Rational Unified Process O Processo Unificado – Dirigido por Casos de Uso Benefícios: casos de uso (use cases) associam todos os fluxos (workflows) de forma conjunta. Dirigem várias atividades de desenvolvimento: Criação e validação da arquitetura do sistema Criação de casos de teste Planejamento das iterações Criação de documentação do usuário Implantação do sistema Sincronizam conteúdo dos modelos criados em cada fluxo (workflow). Aula 01 RUP - Rational Unified Process O Processo Unificado – Centrado na Arquitetura Características: Várias visões tal qual temos na Construção Civil. Influências na Arquitetura: Casos de Uso (de 5 a 10% deles são casos chave do sistema – o “coração”); Máquinas,Sistema Operacional,Banco de Dados,Protocolos de Comunicação,Framework para interfaces gráficas,Blocos reusáveis disponíveis. O processo ajuda o arquiteto a focar nos objetivos corretos, tais como entendimento, adaptação para futuras mudanças e reuso. Aula 01 RUP - Rational Unified Process O Processo Unificado – Centrado na Arquitetura Benefícios: Fornece uma base sólida para a construção do software; Melhor compreensão do sistema e organização do desenvolvimento. Aula 01 RUP - Rational Unified Process O Processo Unificado – Centrado na Arquitetura Descrição arquitetura envolve elementos de modelo mais importantes - coleção de visões dos modelos do sistema. UP prescreve um refinamento sucessivo à arquitetura. A arquitetura representa a forma, enquanto que os casos de uso representam a funcionalidade. Arquitetura e os casos de uso devem ser balanceados. Aula 01 RUP - Rational Unified Process O Processo Unificado – Iterativo e Incremental É prático dividir o projeto em mini-projetos: Cada mini-projeto é uma iteração que resulta num incremento; a) Iterações referem-se a passos do fluxo; b) Incrementos referem-se a crescimentos do produto; - Cada iteração lida com um conjunto de Casos de Uso que juntos permitem a usabilidade do produto; Uma próxima iteração começa quanto a anterior foi concluída com sucesso. Aula 01 RUP - Rational Unified Process O Processo Unificado – Iterativo e Incremental Benefícios: Reduzir os riscos de custos para os gastos de um simples incremento; Reduzir o risco de não conseguir o PRODUTO no tempo planejado; Maior velocidade no desenvolvimento, focos menores; As necessidades dos usuários serão refinadas em sucessivas iterações. Aula 01 RUP - Rational Unified Process Visão Geral Aula 01 RUP - Rational Unified Process Conceitos Relacionados 1. Pessoas (workers): Papel representado por uma pessoa ou grupo no processo de software. • Cada pessoa é responsável por um conjunto de atividades. • 2. Projeto: Possui uma seqüência de mudanças / várias iterações / padrão organizacional. • Aula 01 RUP - Rational Unified Process Conceitos Relacionados 3. Produto: • Não é apenas código. Artefato: qualquer tipo de informação criada. Artefatos são criados pelas pessoas em cada uma de suas atividades (lista de desejos, lista de manutenção, lista de testes). 4. Processo: • • Direciona o projeto. Template para criação de instâncias (projetos). Aula 01