Prática interdisciplinar em desenvolvimento de software I

Documentos relacionados
Engenharia de Software Orientada a objetos. Prof. Rogério Celestino dos Santos

Diagrama de Sequência

Análise de Sistemas 4º Bimestre (material 3)

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Diagrama de Casos de Uso. Interagindo com o Usuário

Técnicas de Identificação

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Prática interdisciplinar em desenvolvimento de software I

Sistemas para internet e software livre

PROVA DE CONHECIMENTOS ESPECÍFICOS

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

UFCD 0793 Scripts CGI e Folhas de Estilo Formadora: Sónia Rodrigues

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Padrão para Especificação de Requisitos de Produto de Multimídia

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Requisitos de sistemas

Análise e Projeto de Software Parte II. Marcos Dósea

Alguns Exercícios Resolvidos

SSC510 Arquitetura de Computadores 1ª AULA

Modelagem Dinâmica. Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel. O pensamento é o ensaio da ação.

Introdução ao ASP.NET

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

DIAGRAMAS DE CLASSE UML

Diagrama de Casos de Uso

2 Metodologias para Projetos de Aplicações Hipermidia

Sumário. Capítulo 1 Introdução à UML Capítulo 2 Orientação a Objetos Agradecimentos... 6 Sobre o Autor... 6 Prefácio...

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE

3 Arquitetura MVC baseada em modelos

UML 2. Gilleanes T. A. Guedes. Novatec

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Tecnologias de Desenvolvimento de Páginas web

Desenvolvimento Web III. Prof. Felippe Scheidt

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Introdução a UML e seus diagramas

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

3ª EDIÇÃO Gilleanes T. A. Guedes

Visões Arquiteturais. Visões Arquiteturais

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

Desenvolvimento de um sistema de leilão utilizando JavaServer Pages

Diagrama de Componentes e Implantação

Modelagem de Sistemas. Análise de Requisitos. Modelagem

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Introdução à linguagem JavaScript

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Faculdade de Tecnologia SENAC Pelotas Interface Homem Computador 3º Semestre

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

Modelagem Temporal com UML

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Download e Upload. De forma muito objetiva podemos dizer que um arquivo possui pelo menos três características que os definem:

Trabalho Final de SISTEMAS INTEGRADOS DE MANUFATURA

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Transcrição:

4.6 Estereótipos do Os estereótipos foram abordados no final do capítulo 3. Contudo, como já foi dito, eles são uma característica poderosa utilizada em todos os diagramas da UML e, no diagrama de classes, costumam exercer um papel muito importante.

Conforme explanado no capítulo 3, estereótipos são uma maneira de destacar determinados componentes do diagrama, tornando explícito que tais componentes executam alguma função um pouco diferente dos demais componentes apresentados no diagrama. Existem vários estereótipos predefinidos na linguagem UML. Todavia, a linguagem permite a criação de estereótipos particulares por parte de quem a for utilizar.

Há três estereótipos predefinidos na linguagem UML, bastante utilizados nos diagramas de classes que merecem destaque e que serão estudados nas subseções seguintes: os estereótipos <<entity>>, <<boundary>> e <<control>>.

4.6.1 Estereótipo <<entity>> O estereótipo <<entity>> tem por objetivo tornar explícito que uma classe é uma entidade, ou seja, a classe contém informações recebidas e armazenada pelo sistema ou geradas por meio deste. Essas informações referem-se ao contexto do problema que o software pretende solucionar.

Classes com o estereótipo <<entity>> também fornecem a informação de que normalmente terão muitos objetos e que os mesmos possivelmente terão um período de vida longo, isto é, existe a possibilidade de que os objetos dessas classes precisem ser persistidos, ou seja, preservados fisicamente de alguma maneira.

Frequentemente costuma-se confundir classes detentoras do estereótipo <<entity>> com classes persistentes. Embora muitas delas realmente o sejam, isso não é uma regra. Uma classe do tipo <<entity>> pode ser transiente, isto é, conservar suas informações somente em memória, não sendo necessário preservá-ias permanentemente.

Quando houver necessidade de declarar de forma explícita que uma classe é persistente, o melhor é criar um estereótipo exclusivo para isso ou colocar uma restrição abaixo ou ao lado do nome da classe declarando explicitamente que a classe é persistente. A figura 4.28 apresenta um exemplo de classe com o estereótipo <<entity>>.

Nesse exemplo, deixamos explícito que a classe Conta_Comum é uma entidade, ou seja, que armazena informações referentes ao problema que o sistema no qual ela está inserida procura solucionar, o que não quer dizer que a classe seja persistente. Observe que esse estereótipo é um estereótipo gráfico, ou seja, ele modifica o desenho-padrão da classe.

Um dos problemas de se utilizar esse estereótipo é que ele esconde os atributos e métodos da classe. Por outro lado, isso pode ser vantajoso em diagramas grandes, onde pode ser útil não apresentar essas características. A figura 4.29 apresenta a mesma figura com o estereótipo de persistente.

Já nesse exemplo, utilizamos a mesma classe da figura anterior, mas utilizamos um novo estereótipo chamado <<persistente>> para deixar bem claro que a classe tem obrigatoriamente de preservar fisicamente, de alguma forma, suas instâncias.

4.6.2 Estereótipo <<boundary>> O estereótipo <<boundary>>, também conhecido como estereótipo de fronteira, identifica uma classe que serve de comunicação entre os atores externos e o sistema propriamente dito. Muitas vezes uma classe <<boundary>> é associada à própria interface do sistema, embora possa ser definido um estereótipo exclusivo para tanto.

