SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
POLI / UFRJ
       MBA Engenharia de Software – Turma 2004
       Disciplina: Análise e Projeto Orientado a Objetos
       Professor: Alessandro Cerqueira
       Aluno: Halan Ridolphi Alves


MBA-ENGSOFT                     Análise e Projeto Orientado a Objetos   1
© 2005 Halan Ridolphi
Sumário
1     Requisitos ................................................................................................................. 3
    1.1     Contexto de Negócio ........................................................................................... 3
    1.2     Escopo do Software ............................................................................................ 3
    1.3     Requisitos de Negócio ......................................................................................... 3
    1.4     Requisitos Funcionais .......................................................................................... 3
    1.5     Requisitos Não Funcionais ................................................................................... 4
2     Casos de Uso ............................................................................................................ 5
    2.1     Conceitos .......................................................................................................... 5
    2.2     Autenticar Acesso de Cliente ................................................................................ 7
    2.3     Registrar no Canal 100 Loja Virtual ....................................................................... 7
    2.4     Gerenciar Jogos ................................................................................................. 8
3     Modelo de Classes.................................................................................................... 11
    3.1     Classes de Negócio – Diagrama III ..................................................................... 11
    3.2     Classes de Negócio – Diagrama II....................................................................... 12
    3.3     Classes de Negócio – Diagrama I ........................................................................ 13
4     Diagramas de Seqüência ........................................................................................... 14
    4.1     Autenticar Acesso de Cliente .............................................................................. 14
    4.2     Gerenciar Jogos ............................................................................................... 15
5     Diagramas de Transição de Estado ............................................................................. 16
    5.1     Estados de objeto DVD ..................................................................................... 16
6     Diagramas de Atividade ............................................................................................ 17
    6.1     Cliente selecionando Jogadas visando DVD personalizado ....................................... 17
7     Projeto Arquitetural .................................................................................................. 18
8     Bibliografia ............................................................................................................. 20




MBA-ENGSOFT                                     Análise e Projeto Orientado a Objetos                                        2
© 2005 Halan Ridolphi
1    Requisitos
        Este documento tem por objetivo detalhar alternativa básica de solução técnica para
construção do sistema de software proposto visando automação das necessidades de negócio do
cliente Canal 100 Produções. Neste sentido, com enfoque nas funcionalidades que devem ser
providas pelo sistema de software depois de construído, os seguintes modelos de software serão
apresentados: requisitos, casos de uso, modelo de classes, diagramas de seqüência e diagramas
de transição de estado.
        Este seção visa descrever todos os requisitos a serem satisfeitos e alcançados pelo
sistema de software a ser desenvolvido.

1.1 Contexto de Negócio
       O Canal 100 Produções é uma empresa que detém um vasto acervo com cenas e
narrações de jogos de futebol realizados no Brasil. A empresa deseja digitalizar e organizar este
acervo com vistas a gerar um novo modelo de negócio: a venda de DVDs personalizados com
jogadas.

1.2 Escopo do Software
       A construção de um novo sistema de software objetiva o gerenciamento de acervo de
cenas e narrações de jogos de futebol, visando suportar a confecção de DVDs personalizados
com as jogadas e dados sobre os jogos selecionados pelos clientes do Canal 100 Produções.
Neste sentido, as seguintes funcionalidades principais deverão ser reunidas pelo sistema de
software proposto:
          • Organizar uma base de dados que contenha todos os dados referentes aos jogos;
          • Realizar a separação de arquivos de jogadas digitalizadas para a produção de
              DVDs personalizados e sua cobrança.

1.3 Requisitos de Negócio
       Para cada jogo em seu acervo, o Canal 100 Produções tem uma série de dados
relacionados ao mesmo, a saber: os times, técnicos, escalação, substituições, local, horário,
motivo do jogo (campeonato, amistoso, etc.), placar de cada tempo, placar final, cartões,
prorrogação, disputa de pênaltis, arbitragem. Além destas informações de súmula, a produtora
tem as estatísticas do jogo (chutes agol, defesas, passes errados, posse de bola) que
costumamos a ver nas transmissões de TV.
       A produtora conta também com uma série de jogadas que foram digitalizadas por uma
empresa externa e estão em formato MPEG. Para cada jogada, há o texto da narração onde
quase sempre são citados os envolvidos na jogada.
       Com relação aos jogadores, a produtora possui os dados como os nomes de escalação,
nome completo, data de nascimento, e também apelidos comumente utilizados na imprensa
(ex.: Zico -> Galinho de Quintino, Roberto -> Dinamite, Pelé -> Rei).

1.4 Requisitos Funcionais
       O sistema de software deverá prover as funcionalidades a seguir:
           • Organização de base de dados que contenha todos os dados referentes acervo de
              jogos;
           • Inclusão dos dados de jogos do acervo supracitado;
           • Recuperação de conjunto de jogadas a partir de detalhes passados pelo cliente do
              Canal 100 Produções, como: todas os gols marcados pelo Júnior no Campeonato
              Brasileiro, todas as defesas realizadas pelo Manga quando atuou por times do Rio,
              etc.



MBA-ENGSOFT                        Análise e Projeto Orientado a Objetos                     3
© 2005 Halan Ridolphi
•   Para cada jogo que teve uma jogada catalogada, devemos gerar um arquivo digital
              contendo os dados desse jogo. A partir de um número de jogadas selecionadas, o
              sistema de software irá calcular a produção de CD pelo tempo total das jogadas
              mais o número de arquivos com dados dos respectivos jogos.
          •   Realização da separação adequada de arquivos de jogadas digitalizadas para a
              produção de DVDs personalizados e sua cobrança.

1.5 Requisitos Não Funcionais
        A construção do sistema de software deve atentar para os quesitos de qualidade,
restrições operacionais e tecnologia de desenvolvimento de software, a saber:
           • A solução de gerenciamento da base de dados referente ao acervo de jogos deve
               ser amigável, de fácil aprendizagem, baseada em tecnologia web e operada
               através de softwares navegadores da Internet;
           • O módulo de interface do usuário Web será codificado com utilização da linguagem
               de programação JSP/Java, utilização de Framework STRUTS, servidor de aplicação
               JBOSS e padrões de projeto J2EE;
           • A conexão entre usuário e sistema deve ser segura orientada pela combinação dos
               protocolos HTTP e SSL;
           • A base de informações de jogos será armazenada de forma centralizada, em um
               sistema gerenciador de banco de dados Oracle;
           • O desempenho de execução deverá ser considerado nas operações de publicação
               de jogadas;
           • Precisão no cálculo de montagem e personalização de DVDs.




MBA-ENGSOFT                       Análise e Projeto Orientado a Objetos                 4
© 2005 Halan Ridolphi
2    Casos de Uso
2.1 Conceitos
2.1.1   Atores
       Um ator é uma entidade externa que desempenha um papel na interação com o sistema
de software. Um ator pode ser um sistema externo que necessita de alguma informação do
sistema de software sendo modelado.

2.1.2   Casos de Uso
        Um caso de uso descreve um conjunto particular de funcionalidades do sistema de
software, modelando a interação que uma entidade externa, denominada ator (usuário,
dispositivo, outro sistema), realiza com o sistema. Um caso de uso é baseado num cenário
descritivo de como a entidade externa interage com o sistema de software, identificando eventos
que podem ocorrer e descrevendo a resposta do sistema para estes eventos. Um caso de uso é
uma seqüência de eventos completa, descrita a partir de uma perspectiva ou uma situação de
uso particular do sistema de software. Casos de uso fornecem uma visão do sistema de software
que está focada principalmente na funcionalidade.
        Este artefato formará uma base de concordância entre o cliente e desenvolvedores sobre
o que o sistema de software deve fazer. Casos de Uso também possibilitam a validação se o
sistema de software está sendo modelado em conformidade com regras de funcionamento
esperadas pelo cliente.
        Sempre que possível, utilizamos o Modelo de Casos de Uso como ferramenta de apoio à
garantia de qualidade:
    1. Inspeção de requisitos (identificar defeitos na definição):
           a. Estão corretos, consistentes, sem ambigüidades, completos;
    2. Validação de requisitos (conceber o software correto):
           a. Estão refletindo a realidade, sem omissão, sem informação estranha;




MBA-ENGSOFT                       Análise e Projeto Orientado a Objetos                   5
© 2005 Halan Ridolphi
ud Diagrama de Casos de Uso
                                         Domínio de Casos de Uso do Canal 100 Produções




                                       Autenticar Acesso
                                           de Cliente

                                                                                                 Sistema de Controle
                                                                                                      de Acesso

                                           «extend»



                                       Registrar no Canal
                                        100 Loj a Virtual


               Cliente



                                         Compor DVD
                                                                               Escolher Jogada
                                         Personalizado         «include»

                                                                                                  Sistema de Banco de
                                                                                                         Dados



                                                               Gerenciar
                                                               Jogadores




                                                            Gerenciar Times
                                                               de Futebol




                                                            Gerenciar Jogos


           Funcionário




                                                            Catalogar Jogada




        Figura 1: Alguns Casos de Uso da Aplicação Canal 100 Produções
       Recomenda-se a utilização de pacotes de casos de uso para possibilitar melhor
compreensão e controle dos domínios (ou grupos) de funcionalidades requeridos pelo sistema de
software.

2.1.3    Protótipo da Interface do Usuário
       Descrição da forma de apresentação do sistema de software. Como é realizada a
interação com o usuário e o que será utilizado para construí-la.
       Os protótipos da interface do usuário comumente são abstraídos a partir das
funcionalidades (casos de uso) que os participantes (atores) obtêm ao interagirem com o sistema
de software. Os cenários descritos nos Casos de Uso são os alicerces para elaboração desses
protótipos. Um dado protótipo da interface do usuário pode compreender a realização de um
conjunto de Casos de Uso. Os protótipos também constituem uma ferramenta eficaz para captura
de requisitos do software.




MBA-ENGSOFT                               Análise e Projeto Orientado a Objetos                                         6
© 2005 Halan Ridolphi
2.2 Autenticar Acesso de Cliente
2.2.1    Descrição
        A aplicação de loja on-line do Canal 100 Produções armazena informações básicas dos
consumidores de seus produtos e serviços. Tais clientes necessitam autenticar-se (logon) junto
ao sistema para obterem acesso aos seus recursos.

2.2.2    Atores

2.2.2.1 Sistema de Banco de Dados
       Sistema externo encarregado de manter persistente todas as informações acerca de
jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e
demais informações no domínio da aplicação do Canal 100 Produções.

2.2.2.2 Cliente
        Representa um consumidor dos produtos e serviços da loja virtual do Canal 100.

2.2.2.3 Sistema de Controle de Acesso
       Sistema externo encarregado de autenticar e autorizar o acesso aos recursos no domínio
da rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa a
autoridade em segurança da informação que controle os privilégios dos perfis de usuários da
aplicação.

2.2.3    Fluxo de Eventos
        Autenticação (logon) {Fluxo Básico}
           1.   O caso de uso começa quando Cliente acessa a página de Logon
           2.   Cliente digita nome da conta e senha
           3.   Sistema valida informações digitadas
           4.   Caso os dados sejam validados então o Cliente utilizará os recursos do Sistema
           5.   O caso de uso termina
        Falha na Autenticação (access denied) {Fluxo Alternativo}
           1. Altera o passo 4 do fluxo “Autenticação”
           2. Sistema invalida os dados digitados pelo Cliente
           3. Prossiga para o passo 2 do fluxo “Autenticação”
        Registrar Cliente {Fluxo Alternativo}
           1. Altera o passo 4 do fluxo “Autenticação”
           2. Prossiga para o caso de uso “Registrar no Canal 100 Loja Virtual”
           3. Prossiga para o passo 1 do fluxo “Autenticação”

2.3 Registrar no Canal 100 Loja Virtual
2.3.1    Descrição
        Um cliente que não é registrado necessitará digitar seus detalhes e obter uma conta na
