41
01 de Julho de 2004 1 / 41 UFPE - Universidade Federal de Pernambuco CIn - 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 Souza [email protected]

41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

Embed Size (px)

Citation preview

Page 1: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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]

Page 2: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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

Page 3: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 4: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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>>

Page 5: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 6: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 7: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 7 / 41

RUP – Rational Unified Process

Disciplinas e Fases

Page 8: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 8 / 41

Disciplina de Análise & Projeto

RUP 2003

Page 9: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 10: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 10 / 41

Subfluxo Realizar Síntese Arquitetural

Page 11: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 12: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 12 / 41

Subfluxo Definir Arquitetura Candidata

Page 13: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 14: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 14 / 41

Subfluxo Refinar Arquitetura

Page 15: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 16: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 16 / 41

Subfluxo Analisar Comportamento

Page 17: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 18: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 18 / 41

Subfluxo Projetar Componentes

Page 19: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 20: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 20 / 41

Subfluxo Projetar Banco de Dados

Page 21: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 22: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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

Page 23: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 24: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 24 / 41

Extensão para Tratamento de Aspectos

Atividades da Disciplina de Análise & Projeto

Page 25: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 26: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 27: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 27 / 41

Extensão para Aplicações Web

Objetivo

Atender aplicações Web no padrão arquitetural em Camadas;

Page 28: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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.

Page 29: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 29 / 41

Extensão para Aplicações Web

Mapa de Navegação

Page 30: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 30 / 41

Extensão para Aplicações Web

RUP 2001

Page 31: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 31 / 41

Extensão para Aplicações Web

Atividades do Fluxo Estendido

Page 32: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

01 de Julho de 2004 32 / 41

Extensão para Aplicações Web

Subfluxo Projetar Camada de Apresentação

Page 33: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 34: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 35: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 36: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 37: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 38: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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;

Page 39: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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

Page 40: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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}

Page 41: 41 01 de Julho de 20041 UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados

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.