Uma classe do tipo <<boundary>> muitas vezes necessita interagir com outra classe do tipo <<control>>, que será explicada na seção seguinte. A utilização de classes <<boundary>> é importante quando é preciso definir a existência de uma interface para o sistema, mas desnecessária em sistemas muito simples, cujas interfaces não apresentam nenhuma característica especial.

4.6.3 Estereótipo <<control>> O estereótipo <<control>> identifica classes que servem de intermédio entre as classes <<boundary>> e as demais classes do sistema. Os objetos <<control>> são responsáveis por interpretar os eventos ocorridos sobre os objetos <<boundary>>, como os movimentos do mouse ou o pressionamento de um botão, e retransmiti-ios aos objetos das classes de entidade que compõem o sistema.

A figura 4.30 apresenta um exemplo de classes com estereótipos <<boundary>> e <<control>>.

Conforme apresentado na figura 4.30, a classe Interface_Banco representa a interface do sistema e seus objetos serão basicamente rótulos contendo textos, botões e caixas de edição, além do próprio formulário. Os eventos que ocorrem sobre tais objetos são repassados para um objeto da classe Controlador_Banco que interpretará esses eventos e, se necessário, os repassará para os outros objetos que participam do sistema, normalmente na forma de chamada de métodos. Na próxima seção apresentaremos exemplos de diagrama de classes com o uso desses estereótipos.

4.6.4 Estereótipos para Projeto Navegacional Existem diversos outros tipos de estereótipos com as mais diversas funções, sendo possível utilizar alguns deles para representar o projeto navegacional de um site, por exemplo. Para isso é preciso utilizar estereótipos como <<server page>>, <<client page>> e <<form>>. A figura 4.31 apresenta um exemplo de classe com estereótipo <<server page>>.

O estereótipo <<server page>> é um estereótipo gráfico que apresenta um símbolo de engrenagem ao lado do nome da classe. Esse estereótipo representa uma página web que possui scripts que são executados pelo servidor. A figura 4.32 apresenta um exemplo de estereótipo <<client page>>.

O estereótipo <<client page>> representa uma página HTML carregada pelo navegador do usuário, sendo também um estereótipo gráfico apresentando o símbolo de uma página web ao lado do nome da classe. A figura 4.33 apresenta um exemplo de estereótipo <<form>>.

O estereótipo <<form>> representa um formulário. Em um projeto navegacional representa uma classe que contém um conjunto de campos que fazem parte de uma página. Este é um estereótipo gráfico que apresenta o desenho de um formulário ao lado da classe. A seguir apresentamos um exemplo de como utilizar esses estereótipos por meio da figura 4.34.

Esse exemplo enfoca uma página de submissões de trabalhos para um evento científico, onde os autores submetem seus trabalhos para avaliação e, se porventura forem aprovados, estes serão publicados nos anais do evento. Dessa forma, existe uma página principal que oferece as alternativas de Iogar no sistema, submeter um trabalho ou verificar a situação de trabalhos já submetidos.

A página principal é representada pela classe Pagina_Congresso, detentora do estereótipo <<client page>>, que contém uma associação binária com as classes Pagina_Login, Pagina_Submissao e Pagina_Consulta, que contêm o mesmo estereótipo. Observe que essa associação tem um estereótipo <<link>>, representando o vinculo entre as páginas da web que tais classes representam. Uma instância da classe Pagina_Congresso nada mais é do que a página propriamente dita carregada na máquina de um usuário.

Cada uma dessas três páginas contém uma associação de agregação com uma classe detentora do estereótipo <<form>>, o que determina que a informação da classe Pagina_Login precisa ser completada pela informação contida na classe Formulario_Login; que a informação da classe Pagina_Submissao precisa ser completada pela informação contida na classe Formulario_Submissao; e que a informação da classe Pagina_Consulta precisa ser complementada pela informação contida na classe Formulário_Consulta_Submissao.

Essas classes com estereótipo <<form>> representam os formulários que deverão ser apresentados quando as páginas representadas pelas classes de estereótipo <<client page>> forem carregadas.

Observe que essas três classes com estereótipo <<form>> contêm uma associação binária com a classe Paqina_Servidor, detentora do estereótipo <<server page>>, e que essas associações têm o estereótipo <<submits>> indicando que os valores de seus campos serão submetidos à classe Pagina_Servidor, que processará essas informações de alguma forma ou as repassará a outras classes, se for necessário.

Observe ainda que a classe Pagina_Servidor tem também uma associação binária com a classe Pagina_Consulta, e essa associação tem o estereótipo <<builds>>, significando que a Pagina_Servidor pode mandar reconstruir essa página atualizando suas informações. A navegabilidade apresentada no exemplo demonstra o sentido em que trafegam as informações. Existem vários outros estereótipos que podem ser aplicados a projetos navegacionais, como <<asp page>>, <<jsp page>>, <<servlet>>, <<web page>>, etc.

4.6.5 Estereótipo <<enumeration>> Há ainda vários outros estereótipos que podem ser aplicados a uma classe, como, por exemplo, o estereótipo <<enumeration>>. Uma enumeração é um tipo de dado cujos valores são enumerados no modelo como literais de enumeração.

Basicamente essa classe lista todos os valores válidos que um tipo de dados pode assumir, sendo utilizada principalmente em metamodelos e, embora não costume possuir associações, é geralmente posta próxima das classes que utilizam o tipo de dados cujos literais são por ela enumerados. A figura 4.35 apresenta um exemplo de enumeração que representa os tipos de visibilidade possíveis, enumerados como seus literais.