UFSC - UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMEMENTO DE INFORMÁTICA E ESTATÍTISTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO



Documentos relacionados
3. Fase de Planejamento dos Ciclos de Construção do Software

Resolução da lista de exercícios de casos de uso

3 Qualidade de Software

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Unidade II MODELAGEM DE PROCESSOS

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

O Processo Unificado

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Sistema de Gerenciamento de Projetos V 1.01 MANUAL DO COORDENADOR

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Tutorial 7 Fóruns no Moodle

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

2 Engenharia de Software

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO CADASTRO DE FUNCIONÁRIOS

Desenvolvimento de uma Etapa

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Modelagem de Processos. Prof.: Fernando Ascani

Introdução ao Processo Unificado (PU)

MANUAL DA SECRETARIA

Gerenciamento de Projetos Modulo VIII Riscos

Fundamentos de Teste de Software

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

SISTEMA DE INFORMAÇÕES GERENCIAIS Guia Rápido O que há de novo no SIG?

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Guia de utilização da notação BPMN

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

Primeiros passos das Planilhas de Obra v2.6

DESENVOLVENDO O SISTEMA

Balanço Energético Nacional Manual do Sistema de Coleta de Dados para o BEN 2012

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Administração de Pessoas

Guia para utilização do ambiente de EaD UniRitter

1. INTRODUÇÃO. Espero que faça um bom proveito do conteúdo e que, de alguma forma, este e-book facilite a sua decisão de adquirir um planejamento.

Especificação do Trabalho Prático

Engenharia de Software II

Notas de versão. Versão

Casos de uso Objetivo:

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Unidade I Conceitos BásicosB. Conceitos BásicosB

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Manual do Usuário. Protocolo

Recomendada. A coleção apresenta eficiência e adequação. Ciências adequados a cada faixa etária, além de

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

COMO COMEÇAR 2016 se organizando?

Introdução. Gerência de Projetos de Software. Sumário. Sistemas de Informação para Processos Produtivos

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

MOODLE NA PRÁTICA PEDAGÓGICA

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

MANUAL - CONTABILIDADE

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Processos de gerenciamento de projetos em um projeto

Gerenciamento da Integração (PMBoK 5ª ed.)

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Manual do Usuário do Produto EmiteNF-e. Manual do Usuário

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da Secretaria Municipal de Saúde do Município de São Paulo

Manual Portal Ambipar

SLEA SISTEMA DE LICENCIAMENTO ELETRÔNICO DE ATIVIDADES DA PREFEITURA DE SÃO PAULO

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Neste tópico, você aprenderá a criar facilmente um banco de dados para uma nova empresa e a definir configurações comuns de uma empresa no SAP

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Curso: Diagnóstico Comunitário Participativo.

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Gerenciamento de Projeto: Planejando os Riscos. Prof. Msc Ricardo Britto DIE-UFPI

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Gerenciamento de Projeto: Executando o Projeto III. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Capítulo 13 Pastas e Arquivos

Manual do Portal do Fornecedor. isupplier

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

Programação Orientada a Objeto

BSI Letramento Digital Prof. André Di Thommazo. Organização pessoal

QUANDO este projeto deve ser realizado e QUANTO este projeto deverá custar?

Tribunal de Justiça do Estado de Mato Grosso Supervisão de Informática Departamento de Desenvolvimento Sistema Declaração On Line. Declaração On Line

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

Modelos de Sistemas Casos de Uso

REGULAMENTO GERAL 5º Edição do Prêmio CISER de Inovação Tecnológica

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

6 Conclusões e próximos passos

CAPITAL DE GIRO: ESSÊNCIA DA VIDA EMPRESARIAL

1. Introdução. Avaliação de Usabilidade Página 1

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

Manual de Licitações. Autoridade Competente

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Transcrição:

UFSC - UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMEMENTO DE INFORMÁTICA E ESTATÍTISTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO DESENVOLVIMENTO DE UM SOFTWARE DE GERENCIAMENTO DE CAMPEONATOS DE FUTEBOL Fernando Peron Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação Florianópolis - SC 2005/1

Fernando Peron DESENVOLVIMENTO DE UM SOFTWARE DE GERENCIAMENTO DE CAMPEONATOS DE FUTEBOL Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação. Orientador: Prof. Fernando Augusto da Silva Cruz, Dr. Banca Examinadora: Prof. Ricardo Pereira e Silva, Dr. Prof. Rosvelter Coelho da Costa, Dr. 2

Sumário SUMÁRIO... 3 LISTA DE FIGURAS... 6 RESUMO... 8 1 INTRODUÇÃO... 9 1.1 Objetivos...9 1.2 Motivação...9 1.3 Contextualização do Problema...10 1.4 Organização do Trabalho...11 2 ORGANIZAÇÃO DOS CAMPEONATOS DE FUTEBOL E REGRAS... 12 2.1 Campeonatos e Fórmulas de Disputa...12 2.2 Pontuação...13 2.3 Tabela de Classificação e Critérios de Desempate...13 2.4 Súmula da partida de futebol...14 2.5 Tribunal Desportivo...14 3 ESTADO DA ARTE... 16 3.1 Software LeaguePad...16 3.2 Football League Tracker (LTracker) - Versão 5.6...20 3.3 Gerenciador de Campeonato V1.0 - Trilikix...23 4 FUNDAMENTOS TEÓRICOS... 26 4.1 Fundamentos Teóricos...26 4.2 UML...27 4.3 Passos para o Desenvolvimento do Programa...27 4.3.1 A Fase Planejar e Elaborar...28 4.3.2 A Fase Construir...28 4.3.3 Fase Analisar...30 3

4.3.4 Fase Projetar...31 4.3.5 Fase Testar...31 4.3.6 Fase Instalar...31 5 PROPOSTA DO TRABALHO... 33 5.1 Programa de Controle de Campeonatos de Futebol...33 5.2 Definição dos usuários do Sistema...34 5.3 Definindo as Áreas do Sistema e os Casos de Uso...35 5.3.1 Manutenção de Campeonatos...36 5.3.2 Manutenção de Equipes...38 5.3.3 Manutenção de Estádios...39 5.3.4 Administração de Temporadas...41 5.3.4.1 Manutenção de Temporadas...43 5.3.4.2 Equipes Participantes...46 5.3.4.3 Manutenção de Jogadores...47 5.3.4.4 Manutenção de Árbitros...50 5.3.4.5 Manutenção da Estrutura do Campeonato...51 5.3.4.6 Punições...56 5.3.4.7 Administração de Jogos...58 5.3.4.7.1 Manutenção da Tabela de Jogos...60 5.3.4.7.2 Manutenção da Escalação do Jogo...62 5.3.4.7.3 Manutenção de Eventos do Jogo...65 5.4 O Modelo Conceitual...68 5.5 Diagramas de Classes de Projeto...70 6 CONSIDERAÇÕES DO PROJETO E IMPLEMENTAÇÃO DO PROG... 75 6.1 A Abertura do Sistema...75 6.2 Os Cadastros...76 6.2.1 Cadastro de Campeonato...76 6.2.2 Cadastro de Temporada...77 6.2.3 Cadastro de Equipe...78 4