loja virtual do Canal 100. Isto normalmente incluirá detalhes tais como nome, email, endereço,
telefone, preferências e etc. Este caso de uso estende o caso de uso “Autenticar Acesso de
Cliente” nas situações onde o usuário não tem uma conta na loja virtual. Uma vez registrado o
cliente pode completar o caso de uso “Autenticar Acesso de Cliente”. Um cliente usará este caso
de uso para registrar-se a si próprio na loja virtual se ele ainda não for membro registrado.




MBA-ENGSOFT                          Análise e Projeto Orientado a Objetos                      7
© 2005 Halan Ridolphi
2.3.2    Atores

2.3.2.1 Sistema de Banco de Dados
       Sistema externo encarregado de manter persistente todas as informações acerca de
jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e
demais informações no domínio da aplicação do Canal 100 Produções.

2.3.2.2 Cliente
        Representa um consumidor dos produtos e serviços da loja virtual do Canal 100.

2.3.2.3 Sistema de Controle de Acesso
       Sistema externo encarregado de autenticar e autorizar o acesso aos recursos no domínio
da rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa a
autoridade em segurança da informação prestando serviços de controle de acesso.

2.3.3    Restrições

2.3.3.1 Pós-Condicões
        Cliente registrado.

2.3.3.2 Pré-Condições
        Cliente ainda não registrado. O cliente não deve estar registrado no Sistema.

2.3.4    Fluxo de Eventos
        Efetuar registro de cliente {Fluxo Básico}
           1.   Cliente digita seu nome de conta preferido, detalhes pessoais e senha.
           2.   Sistema valida se nome de conta não está em uso
           3.   Caso os dados sejam aceitos então o Cliente é registrado na loja virtual
           4.   Caso os dados sejam recusados o Cliente é compelido a tentar novamente
                fornecendo outro nome de conta

2.4 Gerenciar Jogos
2.4.1    Descrição
       Este caso de uso descreve todos os aspectos da forma como o Funcionário gerencia as
informações de jogos de futebol mantidas em repositório base de dados do Canal 100 Produções.
O Funcionário estará apto a criar, atualizar, apagar e consultar os dados dos jogos desde que ele
esteja operando com conta que tenha permissão de acesso.

2.4.2    Atores

2.4.2.1 Sistema de Banco de Dados
       Sistema externo encarregado de manter persistente todas as informações acerca de
jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e
demais informações no domínio da aplicação do Canal 100 Produções.

2.4.2.2 Funcionário
        Representa um empregado da loja virtual do Canal 100.

2.4.3    Restrições

2.4.3.1 Pós-Condicões
        Cadastro de jogos de futebol atualizado.

MBA-ENGSOFT                         Análise e Projeto Orientado a Objetos                       8
© 2005 Halan Ridolphi
2.4.3.2 Pré-Condições
      Funcionário utiliza nome de conta com privilégios para acessar os recursos administrativos
e de manutenção da loja virtual do Canal 100 Produções.

2.4.4    Fluxo de Eventos
        Cadastrar Novo Jogo {Fluxo Básico}
           1. O caso de uso inicia quando o Funcionário seleciona a opção “Cadastrar” na tela de
              “Gerenciamento de Jogos”.
           2. O Sistema apresenta na tela um formulário vazio com os campos de informação
              associados ao jogo para o Funcionário completá-los. A seguir, alguns destes
              campos são mencionados:
                  Nomes dos Times (obrigatório)
                  Estádio (obrigatório)
                  Arbitragem (obrigatório)
                  Motivo do Jogo {Campeonato, Amistoso}
                  Escalações
                  Local
                  Data e Horário
                  Placar do primeiro tempo
                  Placar do segundo tempo
                  Placar final
                  Número de Cartões Amarelo
                  Total de Substituições
              Nota: Os campos obrigatórios deverão ser indicados apropriadamente para o
              usuário da aplicação.
           3. O Funcionário completa o preenchimento do formulário e seleciona a opção de
              salvar os dados.
           4. O Sistema checa a consistência das entradas e grava os detalhes do novo jogo
           5. O Sistema informa ao Funcionário que as informações para novo jogo foram
              armazenadas
           6. O Sistema atualiza a tela “Gerenciamento de Jogos” para mostrar os detalhes do
              novo jogo recém cadastrado
        Apagar Jogo {Fluxo Alternativo}
           1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns
              dados de jogos
           2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com
              os dados digitados escolhendo a opção “Consultar” na tela “Gerenciamento de
              Jogos”
           3. O Sistema retorna uma lista de jogos encontrados na pesquisa
           4. O Funcionário seleciona uma ou mais jogos da lista e então seleciona a opção
              “Apagar” na tela “Gerenciamento de Jogos”
           5. O Sistema indaga ao usuário se ele quer mesmo remover os jogos selecionados
           6. Caso sim o Sistema remove os jogos escolhidos da base de dados
        Atualizar Jogo {Fluxo Alternativo}
           1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns
              dados de jogos
           2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com
              os dados digitados escolhendo a opção “Consultar”
           3. O Sistema retorna uma lista de jogos encontrados na pesquisa
           4. O Funcionário escolhe um jogo e então seleciona a opção “Atualizar” na tela
              “Gerenciamento de Jogos”
           5. O Sistema apresenta o formulário de edição dos dados jogo escolhido
           6. O Funcionário altera os dados necessários do jogo no formulário de edição

MBA-ENGSOFT                         Análise e Projeto Orientado a Objetos                  9
© 2005 Halan Ridolphi
7. O Funcionário completa a edição dos dados e seleciona a opção de salvar as
             modificações.
         8. O Sistema checa a consistência das entradas e grava os detalhes do novo jogo
         9. O Sistema informa ao Funcionário que as modificações no jogo escolhido foram
             gravadas
         10. O Sistema atualiza a tela “Gerenciamento de Jogos” para mostrar os detalhes do
             jogo cujos dados foram recém modificados
      Consultar Jogo {Fluxo Alternativo}.
         1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns
            dados de jogos
         2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com
            os dados digitados escolhendo a opção “Consultar”
         3. O Sistema retorna uma lista de jogos encontrados na pesquisa
         4. O Funcionário escolhe um jogo e então seleciona a opção “Visualizar” na tela
            “Gerenciamento de Jogos”
         5. O Sistema apresenta o formulário de visualização dos detalhes do jogo escolhido
         Nota: O usuário está apto a selecionar outros jogos e visualizar estes jogos ao mesmo
         tempo.




MBA-ENGSOFT                       Análise e Projeto Orientado a Objetos                  10
© 2005 Halan Ridolphi
3           Modelo de Classes
        Descreve aspectos estruturais, ou seja, as classes de objetos, interfaces e seus
relacionamentos, os quais formam os elementos de construção do sistema de software.
        Classes de negócio são representações de objetos do mundo real tais como, lugares,
coisas, conceitos e eventos que são pertinentes ao nosso domínio do problema. Cada classe
representa uma coleção de objetos similares.
        Um objeto é uma pessoa, lugar, coisa, conceito, evento, tela ou relatório que é relevante
para o sistema de software em construção. Objetos conhecem coisas (isto é, eles têm dados) e
fazem coisas (isto é, eles têm funcionalidades).

3.1 Classes de Negócio – Diagrama III
cd Diagrama de Classe III
                                                             +Fundamento                              mantida por                                   +Time
                                                                                                                                                                            TimeFutebol
                                PosseDeBola                  1                                                                                              1
                                                                                                                                                                -    nome: char
                       -    tempoPosse1Tempo: int                                                                                                               -    apelido: int
                       -    tempoPosse2Tempo: int                                                                                                               -    totalSocios: int
                                                                                                                                                                -    tamanhoTorcida: int
                                                                                                         Defesa                                                 -    anoFundacao: int
                           +Estatística   1                                                                                                                     -    patrocinadores: char
                                                                                      -   minutosMomentoEvento: int
                                                                                      -   intervaloPartida: int                                                 -    temEstadioProprio: boolean
                                                                                      -   foiRealizadaNaProrrogacao: boolean
                                                                                                                                                      +Participante           2     +Clube       1
                                                                                                0..*
                                                                                                  +Fundamento         *




                                                                                                                                                                                         pertence a
                                                                   acontece em

                                                              registrado em                                                                executado por
              Jogada                                                                                         realizado em

    -   nomeArquivo: char        0..*
    -   tempoCena: int
    -   preco: float             +Cena da Partida
                                                                                                                                                                                     +Atleta *
    -   ehFilmeColorido: boolean
                                 0..*                                                                                                                                                                                               Pessoa
                                                                                                                                                                                                             Jogador
                                                             cenas registrados em
                                                                                           +Partida      1+Partida    1 +Partida 0..*                                                     -   apelido: char
                                                                                                                                                                                          -   posicaoEmCampo: char
                                                                                                                     Jogo                                                                 -   totalParticipacoesCampeonatoBrasileiro: int
                                                                                          +Partida
                                                                                                   -     motivo: char                                                                                          1                   +Atleta     1
                                                                                                 1 -     dataRealizacao: char
                                                                                                   -     horaInicioPartida: char
                                                                                                   -     tipoDecisaoPartida: char
                  ChuteAGol                   +Estatística                                +Partida -     tempoTotalPartida: int      +Partida
                                                                   acontece em
                                                                                                   -     placarFinal: char
        -   minutosMomentoEvento: int 0..*                                                       1 -                                 1
                                                                                                         placarDisputaPenaltis: char
                                                                                                                                                                                                                                     executado por
                                                                                           +Partida      1   +Partida       1                                                     tomado por


                                                                                 acontece em                                                                               acontece em
                                                                                                                  acontece em


                                                                                                                                                                                                       +Estatística            +Fundamento *
                                                   +Troca Jogador        0..*
                                                                                                                                                                                                                   *           PasseErrado
                                                  Substituicao                                                                      +Estatística     0..*           0..*
                                                                                                                                                                                                                       -   minutosMomentoEvento: int
                                      -   minutosMomentoEvento: int                                                                                             Cartao

                                                                                                                                            -      tipo: char
                                                                                                                                            -      minutosMomentoEvento: int




Figura 2a: Classes de Negócio




MBA-ENGSOFT                                                                               Análise e Projeto Orientado a Objetos                                                                                                                11
© 2005 Halan Ridolphi
3.2 Classes de Negócio – Diagrama II

 cd Diagrama de Classe II

                                                                                 +Gol                   Penalti

                                                                                  0..* -     foiConvertido: boolean
                                                                                                                           0..*


                           ocorrido em
                                                                                                                                                                  registrado em
                                                                                                             Prorrogacao

                                                                                                    -   placar1Tempo: char
                       +Partida     0..*                                                            -   placar2Tempo: char
                                                                                                                                                                            0..*
                                                                   complementado por                -   tempoTotal: int
                                  Jogo                                                              -   placarFinal: char
                                                  0..1                                          1                                                                      Jogada
                -     motivo: char
                                                  +Partida                                 cenas registrados em                      +Cena da Partida -         nomeArquivo: char
                -     dataRealizacao: char
                                                                                                                                                        -       tempoCena: int
                -     horaInicioPartida: char     1                                                                                                0..* -       preco: float
                -     tipoDecisaoPartida: char
                                                          marcado em                                                                 registrado em      -       ehFilmeColorido: boolean
                -     tempoTotalPartida: int
                -     placarFinal: char           1                                                                                                  0..*
                -     placarDisputaPenaltis: char

               +Partida      1               +Partida    0..*
                                                                                         0..*                                 0..*

                                                                                                               Gol
                    configurado com
                                                                                     -     minutosMomentoEvento: int
                                                                                     -     intervaloPartida: int            1
                                                                                     -     foiMarcadoNaProrrogacao: boolean
           +Jogadores        1
                                                                                                         1           1

                    Escalacao
                                                                                           executado por
           -    listaTitulares: char
                                     +Jogadores
           -    listaReservas: char
                                                                                                                                                                      marcador
                                           1..*                                                                               sofredor
               +Grupo      0..*                                    marcado por



                    escalado em                                                   escalado com


                                                                                                                             +Participante       2     0..*                   0..*

               +Atleta     1..*               0..*
                                                                                                                                                              TimeFutebol
                                                                                                                                       +Time
                                                     Pessoa
                                                                                                                                             -       nome: char
                         Jogador                                                                                                           1
                                                                +Atleta                         pertence a                            +Clube -       apelido: int
                                                                                                                                             -       totalSocios: int
   -   apelido: char
                                                   *                                                                                       1 -       tamanhoTorcida: int
   -   posicaoEmCampo: char
                                                                                                                                             -       anoFundacao: int
   -   totalParticipacoesCampeonatoBrasileiro: int
                                                                                                                                             -       patrocinadores: char
                                                                                                                                             -       temEstadioProprio: boolean




