Classes de Projeto. Prof. Anderson Cavalcanti UFRN-CT-DCA

Documentos relacionados
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

PROJETO DE ARQUITETURA

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Técnicas de Identificação

PROJETO DE ARQUITETURA (PARTE 2)

Programação Estruturada Orientada a Objetos

EA975 - Laboratório de Engenharia de Software

Modelagem de Dados e Funcional Portal XPRecife

FIGURA 59 Interação entre componentes da plataforma CrystalWalk. Fonte: do autor.

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Prof. Me. Sérgio Carlos Portari Júnior

Levantamento de classes (Análise de casos de uso)

Documento de Arquitetura de Software- SGE

Objetos e Componentes Distribuídos: EJB e CORBA

EA975 - Laboratório de Engenharia de Software

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

IntroduçãoaoProcesso. Prof. Anderson Cavalcanti UFRN-CT-DCA

Especificação de Sistemas de Software e a UML

DIAGRAMAS DE CLASSE UML

PCS3413 Engenharia de Software e Banco de Dados

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.

Sistemas Operacionais II

Análise de Sistemas. Aula 5

UML. Rodrigo Leite Durães.

Requisitos de sistemas

ADIANTI FRAMEWORK PARA PHP

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Definindo um padrão para arquitetura Web

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

Noções do padrão MVC e DAO

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

ADIANTI FRAMEWORK PARA PHP

EA975 - Laboratório de Engenharia de Software

ALUNO: RONI FABIO BANASZEWSKI

INF1013 MODELAGEM DE SOFTWARE

Aula 01 Conceito de Banco de Dados e SGBD

Introdução à Análise e Projeto de Sistemas

Frameworks. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

Analista de Sistemas S. J. Rio Preto

Levantamento de Classes

Documento de Especificação de Projeto

Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo ER; Modelo de dados relacional; Mapeamento ER para o

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

Realizando a Análise e Projeto

Java para Desenvolvimento Web Carga Horária: 40 Horas.

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

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

PATI-MVC: Padrões MVC para Sistemas de Informação. Gabriela T. De Souza Instituto Atlântico

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Banco de Dados I Curso: Sistemas de Informação

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

BCD29008 Banco de dados

Engenharia de Software Orientada a Serviços

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1

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

Levantamento de classes (Análise de casos de uso) Prof. Cesar Augusto Tacla

Interações entre objetos

TÉCNICO EM INFORMÁTICA

Frameworks - Introdução. Professor: Hyggo Almeida

Desenvolvimento de Aplicações Distribuídas

Conexão com Banco de Dados

BCD29008 Banco de dados

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Requisitos de Sistemas

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

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Análise e projeto de sistemas

DESENVOLVIMENTO DE APLICAÇÕES COM JAVA 2EE E UML

Introdução a UML e seus diagramas

Lista Diagrama de Casos de Uso

Objetos e Componentes Distribuídos: EJB

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

DS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição.

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Banco de Dados I Parte I: Introdução

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO

Engenharia de Software. Projeto de Arquitetura

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Alguns Exercícios Resolvidos

Análise e Projeto Orientado a Objetos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

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

O Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009

Aula 2 BD Introdução. Profa. Elaine Faria UFU

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

TIPOS DE CLASSES ENTIDADE FRONTEIRA CONTROLE CLASSE DE ENTIDADE. CLASSE DE FRONTEIRA ( interface )

Transcrição:

Classes de Projeto Prof. Anderson Cavalcanti UFRN-CT-DCA

Linhas Gerais sobre as Classes de Projeto

Especificação de Classes de Projeto Especificação de classes de fronteira Responsáveis pela interação com os atores Especificação das classes de entidade Representação dos conceitos do domínio do problema Especificação das classes de controle Responsáveis pela coordenação da interação entre os outros objetos Especificação de classes auxiliares

Classes de Fronteira Tradução de boundary classes Interação com os elementos externos Apresentação de informações Captação de informação Classes de fronteira NÃO devem ter responsabilidades relativas as regras de negócio da aplicação Exemplo: uma classe para representar um formulário de inscrição em uma escola

Classes de Fronteira Tipos de fronteira: Classesdeinterfacecomousuário Classes de interface com equipamentos Classes de interface com outros sistemas As formas de interação do sistema com o ambiente influenciam no projeto arquitetural do mesmo

Classes de Fronteira Clientes WEB clássicos Representação na forma de classes de páginas WEB estáticas e dinâmicas Clientes móveis Classes de fronteira em protocolos específicos Clientes stand-alone Janelas, menus, formulários, botões, etc. Serviços WEB(WEB services) Serviços da aplicação disponíveis pela Internet