6.2.4 Cadastro de Estádios...79 6.3 A Administração de Temporada...80 6.3.1 Cadastro da Estrutura da Temporada...81 6.3.2 Cadastro de Árbitro...81 6.3.3 Incluir Equipe na Disputa da Temporada...82 6.3.4 Cadastro de Jogador...83 6.3.5 Punições do Tribunal...84 6.4 Administração da Tabela de Jogos...85 6.4.1 Manutenção de Jogos...86 6.4.2 Definir Escalação de um Jogo...89 6.4.3 Definir Lances da Partida...91 6.5 As Estatísticas...91 6.5.1 Tabela de Classificação...92 6.5.2 Campanha por Equipe...93 7 CONCLUSÕES E TRABALHOS FUTUROS... 95 BIBLIOGRAFIAS REFERENCIADAS... 98 BIBLIOGRAFIAS CONSULTADAS... 98 ANEXO 1 BANCO DE DADOS: MODELO LÓGICO E.R.... 99 ANEXO 2 BANCO DE DADOS: IMPLEMENTAÇÃO FÍSICA... 100 ANEXO 3 CÓDIGO FONTE DO SISTEMA... 105 ANEXO 4 - ARTIGO... 241 5

Lista de Figuras Figura 3.1. LeguePad: Tela de Abertura... 16 Figura 3.2. LeguePad: Tabela de Jogos... 17 Figura 3.3. LeguePad: Tabela de Classificação... 18 Figura 3.4. LeguePad: Baixar base de dados de um campeonato... 19 Figura 3.5. LTracker: Interface inicial do sistema... 20 Figura 3.6. LTracker: Tabela de classificação... 21 Figura 3.7. LTracker: Gráfico de desempenho da equipe no campeonato... 22 Figura 3.8. LTracker: Tabela de jogos... 23 Figura 3.9. Trilikix: Tabela de jogos... 24 Figura 3.10. Trilikix: Tabela de classificação... 25 Figura 5.1. Usuários do Sistema... 34 Figura 5.2. Pacote da área do usuário... 35 Figura 5.3. Diagrama de caso de uso para Manutenção de Campeonatos... 36 Figura 5.4. Diagrama de caso de uso para Manutenção de Equipes... 38 Figura 5.5. Diagrama de caso de uso para Manutenção de Estádios... 40 Figura 5.6. Pacote da área do usuário com casos de usos definidos... 43 Figura 5.7. Diagrama de caso de uso para Manutenção de Temporadas... 44 Figura 5.8. Diagrama de caso de uso para Equipes Participantes... 46 Figura 5.9. Diagrama de caso de uso para Manutenção de Jogadores... 48 Figura 5.10. Diagrama de caso de uso para Manutenção de Árbitros... 50 Figura 5.11. Diagrama de caso de uso para Manutenção da Est. Temporada... 53 Figura 5.12. Diagrama de caso de uso para Punições... 57 Figura 5.13. Diagrama de caso de uso para Administração de Temporadas... 59 Figura 5.14. Diagrama de caso de uso para Administração de Jogos... 60 Figura 5.15. Diagrama de caso de uso para Manutenção da Tabela de Jogos... 60 Figura 5.16. Diagrama de caso de uso para Manutenção da Escalação Jogo... 63 Figura 5.17. Diagrama de caso de uso para Manutenção de Eventos do Jogo... 65 Figura 5.18. Diagrama de caso de uso para Administração de Jogos... 68 Figura 5.19. Modelo Conceitual... 70 Figura 5.20. Diagrama de Classes do Projeto - A... 72 Figura 5.21. Diagrama de Classes do Projeto - B... 73 6

Figura 6.1. Sistema: Tela inicial... 75 Figura 6.2. Sistema: Cadastro de Campeonatos... 77 Figura 6.3. Sistema: Cadastro de Temporadas... 78 Figura 6.4. Sistema: Cadastro de Equipes... 79 Figura 6.5. Sistema: Cadastro de Estádios... 80 Figura 6.6. Sistema: Cadastro da Estrutura da Temporada... 81 Figura 6.7. Sistema: Cadastro de Árbitros... 82 Figura 6.8. Sistema: Equipes que disputam a Temporada... 83 Figura 6.9. Sistema: Cadastro de Jogadores... 84 Figura 6.10. Sistema: Punições do Tribunal... 85 Figura 6.11. Sistema: Administração da Tabela de Jogos... 86 Figura 6.12. Sistema: Cadastro de um novo jogo... 87 Figura 6.13. Sistema: Cadastro de Jogo Estatísticas... 88 Figura 6.14. Sistema: Cadastro de Jogo - Comentários... 88 Figura 6.15. Sistema: Cadastro de Jogo - Fotos... 89 Figura 6.16. Sistema: Escalação das Equipes... 90 Figura 6.17. Sistema: Lances da Partida... 91 Figura 6.18. Sistema: Tabela de Classificação... 92 Figura 6.19. Sistema: Campanha por Equipe... 93 7

Resumo O presente trabalho apresenta o desenvolvimento de um sistema de informação para campeonatos de futebol. O trabalho contextualiza o leitor para o entendimento do problema e mostra, resumidamente, uma abordagem para o desenvolvimento de software orientado a objetos. Sua finalidade é a da aplicação prática dos conhecimentos adquiridos ao longo do curso de Sistemas de Informação, além de disponibilizar uma ferramenta com qualidade que supri algumas deficiências dos sistemas similares no mercado. Palavras-Chaves: Sistemas de Informação, Desenvolvimento de Software, Programação Orientada a Objetos, Programa de Controle de Campeonatos de Futebol. 8

Capítulo 1 Introdução Neste capítulo serão destacados o tema e a motivação para o desenvolvimento deste projeto, contextualizando-o apresentando seus objetivos gerais e específicos, além da forma como o trabalho será apresentado. 1.1 Objetivos 1.1.1 Objetivo Geral O objetivo é o desenvolvimento de um programa de computadores exercitando na prática os conhecimentos adquiridos durante o curso de Sistema de Informação, com maior ênfase para os conhecimentos de Programação Orientada a Objetos, Análise e Projeto de Software, Banco de Dados, Engenharia de Usabilidade e Engenharia de Software. O software será uma aplicação capaz de fazer o gerenciamento completo de um campeonato de futebol desde controle de tabela de jogos e resultados, além da geração automática de relatórios, estatísticas e gráficos que permitam ao usuário entender melhor a competição. 1.1.2 Objetivo Específico Como objetivo específico, o trabalho tem por finalidade por em prática os conhecimentos adquiridos durante o transcorrer do Curso de Sistemas de Informação. Entender o escopo do problema, apresentando os aspectos relevantes de um campeonato de futebol; Análise e projeto do sistema utilizando UML Unified Modeling Language; Implementação do sistema utilizando linguagem orientada a objetos Delphi versão 8; Construção de um modelo relacional ER e implementação utilizando Banco de Dados Interbase versão 7.1; O projeto ainda utilizará conhecimentos e a prática de Gerenciamento de Projetos, Engenharia de Software e Engenharia de Usabilidade. 1.2 Motivação 9

