Aperfeiçoamento do Desenho. Desenho por Contrato
|
|
- Carla Belém Flores
- 8 Há anos
- Visualizações:
Transcrição
1 Aperfeiçoamento do Desenho Desenho por contrato Protótipos de desenho Desenho de Software 7 Desenho por Contrato Utiliza-se a técnica de desenho por contrato para assegurar que o desenho satisfaz a sua especificação Um componente, dito cliente, que necessita dos serviços de outro componente, dito fornecedor, pelo qual celebram um contrato que especifica: as obrigações mútuas, chamados de pré-condições os benefícios, chamados de pós-condições as restrições de coerência, chamadas de invariantes Facilitam o desenvolvimento separado, a reutilização, os testes, a verificação da coerência entre as cláusulas, a verificação da correcção da implementação, documentam o desenho,... Desenho de Software 72
2 Noção de contrato Contracto escrito entre duas partes quando uma delas (FOLHQWH) executa alguma tarefa para outra parte (IRUQHFHGRU) O objectivo do documento de contrato é descrever os EHQHItFLRV e REULJDo}HV de cada um dos parceiros Cliente Fornecedor Obrigações (tem que garantir pré-condição) 3DJDUELOKHWHEDJDJHP (tem que garantir pós-condição) /HYDURFOLHQWHDRGHVWLQR Benifícios (vai beneficiar da pós-condição) &KHJDUDRGHVWLQR (pode assumir pré-condição) %LOKHWHIRLSDJR Desenho de Software 73 Exemplo Inserção de um elemento de uma tabela Obrigações Benifícios Cliente (tem que garantir pré-condição) $WDEHODQmRHVWiFKHLD HDFKDYHGHDFHVVR QmRpDVWULQJYD]LD (vai beneficiar da pós-condição) $WDEHODpDFWXDOL]DGD FRPRQRYRHOHPHQWRHD FKDYHGDGD Fornecedor (tem que garantir pós-condição) $FWXDOL]DDWDEHODFRP RQRYRHOHPHQWR (pode assumir pré-condição) 6HDWDEHODHVWiFKHLD RXDFKDYHpDVWULQJ YD]LDQmRpQHFHVViULR ID]HUQDGD Desenho de Software 74 2
3 Desenho por Contrato Exemplo Eiffel [ Meyer992] put (x: ELEMENT; key: STRING) -- Insert x so that it will be retrievable through key count = capacity; not key.empty... Some insertion algorithm... has(x); item(key) = x; count = old count + 0 = count count = capacity Desenho de Software 75 Desenho por Contrato Fabrica de produtos químicos Classes TANK, PIPE, VALVE, CONTROL_ROOM fill -- Fill tank with liquid! #"$ &%' )( * + -- Implementation )( * +-, &%' )( * +., * /% 0 isfull = (0.95 * capacity = gauge) and (gauge =.05 * capacity) Desenho de Software 76 3
4 Protótipos de Desenho Permitem verificar se a solução de desenho vai de facto resolver o problema O protótipo deve focar apenas no aspecto de desenho sobre o qual existem dúvidas Frequentemente são descartáveis Desenho de Software 77 Validação e Verificação 9DOLGDomR certificar se o desenho satisfaz todos os requisitos do utilizador 9HULILFDomR certificar se a solução incorpora as qualidades de desenho requeridas Existem várias técnicas: Validação Matemática pode ser difícil mas muito útil para alguns aspectos críticos Métricas de Desenho permitem quantificar a qualidade Comparação de Desenhos para avaliar os compromissos Desenho de Software 78 4
5 Validação Matemática Método B 2 Metodologia e ferramenta de desenvolvimento formal 2 Um sistema é definido por uma composição de abstract machines 2 Refinamento 3 No inicio considera-se uma abstração do sistema 3 Em cada refinamento são adicionados detalhes 3 No final é gerado código C+ + ou Java Desenho de Software 79 Métricas de Desenho Não se pode gerir aquilo que não se controla e não se pode controlar aquilo que não se consegue medir. Tom DeMarco As seguintes métricas propostas por Robert Martin medem a qualidade do desenho com objectos. Considera módulos reutilizáveis de componentes: Ligação de Fora/Dentro (LFD): número de classes de fora do módulo que dependem de classes de dentro do módulo Ligação de Dentro/Fora (LDF): número de classes de dentro do módulo que dependem de classes fora do módulo Instabilidade (I): I = LDF / (LFD + LDF), I=0 indica estabilidade e I= indica instabilidade do módulo Desenho de Software 80 5
6 Métricas de Desenho Princípio do Aberto/Fechado Um sistema não pode ter todos os módulos estáveis Um módulo deve ser aberto à extensão e fechado à modificação Desta forma, os módulos estáveis devem ser muito abstractos enquanto que os módulos instáveis devem ser muito concretos Uma medida de abstracção: Abstracção (A): A = número de classes abstractas do módulo / número total de classes do módulo, A= 0 significa que é concreto e A= que é abstracto Desenho de Software 8 Métricas de Desenho Relacionamento entre a medida de abstracção e a instabilidade de um modulo: A = e I = 0 A = 0 e I = A = 0 e I = 0 A = e I = abstracção (0,) sequência principal (,0) A = 0.5 e I = 0.5 instabilidade Desenho de Software 82 6
7 Métricas de Desenho É desejável que os módulos estejam próximos da sequência principal Distância (D): D = (A+ I-) / 2 abstracção (0,) sequência principal (,0) instabilidade Desenho de Software 83 Comparação de Desenhos Uma especificação possibilita muitos desenhos 2 Deve-se construir diversas soluções para o problema usando diferentes estilos arquitecturais 2 Decidir qual o melhor desenho para os objectivos do sistema 2 Tabelas de Comparação 3 Facilidade de alteração do algorítmo 3 Performance 3 Facilidade na reutilização 3 Modularidade 3... Desenho de Software 84 7
8 Comparação de Desenhos Tabelas de comparação definem para cada atributo de qualidade se um particular estilo arquitectural o suporta ou não Tabela de pesos indica qual a prioridade que cada atributo de qualidade tem para o sistema a desenvolver, permite calcular um valor para cada estilo arquitectural Desenho de Software 85 Documentação do Desenho Devem ser apresentadas quais as razões do desenho que indiquem os aspectos críticos e os compromissos da solução Utilizar as notações necessárias para exprimir o desenho e as suas propriedades, por exemplo, UML Desenho de Software 86 8
9 Revisão do Desenho 4 Este processo tem por objectivo garantir que se está a desenvolver o sistema/programa que o cliente pretende 4 Faz-se detecção erros 4 Revisão Preliminar Clientes e utilizadores validam o desenho conceptual 4 Revisão Principal/ Crítica Analistas, desenhadores validam o desenho técnico Discutir desenhos alternativos 4 Revisão do Programa Realizada depois do desenho do sistema estar concluído, mas antes da implementação Desenho de Software 87 Casos Notáveis 5 Padrão Data Access Object 6 java.sun.com/ blueprints/ corej2eepatterns/ Patterns/ D ataaccessobject.html 5 Padrão Intercepting Filter 6 java.sun.com/ blueprints/ corej2eepatterns/ Patterns/ In terceptingfilter.html 5 Moldura de Objectos JUnit 6 Erich Gamma and Kent Beck 6 junit.sourceforge.net/ doc/ cookstour/ cookstour.htm 5 Padrão Arquitectural Modelo-Vista-Controlador 6 In Pattern-Oriented Software Architecture: A System of Patterns. Frank Buschmann et al. Desenho de Software 88 9
10 Padrão Data Access Object &RQWH[WR 7 Acesso aos dados depende da fonte dos dados 8 tipo de armazenamento 8 implementação do vendedor Desenho de Software 89 Problema 4 As aplicações podem usar a API JDBC mas mesmo num SGBD relacional a sintaxe e o formato dos comando SQL pode variar devido ao produto usado 4 Existe ainda maior variação quando se usam diferentes tipos de SGBD 4 Cria-se uma dependência entre o código da aplicação e o código de acesso aos dados que dificulta a migração entre diferentes tipos de SGBD e diferentes produtos de um mesmo tipo Desenho de Software 90 0
11 Forças Componentes aplicacionais necessitam de obter/guardar informação de/para um suporte persistente As APIs dos suportes persistentes variam dependendo do vendedor do produto e do tipo do produto Componentes aplicacionais usualmente usam APIs proprietárias A portabilidade dos componentes aplicacionais é afectada Desenho de Software 9 Solução Utilizar um objecto de acesso aos dados (DAO) para abstrair e encapsular todos os acessos à fonte de dados O DAO gere a ligação à fonte de dados para obter e guardar dados O DAO funciona como um adaptador entre o componente e a fonte de dados Desenho de Software 92
12 Estrutura Desenho de Software 93 Participantes e Colaborações Desenho de Software 94 2
13 Estratégia Factory Method Desenho de Software 95 Estratégia Abstract Factory e Factory Method Desenho de Software 96 3
14 Estratégia Desenho de Software 97 Código: Fábrica Abstracta package ServidorPersistente; public interface ISuportePersistente { public void iniciartransaccao() throws ExcepcaoPersistencia; public void confirmartransaccao() throws ExcepcaoPersistencia; public void cancelartransaccao() throws ExcepcaoPersistencia; } public IItemPersistente getiitempersistente(); public ISeccaoPersistente getiseccaopersistente(); public ISitioPersistente getisitiopersistente(); Desenho de Software 98 4
15 Código: Fábrica Concreta package ServidorPersistente.OJB; public class SuportePersistenteOJB implements ISuportePersistente { Implementation _odmg = null; Database _db = null;... public IItemPersistente getiitempersistente() { return new ItemOJB(); } public ISeccaoPersistente getiseccaopersistente() { return new SeccaoOJB(); } public ISitioPersistente getisitiopersistente() { return new SitioOJB(); } } Desenho de Software 99 Código: Interface DAO package ServidorPersistente; import Dominio.ISitio; public interface ISitioPersistente { ISitio readbynome(string nome) throws ExcepcaoPersistencia; void write(isitio sitio) throws ExcepcaoPersistencia; void delete(isitio sitio) throws ExcepcaoPersistencia; void deleteall() throws ExcepcaoPersistencia; } Desenho de Software 00 5
16 Código: Implementação OJB package ServidorPersistente.OJB; public class SitioOJB extends ObjectFenixOJB implements ISitioPersistente { public SitioOJB() { }... public void deleteall() throws ExcepcaoPersistencia { String oqlquery = "select all from " + Sitio.class.getName(); super.deleteall(oqlquery); } } Desenho de Software 0 Código: Objecto Valor package Dominio; public class Sitio implements ISitio { private String _nome; private int _anocurricular; private int _semestre; private String _departamento; private String _curso; private List _seccoes; // códigos internos da base de dados private int _codigointerno;... // getter e setter methods... } Desenho de Software 02 6
17 Consequências Permite a transparência Facilita a migração Reduz a complexidade do código do componente aplicacional Centraliza os acessos a dados numa camada separada Acrescenta uma camada adicional Necessita do desenho de uma hierarquia de classes Desenho de Software 03 Padrão Intercepting Filter O mecanismo de tratamento de pedidos da camada de apresentação trata pedidos muito diferentes entre si, o que implica tratamento especializado para cada um deles Alguns pedidos têm tratamento imediato, enquanto outros necessitam de ser modificados ou verificados antes de serem processados Desenho de Software 04 7
18 Problema É necessário haver pré- e pósprocessamento dos pedidos feitos por um cliente Web e das respectivas respostas 7 O cliente foi autenticado? 7 A sessão do cliente é válida? 7 O tipo de browser do cliente é suportado? 7... Desenho de Software 05 Forças Deve haver processamento comum a todos os pedidos e respostas Centralização da lógica comum A adição e remoção dos componentes de processamento deve ser independente Desenho de Software 06 8
19 Solução Criar filtros para processar os serviços comuns de forma que: 7 Interceptem os pedidos que chegam e as respostas que são enviadas 7 Seja possível adicionar ou remover os filtros de forma discreta sem ser necessário modificar o código já existente Desenho de Software 07 Estrutura Desenho de Software 08 9
20 Colaboração Desenho de Software 09 Participantes 4 GestorFiltros 9 Gere o processamento dos filtros 9 Cria a CadeiaFiltros com os filtros apropriados, na ordem correcta, e inicia o processamento : CadeiaFiltros 9 Conjunto ordenado de filtros independentes : Filtro, Filtro2, Filtro3 9 Filtros individuais que são mapeados para um alvo 9 A CadeiaFiltros coordena o seu processamento : Alvo 9 Consiste no recurso pedido pelo cliente Desenho de Software 0 20
21 Custom Filter (/ 4) Custom Filter 7 Definido pelo programador 7 Menos flexível e menos poderoso que o Standard Filter 7 Exemplos: 8 Utilização do Decorator para encapsular o processamento dos pedidos dentro dos filtros 8 Utilização de Gestor de Filtros e Cadeia de Filtros para coordenar o processamento dos filtros Desenho de Software Custom Filter (2/ 4) 9 Exemplo Utilização do Decorator ; Problema ; Se alterarmos a forma de tratar o pedido, tem que se alterar também o código dos filtros e do processamento principal Desenho de Software 2 2
22 Custom Filter (3/ 4) 9 Exemplo Utilização do Decorator Desenho de Software 3 Custom Filter (3/ 4) 9 Exemplo Utilização de Gestor e Cadeia de Filtros ; Problema ; Filtros adicionados ou removidos programaticamente Desenho de Software 4 22
23 Standard Filter (/ 2) Standard Filter 9 Os filtros são controlados declarativamente, utilizando um ficheiro de configuração ; Este ficheiro inclui o mapeamento dos filtros para URL s específicos ; Quando um cliente faz um pedido a que corresponde aquele URL mapeado, os filtros são processados por ordem antes que o alvo do pedido seja invocado filter> filter-name> StandardEncodeFilter /filter-name>... /filter>... filter-mapping> filter-name> StandardEncodeFilter /filter-name> url-pattern> /EncodeTestServlet /url-pattern> /filter-mapping> Desenho de Software 5 Standard Filter (2/ 2) Desenho de Software 6 23
24 Intercepting Filter : Os filtros em geral não alteram o fluxo de execução Desenho de Software 7 Intercepting Filter : Filtro com alteração do fluxo de Execução Desenho de Software 8 24
25 Outras Estratégias Base Filter 7 Superclasse comum a todos os filtros utilizados 7 Partilhada por todos os filtros 7 Encapsula funcionalidades comuns Template Filter 7 Base Filter que contém uma estrutura fixa a que todos os filtros têm que obedecer 7 Cada subclasse filtro implementa a sua funcionalidade para essa estrutura Desenho de Software 9 Consequências Centraliza o controlo com fraca ligação entre filtros Promove a reutilização Configuração independente e declarativa A partilha de informação é ineficiente Desenho de Software 20 25
26 Padrão Adapter Permite ultrapassar incompatibilidades entre interfaces Converte a interface de uma classe noutra interface (esperada pelos clientes) Existem dois tipos de adaptadores: de classes e de objectos Desenho de Software 2 Padrão Adapter Adaptador de Objectos (composição) Desenho de Software 22 26
27 Padrão Adapter Adaptador de Classes (herança) Java não permite herança multipla Desenho de Software 23 Padrão Composite Permite compor objectos em estruturas Trata objectos individuais e objectos estruturados uniformemente Em geral são usados para representar estruturas de dados recursivas Desenho de Software 24 27
28 Padrão Composite Desenho de Software 25 Padrão Arquitectural MVC Desenho de Software 26 28
29 Padrão Arquitectural MVC : O padrão arquitectural Modelo-Vista- Controlador (MVC) divide uma aplicação interactiva em três componentes: modelo, vista e controlador 9 O modelo contém o núcleo da funcionalidade e dos dados 9 As vistas mostram a informação ao utilizador 9 Os controladores tratam das entradas dos utilizadores As vistas e os controladores formam a interface. Um mecanismo de propagação das alterações assegura a coerência entre a interface utilizador e o modelo Desenho de Software 27 Exemplo Desenho de Software 28 29
30 Problema : As interfaces utilizador são muito passíveis de sofrerem pedidos de alteração : Diferentes utilizadores têm requisitos diferentes, e por vezes conflituosos, sobre como deve ser a interface utilizador : Um sistema que satisfaça os requisitos acima deve permitir: A mesma informação ser apresentada de forma diferente em distintas janelas A visualização e comportamento da aplicação reflecte imediatamente as alterações aos dados Alterações à interface são fáceis e possíveis em tempo de execução O suporte de diferentes look and feel não deve afectar o núcleo da aplicação Desenho de Software 29 Solução : Existem três tipos de componentes: modelo, vista e controlador O modelo encapsula o cerne dos dados e da funcionalidade, é independente das representações de saída e do comportamento associado às entradas A vista mostra os dados ao utilizador, obtém os dados do modelo e permite a existência diferentes vistas do modelo O controlador recebe os eventos de entrada que converte para pedidos de serviços ao modelo e às vistas : A separação entre o modelo a vista e o controlador permite múltiplas vistas do mesmo modelo Desenho de Software 30 30
31 N Estrutura * DEBF A!G HIA#G coredata : undefined attach() detach() notify() getdata() service() J K AML update() 0.. >BOQP GR>BC C A#G initialize() makecontroller() activate() display() update() initialize() handleevent() update() Desenho de Software 3 Dinâmica: Propagação :C o n t r o lle r :M o d e l :V ie w h a n d le E v e n t s e r v ic e n o t if y u p d a t e g e t D a t a u p d a t e g e t D a t a Desenho de Software 32 3
32 m a in p r o g r a m : Dinâmica: Inicialização c r e a t e :M o d e l c r e a t e :V i e w i n it ia l iz e a t t a c h m a k e C o n t r o ll e r c r e a t e : C o n t r o ll e r in i t ia li z e a t t a c h s t a r t E v e n t P r o c e s s in g Desenho de Software 33 Exemplo (/ 2) Desenho de Software 34 32
33 S S Exemplo (2/ 2) Desenho de Software 35 Consequências Vantagens Múltiplas vistas do mesmo modelo Sincronização das vistas Troca dinâmica de vistas e controladores Alteração do look and feel Potencial para moldura de objectos Desvantagens Aumento da complexidade Possível excesso do número de propagação de alterações Ligação forte entre as vistas e os respectivos controladores Ligação forte das vistas e controladores com o modelo Ineficiência dos acessos aos modelos por parte dados das vistas Alteração da vista e do controlador quando é necessário portar Desenho de Software 36 33
34 Exemplo InterfaceDocente ServidorDocente Dominio ServidorDados InterfaceAluno ServidorAluno Desenho de Software 37 34
Desenho de Software. António Rito Silva Rito.Silva@inesc-id.pt
Desenho de Software António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Problemas Qualidades Técnicas Avaliação e Validação Casos Notáveis Exemplo Conclusões Desenho de Software
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisDesenho de Software. Desenho de Software 1
Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisPrototype, um Design Patterns de Criação
Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia maisProgramação com Objectos Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos)
LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico (201001040900) 1/10 LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos) Nome:
Leia maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia maisCurso - Padrões de Projeto Módulo 2: Padrões de Criação
Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação
Leia maisDefinição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão
DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes
Leia maisEngenharia de Software
Engenharia de Software Introdução Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Engenharia de software A economia de todos os países desenvolvidos depende do software. O
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia mais1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)
Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:
Leia maisUML Aspectos de projetos em Diagramas de classes
UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada
Leia mais5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância
5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo
Leia maisCapítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Leia maisTecnologias Web. Padrões de Projeto - Camada de Apresentação
Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller
Leia maisTRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado
Leia maisEscola Superior de Tecnologia de Setúbal. Projecto Final
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:
Leia maisDiagrama de transição de Estados (DTE)
Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das
Leia maisRock In Rio - Lisboa
Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem
Leia maisEngenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 Segundo Exame 16 de Julho de 2010, 9:00H 11:30H (Versão A) Nome:
Leia maisCasos Notáveis. Forças. Problema. Contexto
Casos Notáveis Padrão Data Access Object http://java.sun.com/blueprints/corej2eepatterns/patterns/d ataaccessobject.html Padrão Intercepting Filter http://java.sun.com/blueprints/corej2eepatterns/patterns/in
Leia maisProgramação Orientada a Objetos. Padrões de Criação
Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified
Leia maisAplicativo web para definição do modelo lógico no projeto de banco de dados relacional
Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisGestão do Risco e da Qualidade no Desenvolvimento de Software
Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se
Leia maisPadrão J2EE Data Access Object (DAO)
Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento
Leia maisOrientação a Objetos com Java
Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;
Leia maisEngenharia de Software
Engenharia de Software Desenho de Software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt desenho Desenho (dicionário Priberam on-line) do Lat.! designu s. m., arte de representar
Leia maisUniversidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação
UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Operação
Leia maisArquitecturas de Software Licenciatura em Engenharia Informática e de Computadores
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisParadigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
Leia maisPersistência e Banco de Dados em Jogos Digitais
Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem
Leia mais3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Leia maisGuia de utilização da notação BPMN
1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação
Leia maisProgramação Orientada por Objetos
PPROG Paradigmas da Programação Programação Orientada por Objetos Relações entre Dependência Agregação Composição Associação (Livro Big Java, Late Objects Capítulo 12) Nelson Freire (ISEP DEI-PPROG 2014/15)
Leia maisModelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
Leia maisDecorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA
Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento
Leia maisPHC Serviços CS. A gestão de processos de prestação de serviços
PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respectivo tratamento; controlo de processos e respectivos
Leia maisMAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO
MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta
Leia maisBanco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com
Banco de Dados Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Roteiro Mapeamento de objetos para modelo relacional Estratégias de persistência Persistência JDBC Mapeando Objetos para o Modelo Relacional
Leia maisMódulo 07 Características Avançadas de Classes
Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisTópicos em Engenharia de Computação
Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas
Leia maisProgramação com Objectos
Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é
Leia maisATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS
ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o
Leia maisAspectos técnicos do desenvolvimento baseado em componentes
Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos
Leia maisNa medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Leia maisModelagemde Software Orientadaa Objetos com UML
Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para
Leia maisBase de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade
Base de dados I O que é? Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade Para que serve? Serve para gerir vastos conjuntos de informação de
Leia mais4 O Workflow e a Máquina de Regras
4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu
Leia maisEngenharia de Software I
Engenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 1 Rational Unified Process RUP Fase Elaboração 2 VISÃO GERAL Fase Elaboração. Visão Geral 3
Leia maisAnálise de Sistemas. Conceito de análise de sistemas
Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de
Leia maisDesenvolvimento de uma Aplicação WEB para monitorização de BD Oracle
Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Luís Filipe Borges Pinto Resumo: Este projecto consiste na implementação de uma aplicação WEB para monitorização
Leia maisEXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Leia maisEngenharia de Software Sistemas Distribuídos
Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2007/2008 Requisitos para a 1 a entrega Loja Virtual 1 Introdução O enunciado base do projecto conjunto das disciplinas de Engenharia de Software
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisCapítulo 4. Packages e interfaces
Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias
Leia maisTarefa Orientada 14 Subconsultas
Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta
Leia maisProgramação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço
Leia maisPadrões de projeto 1
Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois
Leia maisUnisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER
Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem
Leia maisPadrão Arquitetura em Camadas
Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização
Leia maisArgo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE
Padrões de Projeto J2EE J931 Introdução Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos de aprender padrões J2EE Conhecer padrões para uso na plataforma J2EE Padrões permitem maior reuso, menos
Leia maisFundamentos de Banco de Dados e Modelagem de Dados
Abril - 2015 Universidade Federal de Mato Grosso Instituto de Computação Pós Graduação Lato Sensu em Banco de Dados Fundamentos de Banco de Dados e Modelagem de Dados Prof. Dr. Josiel Maimone de Figueiredo
Leia mais2 a Lista de Exercícios
Projeto de Sistemas 2011/2 2 a Lista de Exercícios (1) Um importante aspecto do projeto da camada de Lógica de Negócio (LN) diz respeito à organização das classes e distribuição de responsabilidades entre
Leia maisBase de Dados para Administrações de Condomínios
Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt
Leia maisLista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
Leia maisTipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de
Capítulo 8: BDs Objecto-Relacional Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Objectos e Referência
Leia maisEngenharia de Requisitos Estudo de Caso
Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisQualidades. Atributos de Qualidade. Atributos de Qualidade. Categorias de Qualidades. Arquitecturas de Software
Arquitecturas de Software Atributos de Qualidade António Rito Silva Rito.Silva@inesc-id.pt Qualidades Nenhuma qualidade pode ser maximizada num sistema sem sacrificar uma outra qualidade ou qualidades
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia maisResolução da lista de exercícios de casos de uso
Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se
Leia maisDesenvolvimento Cliente-Servidor 1
Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados
Leia maisConsistem num conjunto de apontadores para instâncias especificas de cada relação.
Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia mais4.2. UML Diagramas de classes
Engenharia de Software 4.2. UML Diagramas de classes Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Um diagrama de classes serve para modelar o vocabulário de um sistema Construído e refinado ao longo
Leia maisModelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza
Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira
Leia maisProgramação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.
Programação Funcional Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2015.1 1/13 1 Paradigmas de programação 2 Programação funcional 3 A Crise
Leia maisPadrões de Projeto. Singleton
Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir
Leia maisGuia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Leia mais2 Desenvolvimento de Software Orientado a Aspectos
2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,
Leia maisINDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES
w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software
Leia mais4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?
Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer
Leia maisPHC Serviços CS. A gestão de processos de prestação de serviços
PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respetivo tratamento; controlo de processos e respetivos passos
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisDepartamento de Informática
Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos 1ª chamada, 9 de Janeiro de 2009 1º Semestre, 2009/2010 NOTAS: Leia com atenção cada questão antes de responder.
Leia maisUFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services
Leia maisDEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO
Ensino Regular Diurno Disciplina: T.I.C. Professores: Margarida Afonso Curso Profissional - Técnico de Auxiliar de Saúde Ano: 10.º Turma(s): TAS MÓDULO 1 FOLHA DE CÁLCULO OBJECTIVOS Indicar as principais
Leia mais