RUP: Fluxo de Análise e Projeto Aspectos Avançados em Engenharia de Software Aula 4 Fernanda Campos RUP – Fluxo de análise e projeto Visão geral das • Atividades • Responsáveis • Artefatos O Fluxo de Análise e Projeto Os objetivos do fluxo: • Transformar os requisitos em um projeto (inicialmente abstrato) do sistema • Desenvolver uma arquitetura robusta • Adaptar o projeto levando em consideração os requisitos da futura implementação Fonte: Rational Visão geral dos artefatos Modelo de análise e projeto Modelo de caso de uso Glossário Documento requisitos Análise e projeto Documento da arquitetura Modelo de dados Mapeamento das classes de análise em elementos de projeto Sobre os artefatos A construção do modelo de análise e projeto é o principal objetivo deste fluxo de atividades O modelo de análise e projeto contém as realizações de casos de uso O mapeamento das classes de análise em classes de projeto é um artefato temporário do desenvolvimento O documento da arquitetura é opcional e é usado para descrever em detalhes uma determinada arquitetura A elaboração do modelo de dados está fora do escopo do curso, mas pode conter, por exemplo, o mapeamento do modelo OO para o relacional Realização de Caso de Uso Descreve como o caso de uso é realizado, associando o caso de uso com classes e outros elementos de projeto Em UML, uma realização de caso de uso pode ser representada através de um conjunto de diagramas: • • diagrama de classe diagramas de interação • diagrama de seqüência • diagrama de colaboração Artefato Modelo de Análise e Projeto Diagramas de Sequência Diagramas de Colaboração Modelo de análise e projeto Diagramas de Classe Modelo de Análise e Projeto Pode ser um só artefato • evoluindo de uma visão abstrata (nas atividades de análise), para uma visão detalhada (nas atividades de projeto) Podem ser feitos dois artefatos • um modelo de análise • um modelo de projeto (inicia igual à última versão do modelo de análise e evolui independentemente) Análise X Projeto Análise • Foco no problema • Comportamento • • • (caixa preta, sem detalhes de implementação) Estrutura do sistema Requisitos funcionais Modelo simples Projeto • • • • • Foco em uma solução Operações e atributos Representação próxima do código Requisitos não funcionais (exemplo: desempenho), além dos funcionais Modelo complexo Fonte: Rational Fluxo de Análise e Projeto Simplificado Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Projetista de banco de dados Analisar caso de uso Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Atividade Analisar Caso de Uso Analisar Caso de Uso Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Analisar caso de uso Projetista de banco de dados Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Objetivos desta atividade Encontrar classes de análise (fronteira, controle e entidade) e distribuir comportamento dos casos de uso entre estas (utilizando diagramas de seqüência e/ou colaboração) Para cada classe, descrever suas responsabilidades, atributos e associações Esta atividade é realizada para cada caso de uso! Visão geral dos artefatos Glossário Documento de requisitos Modelo de caso de uso Documento da arquitetura Analisar caso de uso Classes de análise Realização de caso de uso Modelo de análise e projeto Fonte: Rational Atividade Projetar Arquitetura Projetar Arquitetura Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Analisar caso de uso Projetista de banco de dados Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Objetivos desta atividade Avaliar o conjunto das classes de análise Definir elementos de projeto (classes de projeto e subsistemas) e organizá-los em pacotes Definir a estrutura da aplicação No final do projeto da arquitetura tudo deve estar pronto para que os projetistas possam detalhar as realizações dos casos de uso de maneira uniforme! Visão geral dos artefatos Mapeamento das classes de análise em elementos de projeto Modelo de casos de uso Documento de requisitos Modelo de análise e projeto (classes de análise) Projetar Arquitetura Documento da arquitetura Modelo de análise e projeto (classes de projeto e subsistemas) Atividade Projetar Caso de Uso Projetar Caso de Uso Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Analisar caso de uso Projetista de banco de dados Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Objetivos desta atividade Refinar as realizações de casos de uso (elaboradas na análise de casos de uso) incluindo os elementos de projeto • Incorporando persistência nas realizações O objetivo final é ter um modelo consistente que sirva de referência para a implementação do caso de uso Visão geral dos artefatos Documento de requisitos Realização de caso de uso Subsistemas de projeto Projetar Caso de Uso Realização de caso de uso Classes de projeto Caso de uso Fonte: Rational Atividade Projetar Subsistema Projetar Subsistema Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Analisar caso de uso Projetista de banco de dados Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Objetivos desta atividade Identificar elementos internos ao subsistema (classes e outros subsistemas) que realizem a interface do subsistema • O comportamento da interface deve ser distribuído entre estes elementos, de forma análoga à análise e ao projeto de casos de uso Este processo pode gerar novas dependências do subsistema com elementos externos A atividade é realizada uma vez para cada subsistema, podendo ser recursiva (gerando outros subsistemas) Visão geral dos artefatos Subsistemas e e interfaces de projeto Subsistemas e interfaces de projeto (atualizado) Projeto de Subsistema Realização de caso de uso Realização de caso de uso (atualizado) Classes de projeto Fonte: Rational Atividade Projetar Classes Projetar Classes Projetar arquitetura Arquiteto Revisor do projeto Projetar subsistema Projetista Analisar caso de uso Projetista de banco de dados Projetar caso de uso Projetar classes Projetar base de dados Revisar projeto Objetivos desta atividade Detalhar a estrutura interna (atributos e operações) das classes de projeto Identificar classes e relacionamentos adicionais Garantir que as classes fornecem o comportamento necessário à realização dos casos de uso Realizada para cada classe da iteração corrente Na prática... Os passos desta atividade são realizados simultaneamente às atividades de projeto: • projeto da arquitetura; • projeto de casos de uso e • projeto de subsistemas Aqui o objetivo é rever o que foi feito, refinando e acrescentando detalhes Visão geral dos artefatos Requisitos não funcionais Classes de projeto Realização de casos de uso Projetar classes Classes de projeto Modelo de análise e projeto