Estudo de caso_com_modelagem_de_software_halan
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Estudo de caso_com_modelagem_de_software_halan

on

  • 1,996 views

software engineering

software engineering

Statistics

Views

Total Views
1,996
Views on SlideShare
1,945
Embed Views
51

Actions

Likes
1
Downloads
77
Comments
0

3 Embeds 51

http://tecnologia-de-valor.blogspot.com 32
http://tecnologia-de-valor.blogspot.com.br 18
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Estudo de caso_com_modelagem_de_software_halan Document Transcript

  • 1. POLI / UFRJ MBA Engenharia de Software – Turma 2004 Disciplina: Análise e Projeto Orientado a Objetos Professor: Alessandro Cerqueira Aluno: Halan Ridolphi AlvesMBA-ENGSOFT Análise e Projeto Orientado a Objetos 1© 2005 Halan Ridolphi
  • 2. Sumário1 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 ................................................................................... 42 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 ................................................................................................. 83 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 ........................................................................ 134 Diagramas de Seqüência ........................................................................................... 14 4.1 Autenticar Acesso de Cliente .............................................................................. 14 4.2 Gerenciar Jogos ............................................................................................... 155 Diagramas de Transição de Estado ............................................................................. 16 5.1 Estados de objeto DVD ..................................................................................... 166 Diagramas de Atividade ............................................................................................ 17 6.1 Cliente selecionando Jogadas visando DVD personalizado ....................................... 177 Projeto Arquitetural .................................................................................................. 188 Bibliografia ............................................................................................................. 20MBA-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 paraconstrução do sistema de software proposto visando automação das necessidades de negócio docliente Canal 100 Produções. Neste sentido, com enfoque nas funcionalidades que devem serprovidas pelo sistema de software depois de construído, os seguintes modelos de software serãoapresentados: requisitos, casos de uso, modelo de classes, diagramas de seqüência e diagramasde transição de estado. Este seção visa descrever todos os requisitos a serem satisfeitos e alcançados pelosistema 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 enarrações de jogos de futebol realizados no Brasil. A empresa deseja digitalizar e organizar esteacervo com vistas a gerar um novo modelo de negócio: a venda de DVDs personalizados comjogadas.1.2 Escopo do Software A construção de um novo sistema de software objetiva o gerenciamento de acervo decenas e narrações de jogos de futebol, visando suportar a confecção de DVDs personalizadoscom 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 desoftware 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 dadosrelacionados 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 produtoratem as estatísticas do jogo (chutes agol, defesas, passes errados, posse de bola) quecostumamos a ver nas transmissões de TV. A produtora conta também com uma série de jogadas que foram digitalizadas por umaempresa externa e estão em formato MPEG. Para cada jogada, há o texto da narração ondequase 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 Uso2.1 Conceitos2.1.1 Atores Um ator é uma entidade externa que desempenha um papel na interação com o sistemade software. Um ator pode ser um sistema externo que necessita de alguma informação dosistema de software sendo modelado.2.1.2 Casos de Uso Um caso de uso descreve um conjunto particular de funcionalidades do sistema desoftware, 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áriodescritivo de como a entidade externa interage com o sistema de software, identificando eventosque 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 deuso particular do sistema de software. Casos de uso fornecem uma visão do sistema de softwareque está focada principalmente na funcionalidade. Este artefato formará uma base de concordância entre o cliente e desenvolvedores sobreo que o sistema de software deve fazer. Casos de Uso também possibilitam a validação se osistema de software está sendo modelado em conformidade com regras de funcionamentoesperadas 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 melhorcompreensão e controle dos domínios (ou grupos) de funcionalidades requeridos pelo sistema desoftware.2.1.3 Protótipo da Interface do Usuário Descrição da forma de apresentação do sistema de software. Como é realizada ainteraçã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 dasfuncionalidades (casos de uso) que os participantes (atores) obtêm ao interagirem com o sistemade software. Os cenários descritos nos Casos de Uso são os alicerces para elaboração dessesprotótipos. Um dado protótipo da interface do usuário pode compreender a realização de umconjunto de Casos de Uso. Os protótipos também constituem uma ferramenta eficaz para capturade requisitos do software.MBA-ENGSOFT Análise e Projeto Orientado a Objetos 6© 2005 Halan Ridolphi
  • 7. 2.2 Autenticar Acesso de Cliente2.2.1 Descrição A aplicação de loja on-line do Canal 100 Produções armazena informações básicas dosconsumidores de seus produtos e serviços. Tais clientes necessitam autenticar-se (logon) juntoao sistema para obterem acesso aos seus recursos.2.2.2 Atores2.2.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca dejogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores edemais 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ínioda rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa aautoridade em segurança da informação que controle os privilégios dos perfis de usuários daaplicaçã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 Virtual2.3.1 Descrição Um cliente que não é registrado necessitará digitar seus detalhes e obter uma conta naloja 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 deCliente” nas situações onde o usuário não tem uma conta na loja virtual. Uma vez registrado ocliente pode completar o caso de uso “Autenticar Acesso de Cliente”. Um cliente usará este casode 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 Atores2.3.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca dejogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores edemais 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ínioda rede de computadores na loja virtual do Canal 100 Produções, ou seja, representa aautoridade em segurança da informação prestando serviços de controle de acesso.2.3.3 Restrições2.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 conta2.4 Gerenciar Jogos2.4.1 Descrição Este caso de uso descreve todos os aspectos da forma como o Funcionário gerencia asinformaçõ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 eleesteja operando com conta que tenha permissão de acesso.2.4.2 Atores2.4.2.1 Sistema de Banco de Dados Sistema externo encarregado de manter persistente todas as informações acerca dejogos, times de futebol, estatísticas de jogos, clientes, vendas de DVD, jogadas, jogadores edemais 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ções2.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 administrativose 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çãoMBA-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 seusrelacionamentos, 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 classerepresenta uma coleção de objetos similares. Um objeto é uma pessoa, lugar, coisa, conceito, evento, tela ou relatório que é relevantepara o sistema de software em construção. Objetos conhecem coisas (isto é, eles têm dados) efazem coisas (isto é, eles têm funcionalidades).3.1 Classes de Negócio – Diagrama IIIcd 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: intFigura 2a: Classes de NegócioMBA-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: booleanFigura 2b: Classes de NegócioMBA-ENGSOFT Análise e Projeto Orientado a Objetos 12© 2005 Halan Ridolphi
  • 13. 3.3 Classes de Negócio – Diagrama Icd 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: intFigura 2c: Classes de NegócioMBA-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 serdesenvolvido, especificamente, demonstram a cooperação dos objetos nos cenários propostospelos 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 interfacedo 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 deseqüê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 Controller14.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 JogoMBA-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 serdesenvolvido, especificamente, demonstram as mudanças de estados ou ciclos de vida paraobjetos 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 ArquivadoFigura 4: Estados de objeto DVDMBA-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 serdesenvolvido, 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 FimFigura 5: Mapa de NavegaçãoMBA-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 ActiveDirectory para autenticação e controle de acesso, ORACLE como ferramenta SGDB paraarmazenamento, recuperação e indexação de informações e rodando sob servidor de aplicaçãoJBOSS. A aplicação será organizada em 4 camadas (coleção de classes ou componentes) desoftware, 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áriosinteragem com aplicação. Classes de interface do usuário tipicamente implementam umainterface do usuário gráfica para aplicação, embora outros estilos de interface, tais comocomando 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 declasses 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, taiscomo, “Jogo” ou “DVD”, focando nos aspectos de dados dos objetos de negócio e maiscomportamentos específicos para conceitos de negócio individuais. Cabe a estas classes tambémimplementar a lógica de negócio que envolve a colaboração de vários objetos, os quais sãoinstâ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 dearmazenamento. A estratégia de uso de um framework de persistência habilita-nos utilizardistintas 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 dosistema operacional ou encapsulam funcionalidades fornecidas por ferramentas e aplicações deterceiros. Estas classes isolam nossa aplicação do sistema operacional, tornando a aplicaçãoportável entre ambientes via o empacotamento de serviços específicos do SO. Estas classestipicamente fornecem serviços para geração de trilhas de auditoria (log, registro de açõescríticas), gerenciamento de arquivos, comunicação inter-processos, multitarefa, gerenciamentode memória, manipulação de documentos XML e dentro outros recursos não orientados aobjetos. Colaboração entre classes é permitida dentro de uma camada. Por exemplo, classes IUpodem enviar mensagens a outras classes IU e classes de negócio podem enviar mensagens aoutras classes de negócio. Colaboração pode também ocorrer entre classes em camadasconectadas entre si. Como pode ser observado pela figura Arquitetura de Camadas, classes IUpodem enviar mensagens para classes de lógica de negócio, mas não podem fazê-lo para classesde persistência de dados. Classes de negócio podem enviar mensagens para classes depersistência de dados, mas não podem fazê-lo para classes de interface do usuário. Pelarestrição do fluxo de mensagens em uma somente uma direção, dramaticamente incrementa-sea 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 podemosmodificar 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 eassuntos 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 OBJETOSEXERCÍCIO DE MODELAGEM – CANAL 100 PRODUÇÕESPROBLEMA:O Canal 100 Produções é uma empresa que detém um vasto acervo comcenas e narrações de jogos de futebol realizados no Brasil. A empresadeseja digitalizar e organizar este acervo com vistas a gerar um novomodelo de negócio: a venda de DVDs personalizados com jogadas. Paraisto, será necessário construir um Sistema de Informação que terá doisobjetivos 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 dedados relacionados, a saber: os times, técnicos, escalação, substituições,local, horário, motivo do jogo (campeonato, amistoso, etc.), placar de cadatempo, 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 aver nas transmissões de TV.A produtora conta também com uma série de jogadas que foramdigitalizadas por uma empresa externa e estão em formato MPEG. Paracada jogada, há o texto da narração onde quase sempre são citados osenvolvidos na jogada.Com relação aos jogadores, a produtora possui os dados como os nomes deescalação, nome completo, data de nascimento, e também apelidoscomumente 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 dedetalhes passados pelo cliente, como: todos os gols marcados pelo Júniorno Campeonato Brasileiro, todas as defesas realizadas pelo goleiro Mangaquando atuou por times do Rio, etc. Para cada jogo que teve uma jogadacatalogada, devemos gerar um arquivo digital contendo os dados dessejogo. A partir de um número de jogadas selecionadas, o sistema irá calculara produção de CD pelo tempo total das jogadas mais o número de arquivoscom dados dos respectivos jogos.MODELAGEM DE SOFTWARE:Neste exercício, espera-se o desenvolvimento dos seguintes artefatos paramodelagem 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 diagramasENGENHARIA DE SOFTWARE 1/2
  • 22. ANÁLISE E PROJETO ORIENTADOS A OBJETOS 4. Diagrama de Seqüência a. Especificação detalhada de 1 diagramaDICAS: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.brENGENHARIA DE SOFTWARE 2/2