O presente trabalho tem como tema, o desenvolvimento de um sistema de informação computacional para auxiliar o controle de campeonatos de futebol. O futebol é o esporte mais popular e praticado no Brasil. É o esporte de maior interesse seja na programação da televisão quanto em notícias nos jornais; lota estádios. A paixão pelo esporte é grande e o brasileiro se julga um grande conhecedor do esporte. O futebol é assunto de discussão em todos os ambientes: bares, empresas, colégios, etc. Este esporte também movimenta grandes quantias de dinheiro dentro e fora dos campos. O sucesso de uma equipe num campeonato e certeza de grandes lucros. Iniavelmente, jogadores e treinadores possuem rendimentos altíssimos. Por outro lado, fora dos gramados existem loterias pagam prêmios milionários a apostadores que acertam os resultados dos jogos. Este trabalho tem por objetivo apresentar-se com uma ferramenta capaz de auxiliar os fãs do esporte a acompanhar o campeonato com o apoio de grande quantidade de informações. Além disso, o fã poderá ter nesta ferramenta, uma grande base de dados do futebol ao seu dispor. Outra finalidade do trabalho é a utilização da ferramenta por apostadores de loterias que poderão ter nela, uma boa fundamentação de informações para suas apostas. Por último, ela pode ser utilizada por profissionais do esporte, como técnicos ou clubes de futebol a fim de organizar as informações dos campeonatos que disputam. 1.3 Contextualização do Problema Conforme apresentado nos tópicos anteriores, este trabalho tem por objetivo criar uma ferramenta para auxiliar desde simples torcedores de futebol, gerentes profissionais de equipes de futebol até apostadores de loterias, a gerenciar campeonatos de futebol. Assim sendo, o sistema deve: Apresentar soluções para gerenciamento de campeonatos com as mais diferentes fórmulas de disputa; Ter a capacidade de gerenciar as informações que o usuário deseja controlar, ou seja, cada usuário tem um interesse no uso do sistema e ele deve prover condições de que cada um utilize da forma mais conveniente aos seus objetivos; Apresentar a maior quantidade de estatísticas que as informações que foram inseridas no sistema possam gerar. 10

1.4 Organização do Trabalho Este trabalho, em seu segundo capítulo contextualizará o funcionamento dos campeonatos de futebol, apresentando as iações de regulamentos de disputa e como isso afeta um sistema de gerenciamento de campeonatos de futebol. Neste mesmo capítulo será também apresentado uma visão das funcionalidades que deverão estar presentes no software, assim como as suas limitações. O capítulo terceiro mostra algumas ferramentas existentes para controle de campeonato de futebol e faz uma análise de cada uma delas. O conteúdo deste capítulo, além de ajudar no entendimento do problema, ajuda também na avaliação do resultado deste trabalho, à medida que permite uma comparação. No quarto capítulo, o trabalho apresentada o um processo de desenvolvimento de software em todas as suas fases. O objetivo é utilizar este processo, com algumas iações e aplicá-lo no desenvolvimento deste software. No capítulo cinco, mostra a análise e projeto do sistema. Este capítulo mostra como o software foi pensado e planejado antes de ser implementado. Já o capítulo seis apresenta o resultado final da implementação do sistema, onde é possível verificar os resultados finais do trabalho. Por fim, são apresentadas uma breve conclusão do trabalho e algumas propostas para futuros trabalhos relacionados ao tema. 11

Capítulo 2 Organização dos Campeonatos de Futebol e Regras Introdução O futebol é conhecido como um esporte com regras conservadoras, ou seja, de poucas mudanças ao longo do tempo. Ao mesmo tempo, para tornar o futebol mais atraente para o público, as fórmulas de disputa dos campeonatos de futebol são bastante diversificadas. O objetivo deste capítulo é apresentar as principais iações das formulas de disputa dos campeonatos, além de eventuais iações das aplicações da regra do esporte. Por fim, também são apresentados os pontos fundamentais de organização do campeonato, como a Súmula do Jogo e a influência do Tribunal Desportivo. Todos os pontos abordados neste capítulo deverão se concretizar em soluções flexíveis dentro do software desenvolvido. 2.1 Campeonatos e Fórmulas de Disputa As fórmulas de disputas de um campeonato é o mecanismo que organiza a maneira de como será disputada a competição. Na fórmula de disputa de uma competição é definido de que forma será conhecido o campeão da disputa, a ordem de classificação, os times que serão rebaixados, etc. Os campeonatos de futebol são organizados por diferentes fórmulas de disputa. Uma Copa do Mundo, por ser um campeonato disputado num espaço de tempo curto e possuir uma grande quantidade de equipes participantes, possui uma fórmula de disputa bastante particular. A Copa do Mundo é dividida em fases. Dentro de cada fase, as equipes são dividas em Grupos. Os melhores colocados de cada um dos grupos se classificam para fase seguinte, até a grande final do campeonato, onde o vencedor é o campeão. 12

Já os campeonatos nacionais, como, por exemplo, o Campeonato Brasileiro de 2004 e Campeonato Inglês, possuem fórmula de disputa mais tradicional, adequado ao tempo de disputa e ao pequeno número de times participantes. Neste tipo de campeonato, a disputa é numa única fase e um único grupo. Todos jogam entre si, uma, duas, três ou quatro vezes dependendo da fórmula de disputa do campeonato. Ao final do campeonato, o campeão é a equipe que mais acumular pontos ao longo do campeonato. Neste tipo de fórmula de disputa não existe a grande final. 2.2 Pontuação Este é outro importante item que pode iar de campeonato para campeonato e até mesmo, sofrer alterações ao longo do tempo. Basta citar que até 1994, a equipe vencedora dos jogos ganhava dois pontos pelo feito. As regras de pontuação adotadas pela FIFA, organização que dirige o futebol no mundo estabelece as seguintes pontuações: três pontos ao time vencedor ou, em caso de empate, um ponto para cada time. Esta pontuação é adota pela maioria dos campeonatos de futebol do mundo. Porém, até pouco tempo atrás, as regras de pontuação eram diferentes. Até a Copa do Mundo de 1994, a FIFA estabelecia as seguintes pontuações: dois pontos ao time vencedor ou, em caso de empate, um ponto para cada time. Existem ainda algumas iações adotadas por alguns campeonatos, por exemplo, o campeonato do EUA, os jogos que acabam empatados, existe uma disputa de Shut-Out, uma espécie de disputa de pênaltis. Este tipo de regra já foi adotado recentemente no Campeonato Brasileiro. A regra de pontuação deste tipo de campeonato é a seguinte: três pontos ao time vencedor ou em caso de empate no tempo normal de jogo, dois pontos ao time vencedor na prorrogação ou nos pênaltis e um ponto para o time perdedor na prorrogação e nos pênaltis. 2.3 Tabela de Classificação e Critérios de Desempate A principal informação de um campeonato de futebol, além do resultado da partida, é a tabela de classificação. A tabela de classificação mostra as somas de pontos 13

