/ de Julho de 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
/ de Julho de Roteiro 4Extensões de UMLExtensões de UML 4RUP – Rational Unified ProcessRUP – Rational Unified Process 4Disciplina de Análise & ProjetoDisciplina de Análise & Projeto 4Subfluxos da Disciplina de Análise & ProjetoSubfluxos da Disciplina de Análise & Projeto 4Instância da Disciplina de Análise & ProjetoInstância da Disciplina de Análise & Projeto 4Extensão para Tratamento de AspectosExtensão para Tratamento de Aspectos 4Extensão para Aplicações WebExtensão para Aplicações Web 4ReferênciasReferências
/ de Julho de Extensões de UML Definição l Maneira ordenada de adicionar nova semântica para a notação de UML; l Permite a inclusão de novos atributos, diferentes semânticas e restrições adicionais a elementos da modelagem; l 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;
/ de Julho de Extensões de UML Exemplos
/ de Julho de RUP – Rational Unified Process Conceitos Chaves l Responsável – papel desempenhado por um indivíduo ou uma equipe no contexto do projeto; l Atividade – unidade de trabalho que produz um resultado significante no contexto do projeto; l Artefato – peça de informação que é produzida, modificada ou usada pelo processo de desenvolvimento de software; l Disciplina – seqüência de atividades que produz um resultado de valor observável; l Subfluxo – agrupamento de atividades, responsáveis envolvidos, artefatos de entrada e artefatos produzidos;
/ de Julho de RUP – Rational Unified Process Características l Dirigido a Casos de Uso O processo de desenvolvimento segue um fluxo de ações para realização de Casos de Uso; l Centrado na Arquitetura O RUP fornece uma maneira metódica e sistemática para projetar, desenvolver e validar a arquitetura; l Iterativo e Incremental Iterações referem-se a passos no fluxo de desenvolvimento, e Incrementos a evoluções do produto;
/ de Julho de RUP – Rational Unified Process Disciplinas e Fases
/ de Julho de Disciplina de Análise & Projeto RUP 2003
/ de Julho de Disciplina de Análise & Projeto Propósitos l Transformar os requisitos em um projeto do sistema; l Definir uma arquitetura robusta para o sistema; l Adaptar o projeto para o ambiente de implementação;
/ de Julho de Subfluxo Realizar Síntese Arquitetural
/ de Julho de Subfluxo Realizar Síntese Arquitetural Características l Propósito: Construir e avaliar uma Prova de Conceito Arquitetural para demonstrar que o sistema, conforme especificado (visão), é viável; l Realizado na fase de Concepção;
/ de Julho de Subfluxo Definir Arquitetura Candidata
/ de Julho de Subfluxo Definir Arquitetura Candidata Características l 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. l Realizado na fase de Elaboração;
/ de Julho de Subfluxo Refinar Arquitetura
/ de Julho de Subfluxo Refinar Arquitetura Características l 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. l Realizado nas fases de Elaboração, Construção e Transição;
/ de Julho de Subfluxo Analisar Comportamento
/ de Julho de Subfluxo Analisar Comportamento Características l 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. l Realizado nas fases de Elaboração, Construção e Transição;
/ de Julho de Subfluxo Projetar Componentes
/ de Julho de Subfluxo Projetar Componentes Características l 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. l Realizado nas fases de Elaboração, Construção e Transição;
/ de Julho de Subfluxo Projetar Banco de Dados
/ de Julho de Subfluxo Projetar Banco de Dados Características l 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. l Realizado nas fases de Elaboração, Construção e Transição;
/ de Julho de Instância da Disciplina de Análise & Projeto Analisar Casos de Uso Revisar Projeto Projetar Arquitetura Projetista de Banco de Dados Arquiteto de Software Revisor de projeto Projetar Casos de Uso Projetar Subsistemas Projetar Base de Dados Analista de Sistemas decisões do arquiteto > Check List bla bla bla blabla
/ de Julho de Extensão para Tratamento de Aspectos Motivação l Desenvolvimento de Software Orientado a Aspectos é um novo paradigma que visa resolver problemas tratados não adequadamente pelo paradigma Orientado a Objetos; l Aspecto define o comportamento que deve ser adicionado em pontos específicos no programa; l Adaptação da Disciplina de Análise e Projeto do RUP para Modelar Crosscutting Concerns (ex. Distribuição, Log) como aspectos;
/ de Julho de Extensão para Tratamento de Aspectos Atividades da Disciplina de Análise & Projeto
/ de Julho de Extensão para Aplicações Web Motivação l Grande demanda pelo desenvolvimento de aplicações Web; l Características específicas de aplicações Web; l Adaptações em processos genéricos de desenvolvimento de software;
/ de Julho de Extensão para Aplicações Web Aplicações Web versus Aplicações Tradicionais l Principais diferenças referem-se a questões sobre: Navegação; Interface Gráfica; Implementação;
/ de Julho de Extensão para Aplicações Web Objetivo l Atender aplicações Web no padrão arquitetural em Camadas;
/ de Julho de Extensão para Aplicações Web Limitações do RUP Tradicional l RUP 2001 Classes Boundary, responsáveis pela interação ator (usuário) e caso de uso, mapeadas em interfaces gráficas; l 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.
/ de Julho de Extensão para Aplicações Web Mapa de Navegação
/ de Julho de Extensão para Aplicações Web RUP 2001
/ de Julho de Extensão para Aplicações Web Atividades do Fluxo Estendido
/ de Julho de Extensão para Aplicações Web Subfluxo Projetar Camada de Apresentação
/ de Julho de Extensão para Aplicações Web Atividade Projetar Navegação l 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;
/ de Julho de Extensão para Aplicações Web Atividade Projetar Navegação – Artefatos de Entrada l 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; l 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;
/ de Julho de Extensão para Aplicações Web Atividade Projetar Navegação – Artefatos de Entrada l 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; l Guia de Projeto Navegacional – consiste no método proposto para criação do Modelo Navegacional de aplicações Web;
/ de Julho de Extensão para Aplicações Web Atividade Projetar GUI (Graphic User Interface) l Consiste em projetar as Interfaces Gráficas da aplicação de acordo com as necessidades navegacionais; l A aparência das Interfaces Gráficas deve obedecer ao padrão de apresentação (fonte, cor, botão, etc) adotado pela organização; l Artefato de Entrada – Modelo Navegacional; l Artefato Produzido – Templates GUI; Esboço das Interfaces Gráficas derivadas dos elementos do Modelo Navegacional que representam páginas cliente e formulários;
/ de Julho de Extensão para Aplicações Web Método para criação do Modelo Navegacional l Primeiro Passo: Identificar as Classes Navegacionais; Derivadas das classes básicas do Modelo Conceitual; l 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;
/ de Julho de Extensão para Aplicações Web Método para criação do Modelo Navegacional l 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;
/ de Julho de Exemplo – Modelo de Análise l Aplicação Web onde o cliente realiza compra de livros e CDs.
/ de Julho de Exemplo – Modelo Navegacional
/ de Julho de Referências l RUP – Rational Unified Process Versão ; l 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, l 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, l L. Cole, E. Piveta, A. Sampaio. RUP Based Analysis and Design with Aspects.