Classes de Entidade Representação dos conceitos do domínio do problema Informações e regras de negócio que direcionam a manipulação dessas informações Também chamadas de classes de negócio A maioria já descoberta na fase de análise Aspecto importante a analisar: quais geram objetos que devam ser persistentes Definir o mecanismo de persistência

Classes de Entidade Prática interessante: Para ajudar na identificação única de objetos de uma classe, sugere-se a criação de um atributo identificador de implementação ( identificador ou id ) do tipo inteiro Muito úteis em caso de mapeamento para mecanismos de armazenamento persistente

Classes de Controle Responsáveis por coordenar a interação entre os demais objetos Normalmente podem haver várias classes de controle em uma aplicação Umaparacadaaspectodasolução

Classes de Controle Responsabilidades: Preenchimento de controles da interface gráfica Autenticação de usuários Controle de acesso às funcionalidades do sistema

Classes de Controle Tipocomumdeclassedecontroleéocontroladorde casodeuso Coordenar a realização de um caso de uso Servir de canal de comunicação entre os objetos de fronteira e os objetos de entidade Mapeando ações dos atores em mensagens para objetos de entidade Comunicar-se com outros controladores, quando for necessário Estar apto a manipular exceções

Classes de Controle Em uma aplicação WEB é comum o uso de um front controller (FC) Receber as requisições de um cliente Identificar o controlador adequado para processar a requisição Redirecionar para o controlador adequado Características a serem evitadas Acoplamento excessivo Repetição de código

Classes Auxiliares Identificação de classes que completem as funcionalidades das classes já identificadas Aspectos que devem ser levados em consideração nessa identificação: Comunicação entre as partes do sistema Segurança, autenticação e autorização Controle de transação Registro das operações realizadas(log) Armazenamento persistente etc.

Classes Auxiliares Para atender aos aspectos relacionados, pode-se desenvolver classes próprias, ou utilizar classes já existentes definidas em: Padrões de projeto Bibliotecas de classes prontas Frameworks

Classes Auxiliares Exemplos segundo os aspectos a serem observados: Sistemas distribuídos Classes Proxy (RMI, CORBA, DCOM,etc.) Interface gráfica Classes View Helpers(formatar informações) Armazenamento persistente Classes DAO (Data Access Object) encapsulam e implementam operações CRUD (create-retrieveupdate- delete) Classes fábrica possibilitam a criação dos DAOs

Classes Auxiliares Padrões de Projeto Descrição da essência da solução para um problema de ocorrência comum Descreve como os objetos colaboram para resolver o problema Permitem uma maior produtividade Exemplo: classes VH, DAO e Front Controller são padrões descritos no catálogo JEE

Classes Auxiliares Frameworks Coleção de classes prontas que colaboram para resolver problemas comuns encontrados no desenvolvimento de sistemas Aceleram o desenvolvimento de aplicações Exemplo 1: Hibernate,http://www.hibernate.org Persistência de objetos em SGBD relacional Exemplo 2: JUnit, http://www.junit.org Automatização de testes de unidade

Classes Auxiliares Bibliotecas de classes prontas Coleção de classes prontas que possuem um objetivo específico Exemplos: JDBC Swing Log4J Próprias da plataforma de desenvolvimento Javaou.NET

Diagrama de Classes

Especificação de Atributos Notação UML visibilidade nome: tipo = valor inicial Opções de visibilidade: Pública (+) Protegida (#) Privada (-) Pacote (~) Tipos de variáveis podem ser: primitivos (inteiro, real, etc.) ou tipos abstratos de dados (Data, Horário, Endereço, etc.)

Especificação de Atributos Atributos derivados são antecedidos por / Valores derivados a partir de outros atributos Atributos da classe(estáticos) Atributos estáticos aparecem sublinhados no diagrama de classes Exemplo:

Especificação de Operações Identificadas nos diagramas de interação Notação UML visibilidade nome(parâmetros: tipo): tipo-retorno {propriedades} Dicas <verbo>+<complemento> Nome segundo uma perspectiva externa Onomedevedeixarclarooqueelaproduzenãocomoela ofaz Utilização da técnica de projeto por contrato design by contract(dbc)

Referências ALLEIXO, F. Notas de aula da disciplina de Análise e Projeto Orientado a Objeto, CEFET/RN, 2007. SCOTT, K. O Processo Unificado Explicado. Ed. Bookman, 2003.