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 Análise e projeto Modelo de caso de uso Documento da arquitetura Mapeamento das classes de análise em elementos de projeto Documento requisitos Glossário Modelo de dados
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 Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
Atividade Analisar Caso de Uso
Projetista de banco de dados Analisar Caso de Uso Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
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 da arquitetura Classes de análise Analisar caso de uso Documento de requisitos Realização de caso de uso Modelo de caso de uso Modelo de análise e projeto Fonte: Rational
Atividade Projetar Arquitetura
Projetista de banco de dados Projetar Arquitetura Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
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 Modelo de análise e projeto (classes de análise) Projetar Arquitetura Documento de requisitos Modelo de casos de uso Documento da arquitetura Mapeamento das classes de análise em elementos de projeto (classes de projeto e subsistemas)
Atividade Projetar Caso de Uso
Projetista de banco de dados Projetar Caso de Uso Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
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 Classes de projeto Projetar Caso de Uso Caso de uso Realização de caso de uso Subsistemas de projeto Documento de requisitos Fonte: Rational
Atividade Projetar Subsistema
Projetista de banco de dados Projetar Subsistema Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
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 interfaces de projeto (atualizado) Subsistemas e e interfaces de projeto Projeto de Subsistema Realização de caso de uso (atualizado) Realização de caso de uso Classes de projeto Fonte: Rational
Atividade Projetar Classes
Projetista de banco de dados Projetar Classes Analisar caso de uso Projetista Projetista de banco de dados Revisar projeto Projetar caso de uso Arquiteto Revisor do projeto Projetar base de dados Projetar arquitetura Projetar subsistema Projetar classes
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 Projetar classes Realização de casos de uso Classes de projeto Modelo de análise e projeto