alcançadas pelas equipes no campeonato. É ela que determina a posição de cada equipe no campeonato. A tabela de classificação de um campeonato também contempla outras informações. Estas informações, em geral, são os critérios de desempates. Os critérios de desempate, em geral, são os mesmos em todos os campeonatos. O que muda é a ordem de importância. Em todos os campeonatos, o primeiro critério é o número de pontos ganhos. O segundo critério, para o caso de empate é o número de vitórias para alguns campeonatos, enquanto que em outros campeonatos, o segundo critério é o saldo de gols. Também são utilizados como critérios de desempate o número de gols marcados. 2.4 Súmula da partida de futebol Para todo jogo de futebol realizado existe um documento oficial intitulado Súmula que possui o resumo dos acontecimentos do jogo. A súmula é preenchida pelos árbitros da partida. Nela são colocadas as seguintes informações: Times que disputaram a partida, resultado da partida, data e hora do jogo. Constam também quais os jogadores marcaram os gols da partida. Além disso, nela há os jogadores que disputaram a partida e as substituições ocorridas no transcorrer do jogo. Também estão inclusos neste documento, as penalidades aplicadas pelo árbitro, como cartões amarelo e vermelho. O software deste trabalho tem o objetivo fazer um resumo desta súmula da partida, podendo até mesmo, incluir informações que não constam na súmula oficial, com a finalidade de gerar uma iedade maior de estatísticas do campeonato. 2.5 Tribunal Desportivo O Tribunal Desportivo é um órgão responsável por aplicar as leis descritas nas regras do futebol e no regulamento das competições. O Tribunal Desportivo aplica sansões as equipes e jogadores do campeonato e muitas destas sanções possuem influencia direta no campeonato, como por exemplo a perda de pontos, perda de mando de campo ou suspensão de jogadores. 14

Conclusão A ferramenta proposta neste trabalho deve ter grande flexibilidade para aceitar que as diferentes competições de futebol possam ser controladas. É aceitável que em virtude desta flexibilidade, o sistema possa perder qualidade em legibilidade e usabilidade. O software também tem por objetivo gerar uma grande quantidade de estatística do campeonato, das equipes e dos jogadores. Fica evidenciado desta forma, que não pode simplesmente fazer uma cópia eletrônica da Súmula. É necessário obter outras informações da partida para gerar tais estatísticas. 15

Capítulo 3 Estado da Arte Introdução Este capítulo apresenta três ferramentas disponíveis na Internet para download que tem objetivos semelhantes à aplicação objeto deste trabalho. O capítulo apresenta os pontos positivos e negativos de cada uma das ferramentas. O aproveitamento das boas soluções e a precaução com as franquezas das ferramentas existentes colaboraram para o desenvolvimento de um software completo e eficiente. Também terá a finalidade de estabelecer um parâmetro de qualificação do resultado deste trabalho. 3.1 Software LeaguePad O software LeaguePad, disponível para download gratuito de sua versão trial e com algumas limitações de recursos em http://www.leaguepad.com/, é uma das aplicações mais interessantes e conhecidas na internet com a finalidade de administrar estatísticas de campeonatos de futebol. Suas interfaces com o usuário estão disponíveis em três diferentes línguas: inglês, francês e espanhol. Figura 3.1. LeguePad: Tela de Abertura. 16

O LeaguePad é um software extremamente flexível. Através dele é possível gerenciar qualquer tipo de competição de futebol. O software também se adapta as necessidades do usuário. Para os usuários que querem obter grandes quantidades de informações, o software atende a quase tudo que se possa imaginar. Por outro lado, caso o usuário queira apenas ter a tabela de jogos, os resultados e a classificação atualizada automaticamente, este software se adapta perfeitamente. A figura 3.2 mostra a tela do sistema onde o usuário gerencia a tabela de jogos do sistema. Nela é possível perceber a riqueza de informações de uma partida que o sistema permite inserir. Figura 3.2. LeguePad: Tabela de Jogos. Já a figura 3.3 mostra a tabela de classificação gerada automaticamente pelo sistema a partir das informações inseridas na tabela de jogos. É outro relatório do sistema com riqueza de informações. Nesta mesma imagem, é possível obser no menu do lado direito da interface, a grande quantidade de relatórios e estatísticas oferecidos pelo sistema. Tanto na figura 3.2 quanto 3.3, percebe-se o cuidado dos desenvolvedores do software com a interface do sistema, que tem um visual bastante moderno. 17

Figura 3.3. LeguePad: Tabela de Classificação. Outro ponto forte é, para o caso dos usuários que não querem inserir as informações no sistema, o que é uma tarefa bastante trabalhosa, ele permite baixar atualizações dos campeonatos pela Internet, conforme mostra a figura 3.4. Assim, o usuário tem a possibilidade de acessar as diversas estatísticas geradas pelo sistema sem ter qualquer trabalho. Estas atualizações são postadas por usuários que gerenciam seus campeonatos e compartilham as informações com os demais. 18

Figura 3.4. LeguePad: Baixar base de dados de um campeonato. Também é interessante o site www.soccerstats.com, que utiliza da base de dados do sistema para mostrar na Internet as estatísticas para os usuários que não adquiram o sistema. Porém, nem todas as estatísticas que o software gera são mostradas no site. O ponto fraco deste software é o fato de ele tratar cada temporada de um campeonato de forma independente. Isso quer dizer que não é possível fazer uma análise entre duas temporadas de um campeonato de um determinado país. O mesmo problema ocorre com as equipes. Elas são tratadas de forma independente dentro de cada campeonato. Assim, se uma equipe A disputa dois campeonatos cadastrados no sistema. O sistema interpreta com duas equipes distintas, não sendo possível gerar estatísticas da equipe A nestes dois campeonatos que disputou. A ferramenta foi desenvolvida na França e custa entre 50,00 e 90,00, dependendo da versão. Por se tratar de uma ferramenta bastante completa e com serviços de atualização de dados on-line sem custos adicionais, o valor é justificável. Porém, para os padrões brasileiros, pode ser considerado um custo elevado. 19

