9.1 CEIE - Modelagem de Sistemas de Informação Programa do Módulo 2 Orientação a Objetos – Conceitos Básicos – Análise Orientada a Objetos (UML) – O Processo Unificado (RUP) JCFJ 9.2 CEIE - Modelagem de Sistemas de Informação Processo Unificado: Visão Geral Encaixa-se na definição geral de processo: “Conjunto de atividades executadas para transformar um conjunto de requisitos do cliente em um Sistema de Software” [SCO02]. Processo Unificado – PU – tem suas origens no trabalho que Ivar Jacobson desenvolveu na Ericsson no final da década de 1960 Em 1987 Jacobson fundou a Objectory AB e iniciou com seus associados o desenvolvimento do Objectory (processo e produto) A Rational comprou a Objectory AB e apareceu o ROP (Rational Objectory Process) Em 1998 o ROP torna-se o RUP, Rational Unified Process, ou Processo Unificado da Rational. O Processo Unificado é uma estrutura genérica de processo que pode ser adaptada a necessidades particulares, através da adição ou supressão de atividades O RUP é uma versão especializada do Processo Unificado. O Processo Unificado é baseado em três princípios chave: – Dirigido por Casos de Uso – Centrado na Arquitetura – Iterativo e Incremental JCFJ Todo o material sobre o RUP é fortemente baseado no Capítulo 1 da referência [SCO02]. Processo Unificado – Visão Geral: Dirigido por Casos de Uso 9.3 CEIE - Modelagem de Sistemas de Informação PU: Dirigido por Casos de Uso Casos de Uso constituem uma seqüência de ações executadas por um ou mais atores ou pelo próprio sistema e que produzem um ou mais resultados de valor para um ou mais atores. Casos de Uso constituem a força condutora do desenvolvimento no processo unificado Eles são utilizados para dirigir o desenvolvimento, desde a fase de análise de requisitos até a fase de aceitação do código. Casos de Uso são adequados na captura dos requisitos, nas tarefas da análise, projeto e implementação por diversas razões: – São expressos na perspectiva dos usuários do sistema (descrição nos termos do usuário) em língua natural e apresentam portanto uma maior facilidade de compreensão dos requisitos do sistema do que os documentos de requisitos típicos; – “Oferecem um alto grau de rastreamento dos requisitos nos modelos que resultam do seu desenvolvimento posterior” [SCO02]; – “Oferecem um meio simples de decompor os requisitos em pedaços que permitem alocação de trabalho a sub-equipes e também facilitam a gerência do projeto” [SCO02]. JCFJ Processo Unificado – Visão Geral: Centrado na Arquitetura 9.4 PU: Centrado na Arquitetura – I CEIE - Modelagem de Sistemas de Informação No Processo Unificado a Arquitetura é definida como o alicerce fundamental sobre o qual ele se erguerá Ela deve ser uma das preocupações principais da equipe de projeto devendo, juntamente com os casos de uso, orientar a exploração de todos os aspectos do sistema. A Arquitetura pode ser vista como “A expressão de uma visão comum que todos os membros de um equipe devem compartilhar a fim de que o sistema resultante seja adequadamente robusto, flexível, expansível e de custo viável” [SCO02]. Dentro do Processo Unificado a Arquitetura é especificada em termos de visões de cinco modelos obtidos a partir de Cinco Workflows (Requisitos, Análise, Projeto, Implementação e Teste) Essas visões juntas formam a Descrição da Arquitetura do Sistema. JCFJ Processo Unificado – Visão Geral: Centrado na Arquitetura 9.5 PU: Centrado na Arquitetura – II CEIE - Modelagem de Sistemas de Informação Razões chave pelas quais a Arquitetura é tão importante para o Processo Unificado: – Entender a Visão Global: a descrição da arquitetura é o eixo central que leva a um melhor entendimento da “Visão Global” do sistema em construção; – Organizar o Esforço de Desenvolvimento: como a arquitetura define corretamente “porções discretas do sistema”, e a interface entre elas, facilita o esforço de desenvolvimento e o trabalho em equipes; – Facilitar as Possibilidades de Reuso: uma arquitetura bem definida favorece a identificação de possibilidades de reuso de componentes presentes no sistema em construção; – Facilitar a Evolução do Sistema: “uma arquitetura sólida oferece um conjunto de pontos de referência essenciais sobre os quais o trabalho de desenvolvimento futuro poderá se apoiar” [SCO02]; – Dirigir os Casos de Uso: a arquitetura guia a seleção e exploração dos casos de uso, pois decisões sobre a implementação do sistema têm forte influência na escolha dos casos de uso na fase de projeto, pois se pode focar aqueles que agregarão valor a arquitetura. JCFJ Processo Unificado – Visão Geral: Iterativo e Incremental 9.6 PU: Iterativo e Incremental – I CEIE - Modelagem de Sistemas de Informação O Processo Unificado tem como característica ser Iterativo e Incremental: – Iterativo: uma iteração é um mini-projeto que resulta em uma versão do sistema que pode ser liberada interna ou externamente – Incremental: um incremento nas características das versões do sistema liberadas é obtido em cada iteração. Vantagens do desenvolvimento iterativo e incremental: – Progresso lógico para uma arquitetura robusta: as iterações seguidas conduzem a definição incremental de uma arquitetura robusta para o sistema Problemas graves podem ser eliminados nas fases iniciais da modelagem; – Manipulação das mudanças contínuas dos requisitos: como em cada iteração é construído um protótipo funcional que implementa uma funcionalidade específica do sistema (um ou mais casos de uso) se pode negociar progressivamente os requisitos; JCFJ Processo Unificado – Visão Geral: Iterativo e Incremental 9.7 PU: Iterativo e Incremental – II CEIE - Modelagem de Sistemas de Informação Vantagens do desenvolvimento iterativo e incremental – continuação...: – Flexibilidade na mudança do plano de iterações: como cada iteração é um mini-projeto e como ao final de cada iteração se deve reavaliar os riscos, os planos de iterações podem ser redefinidos em função de problemas e/ou soluções encontrados; – Integração contínua: a cada iteração se estará integrando uma nova funcionalidade ao sistema Isto permite que se avalie efetivamente o progresso obtido e até que se possa descartar, sem grandes problemas, os resultados obtidos em uma iteração; – Entendimento Precoce: como o sistema é construído incrementalmente a compreensão pode ser feita passo-a-passo e alternativas podem ser analisadas sem grandes riscos (erros impactam somente a iteração); – Foco contínuo sobre riscos: talvez a principal vantagem do PU As iterações devem ser planejadas buscando concentrar os esforços iniciais nos riscos mais críticos ao projeto. “Deve-se minimizar os riscos, no maior grau possível, durante cada iteração, de modo que cada uma delas tenha menos riscos e que estes sejam de menor importância que em iterações anteriores” [SCO02]. JCFJ Processo Unificado 9.8 CEIE - Modelagem de Sistemas de Informação PU: Iterativo e Incremental – III Cada fase do Processo Unificado (Concepção, Elaboração, Construção e Transição) está dividida em iterações que produzem cada uma dela um mini-projeto. Uma iteração típica cruza todos os Cinco Workflows (Requisitos, Análise, Projeto, Implementação e Teste) em maior ou menor grau Cada iteração resulta em um Incremento que é uma versão do sistema que contenha funcionalidade adicionada ou melhorada em relação a uma versão elaborada em uma iteração anterior. JCFJ Processo Unificado 9.9 CEIE - Modelagem de Sistemas de Informação PU: Iterativo e Incremental – IV Com o enfoque iterativo e incremental o processo de desenvolvimento é iniciado com a avaliação dos riscos relevantes (inclusive os ligados aos requisitos), práticas, tecnologias e políticas e assegurando que o escopo do projeto seja definido para a satisfação de todos os interessados [SCO02]. Riscos Iniciais Escopo Inicial do Projeto Planejar a Iteração N Custo Listas Desenvolver a Iteração N Coletar custos e métricas de qualidade Definir iterações que abordem os maiores riscos Iteração N Avaliar a Iteração N Rever o Plano do Projeto Original Custo Listas Alcance/Conteúdo Cada iteração resulta em uma versão executável Risco Eliminado Revisar os riscos redefinir as prioridades para os riscos JCFJ Processo Unificado 9.10 PU: Iterativo e Incremental – V CEIE - Modelagem de Sistemas de Informação Na seqüência do processo se deve [SCO02]: Definir iterações Riscos/Escopo Planejar /Desenvolver Iteração N 1. Definir a primeira iteração focando os Iteração N riscos maiores e mais críticos, ou seja, Avaliar a Iteração N deve-se inicialmente procurar resolver os Rever o Plano do Projeto Original Risco Eliminado maiores problemas Deve-se abordar Revisar os riscos inicialmente as coisas mais difíceis; 2. Delinear um plano para a iteração em um nível apropriado de detalhe; 3. Executar as atividades apropriadas, ou seja, aquelas associadas aos workflows de Requisitos, Análise, Projeto Implementação e Teste; 4. Fazer uma análise ao término da iteração sobre o resultado obtido com o incremento; 5. Descartar os riscos que foram adequadamente eliminados no incremento. Na seqüência atualizar a lista de riscos; 6. Revisar o plano completo do projeto em resposta ao sucesso ou fracasso relativo da iteração; 7. Prosseguir com a próxima iteração. JCFJ Processo Unificado 9.11 Processo Unificado Workflows CEIE - Modelagem de Sistemas de Informação Matricial: Fases x Worflows JCFJ Processo Unificado 9.12 CEIE - Modelagem de Sistemas de Informação As Quatro Fases A vida de um sistema de software pode ser descrita por uma séria de ciclos, onde cada ciclo termina com a liberação de uma versão do sistema para os clientes No Processo Unificado cada ciclo contém quatro fases (que podem ser realizadas em uma ou mais iterações), sendo que cada fase indica o tempo decorrido entre dois marcos principais [SCO02]. “Ao final de uma fase os gerentes tomam decisões sobre se prosseguem ou não com o desenvolvimento Caso decidam prosseguir, devem avaliar as necessidades em relação ao escopo, orçamento e cronograma do projeto” [SCO02]. 1. Concepção Iteração 1 Objetivos do Ciclo de Vida JCFJ 2. Elaboração 3. Construção 4. Transição Iteração 2 Iteração x+1 Iteração y+1 ⋱ ⋱ ⋱ Iteração x Iteração y Iteração z Capacidade Ope racional Inicial Arquitetura do Ciclo de Vida Marcos Principais Liberação do Produto [SCO02] Processo Unificado – As Quatro Fases 9.13 CEIE - Modelagem de Sistemas de Informação 1. Concepção Esta fase tem como objetivo principal estabelecer a viabilidade do sistema a ser construído, tendo como principais tarefas [SCO02]: – Definir o escopo do sistema; – Esboçar uma Arquitetura Candidata composta pelas versões iniciais dos seis diferentes modelos (Casos de Uso, Análise, Projeto, Implementação, Instalação e Teste); – Identificar os riscos críticos e determinar quando e como o projeto os abordará; – Iniciar uma análise econômica para o projeto. O principal marco associado a esta fase é denominado Objetivos do Ciclo de Vida e os sinais de que o projeto o atingiu são [SCO02]: – Principais envolvidos concordam sobre o escopo proposto para o sistema; – A arquitetura candidata equaciona claramente um conjunto de requisitos críticos de alto nível; – A análise econômica do projeto é sólida o bastante para justificar a continuação do desenvolvimento. JCFJ Processo Unificado – As Quatro Fases 9.14 CEIE - Modelagem de Sistemas de Informação 2. Elaboração Esta fase tem como principal objetivo definir as bases nas quais a construção do novo sistema é viável em relação aos diversos tipos de restrições (financeira, de cronograma, etc.) definidas Tem como principais tarefas [SCO02]: – Capturar a maioria dos requisitos funcionais válidos restantes; – Expandir a arquitetura candidata em uma Base Arquitetônica que contenha versões expandidas dos seis modelos inicializados durante a fase de concepção; – Abordar riscos significativos de forma contínua; – Finalizar a análise econômica do projeto e preparar um plano que contenha detalhes suficientes para orientar a próxima fase. O principal marco associado a esta fase é denominado Arquitetura do Ciclo de Vida e os sinais de que o projeto o atingiu são [SCO02]: – A maioria dos requisitos funcionais do sistema foi capturada nos casos de uso; – A base arquitetônica constitui um sistema enxuto e pequeno que servirá como alicerce sólido para o desenvolvimento progressivo do projeto; – A análise econômica foi aprovada e há um plano de projeto que descreve como a fase de Construção irá ser desenvolvida. JCFJ Processo Unificado – As Quatro Fases 9.15 CEIE - Modelagem de Sistemas de Informação 3. Construção Esta fase tem como principal objetivo construir um sistema capaz de operar bem em ambientes beta de clientes, tendo como principal tarefa a construção do sistema de modo iterativo e incremental para que se possa comprovar que a viabilidade do sistema está sempre evidente em uma forma executável [SCO02]: O principal marco associado a esta fase é denominado Capacidade Operacional Inicial e o sinal de que o projeto o atingiu é dado pelo fato de um conjunto de clientes ter em mãos um sistema que seja operacional Este sistema pode ser mais ou menos completo [SCO02]. JCFJ Processo Unificado – As Quatro Fases 9.16 CEIE - Modelagem de Sistemas de Informação 4. Transição Esta fase tem como principal objetivo entregar um sistema completamente funcional aos clientes. Nesta fase se deve identificar e corrigir todos os problemas descobertos no sistema a ser entregue. O principal marco associado a esta fase é denominado Liberação do Produto [SCO02]. JCFJ Processo Unificado 9.17 CEIE - Modelagem de Sistemas de Informação Workflow: Artefatos, Trabalhadores e Atividades Um Workflow é um sistema que permite a automatização de um fluxo de informação em uma empresa, por exemplo, transmitindo automaticamente documentos entre pessoas (http://fr.wikipedia.org/wiki/Workflow). No Processo Unificado, um workflow é definido como “Um conjunto de atividades que vários trabalhadores do projeto executam” [SCO02]. No Processo Unificado workflows têm os seguintes elementos-chave [SCO02]: – Artefatos: “qualquer porção significativa de informação interna ou a ser fornecida a interessados externos que desempenhem um papel no desenvolvimento do sistema” Modelos, plano de projeto, etc.; – Trabalhadores: “um papel que um indivíduo pode desempenhar no projeto. Trabalhadores produzem artefatos e uma pessoa pode atuar como mais de um tipo de trabalhador. Trabalhadores são diferentes de atores: os primeiros participam do desenvolvimento do sistema enquanto os atores estão envolvidos na utilização do sistema” Analista, programador, etc.; – Atividades: “uma tarefa que um trabalhador executa a fim de produzir um artefato” Construir um modelo, implementar uma classe, etc. JCFJ Processo Unificado 9.18 CEIE - Modelagem de Sistemas de Informação Os Cinco Workflows No Processo Unificado, cinco workflows atravessam o conjunto das quatro fases apresentadas: 1. Requisitos; 2. Análise; 3. Projeto; 4. Implementação; 5. Teste. JCFJ Processo Unificado 9.19 CEIE - Modelagem de Sistemas de Informação Os Cinco Workflows No Processo Unificado, cinco workflows atravessam o conjunto das quatro fases apresentadas: 1. Requisitos; 2. Análise; 3. Projeto; 4. Implementação; 5. Teste. [IBM03] Cada workflow agrega um série de atividades que devem ser realizadas por diferentes membros do projeto. JCFJ Processo Unificado – Os Cinco Workflows 9.20 CEIE - Modelagem de Sistemas de Informação 1. Workflow de Requisitos As atividades envolvidas neste workflow têm como principal objetivo a construção de um Modelo de Casos de Uso que capture os requisitos funcionais do sistema sendo definido. Este modelo, que serve de alicerce para todo o desenvolvimento, auxilia os envolvidos no projeto a chegar a um acordo sobre as capacidades do sistema e as condições que ele deve satisfazer. Modelo de Análise Realizado por Especificado por Modelo de Projeto Distribuído por Modelo de Casos de Uso Implementado por Modelo de Implementação JCFJ Modelo de Instalação Verificado por Modelo de Teste [SCO02] Processo Unificado – Os Cinco Workflows – Workflow de Requisitos 9.21 Workflow de Requisitos: Elementos Chave CEIE - Modelagem de Sistemas de Informação Artefatos: – Modelo de Domínio (captura as entidades e conceitos importantes do mundo real que pertencem ao espaço do problema), Modelo de Negócio (Dois modelos, Caso de Uso de Negócio e Objetos de Negócio), Glossário, Ator, Casos de Uso, Protótipo de Interface com Usuário e Modelo de Casos de Uso. Trabalhadores: – Analista de Sistemas, Especificador de Caso de Uso, Projetista de Interface com o Usuário e Arquiteto. Atividades: – Construir o Modelo de Domínio, Construir o Modelo de Negócio, Descobrir Atores e Casos de Uso, Prototipar a Interface com o Usuário, Atribuir prioridades aos Casos de Uso, Detalhar um Caso de Uso e Estruturar o Modelo de Casos de Uso. [SCO02] JCFJ Processo Unificado – Os Cinco Workflows 9.22 2. Workflow de Análise CEIE - Modelagem de Sistemas de Informação As atividades envolvidas neste workflow tem como principal objetivo a construção do Modelo de Análise que deve auxiliar os desenvolvedores a refinar e estruturar os requisitos funcionais capturados nos modelos de caso de uso. Este modelo deve ser composto de Casos de Uso Realização que sejam mais apropriados ao trabalho que deve ser executado nas atividades dos workflows de projeto e implementação. JCFJ Processo Unificado – Os Cinco Workflows – Workflow de Análise 9.23 Workflow de Análise: Elementos Chave CEIE - Modelagem de Sistemas de Informação Artefatos: – Classes de Análise (classe somente com atributos), Realização de Análise de Casos de Uso (descrito como um Diagrama de Colaboração), Pacote de Análise (composto de classes de análise e realizações de análise) e Modelo de Análise (pacote de pacotes de análise) Trabalhadores: – Arquiteto, Engenheiro de Casos de Uso e Engenheiro de Componentes. Atividades: – Efetuar Análise Arquitetônica (criar um esboço do modelo de análise e da arquitetura como um todo), Analisar um Caso de Uso (construir uma realização para um caso de uso), Analisar uma Classe (expandir a definição de uma classe de análise participante de um caso de uso) e Analisar um Pacote (construir um pacote de análise altamente coeso). [SCO02] JCFJ Processo Unificado – Os Cinco Workflows 9.24 3. Workflow de Projeto CEIE - Modelagem de Sistemas de Informação As atividades envolvidas neste workflow tem como principal objetivo a construção do Modelo de Projeto que irá descrever as realizações físicas dos casos de uso a partir dos modelos de caso de uso e do modelo de análise. O modelo criado neste workflow serve como uma abstração do Modelo de Implementação. Além do modelo de projeto este workflow aborda também o Modelo de Instalação que define a organização física do sistema em termos de recursos computacionais. JCFJ Processo Unificado – Os Cinco Workflows – Workflow de Projeto 9.25 Workflow de Projeto: Elementos Chave CEIE - Modelagem de Sistemas de Informação Artefatos: – Classes de Projeto (classe com atributos e operações e detalhes como visibilidade), Realização de Projeto de Caso de Uso (definir um caso de uso através de Diagramas de Seqüência), Interface (coleção de operações que representam serviços oferecidos por classes, subsistemas ou componentes), Subsistemas de Projeto (pacote UML contendo classes de projeto, interfaces de classes/subsistemas e realizações de projeto de caso de uso), Modelo de Projeto (um dos pacotes de projeto), Descrição da Arquitetura – Visão do Modelo de Projeto, Modelo de Instalação (Diagrama de Instalação UML) e Descrição da Arquitetura – Visão do Modelo de Instalação. Trabalhadores: – Arquiteto, Engenheiro de Casos de Uso e Engenheiro de Componentes. Atividades: – Efetuar Projeto Arquitetônico (criação dos modelos de instalação e de projeto), Projetar um Caso de Uso (construção de uma realização de projeto de caso de uso para um caso de uso), Projetar uma Classe (expansão da definição de uma classe de projeto com detalhes como lista de parâmetros e tipos de retorno) e Projetar um Subsistema (projeto do subsistema de projeto esboçado durante o projeto arquitetônico) [SCO02] JCFJ Processo Unificado – Os Cinco Workflows 9.26 4. Workflow de Implementação CEIE - Modelagem de Sistemas de Informação As atividades envolvidas neste workflow têm como principal objetivo a construção do Modelo de Implementação que serve como uma descrição de como os elementos deste modelo (arquivos fonte, bibliotecas, componentes) são empacotados como componentes de software. JCFJ Processo Unificado – Os Cinco Workflows – Workflow de Implementação 9.27 Workflow de Implementação: Elementos Chave CEIE - Modelagem de Sistemas de Informação Artefatos: – Componente (parte física e substituível de um sistema que está em conformidade com um conjunto de interfaces e o realiza), Interface, Subsistema de Implementação (pacote UML com componentes e interfaces conectadas a componentes e ao próprio sistema), Modelo de Implementação (pacote UML com pacotes de implementação), Descrição da Arquitetura – Visão do Modelo de Implementação e Plano de Integração de Construções (descrição das construções que ocorrerão na interação com descrição da funcionalidade a ser implementada em termos de caso de uso e partes do modelo de implementação afetadas pela construção e termos de componentes e subsistemas). Trabalhadores: – Arquiteto, Engenheiro de Componentes e Integrador de Sistemas. Atividades: – Efetuar Implementação Arquitetônica (identificação dos componentes significativos da arquitetura e mapeamento dos componentes executáveis aos nós de processamento), Implementar uma Classe (geração do código), Efetuar Teste de Unidade (produzir código executável a partir de um componente e efetuar testes sobre este código independentemente de outros componentes), Implementar um Subsistema (construir um subsistema de implementação esboçado durante a implementação arquitetônica) e Integrar o Sistema (criar ou expandir o plano de integração de construções para refletir o conteúdo da próxima interação e integrar as várias peças da construção antes do teste de integração). [SCO02] JCFJ Processo Unificado – Os Cinco Workflows 9.28 5. Workflow de Teste CEIE - Modelagem de Sistemas de Informação As atividades envolvidas neste workflow tem como principal objetivo a construção do Modelo de Teste que descreve como os testes de integração e de sistema irão ser aplicados aos componentes definidos no modelo de implementação. O modelo de teste irá descrever também como os testes de integração, de sistema e de unidade serão realizados. Muitas vezes os modelos de teste são derivados diretamente dos casos de uso Testes de caixa-preta são realizados utilizando a descrição textual dos casos de uso e testes de caixa-branca são realizados utilizando os casos de uso realização. JCFJ Processo Unificado – Os Cinco Workflows – Workflow de Teste 9.29 Workflow de Teste: Elementos Chave CEIE - Modelagem de Sistemas de Informação Artefatos: – Caso de Teste (especificação da maneira pela qual se deve testar uma parte do sistema, usando testes caixa-preta a partir de casos de uso e testes caixa-branca para casos de uso realização), Procedimento de Teste (como exercitar um ou mais casos de teste como um todo ou em partes), Componente de Teste (código que automatiza todo ou partes do procedimento de teste), Modelo de Teste (pacote UML com casos, procedimentos e componentes de teste para o sistema), Plano de Teste (descrição dos recursos, cronograma e da estratégia de aplicação dos testes), Defeito (problema a ser tratado) e Avaliação de Teste. Trabalhadores: – Engenheiro de Teste, Engenheiro de Componentes, Testador de Integração e Testador de Sistema. Atividades: – Planejar Teste (desenvolvimento de um plano deteste para uma iteração), Projetar Teste (projetar os vários níveis de teste e os procedimentos a serem seguidos na condução dos testes), Implementar Teste (criação de componentes de teste), Efetuar Teste de Integração, Efetuar Teste de Sistema (testar cada construção d sistema), Avaliar Teste (avaliar os resultados em comparação aos objetivos descritos no plano de teste). [SCO02] JCFJ Processo Unificado 9.30 CEIE - Modelagem de Sistemas de Informação Rational Unified Process JCFJ