Figura 2b: Classes de Negócio




MBA-ENGSOFT                                                               Análise e Projeto Orientado a Objetos                                                                        12
© 2005 Halan Ridolphi
3.3 Classes de Negócio – Diagrama I
cd Diagrama de Classe I

                                                  Pessoa
                                                                                                          Endereco                              sede fica em
                                     -       nome: char
                                     -       sexo: char                                             -     rua: char    1
                                     -       e-mail: char                           mora            -     bairro: char
                                     -       telefone: char                                         -     cidade: char 1
                                                                  0..1                            1
                                     -       dataNascimento: char                                   -     estado: char
                                     -       naturalidade: char                                     -     pais: char
                                     -       nacionalidade: char                                    -     cep: char
                                                                                                                                                          localizado em
                                     -       escolaridade: int




                                                                                                                                                                       0..1

                                                                                                                                                             Estadio

                                                                                                                                                -     capacidadePublico: int
                                                                                      Jogador
                           Cliente                                                                                                              -     proprietario: char
                                                                -   apelido: char
           -   numeroCartaoDeCredito: char
                                                                -   posicaoEmCampo: char
           -   timeTorcedor: char
                                                                -   totalParticipacoesCampeonatoBrasileiro: int                                                                           0..1
    +Devedor   1    +Consumidor          1                                                                +Atleta       *
                                                                                                                                                                 TimeFutebol
                               consome                                                                                          pertence a +Clube
                                                                                                                                                      -    nome: char
                                                                                                                                                    1 -    apelido: int
                    +Mercadoria          0..*                                                                                                         -    totalSocios: int
                                                                                                                                                      -    tamanhoTorcida: int
                                                                                                Tecnico
                                                                                                                                                      -    anoFundacao: int
                                         DVD
                                                                                -     apelido: char                                                   -    patrocinadores: char
                       -    numeroID: int                                       -     estiloComando: char                                             -    temEstadioProprio: boolean
                       -    statusProduto: short                                -     totalCompeticoesCampeao: int
                       -    tempoFilme: int                                                                                                                    +Participante          2
                       -    precoVenda: float
                       -    quantidadeJogadas: int
                                                            +Produto                                                                 Arbitro
                       -    dataProducao: char
                       -    dataEntrega: char               1                                                       -       federacaoFutebol: char
                                                                                                                    -       totalAnosExperiencia: int
                       +    selecionarJogada() : void                                                               -       jaApitouCopadoMundo: boolean
                       +    descartarJogada() : void
                                                                                                              +Juiz         1                    +Auxiliar      1..
                       +    notificarCliente() : void
                       +    verificarPagamento() : void
                       +    notificarLoja() : void                                                                                                                    executado por


                             +Produto
                                                                                                                                                           auxilia

                                     compõe
                                                                                                   compra

                   +Peça_de_Produto 1..*

                                     Jogada
                                                                                                                                                 +Partida   0..*
                                                                                                                                                        +Partida 0..*
                       -    nomeArquivo: char        +Cena da Partida cenas registrados em                          +Partida
                       -    tempoCena: int                                                                                                     Jogo
                                                     0..*                                                                  1
                       -    preco: float
                       -    ehFilmeColorido: boolean                                                                +Partida -
                                                                                                                       apita        motivo: char
                                                                                                                              -     dataRealizacao: char
                                                                                                                         0..* -     horaInicioPartida: char
                                                                                                                              -     tipoDecisaoPartida: char
                                                                                                                              -     tempoTotalPartida: int
                                                                                           +Pagamento      0..1               -     placarFinal: char
                                                                                                                              -     placarDisputaPenaltis: char
                                                                                           CobrancaDVD

                                                compra                  +Dívida -      tipoPagamento: char
                                                                                 -     precoProduto: float
                                                                            0..* -     dataCobranca: char
                                                                                 -     horaCobranca: char
                                                                                 -     status: int




Figura 2c: Classes de Negócio




MBA-ENGSOFT                                                               Análise e Projeto Orientado a Objetos                                                                                  13
© 2005 Halan Ridolphi
4    Diagramas de Seqüência
       Descrevem aspectos do comportamento dinâmico do sistema de software a ser
desenvolvido, especificamente, demonstram a cooperação dos objetos nos cenários propostos
pelos casos de uso.

4.1 Autenticar Acesso de Cliente

        sd Autenticar Acesso de Cliente


                                      Tela Logon                         GerenciadorSegurança                                          Clientes
            Consumidor
              :Cliente
                           Logon


                                                   ValidarCliente(Consumidor)


                                                                                            RecuperaDetalhesCliente(Consumidor)


                                                                                                       {DetalhesCliente}


                                                                                       Validar


                                                Resultado : {Ok / Access Denied}




               Um Cliente deverá autenticar-se (logon) junto ao Sistema antes de poderem utilizar os serviços e produtos da Loja Virtual do Canal
               100 Produções, notamente, realizar compras de DVDs personalidades.




      Figura 3a: Objetos e Interações para Autenticar Acesso de Cliente
      Ressalta-se que o diagrama acima expressa o padrão MVC (Model-View-Controller),
comumente empregada na construção de grande variedade de aplicações que requerem interface
do usuário, lógica de aplicação ou negócio e persistência de dados.
      A seguir, comentamos legenda para os alguns dos possíveis elementos no diagrama de
seqüência e seus ícones estereotipados.
          Elemento Ator: Uma instancia de um Ator em tempo de execução.
            cd Diagrama de




               Actor1



          Objeto: Um elemento padrão, instância de uma classe qualquer, não especializado.
            cd Diagrama de Colabora


                   Obj ect1




          Elemento de Fronteira: Representa uma interface do usuário ou dispositivo de entrada
          e saída.




MBA-ENGSOFT                                          Análise e Projeto Orientado a Objetos                                                          14
© 2005 Halan Ridolphi
cd Diagrama de C




              Screen1



         Elemento de Entidade: Um elemento persistente, tipicamente implementado como
         objeto ou tabela de banco de dados.
          sd Modelo de Inte




               Entity1




         Elemento Controlador: O componente ativo que control qual trabalho será feito,
         quando e como.
          sd Modelo de Inte




             Controller1




4.2 Gerenciar Jogos

           sd Gerenciar Jogos (fluxo cadastrar novo jogo)


                                                   Tela                       Formulário                 ControladorJogos              GerenciadorPersistencia           Jogos
                 Consumidor                    Gerenciamento                  de Edição
                   :Cliente                       de Jogos                     de Jogos
                                Cadastrar ()


                                                       MostrarFormularioVazio ()


                                                  Salvar


                                                                                           SalvarJogo(Jogo)


                                                                                                                  ChecarConsistencia(Jogo)


                                                                                                                     TornarPersistente(Jogo)
                                                                                                                                                     InserirJogo(Jogo)



                                                                                                                                                        {DetalhesJogo}


                                                                                                                            {Detalhes Jogo}


                                                                         {Detalhes Jodo Gravado}

                                                       ApresentarMensagemJogoGravado



                                                           AtualizarDadosNaTela(Jogo)




             No formulário vazio de edição de jogos campos de informação associados ao jogo são apresentados ao Funcionário para que ele possa completá-los. A seguir, alguns
             destes campos são mencionados:
             . Nomes dos Times (obrigatório)          . Estádio (obrigatório)
             . Arbitragem (obrigatório)               . Motivo do Jogo {Campeonato, Amistoso}
             . Escalações                             . Local
             . Data e Horário                        . Placar final
             . Número de Cartões Amarelo              . Total de Substituições




      Figura 3b: Objetos e Interações para Cadastrar Novo Jogo


MBA-ENGSOFT                                                    Análise e Projeto Orientado a Objetos                                                                             15
© 2005 Halan Ridolphi
5    Diagramas de Transição de Estado
       Descrevem aspectos do comportamento dinâmico do sistema de software a ser
desenvolvido, especificamente, demonstram as mudanças de estados ou ciclos de vida para
objetos do sistema de software em operação.

5.1 Estados de objeto DVD

 sm DVD


                                 Início



                       Consumidor consulta jogada


                                                              Processando



                            Personalizando               [Todas jogadas selecionadas]                    Cobrando

                   +   Do Action / Selecionar Jogada                                       +   Do Action / Verificar Pagamento


                         [Restam jogadas a selecionar] /Selecionar próxima jogada

                                                                                                    [Pagamento Ok]
          [Algunas jogadas selecionadas estão sem arquivo MPEG]


                                       Jogada catalogada [Arquivo de cena disponível]                  Fabricando

                                                                                           +   On Exit / Verificar Embalagem
                                                                                           +   Do Action / Gravar Jogadas

                                                                                        DVD pronto para entrega ao consumidor
                          Aguardando                                                                                                                [Pagamento não Ok]

                                                                                                      Expedindo

                                                                                           +   Do Action / Postar no Correio
      Jogada catalogada [Arquivo MPEG não disponível]




          Consumidor cancelando a compra                                        Serviço de correio entrega mercadoria a consumidor




                    Cancelado                                                                   Entregue                                          Rej eitado

                                                                                +   On Entry / Notificar Cliente via E-mail          +   On Entry / Notificar Loja Virtual




                                                                                 Arquivado




Figura 4: Estados de objeto DVD




MBA-ENGSOFT                                                     Análise e Projeto Orientado a Objetos                                                                   16
© 2005 Halan Ridolphi
6    Diagramas de Atividade
      Descrevem aspectos do comportamento dinâmico do sistema de software a ser
desenvolvido, mais especificamente, modelam mapa de navegação pela interface do usuário,
padrões de usabilidade e fluxos de processos do sistema de software.

6.1 Cliente selecionando Jogadas visando DVD personalizado

 ad Mapa de Navegação
                         Ciclo de interação com Cliente para seleção de Jogadas visando produção de DVD personalizado


                                                                                            Cliente



                                                                                             Início



                                                                                       Apresentar Tela
                                                                             [não]     de Autenticação
                                                                                           (Logon)


                                                                                          botão entrar




                                                                                          Autenticar
                                                                                           Cliente

                                                                     [sim]




                                Apresentar                                                             Apresentar
                                 Jogadas                                                                Jogadas
                               Combinadas                                                             Catalogos por
                             com Critérios de                                                            Jogos
                                  Busca
                                                                Apresentar Tela
                                  [sim]                         de Consulta de                            [sim]
                                                                   Jogadas
       Apresentar                                                                                                               Apresentar
       Mensagem      [não]                                                                                             [não]    Mensagem
       "Nenhuma                                                                                                                 "Nenhuma
        Jogada                                                                                                                   Jogada
      Encontrada."                                                                                                             Catalogada."

                               Recuperar                                                             Recuperar
                              Jogadas v ia      botão recuperar                botão consultar        Jogadas
                              Critérios de                                                         Catalogadas por
                                 Busca                                                                  Jogos


                                                 botão logoff                     botão cancelar




                              Efetuar Logoff                                                          Limpar Tela de
                                                                                                       Consulta de
                                                                                                         Jogadas




                                   Fim




Figura 5: Mapa de Navegação



MBA-ENGSOFT                                          Análise e Projeto Orientado a Objetos                                                    17
© 2005 Halan Ridolphi
7    Projeto Arquitetural
       A arquitetura de software visa detalhar estrutura dos componentes do sistema de software,
