(DAS 5315) Projeto de Serviços Web 2010/1

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Objetos Implícitos Contextuais
Sistemas distribuídos
Prof. Thiago Pereira Rique
Kleinner Farias e Raphael do Vale
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
Orientação a Objetos: Modificador Final para Métodos e Classes
Prof. João Bosco M. Sobral
Contratos em Projeto OO
Projeto e Análise de Algoritmo Prof. Diane Castonguay
Diagrama de Classes.
Paradigmas da Programação – Semestre 1 – Aula 3
Linguagem C Strings.
Tutorial I: Criando a interface de uma aplicação em Java
Documentando con Javadoc
Geração de Código.
Classes e objetos Arrays e Sobrecarga
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Diagramas de Sequência e Comunicação
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
JAVA: Conceitos Iniciais
Concorrência em Java Threads em Java.
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
Programação I Aula 2 (Métodos)
Métodos de Construção de Software: Orientação a Objetos
Chamada Remota de Procedimentos
Linguagem de Programação JAVA
Desenvolvimento para Android Aula 7 - Services
Introdução à Programação Orientada a Objetos com Java
Classes, Objetos, Atributos e Métodos JAVA
Linguagens de Programação II Aula 04 – Entendendo Classes
Os métodos equals() e hashCode()
Prof. Roberto Rosa Aula 8.  A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para.
UML Diagrama de classes.
UML - Unified Modeling Language
SISTEMAS DISTRIBUIDOS Aula 4
JOGO FÁCIL PROFISSIONAL
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Universidade Católica de Angola Prática de laboratório Fundamentos de Programação II Frei Joaquim José Hangalo.
Gestão de defeitos.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Funções Matemáticas e de String
POO II JEAN CARLO MENDES
Construtores e Destrutores
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Usando vetor e matriz em java
Modificadores Programação II.
EXERCÍCIOS THOBER CORADI DETOFENO, MSC. Aula 13 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Introdução ao SCS Tecgraf PUC-Rio Setembro de 2013.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Array e ArrayList LPOO – 01/09/14.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Classificação (Ordenação) de dados
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
CIn-UFPE1 Projeto de Objetos de Interface. CIn-UFPE2 Objetivos n A Interface do usuário e a arquitetura em três camadas - camada de apresentação. n Adicionando.
Java Módulo II Projeto Final.
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
Transcrição da apresentação:

(DAS 5315) Projeto de Serviços Web 2010/1 Erich D. Lunardeli Silvestre <erich@das.ufsc.br>

Roteiro Visão geral Serviços Interfaces Detalhes Avaliação

Serviço “Confiável” de Geração de Números Aleatórios Visão geral Cliente do Jogador 1 SOAP Serviço “Confiável” de Geração de Números Aleatórios Serviço de Bingo Cliente do Jogador 2 SOAP SOAP SOAP Cliente do Jogador N

Serviço Gerador de Números Aleatórios Serviço Bingo Responsabilidades: Criar instâncias de bingo; Listar bingos; Gerar e distribuir cartelas; Verificar ganhadores; Armazenar e fornecer o estado de cada bingo. Serviço Gerador de Números Aleatórios Responsabilidades: Gerar números pseudo-aleatórios em faixas determinadas; NÃO armazenar estado.

Interface do Serviço de Bingo PartidaDeBingo criar(Bingo bingo, int númeroDeJogadores) ; Parâmetros: bingo = bingo a ser realizado pelo serviço númeroDeJogadores = número de jogadores a esperar antes de iniciar os sorteios do bingo Retorno: partida criada, ela já deve possuir um número atribuído PartidaDeBingo obterPartida (int númeroDaPartida) Este método deve ser utilizado para a obtenção do estado da partida Parâmetro: númeroDaPartida = número da partida a obter Retorno: partida de bingo PartidaDeBingo[] listarPartidas(); Retorna a lista de partidas que ainda não foram iniciadas

Interface do Serviço de Bingo PartidaDeBingo entrar (String nome, int númeroDaPartida) Parâmetros: nome = nome pelo qual o jogador será reconhecido númeroDaPartida = numero da partida a entrar Retorno: Partida de bingo, ela deve conter todos os dados de estado preenchidos Obs: é bloqueante, só retorna quando o último jogador entrar ou um timeout acontecer. void sair (String nome, int númeroDaPartida) nome = nome do jogador númeroDaPartida = numero da partida a deixar

Interface do Gerador de Números Aleatórios int[] gerarAleatorios(int menor, int maior, int[]excluídos, int quantidade) Parâmetros: menor = menor número a gerar maior = maior número a gerar excluídos = números que não devem ser “gerados” quantidade = números a gerar Retorno: Uma lista de números pseudo-aleatórios contidos no intervalo [menor, maior] e que não estejam na lista de excluídos. NÃO pode haver números repetidos.

Classes de Dados Classe Bingo Atributos: String nomeDoCriador nome do criador do bingo, ex: Joãozinho. String nomeDoBingo Nome do bingo, ex: Bingo da Igreja X String[] prêmios (opcional Premio[]) Lista dos prêmios oferecidos no bingo Um par de métodos get/set para cada atributo Classe Premio (opcional) String nome = nome do prêmio String urlDaImagemDoPrêmio = url da imagem do prêmio

Classes de Dados Classe PartidaDeBingo Atributos: Int número Número de identificação da partida, deve ser único String estado Estado atual do bingo, valores possíveis: [“Não iniciado”, “Iniciado”, “Finalizado” ] int Rodada Número da rodada atual Cartela[] cartelas As cartelas de todos jogadores que participam da partida String[] ganhadores Lista dos ganhadores de cada rodada em ordem crescente int[] númerosSorteados Lista de números já sorteados na rodada atual String observações Reservado para mensagens. Por exemplo: Falta uma dezena para jogador X ganhar o prêmio Y. Um par de métodos get/set para cada atributo

Classes de Dados Classe Cartela Atributo: int[] dezenas Dezenas da cartela String nomeDoJogador Nome do dono da cartela Um par de métodos get/set para cada atributo Alguns métodos a cargo do desenvolvedor, ex: marcarDezena(int dezena).

Detalhes Uma interface gráfica deve ser implementada e permitir ao usuário: A criação de uma nova partida de bingo Listagem das partidas ainda não iniciadas Entrar em uma partida que esteja listada Quando em um bingo: Listagem dos atributos (nome, premios (se tiver URL mostrar imagem), etc..) Estado atual (atributos da classe partida) Cartela do jogador e as marcações (opcional: cartela dos demais jogadores) A atualização da interface gráfica com o Serviço de Bingo será feita pelo serviço obterPartida()

Detalhes O número de dezenas de cada cartela é livre, assim como a faixa de números sorteados : Sugestão: 20 e [1,50] Toda geração aleatória de números deve ser feita pelo Serviço de Geração de Números Aleatórios Uma rodada é encerrada quando um jogador completa sua cartela Ao fim de cada rodada: Um prêmio é atribuído ao vencedor As marcações das cartelas são zeradas Cada sorteio de dezena deve levar no máximo 5 segundos

Detalhes Implementação: Alguma linguagem que suporte WS: C++, Java, Python Sugestão: Java + Axis + Apache Tomcat O importante é que tanto a interface gráfica, quanto clientes e serviços funcionem

Avaliação Apresentação Enviar código do projeto pelo menos 1 dia antes via e- mail Marcar horário via e-mail erich@das.ufsc.br