3.2 Football League Tracker (LTracker) - Versão 5.6 O Football League Tracker é outro bom software que se propõe a fazer o controle de campeonatos de futebol. Desenvolvido por Sr. Nigel Thomas, o programa é de origem inglesa e está disponível para download gratuito no endereço www.ngthomas.co.uk. Figura 3.5. LTracker: Interface inicial do sistema Manutenção de Campeonato. Este programa também é bastante completo. Abrange quase todas as estatísticas que o jogo de futebol pode gerar. É possível controlar além da tabela de classificação, dados a respeito dos jogadores, como, por exemplo, lista de artilheiros e jogadores que marcaram gols contra. Também é possível acessar uma tabela de informações sobre as arbitragens do campeonato. Nesta tabela é possível saber quantos cartões o juiz aplicou durante o campeonato, qual a média de faltas que ele marca por jogo, quantos gols em média ocorrem durante os jogos que um determinado arbitro apita. 20

Figura 3.6. LTracker: Tabela de classificação. O software também é repleto de gráficos para mostrar o desempenho das equipes ao longo do certame. Gráficos que mostram, por exemplo, a posição na classificação de um determinado time ao longo da competição, conforme a figura 3.7. Outro gráfico mostra uma comparação de desempenho entre um time e os lideres do campeonato. 21

Figura 3.7. LTracker: Gráfico de desempenho da equipe no campeonato. O programa deixa a desejar em sua interface de difícil compreensão. Algumas tabelas possuem seus cabeçalhos com as palavras pela metade, não sendo possível saber que dado está inserido na coluna da tabela. O procedimento para inserir os jogos e placares, além das estatísticas também não é simples. Requer bastante trabalho do usuário para aprender e posteriormente usar. Existe também uma grande quantidade de menus em algumas interfaces. A figura 3.8 ilustra este problema. Nela observa-se um menu inferior e outro menu na parte superior da interface. 22

Figura 3.8. LTracker: Tabela de jogos. O maior problema do software está no fato de ter sido projetado para acompanhar exclusivamente campeonatos com fórmulas de disputa semelhante aos disputados pelos campeonatos nacionais disputado na Europa. É inviável inserir no sistema campeonatos organizados por Fase e Grupos. Outro problema semelhante ao LeguePad é o fato do sistema interpretar cada campeonato de forma independente. 3.3 Gerenciador de Campeonato V1.0 - Trilikix O Gerenciador de Campeonato Versão 1.0, disponível para download em versão Demo no endereço http://www.trilikix.com/gerenciador.php, é uma ferramenta de controle de campeonatos de futebol desenvolvida no Brasil. É um software mais simples que o LeaguePad e o LTracker. Suas funcionalidades basicamente servem para o acompanhamento da tabela de jogos e seus respectivos resultados e a geração automática da tabela de classificação a partir dos placares inseridos nos jogos. 23

Figura 3.9. Trilikix: Tabela de jogos. Como o programa somente insere placar do resultado do jogo, não tendo a possibilidade de inserir estatísticas da partida ou escalação das equipes, a qualidade das informações geradas pelo sistema é ruim. As estatísticas são feitas exclusivamente sobre os resultados dos jogos. O software não consegue gerenciar as diferentes fórmulas de disputas de campeonatos. Está adaptado exclusivamente para os campeonatos com fórmula de disputa semelhante aos dos campeonatos nacionais disputados na Europa. Nestes campeonatos, as equipes jogam entre si e a que somar mais pontos é a campeã. No caso de haver interesse por inserir um campeonato onde as equipes são organizadas em Grupos e a competição tem diferentes fases de disputa, o software não gerencia estas situações. 24

Figura 3.10. Trilikix: Tabela de classificação. Mesmo sendo um software com muitos defeitos e poucas qualidades, o custo para aquisição da versão licenciada é de R$ 149,90. Conclusão Existem ferramentas disponíveis no mercado com a finalidade de gerenciar campeonatos de futebol. Embora algumas delas possuam boas qualidades, não foi identificada nenhuma ferramenta completa. Os valores para aquisição deste programas também não são baratos. Um software bom deve ter a capacidade de se adaptar as diferentes fórmulas de disputa dos campeonatos. Também deve ser capaz de administrar todas as informações inerentes a realização de um jogo, mas deixando a critério do usuário fazer uso destas informações ou não. Gerar boa qualidade de estatísticas preferencialmente não tratando cada campeonato ou equipe de forma individualizada. E por fim, ter um custo mais acessível ao mercado nacional. 25

Capítulo 4 Fundamentos Teóricos Introdução Neste capítulo é apresentada a fundamentação teórica que se utilizará para o desenvolvimento do programa de Controle de Campeonatos. São descritos os conceitos e uma seqüência de atividades que resultarão em um sistema orientado a objetos bem projetado. 4.1 Fundamentos Teóricos A Programação Orientada a Objetos é uma extensão natural da programação estruturada. Sua essência é a reutilização de código. Uma vez que você cria um objeto para uma aplicação, este objeto poderá (e deverá) ser utilizado em novas aplicações [SIL 00]. Conforme descrito no capítulo 1 deste trabalho, o objetivo específico é de construir um programa para computadores utilizando os conceitos de programação orientada a objetos. Porém, a construção de um bom programa orientado a objetos vai além de saber o dominar uma linguagem orientada a objetos, como por exemplo, Java ou Delphi. Este é apenas o primeiro passo para construção. É fundamental para obtenção do sucesso do trabalho uma boa análise e um bom projeto. Assim, o trabalho se baseará na metodologia proposta pelo livro de Craig Larman: Utilizando UML e Padrões. Este livro apresenta um exemplo de processo de desenvolvimento, o qual descreve uma possível ordem de atividades e um ciclo de vida de desenvolvimento. Contudo, ele não prescreve um processo ou metodologia definitiva; ele fornece um exemplo de passos comuns. Porém, antes de apresentar a metodologia proposta por Craig Larman, o trabalho fará uma breve explicação sobre UML. 26

4.2 UML Unified Modeling Leaguage Linguagem de Modelagem Unificada ou somente UML é uma linguagem visual para modelar sistemas computacionais orientados a objetos. Possui um sistema de notação incluindo semântica para suas notações dirigida a modelagem de sistemas, usando conceitos orientados a objeto. A UML é uma linguagem para especificar, visualizar e construir os artefatos de sistema de software. UML tem o poder de transformar idéias em modelos reais. É uma linguagem destina estruturação de projetos. Um dos principais objetivos da UML é tornar todo o processo de desenvolvimento totalmente transparente e organizado [SOA 01]. A UML é uma notação gráfica usada para expressar a análise e criação de projetos de software e para comunicá-los a outros. A UML é independente de linguagem, mas destina-se a descrever projetos orientados a linguagem. Como enfatizam os criadores da UML, ela não é uma metodologia em si; pode ser usada como ferramenta descritiva independente de qual seu processo de projeto [CAN 00]. Para Craig Larman,...os autores da UML Booch, Jocobson e Rumbaugh prestaram um grande serviço à comunidade da tecnologia orientada a objetos ao criar uma linguagem de modelagem padronizada que é elegante, expressiva e flexível. e prossegue... UML recebeu a aprovação de facto pela indústria, uma vez que seus criadores representam métodos de análise e / ou projeto de primeira geração muito populares.. Porém, Craig Larman adverte que UML é uma linguagem para modelagem; ela não guia um desenvolvedor em como fazer análise e projeto orientados a objetos, ou qual processo de desenvolvimento a ser seguido. Conseqüentemente, os metodologistas continuarão a definir métodos, modelagem e processos de desenvolvimento para a criação efetiva de sistemas de software; no entanto, agora, podem fazê-lo, usando uma linguagem comum UML. 4.3 Passos para o Desenvolvimento do Programa Em sua metodologia, Craig Larman esclarece que Em um nível alto, os principais passos até a entregar uma aplicação incluem os seguintes: 27