seus inter-relacionamentos e topologia, diretrizes de projeto (modularização, coesão,
acoplamento) e evolução ao longo do tempo. Visa também especificar o projeto de subsistemas,
mostrando dependências e interações.
       A aplicação Canal 100 será inteiramente codificada em linguagem Java framework J2EE,
utilizando componentes do framework Struts para interface do usuário, mecanismo do Active
Directory para autenticação e controle de acesso, ORACLE como ferramenta SGDB para
armazenamento, recuperação e indexação de informações e rodando sob servidor de aplicação
JBOSS. A aplicação será organizada em 4 camadas (coleção de classes ou componentes) de
software, a saber: Persistência de Dados, Lógica de Negócio, Interface do Usuário e Infra-
Estrutura de Serviços Comuns.

       cd Arquitetura




                                 Consumidor :Cliente                     Administrador :
                                                                          Funcionário




                                               Classes de Interface do Usuário


                              Classes de Interface do Usuário

                           Classes de Lógica de Negócio              Classes de Infra-Estrutura Serviços Comuns

                            Classes de
                         Lógica de Negócio                                Classes de
                                                                        Infra-Estrutura
                          Classes de Persistência de Dados
                              Classes de                               Serviços Comuns
                        Persistência de Dados




                                 Mecanismo de                                     Microsoft Activ e
                               Persistência Oracle                                Diretory System :
                                 9i :Sistema de                                      Sistema de
                                Banco de Dados                                   Controle de Acesso




     Figura 6: Arquitetura de Camadas
        As classes de interface do usuário contêm o código que provê a capacidade de usuários
interagem com aplicação. Classes de interface do usuário tipicamente implementam uma
interface do usuário gráfica para aplicação, embora outros estilos de interface, tais como
comando de voz, HTML, multimídia, são também implementados via esta categoria de classes.
Por exemplo, uma interface do usuário gráfica pode ser implementada como uma coleção de
classes de menus, telas de edição, painéis, caixas de seleção, caixas de listagem, relatórios.



MBA-ENGSOFT                                  Análise e Projeto Orientado a Objetos                                18
© 2005 Halan Ridolphi
As classes de negócio implementam conceitos pertinentes ao domínio da aplicação, tais
como, “Jogo” ou “DVD”, focando nos aspectos de dados dos objetos de negócio e mais
comportamentos específicos para conceitos de negócio individuais. Cabe a estas classes também
implementar a lógica de negócio que envolve a colaboração de vários objetos, os quais são
instâncias de distintas classes de negócio.
         As classes de persistência de dados encapsulam a capacidade para armazenar, recuperar,
atualizar e remover objetos permanentemente sem revelar detalhes secretos da tecnologia de
armazenamento. A estratégia de uso de um framework de persistência habilita-nos utilizar
distintas tecnologias de armazenamento sem afetar ou necessidade de alterar nossa aplicação.
        As classes de infra-estrutura de serviços comuns provêem os serviços específicos do
sistema operacional ou encapsulam funcionalidades fornecidas por ferramentas e aplicações de
terceiros. Estas classes isolam nossa aplicação do sistema operacional, tornando a aplicação
portável entre ambientes via o empacotamento de serviços específicos do SO. Estas classes
tipicamente fornecem serviços para geração de trilhas de auditoria (log, registro de ações
críticas), gerenciamento de arquivos, comunicação inter-processos, multitarefa, gerenciamento
de memória, manipulação de documentos XML e dentro outros recursos não orientados a
objetos.
        Colaboração entre classes é permitida dentro de uma camada. Por exemplo, classes IU
podem enviar mensagens a outras classes IU e classes de negócio podem enviar mensagens a
outras classes de negócio. Colaboração pode também ocorrer entre classes em camadas
conectadas entre si. Como pode ser observado pela figura Arquitetura de Camadas, classes IU
podem enviar mensagens para classes de lógica de negócio, mas não podem fazê-lo para classes
de persistência de dados. Classes de negócio podem enviar mensagens para classes de
persistência de dados, mas não podem fazê-lo para classes de interface do usuário. Pela
restrição do fluxo de mensagens em uma somente uma direção, dramaticamente incrementa-se
a portabilidade de nossa aplicação pela redução do acoplamento entre classes. Por exemplo,
classes de negócio independem dos serviços providos pelas classes IU, implicando que podemos
modificar a interface do usuário da aplicação sem afetar a lógica de negócio fundamental.




MBA-ENGSOFT                       Análise e Projeto Orientado a Objetos                   19
© 2005 Halan Ridolphi
8    Bibliografia
     Fontes de artigos e livros consultados acerca de Projeto de Software Orientado a Objetos e
assuntos correlatos:
   • The Object Primer: Application Developer’s Guide to Object Orientation, Second Edition –
      Scott W. Ambler, SIGS Books & Multimedia 2000.
   • Enterprise Architect UML modeling tool
   • Cetus Links on Objects & Components
   • Escrevendo Casos de Uso Eficazes – Alistair Cockburn, Editora Bookman 2003.
   • Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos – Erich
      Gamma… [et al.], Editora Bookman 2000.
   • Engenharia de Software: Teoria e Prática – Shari Lawrence Pfleeger, Prentice Hall 2003.




MBA-ENGSOFT                        Análise e Projeto Orientado a Objetos                   20
© 2005 Halan Ridolphi
ANÁLISE E PROJETO ORIENTADOS A OBJETOS

EXERCÍCIO DE MODELAGEM – CANAL 100 PRODUÇÕES

PROBLEMA:

O Canal 100 Produções é uma empresa que detém um vasto acervo com
cenas e narrações de jogos de futebol realizados no Brasil. A empresa
deseja digitalizar e organizar este acervo com vistas a gerar um novo
modelo de negócio: a venda de DVDs personalizados com jogadas. Para
isto, será necessário construir um Sistema de Informação que terá dois
objetivos principais:
    • Organizar uma base de dados que contenha todos os dados
       referentes aos jogos;
    • Realizar a separação de arquivos de jogadas digitalizadas para a
       produção de DVDs personalizados e sua cobrança.
Para cada jogo em seu acervo, o Canal 100 Produções tem uma série de
dados relacionados, a saber: os times, técnicos, escalação, substituições,
local, horário, motivo do jogo (campeonato, amistoso, etc.), placar de cada
tempo, placar final, cartões, prorrogação, disputa de pênaltis, arbitragem.
Além destas informações de súmula, a produtora tem as estatísticas do jogo
(chutes a gol, defesas, passes errados, posse de bola) que costumamos a
ver nas transmissões de TV.
A produtora conta também com uma série de jogadas que foram
digitalizadas por uma empresa externa e estão em formato MPEG. Para
cada jogada, há o texto da narração onde quase sempre são citados os
envolvidos na jogada.
Com relação aos jogadores, a produtora possui os dados como os nomes de
escalação, nome completo, data de nascimento, e também apelidos
comumente utilizados na imprensa (ex.: Zico -> Galinho de Quintino,
Roberto -> Dinamite, Pelé -> Rei).
O sistema deverá permitir a inclusão dos dados acima citados e deverá
permitir que possamos recuperar um conjunto de jogadas a partir de
detalhes passados pelo cliente, como: todos os gols marcados pelo Júnior
no Campeonato Brasileiro, todas as defesas realizadas pelo goleiro Manga
quando atuou por times do Rio, etc. Para cada jogo que teve uma jogada
catalogada, devemos gerar um arquivo digital contendo os dados desse
jogo. A partir de um número de jogadas selecionadas, o sistema irá calcular
a produção de CD pelo tempo total das jogadas mais o número de arquivos
com dados dos respectivos jogos.



MODELAGEM DE SOFTWARE:

Neste exercício, espera-se o desenvolvimento dos seguintes artefatos para
modelagem do sistema de software proposto:

   1. Modelo de Classes do Domínio
         a. Estimativa de +/- 20 classes
   2. Modelo de Casos de Uso
         a. Especificação detalhada de 2 casos de uso
   3. Diagrama de Estados
         a. Especificação detalhada de 2 diagramas


ENGENHARIA DE SOFTWARE                                                  1/2
ANÁLISE E PROJETO ORIENTADOS A OBJETOS

   4. Diagrama de Seqüência
         a. Especificação detalhada de 1 diagrama

DICAS:

1. Classes de domínio possíveis:
      Jogada, Time, Jogo, Gol, Jogador, Escalação, DVD, Cliente, Técnico.
2. Contatos para dúvidas:
      alessandro@tdi.com.br, alessandro.cerqueira@uniriotec.br




ENGENHARIA DE SOFTWARE                                                  2/2

Mais conteúdo relacionado

Mais procurados

A genética molecular 1 e
A genética molecular   1 eA genética molecular   1 e
A genética molecular 1 eCésar Milani
 
Aula de Bromatologia sobre nitrogênio e conteúdo proteico
Aula de Bromatologia sobre nitrogênio e conteúdo proteicoAula de Bromatologia sobre nitrogênio e conteúdo proteico
Aula de Bromatologia sobre nitrogênio e conteúdo proteicoJaqueline Almeida
 
Segurança e qualidade de alimentos: a gestão na indústria
Segurança e qualidade de alimentos: a gestão na indústriaSegurança e qualidade de alimentos: a gestão na indústria
Segurança e qualidade de alimentos: a gestão na indústriasenaimais
 
Doença de Parkinson
Doença de ParkinsonDoença de Parkinson
Doença de ParkinsonLaenca Unirg
 
Replicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfReplicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfEveraldo29
 
Bioquímica ii 08 eletroforese e proteínas plasmáticas (arlindo netto)
Bioquímica ii 08   eletroforese e proteínas plasmáticas (arlindo netto)Bioquímica ii 08   eletroforese e proteínas plasmáticas (arlindo netto)
Bioquímica ii 08 eletroforese e proteínas plasmáticas (arlindo netto)Jucie Vasconcelos
 
Aula 05 curso de psicopatologia - síndromes psiquiátricas
Aula 05   curso de psicopatologia - síndromes psiquiátricasAula 05   curso de psicopatologia - síndromes psiquiátricas
Aula 05 curso de psicopatologia - síndromes psiquiátricasLampsi
 
Alterações cromossômicas
Alterações cromossômicasAlterações cromossômicas
Alterações cromossômicasPatrícia Oliver
 
Disfunções hematológicas - anemias - leucemia - homofilia
Disfunções hematológicas - anemias - leucemia - homofiliaDisfunções hematológicas - anemias - leucemia - homofilia
Disfunções hematológicas - anemias - leucemia - homofiliaNEELLITON SANTOS
 
Introdução à genética
Introdução à genéticaIntrodução à genética
Introdução à genéticaAndrey Moreira
 
A Indústria Química no Brasil
A Indústria Química no Brasil   A Indústria Química no Brasil
A Indústria Química no Brasil Roeli Paulucci
 
QUÍMICA ORGÂNICA TEÓRICA
QUÍMICA ORGÂNICA TEÓRICAQUÍMICA ORGÂNICA TEÓRICA
QUÍMICA ORGÂNICA TEÓRICAautonomo
 

Mais procurados (20)

Aula 1 controle de qualidade na ind. de alimentos
Aula 1   controle de qualidade na ind. de alimentosAula 1   controle de qualidade na ind. de alimentos
Aula 1 controle de qualidade na ind. de alimentos
 
A genética molecular 1 e
A genética molecular   1 eA genética molecular   1 e
A genética molecular 1 e
 
caseína
caseínacaseína
caseína
 
Aula de Bromatologia sobre nitrogênio e conteúdo proteico
Aula de Bromatologia sobre nitrogênio e conteúdo proteicoAula de Bromatologia sobre nitrogênio e conteúdo proteico
Aula de Bromatologia sobre nitrogênio e conteúdo proteico
 
Alcalinidade
AlcalinidadeAlcalinidade
Alcalinidade
 
Anemia Falciforme
Anemia FalciformeAnemia Falciforme
Anemia Falciforme
 
Segurança e qualidade de alimentos: a gestão na indústria
Segurança e qualidade de alimentos: a gestão na indústriaSegurança e qualidade de alimentos: a gestão na indústria
Segurança e qualidade de alimentos: a gestão na indústria
 
