Upload
vera-fraga-vieira
View
214
Download
2
Embed Size (px)
Citation preview
01 de Julho de 2004 1 / 41
UFPE - Universidade Federal de PernambucoCIn - Centro de Informática
Pós-Graduação em Ciência da Computação
Tópicos Avançados em Engenharia de Software 3
“Extensões da Disciplina de Análise & Projeto do RUP”
Por
Ricardo André C. de [email protected]
01 de Julho de 2004 2 / 41
Roteiro
Extensões de UML RUP – Rational Unified Process Disciplina de Análise & Projeto Subfluxos da Disciplina de Análise & Projeto Instância da Disciplina de Análise & Projeto Extensão para Tratamento de Aspectos Extensão para Aplicações Web Referências
01 de Julho de 2004 3 / 41
Extensões de UML
Definição
Maneira ordenada de adicionar nova semântica para a notação de UML;
Permite a inclusão de novos atributos, diferentes semânticas e restrições adicionais a elementos da modelagem;
Expressa em termos de:
Estereótipo – extensão do vocabulário da linguagem;
Tagged Value – extensão para uma propriedade de um elemento do modelo;
Restrição – extensão da semântica da linguagem;
01 de Julho de 2004 4 / 41
Extensões de UML
Exemplos
Entidade<<entity>>
Entidade
Fronteira<<boundary>>
FronteiraI nterface
<<Interface>>
Ator<<Actor>>
Ator
Caso de Uso B
Caso de Uso C
Caso de Uso A
<<include>>
<<extend>>
01 de Julho de 2004 5 / 41
RUP – Rational Unified Process
Conceitos Chaves
Responsável – papel desempenhado por um indivíduo ou uma equipe no contexto do projeto;
Atividade – unidade de trabalho que produz um resultado significante no contexto do projeto;
Artefato – peça de informação que é produzida, modificada ou usada pelo processo de desenvolvimento de software;
Disciplina – seqüência de atividades que produz um resultado de valor observável;
Subfluxo – agrupamento de atividades, responsáveis envolvidos, artefatos de entrada e artefatos produzidos;
01 de Julho de 2004 6 / 41
RUP – Rational Unified Process
Características
Dirigido a Casos de Uso O processo de desenvolvimento segue um fluxo de
ações para realização de Casos de Uso; Centrado na Arquitetura
O RUP fornece uma maneira metódica e sistemática para projetar, desenvolver e validar a arquitetura;
Iterativo e Incremental Iterações referem-se a passos no fluxo de
desenvolvimento, e Incrementos a evoluções do produto;
01 de Julho de 2004 7 / 41
RUP – Rational Unified Process
Disciplinas e Fases
01 de Julho de 2004 8 / 41
Disciplina de Análise & Projeto
RUP 2003
01 de Julho de 2004 9 / 41
Disciplina de Análise & Projeto
Propósitos
Transformar os requisitos em um projeto do sistema;
Definir uma arquitetura robusta para o sistema;
Adaptar o projeto para o ambiente de implementação;
01 de Julho de 2004 10 / 41
Subfluxo Realizar Síntese Arquitetural
01 de Julho de 2004 11 / 41
Subfluxo Realizar Síntese Arquitetural
Características
Propósito: Construir e avaliar uma Prova de Conceito Arquitetural
para demonstrar que o sistema, conforme especificado (visão), é viável;
Realizado na fase de Concepção;
01 de Julho de 2004 12 / 41
Subfluxo Definir Arquitetura Candidata
01 de Julho de 2004 13 / 41
Subfluxo Definir Arquitetura Candidata
Características
Propósitos: Criar um esqueleto inicial da arquitetura do sistema; Identificar classes de análise dos casos de uso
relevantes para a arquitetura; Atualizar as realizações dos casos de uso com as
interações das classes de análise.
Realizado na fase de Elaboração;
01 de Julho de 2004 14 / 41
Subfluxo Refinar Arquitetura
01 de Julho de 2004 15 / 41
Subfluxo Refinar Arquitetura
Características
Propósitos: Fornecer a transição natural das atividades de análise
para as atividades de projeto; Descrever a organização da arquitetura em tempo de
execução; Organizar o modelo de implementação; Manter a consistência e a integridade da arquitetura.
Realizado nas fases de Elaboração, Construção e Transição;
01 de Julho de 2004 16 / 41
Subfluxo Analisar Comportamento
01 de Julho de 2004 17 / 41
Subfluxo Analisar Comportamento
Características
Propósitos: Transformar as descrições comportamentais
fornecidas pelos requisitos em um conjunto de elementos nos quais o projeto possa ser baseado;
Modelar e prototipar a interface do usuário.
Realizado nas fases de Elaboração, Construção e Transição;
01 de Julho de 2004 18 / 41
Subfluxo Projetar Componentes
01 de Julho de 2004 19 / 41
Subfluxo Projetar Componentes
Características
Propósitos: Refinar o projeto do sistema; Refinar e atualizar as realizações dos casos de uso
com base nos novos elementos de projeto identificados;
Revisar a evolução do projeto.
Realizado nas fases de Elaboração, Construção e Transição;
01 de Julho de 2004 20 / 41
Subfluxo Projetar Banco de Dados
01 de Julho de 2004 21 / 41
Subfluxo Projetar Banco de Dados
Características
Propósitos: Identificar as classes persistentes no projeto; Projetar estruturas de banco de dados apropriadas
para armazenar as classes persistentes; Definir mecanismos e estratégias para
armazenamento e recuperação de dados persistentes, levando em consideração a performance do sistema.
Realizado nas fases de Elaboração, Construção e Transição;
01 de Julho de 2004 22 / 41
Instância da Disciplina de Análise & Projeto
Analisar Casos de Uso
Revisar Projeto
Projetar Arquitetura
Projetista deBanco de Dados
Arquiteto de Software
Revisor de projeto
Projetar Casos de Uso
Projetar Subsistemas
Projetar Base de Dados
Analista deSistemas
decisões doarquiteto
<<subsystem>>
CheckList bla bla bla blabla
01 de Julho de 2004 23 / 41
Extensão para Tratamento de Aspectos
Motivação
Desenvolvimento de Software Orientado a Aspectos é um novo paradigma que visa resolver problemas tratados não adequadamente pelo paradigma Orientado a Objetos;
Aspecto define o comportamento que deve ser adicionado em pontos específicos no programa;
Adaptação da Disciplina de Análise e Projeto do RUP para Modelar Crosscutting Concerns (ex. Distribuição, Log) como aspectos;
01 de Julho de 2004 24 / 41
Extensão para Tratamento de Aspectos
Atividades da Disciplina de Análise & Projeto
01 de Julho de 2004 25 / 41
Extensão para Aplicações Web
Motivação
Grande demanda pelo desenvolvimento de aplicações Web;
Características específicas de aplicações Web;
Adaptações em processos genéricos de desenvolvimento de software;
01 de Julho de 2004 26 / 41
Extensão para Aplicações Web
Aplicações Web versus Aplicações Tradicionais
Principais diferenças referem-se a questões sobre:
Navegação;
Interface Gráfica;
Implementação;
01 de Julho de 2004 27 / 41
Extensão para Aplicações Web
Objetivo
Atender aplicações Web no padrão arquitetural em Camadas;
01 de Julho de 2004 28 / 41
Extensão para Aplicações Web
Limitações do RUP Tradicional
RUP 2001
Classes Boundary, responsáveis pela interação ator (usuário) e caso de uso, mapeadas em interfaces gráficas;
Rup 2003
Atividades: Projetar Interface do Usuário e Prototipar a Interface do Usuário;
Artefatos: Mapa de Navegação e Protótipo da Interface do Usuário;
Responsável: Projetista de Interface Gráfica.
01 de Julho de 2004 29 / 41
Extensão para Aplicações Web
Mapa de Navegação
01 de Julho de 2004 30 / 41
Extensão para Aplicações Web
RUP 2001
01 de Julho de 2004 31 / 41
Extensão para Aplicações Web
Atividades do Fluxo Estendido
01 de Julho de 2004 32 / 41
Extensão para Aplicações Web
Subfluxo Projetar Camada de Apresentação
01 de Julho de 2004 33 / 41
Extensão para Aplicações Web
Atividade Projetar Navegação
Consiste na criação do Modelo Navegacional, com os seguintes propósitos:
Identificar como o usuário caminha (navega) na aplicação para utilizar as funcionalidades oferecidas;
Criar subsídios para o projeto das Interfaces Gráficas da aplicação;
Identificar os elementos necessários para criação da Camada de Apresentação da aplicação no fluxo de Implementação;
01 de Julho de 2004 34 / 41
Extensão para Aplicações Web
Atividade Projetar Navegação – Artefatos de Entrada
Modelo de Casos de Uso – descreve as funcionalidades que a aplicação fornece para os usuários;
O Modelo Navegacional deve contemplar as navegações necessárias para satisfazer os Casos de Uso deste modelo;
Realizações de Caso de Uso – descreve a colaboração de objetos para um particular Caso de Uso, é representado por diagramas de interação de UML;
O Modelo Navegacional deve suportar as interações entre o usuário e a aplicação, descritas neste artefato;
01 de Julho de 2004 35 / 41
Extensão para Aplicações Web
Atividade Projetar Navegação – Artefatos de Entrada
Modelo de Análise (Conceitual) – contém as classes de Análise (básicas) da aplicação, seus atributos e associações, é o resultado do processo de análise dos Casos de Uso;
O Modelo Navegacional é uma variação (visão) deste modelo, com ênfase nos aspectos de navegação e de apresentação da aplicação;
Guia de Projeto Navegacional – consiste no método proposto para criação do Modelo Navegacional de aplicações Web;
01 de Julho de 2004 36 / 41
Extensão para Aplicações Web
Atividade Projetar GUI (Graphic User Interface)
Consiste em projetar as Interfaces Gráficas da aplicação de acordo com as necessidades navegacionais;
A aparência das Interfaces Gráficas deve obedecer ao padrão de apresentação (fonte, cor, botão, etc) adotado pela organização;
Artefato de Entrada – Modelo Navegacional; Artefato Produzido – Templates GUI;
Esboço das Interfaces Gráficas derivadas dos elementos do Modelo Navegacional que representam páginas cliente e formulários;
01 de Julho de 2004 37 / 41
Extensão para Aplicações Web
Método para criação do Modelo Navegacional
Primeiro Passo: Identificar as Classes Navegacionais;
Derivadas das classes básicas do Modelo Conceitual; Segundo Passo: Identificar os Caminhos Navegacionais;
Derivados das associações entre as classes básicas do Modelo Navegacional;
Influenciados pela multiplicidade do destino das associações;
Satisfazem operações de manutenção;
01 de Julho de 2004 38 / 41
Extensão para Aplicações Web
Método para criação do Modelo Navegacional
Terceiro Passo: Criar os Caminhos Navegacionais;
Contempla todas as funcionalidades oferecidas pelas classes navegacionais;
Baseado no padrão arquitetural Thick Web Client;
Segue um padrão proposto para a operação de Inclusão;
Segue um padrão proposto para as demais operações de manutenção;
01 de Julho de 2004 39 / 41
Exemplo – Modelo de Análise
Aplicação Web onde o cliente realiza compra de livros e CDs.
Clienteid : Integernome : Stringendereco : Enderecoemail : String
Pedidoid : Integerdata : Datestatus : String
0..n1 0..n1
Produtocodigo : Integerpreco : Currencydescricao : Stringtitulo : String
ItemPedidoquantidade : Integer
10..n 10..n
Livroautor : Stringeditora : Stringano : IntegernumPagina : Integer
CDcantor : Stringcategoria : Stringgravadora : String
01 de Julho de 2004 40 / 41
Exemplo – Modelo Navegacional
TelaDetalharProduto<<Client Page>> FormDetalharPedido
<<link>> titulo : String<<readOnly>> quantidade : I nteger<<readOnly>> preco : Currency
<<Form >>
PesquisarProduto
pesquisarProduto()
<<Server Page>>
<<build>>
TelaDetalharPedido<<Client Page>><<link>>
FormI ndicePedido<<link>> idPedido : I nteger<<readOnly>> data : Date<<readOnly>> status : String
<<Form >>
DetalharPedido
pesquisarI temPedido( )
<<Server Page>><<build>>
FormI ncluirI temPedido<<select>> produto : Produto<<input>> quantidade : I nteger
<<Form >>
ResultadoI nclusaoPedido<<Client Page>> I ndicePedido
<<Client Page>>
<<link>>
TelaI ncluirI temPedido<<Client Page>>
I ncluirPedido
incluirPedido()incluirI temPedido( )
<<Server Page>>
<<build>>
PesquisarPedido
pesquisarPedidoPorCliente()
<<Server Page>>
<<build>>
FramePedido<<Target>>
FormI ncluirPedido<<readOnly>> id : I nteger<<readOnly>> data : Date
<<Form >>
1..n1..n<<link>>
<<submit>>
FormPesquisarPedido<<input>> idCliente : I nteger
<<Form>>
<<submit>>
Pedido(Navegacional)<<Frameset>>
TelaI ncluirPedido<<Client Page>>
TelaPesquisarPedido<<Client Page>>
MenuPedido<<Client Page>><<targeted link>>
{incluir Pedido}<<targeted link>>{pesquisar Pedido}
01 de Julho de 2004 41 / 41
Referências
RUP – Rational Unified Process Versão 2003.06.00.65;
R. Souza. Extensão do Fluxo de Análise e Projeto do RUP para o Desenvolvimento de Aplicações Web. Dissertação de Mestrado. UFPE – CIn, Abril, 2002.
A. Araújo. Framework de Análise e Projeto Baseado no RUP para o Desenvolvimento de Aplicações Web. Dissertação de Mestrado. UFPE – CIn, Fevereiro, 2001.
L. Cole, E. Piveta, A. Sampaio. RUP Based Analysis and Design with Aspects.