1. Planejar e Elaborar Planejamento, definição de requisitos, construção de protótipos e assim por diante. 2. Construir A construção do sistema. 3. Instalar A implantação do sistema para uso. Ele complementa dizendo que Um processo de desenvolvimento de software é um método para organizar as atividades relacionadas com a criação, entrega e manutenção de sistemas de software. 4.3.1 A Fase Planejar e Elaborar Para Craig Larman, A fase Planejar e Elaborar de um projeto inclui a concepção inicial, a investigação de alternativas, o planejamento, a especificação de requisitos e assim por diante. Uma lista de artefatos que esta fase do projeto deve gerar é listada abaixo: 1. Plano cronograma, recursos, orçamento, etc. 2. Relatório de Investigação Preliminar motivação, alternativas, necessidades de negócio. 3. Especificação de Requisitos: exposição declarativa dos requisitos; 4. Casos de Uso: descrição em prosa de processos do domínio; 5. Diagramas de Casos de Uso: ilustração de todos os casos de uso e seus relacionamentos. 6. Rascunho do modelo conceitual: um modelo conceitual preliminar aproximado, para ajuda na sua compreensão de como ele se relaciona com os casos de uso e a especificação dos requisitos. A construção dos artefatos cima listados não deve ser feita em ordem linear. Pelo contrário. Será freqüente às vezes em que duas ou mais tarefas serão desenvolvidas em paralelo, embora em alguns casos fique evidente a necessidade de uma tarefa antevir a outra, como por exemplo, a definição dos casos de uso vir a ser feita antes do rascunho do modelo conceitual. 4.3.2 A Fase Construir A fase construir envolve a implementação do projeto em software e em hardware. Envolve repetidos ciclos de desenvolvimento (provavelmente limitadas em 28

tempo), dentro dos quais o sistema é estendido. O objetivo final é um sistema de software em operação que atenda corretamente os requisitos. Um ciclo de desenvolvimento na fase construir compreende as seguintes etapas: refinar plano, sincronizar artefatos, analisar, projetar, construir, testar. Antes de falar sobre cada uma das etapas da fase construir, é importante definir um ciclo de desenvolvimento do projeto. Craig Larman propõe um ciclo de desenvolvimento chamado de Iterativo. Um Ciclo de Desenvolvimento, ou também chamado de ciclo de vida, Iterativo se baseia no aumento e no refinamento sucessivo de um sistema através de múltiplos ciclos de desenvolvimentos de análise, de projeto, de implementação e de testes. O sistema cresce pelo acréscimo de novas funções em cada ciclo de desenvolvimento. Depois de uma fase preliminar de Planejar e Elaborar, o desenvolvimento continua numa fase Construir através de uma série de ciclos de desenvolvimento. Cada ciclo trata de um conjunto relativamente pequeno de requisitos, procedendo através da análise, do projeto, da construção e do teste. O sistema cresce incrementalmente, à medida que cada ciclo é completado. O desenvolvimento iterativo não significa desenvolver um trabalho banal por um tempo, atingir um marco no projeto e, então, experimentar mais um pouco. Uma definição do desenvolvimento iterativo é que ele é um processo planejado para voltar a uma área repetidamente, cada vez, complementando o sistema. Ele é um processo formalmente planejado e escalonado, e não algo que acontece ao acaso. A definição de desenvolvimento incremental é adicionar funcionalidades a um sistema durante vários ciclos de liberação de produto; cada incremental (nova versão do produto) contém mais funcionalidades. É importante não confundir: uma versão incremental é composta de múltiplos ciclos de desenvolvimento. A principal desvantagem do desenvolvimento iterativo e incremental é o aumento das expectativas. Uma vez que esse processo permite que sejam efetuadas demonstrações, logo tende-se a pensar que o sistema está quase pronto. Um Caso de Uso é uma descrição narrativa de um processo do domínio. Ciclos de desenvolvimento interativos são organizados por requisitos de casos de uso. Os Casos de Uso deveriam ser priorizados, e os de alta prioridade deveriam ser atacados nos ciclos de desenvolvimentos iniciais. A estratégia abrangente é, primeiro, pegar os casos de uso que influenciam significativamente o núcleo da arquitetura, 29

materializando as camadas do domínio e dos serviços de alto nível, ou aqueles que são de uso críticos de alto risco. Os dois principais passos da fase construir - analisar e projetar são as fases abordadas no livro de Craig Larman com grande ênfase. Abaixo é apresentado em detalhes o desenvolvimento de cada uma destas duas etapas. Para criar um software de uma aplicação, é necessária uma descrição do problema e dos seus requisitos o que é o problema e o que o sistema deve fazer. A análise enfatiza uma investigação do problema, de como uma solução é definida. Para desenvolver uma aplicação também é necessário ter descrições de alto nível e descrições detalhadas da solução lógica e de como ela atende os requisitos e as restrições. O projeto enfatiza uma solução lógica, ou seja, como o sistema atende os requisitos, afinal, projetos devem ser implementados em software e hardware. 4.3.3 Fase Analisar Segundo Craig Larman, A essência da análise e do projeto orientados a objeto é enfatizar a consideração de um domínio de problema e uma solução lógica, segundo a perspectiva de objetos (coisas, conceitos ou entidades). Na análise orientada a objetos, há uma ênfase na descoberta e na descrição dos objetos ou conceitos do domínio do problema. A Fase Analisar deve abranger as seguintes etapas: 1. Construir um modelo conceitual inicial, identificando os conceitos, atributos e suas corretas associações. 2. Fazer Diagrama de seqüência para os casos de uso identificando os eventos e as operações do sistema. Este diagrama de seqüências mostrado por Craig Larman não pertence à notação UML, porém será um importante artefato para a construção do Diagrama de Interação da UML na fase Projetar. 3. Criar contratos para as operações do sistema que é um documento o que uma operação se compromete a atingir. Usualmente, ele segue um estilo declarativo, enfatizando o que acontecerá, em vez de como será conseguido. È comum em termos de mudanças de estado definidas por pré-condições e pós-condições. Um contrato pode ser escrito para um método individual de uma classe de software ou para uma operação mais abrangente do sistema. 30