Manual coleta de sangue
Manual coleta de sangueManual coleta de sangue
Manual coleta de sangue
 
Jogos e brincadeiras
Jogos e brincadeirasJogos e brincadeiras
Jogos e brincadeiras
 
Doença de Parkinson
Doença de ParkinsonDoença de Parkinson
Doença de Parkinson
 
Extracção do DNA
Extracção do DNAExtracção do DNA
Extracção do DNA
 
Replicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdfReplicação, transcrição e tradução da informação genética.pdf
Replicação, transcrição e tradução da informação genética.pdf
 
Bioquímica ii 08 eletroforese e proteínas plasmáticas (arlindo netto)
Bioquímica ii 08   eletroforese e proteínas plasmáticas (arlindo netto)Bioquímica ii 08   eletroforese e proteínas plasmáticas (arlindo netto)
Bioquímica ii 08 eletroforese e proteínas plasmáticas (arlindo netto)
 
Aula 05 curso de psicopatologia - síndromes psiquiátricas
Aula 05   curso de psicopatologia - síndromes psiquiátricasAula 05   curso de psicopatologia - síndromes psiquiátricas
Aula 05 curso de psicopatologia - síndromes psiquiátricas
 
Alterações cromossômicas
Alterações cromossômicasAlterações cromossômicas
Alterações cromossômicas
 
Disfunções hematológicas - anemias - leucemia - homofilia
Disfunções hematológicas - anemias - leucemia - homofiliaDisfunções hematológicas - anemias - leucemia - homofilia
Disfunções hematológicas - anemias - leucemia - homofilia
 
Introdução à genética
Introdução à genéticaIntrodução à genética
Introdução à genética
 
A Indústria Química no Brasil
A Indústria Química no Brasil   A Indústria Química no Brasil
A Indústria Química no Brasil
 
1ª Lei de Mendel
1ª Lei de Mendel1ª Lei de Mendel
1ª Lei de Mendel
 
QUÍMICA ORGÂNICA TEÓRICA
QUÍMICA ORGÂNICA TEÓRICAQUÍMICA ORGÂNICA TEÓRICA
QUÍMICA ORGÂNICA TEÓRICA
 

Destaque

Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmicoLucas Sabadini
 
Programa gestao mudasport
Programa gestao   mudasportPrograma gestao   mudasport
Programa gestao mudasportPortal NE10
 
SIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão EscolarSIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão Escolarguest34534433
 
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Fábio Silva
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLRogerio de Moraes
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao RestauranteJuliana Cindra
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributosLoiane Groner
 
[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24Loiane Groner
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
TCC 1 UNOPAR Analise de Sistemas de Informação
TCC 1 UNOPAR Analise de Sistemas de InformaçãoTCC 1 UNOPAR Analise de Sistemas de Informação
TCC 1 UNOPAR Analise de Sistemas de InformaçãoWANDERSON JONER
 

Destaque (10)

Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmico
 
Programa gestao mudasport
Programa gestao   mudasportPrograma gestao   mudasport
Programa gestao mudasport
 
SIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão EscolarSIGE - Sistema Integrado de Gestão Escolar
SIGE - Sistema Integrado de Gestão Escolar
 
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
Desenvolvimento de aplicação de Gestão Acadêmica para a Escola Técnica Estadu...
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
 
[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24[Curso Java Basico] Exercicios Aula 24
[Curso Java Basico] Exercicios Aula 24
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
TCC 1 UNOPAR Analise de Sistemas de Informação
TCC 1 UNOPAR Analise de Sistemas de InformaçãoTCC 1 UNOPAR Analise de Sistemas de Informação
TCC 1 UNOPAR Analise de Sistemas de Informação
 

Semelhante a Análise de Sistema de Gerenciamento de Acervo de Jogos

Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos ServidoresAlexandre Maia
 
FlexNet Manager Suite On-Demand Datasheet
FlexNet Manager Suite On-Demand DatasheetFlexNet Manager Suite On-Demand Datasheet
FlexNet Manager Suite On-Demand DatasheetFlexera
 
CCS COMPILADOR - PARTE II
CCS COMPILADOR -  PARTE IICCS COMPILADOR -  PARTE II
CCS COMPILADOR - PARTE IISaldit Software
 
Mudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dadosMudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dadosPolis Consulting
 
Mapeamento brb 2013 em videoaulas do provas de ti google drive
Mapeamento brb 2013 em videoaulas do provas de ti   google driveMapeamento brb 2013 em videoaulas do provas de ti   google drive
Mapeamento brb 2013 em videoaulas do provas de ti google driveffabii
 
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)André Luiz Jamarino Abekawa
 
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de Software
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de SoftwareQUALIDADE DE SOFTWARE VT- Avaliação de Produto de Software
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de SoftwareDiogo Rocha Ferreira de Menezes
 
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...Walter Coan
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Systemcenter2012r2 140928162048-phpapp02
Systemcenter2012r2 140928162048-phpapp02Systemcenter2012r2 140928162048-phpapp02
Systemcenter2012r2 140928162048-phpapp02Juliana Borges
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010Rafael Leonhardt
 
Seminario semi-final PETIC Dantech
Seminario semi-final PETIC DantechSeminario semi-final PETIC Dantech
Seminario semi-final PETIC Dantechursulacampos
 
eboxx® - Central Monitoring
eboxx® - Central Monitoringeboxx® - Central Monitoring
eboxx® - Central MonitoringOhio University
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_finaluserrx
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 

Semelhante a Análise de Sistema de Gerenciamento de Acervo de Jogos (20)

Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos Servidores
 
Presentation ii
Presentation iiPresentation ii
Presentation ii
 
FlexNet Manager Suite On-Demand Datasheet
FlexNet Manager Suite On-Demand DatasheetFlexNet Manager Suite On-Demand Datasheet
FlexNet Manager Suite On-Demand Datasheet
 
Openday PUC-RIO - Engenharia de Requisitos
Openday PUC-RIO - Engenharia de RequisitosOpenday PUC-RIO - Engenharia de Requisitos
Openday PUC-RIO - Engenharia de Requisitos
 
Manual dsg tools_3.2
Manual dsg tools_3.2Manual dsg tools_3.2
Manual dsg tools_3.2
 
CCS COMPILADOR - PARTE II
CCS COMPILADOR -  PARTE IICCS COMPILADOR -  PARTE II
CCS COMPILADOR - PARTE II
 
Mudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dadosMudança de paradigma no monitoramento de banco de dados
Mudança de paradigma no monitoramento de banco de dados
 
Mapeamento brb 2013 em videoaulas do provas de ti google drive
Mapeamento brb 2013 em videoaulas do provas de ti   google driveMapeamento brb 2013 em videoaulas do provas de ti   google drive
Mapeamento brb 2013 em videoaulas do provas de ti google drive
 
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)Manual Sistema - TCC André L. J. Abekawa (Parte 01)
Manual Sistema - TCC André L. J. Abekawa (Parte 01)
 
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de Software
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de SoftwareQUALIDADE DE SOFTWARE VT- Avaliação de Produto de Software
QUALIDADE DE SOFTWARE VT- Avaliação de Produto de Software
 
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
SQLSaturday 2019 - Desafios e tendências na utilização de bancos de dados par...
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Systemcenter2012r2 140928162048-phpapp02
Systemcenter2012r2 140928162048-phpapp02Systemcenter2012r2 140928162048-phpapp02
Systemcenter2012r2 140928162048-phpapp02
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010
 
Seminario semi-final PETIC Dantech
Seminario semi-final PETIC DantechSeminario semi-final PETIC Dantech
Seminario semi-final PETIC Dantech
 
eboxx® - Central Monitoring
eboxx® - Central Monitoringeboxx® - Central Monitoring
eboxx® - Central Monitoring
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_final
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
.NET Micro Framework
.NET Micro Framework.NET Micro Framework
.NET Micro Framework
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 

Mais de Halan Ridolphi

Estudo de caso_com_app_halan
Estudo de caso_com_app_halanEstudo de caso_com_app_halan
Estudo de caso_com_app_halanHalan Ridolphi
 
Códigos de Ética Profissional
Códigos de Ética ProfissionalCódigos de Ética Profissional
Códigos de Ética ProfissionalHalan Ridolphi
 
Estudo de caso_com_ferramentas_da_qualidade_halan
Estudo de caso_com_ferramentas_da_qualidade_halanEstudo de caso_com_ferramentas_da_qualidade_halan
Estudo de caso_com_ferramentas_da_qualidade_halanHalan Ridolphi
 
Planejamento do processo_de_software_halan
Planejamento do processo_de_software_halanPlanejamento do processo_de_software_halan
Planejamento do processo_de_software_halanHalan Ridolphi
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanHalan Ridolphi
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halanHalan Ridolphi
 
Artigo halan t14_seminário21102006
Artigo halan t14_seminário21102006Artigo halan t14_seminário21102006
Artigo halan t14_seminário21102006Halan Ridolphi
 
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007Halan Ridolphi
 
Artigo halan t14_seminário07072007
Artigo halan t14_seminário07072007Artigo halan t14_seminário07072007
Artigo halan t14_seminário07072007Halan Ridolphi
 
Artigo halan t14_seminário10112007
Artigo halan t14_seminário10112007Artigo halan t14_seminário10112007
Artigo halan t14_seminário10112007Halan Ridolphi
 
Como Conduzir Reuniões Eficazes
Como Conduzir Reuniões EficazesComo Conduzir Reuniões Eficazes
Como Conduzir Reuniões EficazesHalan Ridolphi
 

Mais de Halan Ridolphi (13)

Estudo de caso_com_app_halan
Estudo de caso_com_app_halanEstudo de caso_com_app_halan
Estudo de caso_com_app_halan
 
Códigos de Ética Profissional
Códigos de Ética ProfissionalCódigos de Ética Profissional
Códigos de Ética Profissional
 
Governança TI halan
Governança TI halanGovernança TI halan
Governança TI halan
 
Estudo de caso_com_ferramentas_da_qualidade_halan
Estudo de caso_com_ferramentas_da_qualidade_halanEstudo de caso_com_ferramentas_da_qualidade_halan
Estudo de caso_com_ferramentas_da_qualidade_halan
 
Planejamento do processo_de_software_halan
Planejamento do processo_de_software_halanPlanejamento do processo_de_software_halan
Planejamento do processo_de_software_halan
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halan
 
Artigo halan t14_seminário21102006
Artigo halan t14_seminário21102006Artigo halan t14_seminário21102006
Artigo halan t14_seminário21102006
 
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
 
Artigo halan t14_seminário07072007
Artigo halan t14_seminário07072007Artigo halan t14_seminário07072007
Artigo halan t14_seminário07072007
 
Artigo halan t14_seminário10112007
Artigo halan t14_seminário10112007Artigo halan t14_seminário10112007
Artigo halan t14_seminário10112007
 
Governança TI
Governança TIGovernança TI
Governança TI
 
Como Conduzir Reuniões Eficazes
Como Conduzir Reuniões EficazesComo Conduzir Reuniões Eficazes
Como Conduzir Reuniões Eficazes
 