Durante um ciclo de desenvolvimento iterativo, é possível passar para a fase de projeto desde que estes documentos de análise estejam completos. 4.3.4 Fase Projetar Para Craig Larman Durante o projeto orientado a objetos existe uma ênfase na definição de elementos lógicos de software, os quais, em última instância, serão implementados em uma linguagem de programação orientada a objetos. Estes objetos de software têm atributos e métodos. Finalmente, durante a construção ou programação orientada a objetos, os componentes do projeto são implementados, tais como uma classe. Durante este passo, é desenvolvida uma solução lógica baseada no paradigma orientado a objetos. O coração desta solução é a criação de diagramas de interação, os quais ilustram como os objetos devem se comunicar de maneira a atender os requisitos. Em seguida à geração de diagramas de interações, podem ser desenhados diagramas de classes, os quais sumarizam a definição das classes (e interfaces) que devem ser implementadas em software. A criação de diagramas de interação requer a aplicação de princípios para a atribuição de responsabilidades e visibilidades. 4.3.5 Fase Testar A fase Testar tem por objetivo verificar eventuais falhas de desenvolvimento no sistema. Devem avaliar basicamente três quesitos: funcionalidade (o sistema executa corretamente suas funções normais), recuperação (o sistema recupera-se adequadamente em caso de falha); desempenho (o sistema apresenta tempo de resposta adequado). Geralmente, a fase Testar é entendida com o último passo dentro de um ciclo de desenvolvimento. Porém, recomenda-se que seja uma atividade permanente durante a fase Construir. 4.3.6 Fase Instalar A fase instalar envolve a colocação do sistema em produção. Para o software desenvolvimento com finalidades comerciais, isso significa que ele já está à venda e 31

disponível para os clientes; para o software desenvolvido em uma instalação, significa que ele está em uso operacional. Conclusão Possuir conhecimentos avançados de uma linguagem de programação orientada a objetos ou mesmo de UML não garante a produção de bom programa de computador. São apenas requisitos. Para o desenvolvimento de grandes projetos com sucesso, é necessário uma metodologia de desenvolvimento de software. A metodologia propõe um processo de desenvolvimento de software iterativo, incremental e guiado por casos de usos. Este estabelece ciclos de desenvolvimentos dentro de janelas de tempo de forma a organizar o projeto. Por ser uma metodologia criada para ajudar estudantes e desenvolvedores a criar melhores projetos orientados a objetos, será a metodologia seguida no desenvolvimento deste trabalho. 32

Capítulo 5 Proposta do Trabalho Introdução Nos capítulos 2 foram apresentadas informações do domínio do problema acerca do funcionamento de um campeonato de futebol. No capítulo 3, foram apresentados três softwares que são solução para administrar a complexidade dos campeonatos de futebol. Este capítulo tem por função apresentar o que se deseja construir neste software para gerenciar os campeonato, aproveitando-se dos conhecimentos obtidos no capítulo 2 e 3. Além disso, neste capítulo também é descrito os resultados obtidos das fases de análise e planejamento do sistema, para no próximo capitulo demonstrar o resultado final. 5.1 Programa de Controle de Campeonatos de Futebol A proposta deste trabalho é a criação de um programa de computador para fazer o controle de campeonatos de futebol. De acordo com a literatura apresentada no capítulo 3 deste trabalho, um bom sistema de controle de campeonatos deve ser capaz de gerenciar vários campeonatos de futebol. Dentro de cada campeonato, deve ser possível incluir as equipes que disputam a competição e os jogadores inscritos por estas equipes. Também fazem parte de um campeonato, os árbitros que apitam um jogo e o sistema também deve abranger este fato. Um sistema robusto para controle de campeonatos, deve principalmente ser capaz de aceitar o gerenciamento dos mais diferentes tipos de competições de futebol. É sabido, conforme explicado no capítulo 2, que cada tipo de competição tem suas fórmulas de disputa. Uma Copa do Mundo, exemplo, numa primeira fase as equipes são divididas em grupos. As equipes melhores colocadas avançam para fase seguinte, onde novamente se organizam em grupos e assim sucessivamente até chegar a grande final. Já num campeonato nacional disputado em um país da Europa, como por exemplo, o Campeonato Inglês de Futebol, possui uma fórmula de disputa diferente da fórmula de 33

disputa da Copa do Mundo. No Campeonato Inglês, as equipes jogam todas entre si em uma única fase em um único grupo. A que somar mais pontos é a grande campeã. Também a de se esperar de um bom software de Controle de Campeonatos a possibilidade de gerenciar os jogos dentro da competição, incluindo a escalação das equipes e juizes. Além do simples placar do jogo, deve ser possível inserir no sistema as diversas estatísticas inerentes a uma partida de futebol. Em contrapartida, é desejável que este sistema nos mostre de forma automática, uma porca de relatórios estatísticos que nos ajudem a compreender a competição. Desta forma, o que se pretende neste capítulo é fazer uma descrição detalhada das funcionalidades esperadas pelo software que será desenvolvido neste trabalho. Estas funcionalidades do software podem ser divididas em duas partes: Módulo de Gerenciamento do Campeonato e Módulo de Geração de Relatórios e Gráficos. No Módulo de Gerenciamento do Campeonato é onde as informações do campeonato são incluídas no sistema. Já o Módulo de Geração de Relatórios e Gráficos é a parte do sistema que abastecido das informações entradas na área de Gerenciamento do Campeonato, gera os relatórios e gráficos. Abaixo veremos uma descrição mais detalhada do que cada parte do sistema compreende. 5.2 Definição dos usuários do Sistema O sistema não exige grandes preocupações com controles de acesso. Por se tratar de informações facilmente encontradas em periódicos e na Internet, não existe qualquer controle a ser feito quanto à restrição de acesso as informações. Assim, podemos imaginar um único usuário interagindo com o sistema, sendo capaz de realizar todas as operações disponíveis. Assim, no seguimento deste trabalho, as interações deste usuário com o sistema serão representados da seguinte forma: Figura 5.1. Usuários do Sistema. 34

5.3 Definindo as Áreas do Sistema e os Casos de Uso O sistema deve ser capaz de suportar o controle de diversos campeonatos. Os campeonatos são disputados em sua grande maioria anualmente. Cada edição de um campeonato recebe o nome de Temporada. Assim, um campeonato deve ser cadastrado uma única vez. Por exemplo, o Campeonato Brasileiro da Série A corresponde a um único cadastro. Cada edição deste campeonato corresponde a uma temporada. Esta separação entre Campeonato e Temporada permitirá ao sistema gerar informações de um Campeonato ao longo das diversas Edições. Com isso, o conceito de campeonato no sistema é bastante simples, entretanto o conceito de Temporada é muito mais complexo, pois é na temporada que efetivamente registradas as tabelas de jogos e implicações. Suas funções serão descritas com maiores detalhes ainda neste capítulo. Outros dois importantes conceitos que o sistema administrará de forma única são as Equipes e os Estádios. Assim como os campeonatos, uma Equipe e um Estádio serão cadastrados uma única vez. Desta forma será possível gerar todas as informações referentes a uma Equipe ao longo das diferentes competições que disputou. Assim, a área de acesso do sistema de um usuário pode ser dividida, inicialmente em quatro diferentes atividades, conforme demonstra a Figura 5.2. Figura 5.2. Pacote da área do usuário. A seguir, cada um dos pacotes será detalhado, descrevendo seus casos de usos, para melhorar o entendimento de cada área do sistema. Para cada caso de uso descrito ao longo deste capítulo, foi implementado um diagrama de seqüência, porém, para facilitar a compreensão do trabalho, eles não serão descritos neste capítulo. 35