Análise de Sistema de Gerenciamento de Acervo de Jogos

  • 1. POLI / UFRJ MBA Engenharia de Software – Turma 2004 Disciplina: Análise e Projeto Orientado a Objetos Professor: Alessandro Cerqueira Aluno: Halan Ridolphi Alves MBA-ENGSOFT Análise e Projeto Orientado a Objetos 1 © 2005 Halan Ridolphi
  • 2. Sumário 1 Requisitos ................................................................................................................. 3 1.1 Contexto de Negócio ........................................................................................... 3 1.2 Escopo do Software ............................................................................................ 3 1.3 Requisitos de Negócio ......................................................................................... 3 1.4 Requisitos Funcionais .......................................................................................... 3 1.5 Requisitos Não Funcionais ................................................................................... 4 2 Casos de Uso ............................................................................................................ 5 2.1 Conceitos .......................................................................................................... 5 2.2 Autenticar Acesso de Cliente ................................................................................ 7 2.3 Registrar no Canal 100 Loja Virtual ....................................................................... 7 2.4 Gerenciar Jogos ................................................................................................. 8 3 Modelo de Classes.................................................................................................... 11 3.1 Classes de Negócio – Diagrama III ..................................................................... 11 3.2 Classes de Negócio – Diagrama II....................................................................... 12 3.3 Classes de Negócio – Diagrama I ........................................................................ 13 4 Diagramas de Seqüência ........................................................................................... 14 4.1 Autenticar Acesso de Cliente .............................................................................. 14 4.2 Gerenciar Jogos ............................................................................................... 15 5 Diagramas de Transição de Estado ............................................................................. 16 5.1 Estados de objeto DVD ..................................................................................... 16 6 Diagramas de Atividade ............................................................................................ 17 6.1 Cliente selecionando Jogadas visando DVD personalizado ....................................... 17 7 Projeto Arquitetural .................................................................................................. 18 8 Bibliografia ............................................................................................................. 20 MBA-ENGSOFT Análise e Projeto Orientado a Objetos 2 © 2005 Halan Ridolphi
  • 3. 1 Requisitos Este documento tem por objetivo detalhar alternativa básica de solução técnica para construção do sistema de software proposto visando automação das necessidades de negócio do cliente Canal 100 Produções. Neste sentido, com enfoque nas funcionalidades que devem ser providas pelo sistema de software depois de construído, os seguintes modelos de software serão apresentados: requisitos, casos de uso, modelo de classes, diagramas de seqüência e diagramas de transição de estado. Este seção visa descrever todos os requisitos a serem satisfeitos e alcançados pelo sistema de software a ser desenvolvido. 1.1 Contexto de Negócio O Canal 100 Produções é uma empresa que detém um vasto acervo com cenas e narrações de jogos de futebol realizados no Brasil. A empresa deseja digitalizar e organizar este acervo com vistas a gerar um novo modelo de negócio: a venda de DVDs personalizados com jogadas. 1.2 Escopo do Software A construção de um novo sistema de software objetiva o gerenciamento de acervo de cenas e narrações de jogos de futebol, visando suportar a confecção de DVDs personalizados com as jogadas e dados sobre os jogos selecionados pelos clientes do Canal 100 Produções. Neste sentido, as seguintes funcionalidades principais deverão ser reunidas pelo sistema de software proposto: • Organizar uma base de dados que contenha todos os dados referentes aos jogos; • Realizar a separação de arquivos de jogadas digitalizadas para a produção de DVDs personalizados e sua cobrança. 1.3 Requisitos de Negócio Para cada jogo em seu acervo, o Canal 100 Produções tem uma série de dados relacionados ao mesmo, a saber: os times, técnicos, escalação, substituições, local, horário, motivo do jogo (campeonato, amistoso, etc.), placar de cada tempo, placar final, cartões, prorrogação, disputa de pênaltis, arbitragem. Além destas informações de súmula, a produtora tem as estatísticas do jogo (chutes agol, defesas, passes errados, posse de bola) que costumamos a ver nas transmissões de TV. A produtora conta também com uma série de jogadas que foram digitalizadas por uma empresa externa e estão em formato MPEG. Para cada jogada, há o texto da narração onde quase sempre são citados os envolvidos na jogada. Com relação aos jogadores, a produtora possui os dados como os nomes de escalação, nome completo, data de nascimento, e também apelidos comumente utilizados na imprensa (ex.: Zico -> Galinho de Quintino, Roberto -> Dinamite, Pelé -> Rei). 1.4 Requisitos Funcionais O sistema de software deverá prover as funcionalidades a seguir: • Organização de base de dados que contenha todos os dados referentes acervo de jogos; • Inclusão dos dados de jogos do acervo supracitado; • Recuperação de conjunto de jogadas a partir de detalhes passados pelo cliente do Canal 100 Produções, como: todas os gols marcados pelo Júnior no Campeonato Brasileiro, todas as defesas realizadas pelo Manga quando atuou por times do Rio, etc. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 3 © 2005 Halan Ridolphi
  • 4. Para cada jogo que teve uma jogada catalogada, devemos gerar um arquivo digital contendo os dados desse jogo. A partir de um número de jogadas selecionadas, o sistema de software irá calcular a produção de CD pelo tempo total das jogadas mais o número de arquivos com dados dos respectivos jogos. • Realização da separação adequada de arquivos de jogadas digitalizadas para a produção de DVDs personalizados e sua cobrança. 1.5 Requisitos Não Funcionais A construção do sistema de software deve atentar para os quesitos de qualidade, restrições operacionais e tecnologia de desenvolvimento de software, a saber: • A solução de gerenciamento da base de dados referente ao acervo de jogos deve ser amigável, de fácil aprendizagem, baseada em tecnologia web e operada através de softwares navegadores da Internet; • O módulo de interface do usuário Web será codificado com utilização da linguagem de programação JSP/Java, utilização de Framework STRUTS, servidor de aplicação JBOSS e padrões de projeto J2EE; • A conexão entre usuário e sistema deve ser segura orientada pela combinação dos protocolos HTTP e SSL; • A base de informações de jogos será armazenada de forma centralizada, em um sistema gerenciador de banco de dados Oracle; • O desempenho de execução deverá ser considerado nas operações de publicação de jogadas; • Precisão no cálculo de montagem e personalização de DVDs. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 4 © 2005 Halan Ridolphi
  • 5. 2 Casos de Uso 2.1 Conceitos 2.1.1 Atores Um ator é uma entidade externa que desempenha um papel na interação com o sistema de software. Um ator pode ser um sistema externo que necessita de alguma informação do sistema de software sendo modelado. 2.1.2 Casos de Uso Um caso de uso descreve um conjunto particular de funcionalidades do sistema de software, modelando a interação que uma entidade externa, denominada ator (usuário, dispositivo, outro sistema), realiza com o sistema. Um caso de uso é baseado num cenário descritivo de como a entidade externa interage com o sistema de software, identificando eventos que podem ocorrer e descrevendo a resposta do sistema para estes eventos. Um caso de uso é uma seqüência de eventos completa, descrita a partir de uma perspectiva ou uma situação de uso particular do sistema de software. Casos de uso fornecem uma visão do sistema de software que está focada principalmente na funcionalidade. Este artefato formará uma base de concordância entre o cliente e desenvolvedores sobre o que o sistema de software deve fazer. Casos de Uso também possibilitam a validação se o sistema de software está sendo modelado em conformidade com regras de funcionamento esperadas pelo cliente. Sempre que possível, utilizamos o Modelo de Casos de Uso como ferramenta de apoio à garantia de qualidade: 1. Inspeção de requisitos (identificar defeitos na definição): a. Estão corretos, consistentes, sem ambigüidades, completos; 2. Validação de requisitos (conceber o software correto): a. Estão refletindo a realidade, sem omissão, sem informação estranha; MBA-ENGSOFT Análise e Projeto Orientado a Objetos 5 © 2005 Halan Ridolphi
  • 6. ud Diagrama de Casos de Uso Domínio de Casos de Uso do Canal 100 Produções Autenticar Acesso de Cliente Sistema de Controle de Acesso «extend» Registrar no Canal 100 Loj a Virtual Cliente Compor DVD Escolher Jogada Personalizado «include» Sistema de Banco de Dados Gerenciar Jogadores Gerenciar Times de Futebol Gerenciar Jogos Funcionário Catalogar Jogada Figura 1: Alguns Casos de Uso da Aplicação Canal 100 Produções Recomenda-se a utilização de pacotes de casos de uso para possibilitar melhor compreensão e controle dos domínios (ou grupos) de funcionalidades requeridos pelo sistema de software. 2.1.3 Protótipo da Interface do Usuário Descrição da forma de apresentação do sistema de software. Como é realizada a interação com o usuário e o que será utilizado para construí-la. Os protótipos da interface do usuário comumente são abstraídos a partir das funcionalidades (casos de uso) que os participantes (atores) obtêm ao interagirem com o sistema de software. Os cenários descritos nos Casos de Uso são os alicerces para elaboração desses protótipos. Um dado protótipo da interface do usuário pode compreender a realização de um conjunto de Casos de Uso. Os protótipos também constituem uma ferramenta eficaz para captura de requisitos do software. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 6 © 2005 Halan Ridolphi
  • 7. 2.2 Autenticar Acesso de Cliente 2.2.1 Descrição A aplicação de loja on-line do Canal 100 Produções armazena informações básicas dos consumidores de seus produtos e serviços. Tais clientes necessitam autenticar-se (logon) junto ao sistema para obterem acesso aos seus recursos. 2.2.2 Atores 2.2.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca de jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e demais informações no domínio da aplicação do Canal 100 Produções. 2.2.2.2 Cliente Representa um consumidor dos produtos e serviços da loja virtual do Canal 100. 2.2.2.3 Sistema de Controle de Acesso Sistema externo encarregado de autenticar e autorizar o acesso aos recursos no domínio da rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa a autoridade em segurança da informação que controle os privilégios dos perfis de usuários da aplicação. 2.2.3 Fluxo de Eventos Autenticação (logon) {Fluxo Básico} 1. O caso de uso começa quando Cliente acessa a página de Logon 2. Cliente digita nome da conta e senha 3. Sistema valida informações digitadas 4. Caso os dados sejam validados então o Cliente utilizará os recursos do Sistema 5. O caso de uso termina Falha na Autenticação (access denied) {Fluxo Alternativo} 1. Altera o passo 4 do fluxo “Autenticação” 2. Sistema invalida os dados digitados pelo Cliente 3. Prossiga para o passo 2 do fluxo “Autenticação” Registrar Cliente {Fluxo Alternativo} 1. Altera o passo 4 do fluxo “Autenticação” 2. Prossiga para o caso de uso “Registrar no Canal 100 Loja Virtual” 3. Prossiga para o passo 1 do fluxo “Autenticação” 2.3 Registrar no Canal 100 Loja Virtual 2.3.1 Descrição Um cliente que não é registrado necessitará digitar seus detalhes e obter uma conta na loja virtual do Canal 100. Isto normalmente incluirá detalhes tais como nome, email, endereço, telefone, preferências e etc. Este caso de uso estende o caso de uso “Autenticar Acesso de Cliente” nas situações onde o usuário não tem uma conta na loja virtual. Uma vez registrado o cliente pode completar o caso de uso “Autenticar Acesso de Cliente”. Um cliente usará este caso de uso para registrar-se a si próprio na loja virtual se ele ainda não for membro registrado. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 7 © 2005 Halan Ridolphi
  • 8. 2.3.2 Atores 2.3.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca de jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e demais informações no domínio da aplicação do Canal 100 Produções. 2.3.2.2 Cliente Representa um consumidor dos produtos e serviços da loja virtual do Canal 100. 2.3.2.3 Sistema de Controle de Acesso Sistema externo encarregado de autenticar e autorizar o acesso aos recursos no domínio da rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa a autoridade em segurança da informação prestando serviços de controle de acesso. 2.3.3 Restrições 2.3.3.1 Pós-Condicões Cliente registrado. 2.3.3.2 Pré-Condições Cliente ainda não registrado. O cliente não deve estar registrado no Sistema. 2.3.4 Fluxo de Eventos Efetuar registro de cliente {Fluxo Básico} 1. Cliente digita seu nome de conta preferido, detalhes pessoais e senha. 2. Sistema valida se nome de conta não está em uso 3. Caso os dados sejam aceitos então o Cliente é registrado na loja virtual 4. Caso os dados sejam recusados o Cliente é compelido a tentar novamente fornecendo outro nome de conta 2.4 Gerenciar Jogos 2.4.1 Descrição Este caso de uso descreve todos os aspectos da forma como o Funcionário gerencia as informações de jogos de futebol mantidas em repositório base de dados do Canal 100 Produções. O Funcionário estará apto a criar, atualizar, apagar e consultar os dados dos jogos desde que ele esteja operando com conta que tenha permissão de acesso. 2.4.2 Atores 2.4.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca de jogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores e demais informações no domínio da aplicação do Canal 100 Produções. 2.4.2.2 Funcionário Representa um empregado da loja virtual do Canal 100. 2.4.3 Restrições 2.4.3.1 Pós-Condicões Cadastro de jogos de futebol atualizado. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 8 © 2005 Halan Ridolphi
  • 9. 2.4.3.2 Pré-Condições Funcionário utiliza nome de conta com privilégios para acessar os recursos administrativos e de manutenção da loja virtual do Canal 100 Produções. 2.4.4 Fluxo de Eventos Cadastrar Novo Jogo {Fluxo Básico} 1. O caso de uso inicia quando o Funcionário seleciona a opção “Cadastrar” na tela de “Gerenciamento de Jogos”. 2. O Sistema apresenta na tela um formulário vazio com os campos de informação associados ao jogo para o Funcionário completá-los. A seguir, alguns destes campos são mencionados: Nomes dos Times (obrigatório) Estádio (obrigatório) Arbitragem (obrigatório) Motivo do Jogo {Campeonato, Amistoso} Escalações Local Data e Horário Placar do primeiro tempo Placar do segundo tempo Placar final Número de Cartões Amarelo Total de Substituições Nota: Os campos obrigatórios deverão ser indicados apropriadamente para o usuário da aplicação. 3. O Funcionário completa o preenchimento do formulário e seleciona a opção de salvar os dados. 4. O Sistema checa a consistência das entradas e grava os detalhes do novo jogo 5. O Sistema informa ao Funcionário que as informações para novo jogo foram armazenadas 6. O Sistema atualiza a tela “Gerenciamento de Jogos” para mostrar os detalhes do novo jogo recém cadastrado Apagar Jogo {Fluxo Alternativo} 1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns dados de jogos 2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com os dados digitados escolhendo a opção “Consultar” na tela “Gerenciamento de Jogos” 3. O Sistema retorna uma lista de jogos encontrados na pesquisa 4. O Funcionário seleciona uma ou mais jogos da lista e então seleciona a opção “Apagar” na tela “Gerenciamento de Jogos” 5. O Sistema indaga ao usuário se ele quer mesmo remover os jogos selecionados 6. Caso sim o Sistema remove os jogos escolhidos da base de dados Atualizar Jogo {Fluxo Alternativo} 1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns dados de jogos 2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com os dados digitados escolhendo a opção “Consultar” 3. O Sistema retorna uma lista de jogos encontrados na pesquisa 4. O Funcionário escolhe um jogo e então seleciona a opção “Atualizar” na tela “Gerenciamento de Jogos” 5. O Sistema apresenta o formulário de edição dos dados jogo escolhido 6. O Funcionário altera os dados necessários do jogo no formulário de edição MBA-ENGSOFT Análise e Projeto Orientado a Objetos 9 © 2005 Halan Ridolphi
  • 10. 7. O Funcionário completa a edição dos dados e seleciona a opção de salvar as modificações. 8. O Sistema checa a consistência das entradas e grava os detalhes do novo jogo 9. O Sistema informa ao Funcionário que as modificações no jogo escolhido foram gravadas 10. O Sistema atualiza a tela “Gerenciamento de Jogos” para mostrar os detalhes do jogo cujos dados foram recém modificados Consultar Jogo {Fluxo Alternativo}. 1. O Funcionário preenche em formulário na tela “Gerenciamento de Jogos” alguns dados de jogos 2. O Funcionário solicita que o Sistema recupere todos os jogos que combinem com os dados digitados escolhendo a opção “Consultar” 3. O Sistema retorna uma lista de jogos encontrados na pesquisa 4. O Funcionário escolhe um jogo e então seleciona a opção “Visualizar” na tela “Gerenciamento de Jogos” 5. O Sistema apresenta o formulário de visualização dos detalhes do jogo escolhido Nota: O usuário está apto a selecionar outros jogos e visualizar estes jogos ao mesmo tempo. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 10 © 2005 Halan Ridolphi
  • 11. 3 Modelo de Classes Descreve aspectos estruturais, ou seja, as classes de objetos, interfaces e seus relacionamentos, os quais formam os elementos de construção do sistema de software. Classes de negócio são representações de objetos do mundo real tais como, lugares, coisas, conceitos e eventos que são pertinentes ao nosso domínio do problema. Cada classe representa uma coleção de objetos similares. Um objeto é uma pessoa, lugar, coisa, conceito, evento, tela ou relatório que é relevante para o sistema de software em construção. Objetos conhecem coisas (isto é, eles têm dados) e fazem coisas (isto é, eles têm funcionalidades). 3.1 Classes de Negócio – Diagrama III cd Diagrama de Classe III +Fundamento mantida por +Time TimeFutebol PosseDeBola 1 1 - nome: char - tempoPosse1Tempo: int - apelido: int - tempoPosse2Tempo: int - totalSocios: int - tamanhoTorcida: int Defesa - anoFundacao: int +Estatística 1 - patrocinadores: char - minutosMomentoEvento: int - intervaloPartida: int - temEstadioProprio: boolean - foiRealizadaNaProrrogacao: boolean +Participante 2 +Clube 1 0..* +Fundamento * pertence a acontece em registrado em executado por Jogada realizado em - nomeArquivo: char 0..* - tempoCena: int - preco: float +Cena da Partida +Atleta * - ehFilmeColorido: boolean 0..* Pessoa Jogador cenas registrados em +Partida 1+Partida 1 +Partida 0..* - apelido: char - posicaoEmCampo: char Jogo - totalParticipacoesCampeonatoBrasileiro: int +Partida - motivo: char 1 +Atleta 1 1 - dataRealizacao: char - horaInicioPartida: char - tipoDecisaoPartida: char ChuteAGol +Estatística +Partida - tempoTotalPartida: int +Partida acontece em - placarFinal: char - minutosMomentoEvento: int 0..* 1 - 1 placarDisputaPenaltis: char executado por +Partida 1 +Partida 1 tomado por acontece em acontece em acontece em +Estatística +Fundamento * +Troca Jogador 0..* * PasseErrado Substituicao +Estatística 0..* 0..* - minutosMomentoEvento: int - minutosMomentoEvento: int Cartao - tipo: char - minutosMomentoEvento: int Figura 2a: Classes de Negócio MBA-ENGSOFT Análise e Projeto Orientado a Objetos 11 © 2005 Halan Ridolphi
  • 12. 3.2 Classes de Negócio – Diagrama II cd Diagrama de Classe II +Gol Penalti 0..* - foiConvertido: boolean 0..* ocorrido em registrado em Prorrogacao - placar1Tempo: char +Partida 0..* - placar2Tempo: char 0..* complementado por - tempoTotal: int Jogo - placarFinal: char 0..1 1 Jogada - motivo: char +Partida cenas registrados em +Cena da Partida - nomeArquivo: char - dataRealizacao: char - tempoCena: int - horaInicioPartida: char 1 0..* - preco: float - tipoDecisaoPartida: char marcado em registrado em - ehFilmeColorido: boolean - tempoTotalPartida: int - placarFinal: char 1 0..* - placarDisputaPenaltis: char +Partida 1 +Partida 0..* 0..* 0..* Gol configurado com - minutosMomentoEvento: int - intervaloPartida: int 1 - foiMarcadoNaProrrogacao: boolean +Jogadores 1 1 1 Escalacao executado por - listaTitulares: char +Jogadores - listaReservas: char marcador 1..* sofredor +Grupo 0..* marcado por escalado em escalado com +Participante 2 0..* 0..* +Atleta 1..* 0..* TimeFutebol +Time Pessoa - nome: char Jogador 1 +Atleta pertence a +Clube - apelido: int - totalSocios: int - apelido: char * 1 - tamanhoTorcida: int - posicaoEmCampo: char - anoFundacao: int - totalParticipacoesCampeonatoBrasileiro: int - patrocinadores: char - temEstadioProprio: boolean Figura 2b: Classes de Negócio MBA-ENGSOFT Análise e Projeto Orientado a Objetos 12 © 2005 Halan Ridolphi
  • 13. 3.3 Classes de Negócio – Diagrama I cd Diagrama de Classe I Pessoa Endereco sede fica em - nome: char - sexo: char - rua: char 1 - e-mail: char mora - bairro: char - telefone: char - cidade: char 1 0..1 1 - dataNascimento: char - estado: char - naturalidade: char - pais: char - nacionalidade: char - cep: char localizado em - escolaridade: int 0..1 Estadio - capacidadePublico: int Jogador Cliente - proprietario: char - apelido: char - numeroCartaoDeCredito: char - posicaoEmCampo: char - timeTorcedor: char - totalParticipacoesCampeonatoBrasileiro: int 0..1 +Devedor 1 +Consumidor 1 +Atleta * TimeFutebol consome pertence a +Clube - nome: char 1 - apelido: int +Mercadoria 0..* - totalSocios: int - tamanhoTorcida: int Tecnico - anoFundacao: int DVD - apelido: char - patrocinadores: char - numeroID: int - estiloComando: char - temEstadioProprio: boolean - statusProduto: short - totalCompeticoesCampeao: int - tempoFilme: int +Participante 2 - precoVenda: float - quantidadeJogadas: int +Produto Arbitro - dataProducao: char - dataEntrega: char 1 - federacaoFutebol: char - totalAnosExperiencia: int + selecionarJogada() : void - jaApitouCopadoMundo: boolean + descartarJogada() : void +Juiz 1 +Auxiliar 1.. + notificarCliente() : void + verificarPagamento() : void + notificarLoja() : void executado por +Produto auxilia compõe compra +Peça_de_Produto 1..* Jogada +Partida 0..* +Partida 0..* - nomeArquivo: char +Cena da Partida cenas registrados em +Partida - tempoCena: int Jogo 0..* 1 - preco: float - ehFilmeColorido: boolean +Partida - apita motivo: char - dataRealizacao: char 0..* - horaInicioPartida: char - tipoDecisaoPartida: char - tempoTotalPartida: int +Pagamento 0..1 - placarFinal: char - placarDisputaPenaltis: char CobrancaDVD compra +Dívida - tipoPagamento: char - precoProduto: float 0..* - dataCobranca: char - horaCobranca: char - status: int Figura 2c: Classes de Negócio MBA-ENGSOFT Análise e Projeto Orientado a Objetos 13 © 2005 Halan Ridolphi
  • 14. 4 Diagramas de Seqüência Descrevem aspectos do comportamento dinâmico do sistema de software a ser desenvolvido, especificamente, demonstram a cooperação dos objetos nos cenários propostos pelos casos de uso. 4.1 Autenticar Acesso de Cliente sd Autenticar Acesso de Cliente Tela Logon GerenciadorSegurança Clientes Consumidor :Cliente Logon ValidarCliente(Consumidor) RecuperaDetalhesCliente(Consumidor) {DetalhesCliente} Validar Resultado : {Ok / Access Denied} Um Cliente deverá autenticar-se (logon) junto ao Sistema antes de poderem utilizar os serviços e produtos da Loja Virtual do Canal 100 Produções, notamente, realizar compras de DVDs personalidades. Figura 3a: Objetos e Interações para Autenticar Acesso de Cliente Ressalta-se que o diagrama acima expressa o padrão MVC (Model-View-Controller), comumente empregada na construção de grande variedade de aplicações que requerem interface do usuário, lógica de aplicação ou negócio e persistência de dados. A seguir, comentamos legenda para os alguns dos possíveis elementos no diagrama de seqüência e seus ícones estereotipados. Elemento Ator: Uma instancia de um Ator em tempo de execução. cd Diagrama de Actor1 Objeto: Um elemento padrão, instância de uma classe qualquer, não especializado. cd Diagrama de Colabora Obj ect1 Elemento de Fronteira: Representa uma interface do usuário ou dispositivo de entrada e saída. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 14 © 2005 Halan Ridolphi
  • 15. cd Diagrama de C Screen1 Elemento de Entidade: Um elemento persistente, tipicamente implementado como objeto ou tabela de banco de dados. sd Modelo de Inte Entity1 Elemento Controlador: O componente ativo que control qual trabalho será feito, quando e como. sd Modelo de Inte Controller1 4.2 Gerenciar Jogos sd Gerenciar Jogos (fluxo cadastrar novo jogo) Tela Formulário ControladorJogos GerenciadorPersistencia Jogos Consumidor Gerenciamento de Edição :Cliente de Jogos de Jogos Cadastrar () MostrarFormularioVazio () Salvar SalvarJogo(Jogo) ChecarConsistencia(Jogo) TornarPersistente(Jogo) InserirJogo(Jogo) {DetalhesJogo} {Detalhes Jogo} {Detalhes Jodo Gravado} ApresentarMensagemJogoGravado AtualizarDadosNaTela(Jogo) No formulário vazio de edição de jogos campos de informação associados ao jogo são apresentados ao Funcionário para que ele possa completá-los. A seguir, alguns destes campos são mencionados: . Nomes dos Times (obrigatório) . Estádio (obrigatório) . Arbitragem (obrigatório) . Motivo do Jogo {Campeonato, Amistoso} . Escalações . Local . Data e Horário . Placar final . Número de Cartões Amarelo . Total de Substituições Figura 3b: Objetos e Interações para Cadastrar Novo Jogo MBA-ENGSOFT Análise e Projeto Orientado a Objetos 15 © 2005 Halan Ridolphi
  • 16. 5 Diagramas de Transição de Estado Descrevem aspectos do comportamento dinâmico do sistema de software a ser desenvolvido, especificamente, demonstram as mudanças de estados ou ciclos de vida para objetos do sistema de software em operação. 5.1 Estados de objeto DVD sm DVD Início Consumidor consulta jogada Processando Personalizando [Todas jogadas selecionadas] Cobrando + Do Action / Selecionar Jogada + Do Action / Verificar Pagamento [Restam jogadas a selecionar] /Selecionar próxima jogada [Pagamento Ok] [Algunas jogadas selecionadas estão sem arquivo MPEG] Jogada catalogada [Arquivo de cena disponível] Fabricando + On Exit / Verificar Embalagem + Do Action / Gravar Jogadas DVD pronto para entrega ao consumidor Aguardando [Pagamento não Ok] Expedindo + Do Action / Postar no Correio Jogada catalogada [Arquivo MPEG não disponível] Consumidor cancelando a compra Serviço de correio entrega mercadoria a consumidor Cancelado Entregue Rej eitado + On Entry / Notificar Cliente via E-mail + On Entry / Notificar Loja Virtual Arquivado Figura 4: Estados de objeto DVD MBA-ENGSOFT Análise e Projeto Orientado a Objetos 16 © 2005 Halan Ridolphi
  • 17. 6 Diagramas de Atividade Descrevem aspectos do comportamento dinâmico do sistema de software a ser desenvolvido, mais especificamente, modelam mapa de navegação pela interface do usuário, padrões de usabilidade e fluxos de processos do sistema de software. 6.1 Cliente selecionando Jogadas visando DVD personalizado ad Mapa de Navegação Ciclo de interação com Cliente para seleção de Jogadas visando produção de DVD personalizado Cliente Início Apresentar Tela [não] de Autenticação (Logon) botão entrar Autenticar Cliente [sim] Apresentar Apresentar Jogadas Jogadas Combinadas Catalogos por com Critérios de Jogos Busca Apresentar Tela [sim] de Consulta de [sim] Jogadas Apresentar Apresentar Mensagem [não] [não] Mensagem "Nenhuma "Nenhuma Jogada Jogada Encontrada." Catalogada." Recuperar Recuperar Jogadas v ia botão recuperar botão consultar Jogadas Critérios de Catalogadas por Busca Jogos botão logoff botão cancelar Efetuar Logoff Limpar Tela de Consulta de Jogadas Fim Figura 5: Mapa de Navegação MBA-ENGSOFT Análise e Projeto Orientado a Objetos 17 © 2005 Halan Ridolphi
  • 18. 7 Projeto Arquitetural A arquitetura de software visa detalhar estrutura dos componentes do sistema de software, seus inter-relacionamentos e topologia, diretrizes de projeto (modularização, coesão, acoplamento) e evolução ao longo do tempo. Visa também especificar o projeto de subsistemas, mostrando dependências e interações. A aplicação Canal 100 será inteiramente codificada em linguagem Java framework J2EE, utilizando componentes do framework Struts para interface do usuário, mecanismo do Active Directory para autenticação e controle de acesso, ORACLE como ferramenta SGDB para armazenamento, recuperação e indexação de informações e rodando sob servidor de aplicação JBOSS. A aplicação será organizada em 4 camadas (coleção de classes ou componentes) de software, a saber: Persistência de Dados, Lógica de Negócio, Interface do Usuário e Infra- Estrutura de Serviços Comuns. cd Arquitetura Consumidor :Cliente Administrador : Funcionário Classes de Interface do Usuário Classes de Interface do Usuário Classes de Lógica de Negócio Classes de Infra-Estrutura Serviços Comuns Classes de Lógica de Negócio Classes de Infra-Estrutura Classes de Persistência de Dados Classes de Serviços Comuns Persistência de Dados Mecanismo de Microsoft Activ e Persistência Oracle Diretory System : 9i :Sistema de Sistema de Banco de Dados Controle de Acesso Figura 6: Arquitetura de Camadas As classes de interface do usuário contêm o código que provê a capacidade de usuários interagem com aplicação. Classes de interface do usuário tipicamente implementam uma interface do usuário gráfica para aplicação, embora outros estilos de interface, tais como comando de voz, HTML, multimídia, são também implementados via esta categoria de classes. Por exemplo, uma interface do usuário gráfica pode ser implementada como uma coleção de classes de menus, telas de edição, painéis, caixas de seleção, caixas de listagem, relatórios. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 18 © 2005 Halan Ridolphi
  • 19. As classes de negócio implementam conceitos pertinentes ao domínio da aplicação, tais como, “Jogo” ou “DVD”, focando nos aspectos de dados dos objetos de negócio e mais comportamentos específicos para conceitos de negócio individuais. Cabe a estas classes também implementar a lógica de negócio que envolve a colaboração de vários objetos, os quais são instâncias de distintas classes de negócio. As classes de persistência de dados encapsulam a capacidade para armazenar, recuperar, atualizar e remover objetos permanentemente sem revelar detalhes secretos da tecnologia de armazenamento. A estratégia de uso de um framework de persistência habilita-nos utilizar distintas tecnologias de armazenamento sem afetar ou necessidade de alterar nossa aplicação. As classes de infra-estrutura de serviços comuns provêem os serviços específicos do sistema operacional ou encapsulam funcionalidades fornecidas por ferramentas e aplicações de terceiros. Estas classes isolam nossa aplicação do sistema operacional, tornando a aplicação portável entre ambientes via o empacotamento de serviços específicos do SO. Estas classes tipicamente fornecem serviços para geração de trilhas de auditoria (log, registro de ações críticas), gerenciamento de arquivos, comunicação inter-processos, multitarefa, gerenciamento de memória, manipulação de documentos XML e dentro outros recursos não orientados a objetos. Colaboração entre classes é permitida dentro de uma camada. Por exemplo, classes IU podem enviar mensagens a outras classes IU e classes de negócio podem enviar mensagens a outras classes de negócio. Colaboração pode também ocorrer entre classes em camadas conectadas entre si. Como pode ser observado pela figura Arquitetura de Camadas, classes IU podem enviar mensagens para classes de lógica de negócio, mas não podem fazê-lo para classes de persistência de dados. Classes de negócio podem enviar mensagens para classes de persistência de dados, mas não podem fazê-lo para classes de interface do usuário. Pela restrição do fluxo de mensagens em uma somente uma direção, dramaticamente incrementa-se a portabilidade de nossa aplicação pela redução do acoplamento entre classes. Por exemplo, classes de negócio independem dos serviços providos pelas classes IU, implicando que podemos modificar a interface do usuário da aplicação sem afetar a lógica de negócio fundamental. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 19 © 2005 Halan Ridolphi
  • 20. 8 Bibliografia Fontes de artigos e livros consultados acerca de Projeto de Software Orientado a Objetos e assuntos correlatos: • The Object Primer: Application Developer’s Guide to Object Orientation, Second Edition – Scott W. Ambler, SIGS Books & Multimedia 2000. • Enterprise Architect UML modeling tool • Cetus Links on Objects & Components • Escrevendo Casos de Uso Eficazes – Alistair Cockburn, Editora Bookman 2003. • Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos – Erich Gamma… [et al.], Editora Bookman 2000. • Engenharia de Software: Teoria e Prática – Shari Lawrence Pfleeger, Prentice Hall 2003. MBA-ENGSOFT Análise e Projeto Orientado a Objetos 20 © 2005 Halan Ridolphi
  • 21. ANÁLISE E PROJETO ORIENTADOS A OBJETOS EXERCÍCIO DE MODELAGEM – CANAL 100 PRODUÇÕES PROBLEMA: O Canal 100 Produções é uma empresa que detém um vasto acervo com cenas e narrações de jogos de futebol realizados no Brasil. A empresa deseja digitalizar e organizar este acervo com vistas a gerar um novo modelo de negócio: a venda de DVDs personalizados com jogadas. Para isto, será necessário construir um Sistema de Informação que terá dois objetivos principais: • Organizar uma base de dados que contenha todos os dados referentes aos jogos; • Realizar a separação de arquivos de jogadas digitalizadas para a produção de DVDs personalizados e sua cobrança. Para cada jogo em seu acervo, o Canal 100 Produções tem uma série de dados relacionados, a saber: os times, técnicos, escalação, substituições, local, horário, motivo do jogo (campeonato, amistoso, etc.), placar de cada tempo, placar final, cartões, prorrogação, disputa de pênaltis, arbitragem. Além destas informações de súmula, a produtora tem as estatísticas do jogo (chutes a gol, defesas, passes errados, posse de bola) que costumamos a ver nas transmissões de TV. A produtora conta também com uma série de jogadas que foram digitalizadas por uma empresa externa e estão em formato MPEG. Para cada jogada, há o texto da narração onde quase sempre são citados os envolvidos na jogada. Com relação aos jogadores, a produtora possui os dados como os nomes de escalação, nome completo, data de nascimento, e também apelidos comumente utilizados na imprensa (ex.: Zico -> Galinho de Quintino, Roberto -> Dinamite, Pelé -> Rei). O sistema deverá permitir a inclusão dos dados acima citados e deverá permitir que possamos recuperar um conjunto de jogadas a partir de detalhes passados pelo cliente, como: todos os gols marcados pelo Júnior no Campeonato Brasileiro, todas as defesas realizadas pelo goleiro Manga quando atuou por times do Rio, etc. Para cada jogo que teve uma jogada catalogada, devemos gerar um arquivo digital contendo os dados desse jogo. A partir de um número de jogadas selecionadas, o sistema irá calcular a produção de CD pelo tempo total das jogadas mais o número de arquivos com dados dos respectivos jogos. MODELAGEM DE SOFTWARE: Neste exercício, espera-se o desenvolvimento dos seguintes artefatos para modelagem do sistema de software proposto: 1. Modelo de Classes do Domínio a. Estimativa de +/- 20 classes 2. Modelo de Casos de Uso a. Especificação detalhada de 2 casos de uso 3. Diagrama de Estados a. Especificação detalhada de 2 diagramas ENGENHARIA DE SOFTWARE 1/2
  • 22. ANÁLISE E PROJETO ORIENTADOS A OBJETOS 4. Diagrama de Seqüência a. Especificação detalhada de 1 diagrama DICAS: 1. Classes de domínio possíveis: Jogada, Time, Jogo, Gol, Jogador, Escalação, DVD, Cliente, Técnico. 2. Contatos para dúvidas: alessandro@tdi.com.br, alessandro.cerqueira@uniriotec.br ENGENHARIA DE SOFTWARE 2/2