5.3.1 Manutenção de Campeonatos A Manutenção de Campeonatos é a área onde o usuário efetuará o cadastro das diferentes competições. Nesta área, as três principais tarefas a serem realizadas são a Criação de novo campeonato, a Alteração dos dados de um campeonato e a Exclusão de um Campeonato do sistema. Figura 5.3. Diagrama de caso de uso para Manutenção de Campeonatos. Abaixo é descrito cada um destes processos em detalhes: Criar um novo Campeonato Procedimentos: 1. O sistema exibe o formulário para cadastro de novo campeonato. 2. O usuário informa os dados do Campeonato (Nome do Campeonato e o País onde é disputado), escolhe o Tipo de Competição (Campeonato Nacional, Campeonato Internacional de Clubes, Campeonato de Seleções ou Demais Campeonatos) e solicita a gravação do cadastro. 3. O sistema verifica se todos os dados foram informados e se estão corretos. Caso estejam, o cadastro é efetivado no sistema. Alternativas: 1. Todos os obrigatórios não foram preenchidos. O sistema informa ao usuário quais os campos que não foram preenchidos e solicita ao usuário que corrija o erro. Selecionar um Campeonato 36

Procedimentos: 1. O sistema exibe a lista de Campeonatos Cadastrados. 2. O Usuário seleciona o Campeonato desejado e escolhe a opção de manutenção (Alterar Dados ou Excluir Campeonato). Alternativas: 1. Não existem Campeonatos cadastrados. O sistema desabilita as funções de manutenção de Campeonato, não permitindo ao usuário Alterar Dados ou Excluir Campeonato. Alterar dados de um Campeonato Procedimentos: 1. O sistema busca no banco de dados os dados do cadastro e exibe em um formulário. 2. O Usuário altera os dados desejados e solicita a gravação das alterações. Alternativas: 1. Os dados do campeonato selecionado não existem ou estão corrompidos. O sistema exibe uma mensagem de alerta quanto ao problema encontrado. 2. Todos os obrigatórios não foram preenchidos. O sistema informa ao usuário quais os campos que não foram preenchidos e solicita ao usuário que corrija o erro. Excluir um Campeonato Procedimentos: 1. O sistema solicita a confirmação da exclusão do Campeonato. 2. Após a confirmação do usuário o sistema exclui o Campeonato do banco de dados. Alternativas: 1. O usuário não confirma a intenção de exclusão do Campeonato. O sistema não procede à operação de exclusão do Campeonato. 2. O Campeonato já possui uma Temporada cadastrada, sendo referenciado por outros dados. O sistema alerta o usuário da impossibilidade de exclusão do Campeonato. 37

5.3.2 Manutenção de Equipes A Manutenção de Equipes é a área onde o usuário efetuará o cadastro das Equipes. Nesta área, as três principais tarefas a serem realizadas são a Criação de nova Equipe, a Alteração dos dados de uma Equipe e a Exclusão de uma Equipe do sistema. Figura 5.4. Diagrama de caso de uso para Manutenção de Equipes. Abaixo é descrito cada um destes processos em detalhes: Criar uma nova Equipe Procedimentos: 1. O sistema exibe o formulário para cadastro de nova Equipe. 2. O usuário informa os dados da Equipe (Nome, Nome Completo, Cidade, País, Data de Fundação, Nome do Estádio e a imagem do Escudo), escolhe o Tipo de Equipe (Equipe ou Seleção) e solicita a gravação do cadastro. 3. O sistema verifica se todos os dados foram informados e se estão corretos. Caso estejam, o cadastro é efetivado no sistema. Alternativas: 1. Todos os obrigatórios não foram preenchidos. O sistema informa ao usuário quais os campos que não foram preenchidos e solicita ao usuário que corrija o erro. Selecionar uma Equipe Procedimentos: 1. O sistema exibe a lista de Equipes Cadastradas. 38

2. O Usuário seleciona a Equipe desejada e escolhe a opção de manutenção (Alterar Dados ou Excluir Equipe). Alternativas: 1. Não existem Equipes cadastradas. O sistema desabilita as funções de manutenção de Equipes, não permitindo ao usuário Alterar Dados ou Excluir Equipe. Alterar dados de uma Equipe Procedimentos: 1. O Sistema busca no banco de dados os dados do cadastro e exibe em um formulário. 2. O Usuário altera os dados desejados e solicita a gravação das alterações. Alternativas: 1. Os dados da Equipe selecionada não existem ou estão corrompidos. O sistema exibe uma mensagem de alerta quanto ao problema encontrado. 2. Todos os obrigatórios não foram preenchidos. O sistema informa ao usuário quais os campos que não foram preenchidos e solicita ao usuário que corrija o erro. Excluir uma Equipe Procedimentos: 1. O sistema solicita a confirmação da exclusão da Equipe. 2. Após a confirmação do usuário o sistema exclui a Equipe do banco de dados. Alternativas: 1. O usuário não confirma a intenção de exclusão da Equipe. O sistema não procede à operação de exclusão da Equipe. 2. A Equipe já está inclusa na disputa de uma Temporada de um Campeonato, sendo referenciado por outros dados. O sistema alerta o usuário da impossibilidade de exclusão da Equipe. 5.3.3 Manutenção de Estádios A Manutenção de Estádios é a área onde o usuário efetuará o cadastro dos Estádios de Futebol. Nesta área, as três principais tarefas a serem realizadas são a 39

Criação de novo Estádio, a Alteração dos dados de um Estádio e a Exclusão de um Estádio do sistema. Figura 5.5. Diagrama de caso de uso para Manutenção de Estádios. Abaixo é descrito cada um destes processos em detalhes: Criar um novo Estádio Procedimentos: 1. O sistema exibe o formulário para cadastro de novo Estádio. 2. O usuário informa os dados do Estádio (Nome Usual do Estádio, Nome Oficial, Capacidade, Cidade, País e a Foto) e solicita a gravação do cadastro. 3. O sistema verifica se todos os dados foram informados e se estão corretos. Caso estejam, o cadastro é efetivado no sistema. Alternativas: 1. Todos os obrigatórios não foram preenchidos. O sistema informa ao usuário quais os campos que não foram preenchidos e solicita ao usuário que corrija o erro. Selecionar um Estádio Procedimentos: 1. O sistema exibe a lista de Estádios cadastrados. 2. O Usuário seleciona o Estádio desejado e escolhe a opção de manutenção (Alterar Dados ou Excluir Estádio). Alternativas: 40