10.07.2015 Views

Projeto de Software usando UML

Projeto de Software usando UML

Projeto de Software usando UML

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Projeto</strong> <strong>de</strong> <strong>Software</strong><strong>usando</strong> <strong>UML</strong>SumárioCapítulo I : Casos <strong>de</strong> Uso .....................................................................................................31. Mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso ............................................................................................ 32. Diagramas <strong>de</strong> Casos <strong>de</strong> Uso ...................................................................................... 33. Exemplo ...................................................................................................................... 94. Conclusão ................................................................................................................... 13Capítulo II : Levantamento <strong>de</strong> Classes ................................................................................151. Conceito <strong>de</strong> Classe e Objeto ........................................................................................ 152. Notação <strong>UML</strong> para Classes e Objetos .......................................................................... 203. Levantamento das Classes ...........................................................................................244. Exemplo <strong>de</strong> Levantamento <strong>de</strong> Classes .........................................................................265. Conclusão ......................................................................................................................28Capitulo III : Estudo das Interações entre Objetos .............................................................291. Diagrama <strong>de</strong> Seqüência ................................................................................................292. Diagrama <strong>de</strong> Colaboração .............................................................................................403. Exemplos <strong>de</strong> Diagramas <strong>de</strong> Seqüência e Colaboração .................................................42Capítulo IV : Relacionamentos entre Classes .....................................................................451. Associação entre Classes .............................................................................................452. Agregação entre Classes ..............................................................................................483. Generalização/Especialização entre Classes ............................................................... 514. Conclusão ......................................................................................................................54Capítulo V : Especificação do Comportamento <strong>de</strong> Objetos ..............................................551. Diagrama <strong>de</strong> Estados ....................................................................................................552. Diagrama <strong>de</strong> Ativida<strong>de</strong>s .................................................................................................653. Conclusão ......................................................................................................................69Pág.: 2


Capítulo I : Casos <strong>de</strong> Uso1 Mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> UsoO mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso foi proposto por I. Jacobson como um instrumento para<strong>de</strong>scrição das intenções ou requisitos para um sistema computacional. A construção do Mo<strong>de</strong>lo<strong>de</strong> Casos <strong>de</strong> Uso correspon<strong>de</strong> a uma das fases iniciais <strong>de</strong> um projeto <strong>de</strong> software pois envolvea <strong>de</strong>terminação dos usos que o sistema terá, ou seja, do que ele <strong>de</strong>verá fornecer comoserviços.O mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso é diferente da visão funcional utilizada no passado nasabordagens <strong>de</strong> projeto estrututado. Ao invés <strong>de</strong> focalizar as funções (atribuições técnicas) dosistema, o mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso captura os usos ou aplicações completas do sistema. Estemo<strong>de</strong>lo busca respon<strong>de</strong>r a questão: Que usos o sistema terá? ou Para que aplicações osistema será empregado?Os mo<strong>de</strong>los <strong>de</strong> Casos <strong>de</strong> Uso são <strong>de</strong>scritos através <strong>de</strong> Diagramas <strong>de</strong> Casos <strong>de</strong> Uso na<strong>UML</strong>. De uma forma geral, cada projeto <strong>de</strong> software conterá um Diagrama <strong>de</strong> Casos <strong>de</strong> Uso.Para sistemas mais extensos, é possível <strong>de</strong>compor o diagrama em um conjunto <strong>de</strong>subdiagramas.Uma vez construído o mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso, o restante do projeto po<strong>de</strong> ser guiadobaseando-se neste mo<strong>de</strong>lo. Dito <strong>de</strong> outra forma, a partir do mo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso, orestante do projeto irá se preocupar com a forma <strong>de</strong> realização dos casos <strong>de</strong> uso (que classese objetos são necessários, como e quando cada um atuará, etc).Omo<strong>de</strong>lo <strong>de</strong> Casos <strong>de</strong> Uso é um instrumento eficiente para <strong>de</strong>terminação edocumentação dos serviços a serem <strong>de</strong>sempenhados pelo sistema. Ele é também um bommeio para comunicação com os clientes no processo <strong>de</strong> <strong>de</strong>finição dos requisitos do sistema.2 Diagramas <strong>de</strong> Casos <strong>de</strong> UsoOs casos <strong>de</strong> uso <strong>de</strong> um projeto <strong>de</strong> software são <strong>de</strong>scritos na linguagem <strong>UML</strong> através <strong>de</strong>Diagramas <strong>de</strong> Casos <strong>de</strong> Uso. Estes diagramas utilizam como primitivas Atores, Casos <strong>de</strong> Usoe Relacionamentos. Como ocorre também com outros diagramas, po<strong>de</strong>-se ainda utilizar asprimitivas Pacote e Nota nos diagramas <strong>de</strong> casos <strong>de</strong> uso. As subseções a seguir <strong>de</strong>screvemestas primitivas.2.1 AtoresAtores são representações <strong>de</strong> entida<strong>de</strong>s externas mas que interagem com o sistemadurante sua execução. Basicamente, a interação <strong>de</strong> atores com o sistema se dá através <strong>de</strong>comunicações (troca <strong>de</strong> mensagens). As entida<strong>de</strong>s externas representadas pelos atorespo<strong>de</strong>m ser :Pessoas: usuário, secretária, aluno, professor, administrador,etc.Dispositivos: impressora, máquina ou outro equipamentos externo.Hardwares: placa <strong>de</strong> mo<strong>de</strong>m, placa <strong>de</strong> controle, etc.<strong>Software</strong>: sistema <strong>de</strong> banco <strong>de</strong> dados, aplicativos, etc.Pág.: 3É importante observar que atores representam, na verda<strong>de</strong>, papéis <strong>de</strong>sempenhados porpessoas, dispositivos ou outros softwares quando estiverem interagindo com o sistema. Porexemplo, um ator cujo i<strong>de</strong>ntificador seja Aluno não representa um aluno específico mas sim umaluno qualquer, ou seja, uma pessoa qualquer que esteja interagindo com o sistema naqualida<strong>de</strong> <strong>de</strong> aluno. Desta forma, um ator po<strong>de</strong> representar um entre vários indivíduos,equipamentos ou softwares. De forma análoga, uma entida<strong>de</strong> externa po<strong>de</strong> ser representadana forma <strong>de</strong> vários atores. Isto ocorre quando a entida<strong>de</strong> tem mais <strong>de</strong> um papel (tipo <strong>de</strong>participação ou interação) no sistema. Por exemplo, o indivíduo João da Silva po<strong>de</strong>ria serrepresentado em um sistema na forma do ator Usuário, pois ele interage com o sistema nestaqualida<strong>de</strong>, e também na forma do ator Administrador, pois ele também interage com o sistemapara este outro fim que é a administração do software.Atores são representados através <strong>de</strong> retângulos (notação genérica para classe) <strong>usando</strong> asimbologia padrão da <strong>UML</strong> ou através <strong>de</strong> ícones humanos. As duas notações sãosintaticamente equivalentes, porém a segunda é seguramente mais intuitiva. A <strong>de</strong>svantagemdo uso <strong>de</strong> ícones humanos ocorre quando o ator representa equipamentos, dispositivos <strong>de</strong>hardware ou outros softwares. Neste caso, a figura humana não coinci<strong>de</strong> com a natureza doator. É possível, entretanto, através <strong>de</strong> mecanismos <strong>de</strong> extensão, criar grafismos especiais ouespecializados na <strong>UML</strong> para indicar tipos <strong>de</strong> atores.AdministradorUsuárioSecretária ImpressoraFigura I.1 – Exemplos <strong>de</strong> AtoresObserve que a notação <strong>usando</strong> retângulos exige a inserção <strong>de</strong> um classificador paraindicar a natureza daquilo que se está representando. No caso <strong>de</strong> atores, <strong>de</strong>ve-se incluir oclassificador (ou estereótipo) antes do nome do ator. Quando se utiliza o íconehumano, basta indicar o nome do ator abaixo do ícone.O levantamento dos atores que interagem com um certo sistema <strong>de</strong>pen<strong>de</strong> <strong>de</strong> um trabalho<strong>de</strong> estudo que envolve discussões com os clientes. Procura-se neste estudo levantar aspessoas que serão beneficiadas e que usarão o sistema. Além disso, <strong>de</strong>ve-se levantar osdispositivos e softwares com os quais o sistema <strong>de</strong>verá se comunicar. Para muitos projetos,po<strong>de</strong> não ser fácil levantar corretamente o conjunto <strong>de</strong> atores na primeira tentativa. O estudodos casos <strong>de</strong> uso e dos relacionamentos com atores po<strong>de</strong> permitir refinar o conjunto <strong>de</strong> atores<strong>de</strong>finidos. O estudo das classes do sistema, a ser feito na próxima fase, também irá contribuirpara o refinamento do levantamento <strong>de</strong> atores.Embora a <strong>UML</strong> não imponha restrições, costuma-se consi<strong>de</strong>rar <strong>de</strong>terminados atorescomo atores implícitos. Desta forma estes atores não aparecem no diagrama <strong>de</strong> casos <strong>de</strong> usoembora eles estejam presentes e participem da execução dos casos <strong>de</strong> uso. Os atoresimplícitos representam essencialmente dispositivos e softwares que são sempre usados e quenão impõem protocolos especiais <strong>de</strong> comunicação. Desta forma, a supressão <strong>de</strong>ste atores nãotraz nenhum efeito significativos sobre os mo<strong>de</strong>los e simplifica as representações. Os exemplosmais comuns <strong>de</strong> atores que se po<strong>de</strong> consi<strong>de</strong>rar como implícitos são : monitor <strong>de</strong> ví<strong>de</strong>o, teclado,mouse, auto-falante, microfone, unida<strong>de</strong> <strong>de</strong> disco e sistema operacional. Estas entida<strong>de</strong>s serãoatores legítimos mas cuja inclusão no mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso não traz contribuição para amo<strong>de</strong>lagem.Pág.: 4


2.2 Casos <strong>de</strong> UsoA <strong>de</strong>scrição dos serviços a serem oferecidos pelo sistema é feita na <strong>UML</strong> discriminandoseos Casos <strong>de</strong> Usos do sistema. Cada Caso <strong>de</strong> Uso <strong>de</strong>screve uma aplicação ou uso completodo software. O conceito <strong>de</strong> caso <strong>de</strong> uso não <strong>de</strong>ve ser confundido com o <strong>de</strong> módulo já que umcaso <strong>de</strong> uso não é um componente do sistema mas sim um <strong>de</strong> seus empregos possíveis.Também não se <strong>de</strong>ve confundir o conceito <strong>de</strong> caso <strong>de</strong> uso com o <strong>de</strong> função que possui umescopo muito mais limitado, traduzindo freqüentemente apenas um recurso ou utilida<strong>de</strong> dosistema. Um caso <strong>de</strong> uso é muito mais abrangente, envolvendo todo um conjunto <strong>de</strong>transações que juntas constituem um serviço completo oferecido pelo sistema.A especificação das funcionalida<strong>de</strong>s <strong>de</strong> um sistema na forma <strong>de</strong> casos <strong>de</strong> uso permiteuma visão mais abrangente das aplicações do sistema favorizando um levantamento maiscompleto e preciso <strong>de</strong> suas atribuições.2.3 Relacionamentos entre Atores e Casos <strong>de</strong> UsoOs relacionamentos em um diagrama <strong>de</strong> casos <strong>de</strong> uso po<strong>de</strong>m envolver dois atores, doiscasos <strong>de</strong> uso ou um ator e um caso <strong>de</strong> uso, conforme <strong>de</strong>scrito nas subseções seguintes.2.3.1 Relacionamentos entre AtoresComo os atores são entida<strong>de</strong>s externas, os relacionamentos entre eles serão relaçõesexternas ao sistema. Embora estas relações possam ser <strong>de</strong>sprezadas, pois não fazem parte dosistema e nem são <strong>de</strong> conhecimento do sistema, é possível incluí-las no mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong>uso. De certa forma, estas relações <strong>de</strong>screvem parte do mo<strong>de</strong>lo <strong>de</strong> negócios da empresa.As duas relações mais comuns entre atores são a comunicação (ou associação) e aespecialização (ou generalização). Um relacionamento <strong>de</strong> comunicação indica que os doisatores, <strong>de</strong> forma uni ou bidirecional, realizam uma comunicação (troca <strong>de</strong> informação ou <strong>de</strong>mensagem) que possui um significado formal para o sistema mo<strong>de</strong>lado. No exemplo da figuraI.2, o ator Aluno comunica-se com o ator Secretaria no sentido que transmitir uma Solicitação<strong>de</strong> Histórico Escolar. Trata-se <strong>de</strong> uma comunicação explícita cuja ocorrência <strong>de</strong>ve ter algumarepercussão ou significado para o sistema. Um relacionamento <strong>de</strong> generalização, por outrolado, representa uma relação conceitual entre atores indicando que um ator é um caso especial<strong>de</strong> outro ator mais genérico. Esta relação indica que o ator especializado inclui todos osatributos do ator genérico e inclui ainda atributos adicionais. Como ilustra a figura I.2, o atorAdministrador é um ator especializado do ator Usuário. Isto significa que o Administrador é umUsuário com atributos ou características extras. De certa forma, o ator especializado esten<strong>de</strong> oator genérico.Solicita HistóricoAluno SecretariaUsuário AdministradorFigura I.2 – Exemplos <strong>de</strong> Relações entre AtoresPág.: 52.3.2 Relacionamentos entre Atores e Casos <strong>de</strong> UsoentreO relacionamento entre um ator e um caso <strong>de</strong> uso expressa sempre uma comunicaçãoeles, pois o ator sendo uma entida<strong>de</strong> externa não po<strong>de</strong>ria possuir qualquerrelacionamento estrutural com o sistema computacional. A notação <strong>UML</strong> para este tipo <strong>de</strong>relacionamento é um segmento <strong>de</strong> reta ligando ator e caso <strong>de</strong> uso, como ilustrado na figura I.3.Em diagramas mais complexos po<strong>de</strong>-se utilizar ca<strong>de</strong>ias <strong>de</strong> segmentos <strong>de</strong> retas para se evitarcruzamentos.Como atores po<strong>de</strong>m ter vários propósitos, no que diz respeito a suas interações com osistema, po<strong>de</strong>m existir mais <strong>de</strong> um relacionamento <strong>de</strong> um ator com diferentes casos <strong>de</strong> usos.De forma análoga, um mesmo caso <strong>de</strong> uso po<strong>de</strong> envolver a participação <strong>de</strong> mais <strong>de</strong> um ator. Afigura I.3 ilustra estas situações. O caso <strong>de</strong> uso Emitir Histórico Escolar envolve a participação<strong>de</strong> dois atores : Secretaria e Impressora. O ator Secretaria participa em dois casos <strong>de</strong> uso:Emitir Histórico e Registrar Novo Aluno.Emitir Histórico EscolarImpressoraSecretariaRegistrar Novo AlunoFigura I.3 – Exemplos <strong>de</strong> Relações entre Atores e Casos <strong>de</strong> UsoA utilização <strong>de</strong> setas nas relações entre atores e casos <strong>de</strong> uso po<strong>de</strong> ter duasinterpretações distintas. Na primeira, utilizam-se setas para indicar qual ator ativa o caso <strong>de</strong>uso. Ativação neste caso significa, quem lança ou inicia a execução do caso <strong>de</strong> uso. Parasistemas interativos, freqüentemente é o ator Usuário quem ativa o caso <strong>de</strong> uso. Na situaçãomais comum, cada caso <strong>de</strong> uso só teria um ator contendo uma seta em seu relacionamento <strong>de</strong>comunicação. É possível, entretanto, haver mais <strong>de</strong> um ator ativador para um mesmo caso <strong>de</strong>uso significando que um <strong>de</strong>les ativaria este caso <strong>de</strong> uso. O exemplo na figura I.3 aplica estainterpretação das setas. A segunda interpretação para as setas é a indicação do sentido dofluxo <strong>de</strong> dados nas comunicações. Neste caso todas as relações entre atores e casos <strong>de</strong> usoteriam setas em uma ou nas duas extremida<strong>de</strong>s <strong>de</strong>screvendo o sentido da comunicação comcada ator. As duas interpretações são possíveis mas <strong>de</strong>ve-se optar por uma <strong>de</strong>las em cadaprojeto e indicar explicitamente a interpretação adotada.2.3.3 Relacionamentos entre Casos <strong>de</strong> UsoAo contrário do relacionamento entre ator e caso <strong>de</strong> uso, as relações entre casos <strong>de</strong> usonunca serão do tipo comunicação. Isto ocorre porque casos <strong>de</strong> uso são aplicações completasdo sistema e, por conseqüência, não existe sentido em fazer-se comunicar dois “usos dosistema”. Todas as relações entre casos <strong>de</strong> uso serão sempre estruturais. Existem três tipos<strong>de</strong> relações entre casos <strong>de</strong> uso (inclusão, extensão e generalização) conforme <strong>de</strong>scritos aseguir.Relacionamento <strong>de</strong> InclusãoUm relacionamento <strong>de</strong> inclusão é uma relação estrutural através da qual um caso <strong>de</strong> usoinsere em seu interior um outro caso <strong>de</strong> uso. O caso <strong>de</strong> uso incluído (subcaso <strong>de</strong> uso) nãoPág.: 6


se construir uma hierarquia com vários níveis <strong>de</strong> <strong>de</strong>composição conforme a dimensão dosistema e o número <strong>de</strong> casos <strong>de</strong> uso e atores.Os elementos (casos <strong>de</strong> uso e atores) <strong>de</strong>ntro <strong>de</strong> um pacote po<strong>de</strong>m ter relacionamentoscom elementos <strong>de</strong> outros pacotes. Neste caso existe uma <strong>de</strong>pendência entre pacotes. As<strong>de</strong>pendências <strong>de</strong>vem ser explicitamente <strong>de</strong>finidas utilizando como notação um segmento <strong>de</strong>reta tracejado com uma seta no sentido do pacote que <strong>de</strong>pen<strong>de</strong> para o pacote que contém as<strong>de</strong>pendências. A figura I.7 ilustra a notação utilizada para pacotes e <strong>de</strong>pendências.Casos <strong>de</strong> UsoAdministrativosCasos <strong>de</strong> UsoAcadêmicosCasos <strong>de</strong> UsoGeraisFigura I.7 – Exemplo <strong>de</strong> Pacotes e DependênciasNão existe uma norma para separação dos casos <strong>de</strong> uso e atores em pacotes. Po<strong>de</strong>-se,por exemplo, agrupar <strong>de</strong>ntro <strong>de</strong> um pacote casos <strong>de</strong> uso <strong>de</strong> naturezas semelhantes (casos <strong>de</strong>uso <strong>de</strong> cadastro, casos <strong>de</strong> uso <strong>de</strong> emissão <strong>de</strong> relatórios, etc) ou casos <strong>de</strong> uso envolvendo osmesmos atores. De forma geral, procura-se reunir casos <strong>de</strong> uso que possuem relacionamentosem um mesmo pacote.Quando um ator ou caso <strong>de</strong> uso tiver que aparecer em mais <strong>de</strong> um pacote, <strong>de</strong>fine-seeste ator ou caso <strong>de</strong> uso em um pacote e copia-se o ator ou caso <strong>de</strong> uso nos <strong>de</strong>mais pacotes.Neste caso, <strong>de</strong>ve-se indicar nos <strong>de</strong>mais pacotes qual o pacote <strong>de</strong> origem daquele ator ou caso<strong>de</strong> uso.3 ExemploPara ilustrar a aplicação do conceito <strong>de</strong> caso <strong>de</strong> uso, <strong>de</strong>senvolve-se nesta seção umexemplo <strong>de</strong> mo<strong>de</strong>lagem para um sistema <strong>de</strong> controle acadêmico. Embora, o <strong>de</strong>senvolvimentocompleto <strong>de</strong> um mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso possa envolver várias iterações <strong>de</strong> refinamento, parafins didáticos o exemplo <strong>de</strong>ste seção apresentará a mo<strong>de</strong>lagem através <strong>de</strong> 4 fases.Fase 1 : Levantamento dos AtoresO sistema <strong>de</strong> controle acadêmico consi<strong>de</strong>rado neste exemplo será utilizado na secretaria<strong>de</strong> um <strong>de</strong>terminado curso. No que diz respeito aos indivíduos envolvidos, somente o pessoalda secretaria terá acesso ao sistema. Entre as pessoas que atuam na secretaria e po<strong>de</strong>riamutilizar o sistema estão o chefe da secretaria, a secretária, alguns professores e algunsestagiários. Na verda<strong>de</strong>, apesar <strong>de</strong> se tratarem <strong>de</strong> indivíduos diferentes, quando estiveremutilizando o sistema todos assumirão o mesmo papel, ou seja, todos atuarão na forma <strong>de</strong> umator abstrato que po<strong>de</strong> ser <strong>de</strong>nominado Secretaria.Pág.: 9Preliminarmente, supõe-se que alguns documentos <strong>de</strong>verão ser impressos pelo sistema, oque sugere a criação <strong>de</strong> um ator <strong>de</strong>nominado Impresora com o qual o sistema irá interagir paraa impressão <strong>de</strong> documentos (histórico escolar, diário <strong>de</strong> classe, etc). O ator impressora po<strong>de</strong>riaser consi<strong>de</strong>rado um ator implícito mas po<strong>de</strong> ser ilustrativo fazê-lo aparecer explicitamente nomo<strong>de</strong>lo.Como o volume <strong>de</strong> informações (alunos, professores, disciplinas, etc) po<strong>de</strong> ser gran<strong>de</strong>optou-se pelo uso <strong>de</strong> um Sistema Gerenciador <strong>de</strong> Banco <strong>de</strong> Dados para armazenamento dosdados acadêmicos. Como se trata <strong>de</strong> um sistema computacional in<strong>de</strong>pen<strong>de</strong>nte com o qual osistema <strong>de</strong> controle acadêmico irá interagir, ele <strong>de</strong>ve ser consi<strong>de</strong>rado também como um ator.Neste exemplo, este ator será <strong>de</strong>nominado SGBD.Portanto, os atores que foram inicialmente levantados são:Secretaria Impressora SGBDFigura I.8 – Atores do sistema <strong>de</strong> controle acadêmico.Na prática, nem sempre é possível <strong>de</strong>terminar todos os atores e <strong>de</strong>finí-los corretamente naprimeira tentativa. Se for consi<strong>de</strong>rada uma abordagem <strong>de</strong> projeto por refinamentos sucessivos,a lista <strong>de</strong> atores po<strong>de</strong>ria ser melhorada, assim como a <strong>de</strong>finição <strong>de</strong>ste atores, a medida que oprojeto avance quando mais informações estiverem disponíveis.Fase 2 : Levantamento dos Casos <strong>de</strong> Uso PrincipaisNesta fase busca-se <strong>de</strong>finir a lista dos gran<strong>de</strong>s serviços que o sistema <strong>de</strong>verá oferecer. Olevantamento dos casos <strong>de</strong> uso correspon<strong>de</strong> a uma análise <strong>de</strong> requisitos e <strong>de</strong>ve ser<strong>de</strong>senvolvido a partir <strong>de</strong> informações coletadas dos clientes. Através <strong>de</strong> questionários ereuniões com os clientes procura-se <strong>de</strong>finir quais são as aplicações ou usos <strong>de</strong>sejados para osistema a ser <strong>de</strong>senvolvido.Para o sistema <strong>de</strong> controle acadêmico consi<strong>de</strong>ra-se que os clientes (usuários, professorese administração da escola) <strong>de</strong>sejam que o sistema ofereça os seguintes serviços :− possibilida<strong>de</strong> <strong>de</strong> cadastramento <strong>de</strong> todos os alunos matriculados no curso. Isto implicaum serviço para inclusão <strong>de</strong> novos alunos e para manutenção da base <strong>de</strong> dados dosalunos. Este uso do sistema será representado pelo caso <strong>de</strong> uso Cadastrar Aluno.− possibilida<strong>de</strong> <strong>de</strong> cadastramento <strong>de</strong> todos os professores que ministram disciplinas nocurso. Isto implica um serviço para inclusão <strong>de</strong> novos professores e para manutençãoda base <strong>de</strong> dados <strong>de</strong> professores. Este uso do sistema será representado pelo caso <strong>de</strong>uso Cadastrar Professor.− possibilida<strong>de</strong> <strong>de</strong> registro das disciplinas oferecidas no curso incluindo o registro <strong>de</strong>novas disciplinas e a manutenção da base <strong>de</strong> dados <strong>de</strong> disciplinas. Este serviço ou usodo sistema será representado pelo caso <strong>de</strong> uso Cadastrar Disciplina.− possibilida<strong>de</strong> <strong>de</strong> registro da matrícula <strong>de</strong> alunos em disciplinas a cada semestre. Esteserviço será representado pelo caso <strong>de</strong> uso Registrar Matrícula.− possibilida<strong>de</strong> <strong>de</strong> emissão da confirmação <strong>de</strong> matrícula para cada aluno contendo a lista<strong>de</strong> disciplinas nas quais um aluno se matriculou para aquele semestre. Este serviçoserá representado pelo caso <strong>de</strong> uso Emitir Confirmação <strong>de</strong> Matrícula.Pág.: 10


− possibilida<strong>de</strong> <strong>de</strong> emissão do diário <strong>de</strong> classe para cada disciplina contendo a lista <strong>de</strong>alunos matriculados naquele semestre. Este serviço será representado pelo caso <strong>de</strong>uso Emitir Diário <strong>de</strong> Classe.− possibilida<strong>de</strong> <strong>de</strong> lançamento das notas obtidas pelos alunos em cada disciplina ao final<strong>de</strong> cada semestre. Este serviço será representado pelo caso <strong>de</strong> uso Registrar Nota.− possibilida<strong>de</strong> <strong>de</strong> emissão do histórico escolar para cada aluno contendo a lista <strong>de</strong>disciplinas cursadas e respectivas notas. Este serviço será representado pelo caso <strong>de</strong>uso Emitir Histórico Escolar.O conjunto <strong>de</strong> casos <strong>de</strong> uso levantados representa os serviços ou usos esperado pelosclientes que utilizarão o sistema. Assim como para os atores, nem sempre é possível efetuarum levantamento completo e <strong>de</strong>finitivo dos casos <strong>de</strong> uso em uma primeira tentativa. Ao longodo processo <strong>de</strong> refinamento, novos casos <strong>de</strong> uso po<strong>de</strong>riam aparecer ou outros sofreremalterações.A figura I.9 ilustra os casos <strong>de</strong> uso <strong>de</strong>finidos para o sistema acadêmico.Cadastrar Aluno Cadastrar Professor Cadastrar Disciplina Registrar MatrículaEmitir Confirmação<strong>de</strong> MatrículaEmitir Diário<strong>de</strong> ClasseRegistrar Nota Emitir Histórico EscolarFigura I.9 – Casos <strong>de</strong> Uso do sistema <strong>de</strong> controle acadêmico.Fase 3 : Definição dos RelacionamentosNesta fase são estabelecidos os relacionamentos <strong>de</strong> comunicação entre os atores e oscasos <strong>de</strong> uso indicando quais atores participam (se comunicam) com quais casos <strong>de</strong> uso. Parao exemplo em estudo, o resultado seria aquele apresentado na figura I.10. Neste diagram a <strong>de</strong>casos <strong>de</strong> uso, adotou-se o uso <strong>de</strong> setas nas relações para indicar qual ator é responsável pelaativação dos casos <strong>de</strong> uso.Fase 4 : Detalhamento dos Casos <strong>de</strong> UsoNesta fase é feito um <strong>de</strong>talhamento dos casos <strong>de</strong> uso através <strong>de</strong> <strong>de</strong>composições ouespecializacões. O grau <strong>de</strong> <strong>de</strong>talhamento necessário é um aspecto subjetivo. Cabe aoprojetista julgar qual o bom nível <strong>de</strong> <strong>de</strong>talhamento para cada projeto. Não se <strong>de</strong>ve exagerar nas<strong>de</strong>composições sob o risco <strong>de</strong> se estar influenciando ou direcionando o processo <strong>de</strong> projeto.Deve-se lembrar que os diagramas <strong>de</strong> casos <strong>de</strong> uso são especificações do que o sistema <strong>de</strong>vefazer e não <strong>de</strong> como ele <strong>de</strong>verá realizar os serviços.Como abordagem geral para esta fase existem as seguintes sugestões:• Procure estimar a dimensão <strong>de</strong> cada caso <strong>de</strong> uso. Para casos <strong>de</strong> uso muito extensos,crie subcasos <strong>de</strong> uso que i<strong>de</strong>ntifiquem partes do processo envolvido naquele caso <strong>de</strong>Pág.: 11uso. Relacione os subcasos <strong>de</strong> uso com caso <strong>de</strong> uso maior através <strong>de</strong> relações <strong>de</strong>inclusão.Para o sistema <strong>de</strong> controle acadêmico, consi<strong>de</strong>rou-se que os três casos <strong>de</strong> uso paracadastramento (aluno, professores e disciplinas) têm uma dimensão maior e incluemserviços internos (inclusão, consulta, alteração e exclusão) que po<strong>de</strong>m ser <strong>de</strong>stacados.Assim, optou-se por <strong>de</strong>compor cada um <strong>de</strong>stes casos <strong>de</strong> uso em quatro subcasos <strong>de</strong>uso.• Compare par a par os casos <strong>de</strong> uso tentando i<strong>de</strong>ntificar partes comuns nos serviçosassociados a cada caso <strong>de</strong> uso. Quando dois ou mais casos <strong>de</strong> uso possuem parte emcomum <strong>de</strong> dimensão significativa, esta parte em comum po<strong>de</strong> ser colocada emevidência através <strong>de</strong> um subcaso <strong>de</strong> uso.Para o sistema <strong>de</strong> controle acadêmico, foi <strong>de</strong>cidido que o usuário <strong>de</strong>verá se i<strong>de</strong>ntificaratravés <strong>de</strong> nome e senha para ter acesso aos serviços <strong>de</strong> cadastramento e registro <strong>de</strong>matrícula e notas. Assim, todos os casos <strong>de</strong> uso associados teriam uma fase inicialidêntica em seus processos que correspon<strong>de</strong>ria a realização <strong>de</strong> login. Esta partecomum po<strong>de</strong> ser indicada através <strong>de</strong> um subcaso <strong>de</strong> uso comum.• Quando dois ou mais casos <strong>de</strong> uso tiverem gran<strong>de</strong> parte <strong>de</strong> seus serviços semelhante,verifique a possibilida<strong>de</strong> <strong>de</strong> <strong>de</strong>finição <strong>de</strong> um caso <strong>de</strong> uso geral que cubra a partecomum <strong>de</strong>ste casos <strong>de</strong> uso. Especifique, então, um relacionamento <strong>de</strong> generalizaçãoentre o caso <strong>de</strong> uso geral e os casos <strong>de</strong> uso especializados.Cadastrar AlunoCadastrar ProfessorCadastrar DisciplinaSGBDRegistrar MatrículaSecretariaEmitir Confirmação<strong>de</strong> MatrículaEmitir Diário <strong>de</strong> ClasseImpressoraRegistrar NotaEmitir Histórico EscolarFigura I.10 – Relacionamentos entre Atores e Casos <strong>de</strong> Uso.Pág.: 12


A figura I.11 apresenta o diagrama <strong>de</strong> casos <strong>de</strong> uso final para o sistema <strong>de</strong> controleacadêmico. Na verda<strong>de</strong>, este diagrama po<strong>de</strong>ria ser melhorado e <strong>de</strong>talhado a partir dasprimeiras iterações do projeto. À medida que o projeto avance e a forma <strong>de</strong> realização doscasos <strong>de</strong> uso seja <strong>de</strong>finida, po<strong>de</strong>-se verificar a necessida<strong>de</strong> <strong>de</strong> alteração ou adaptação dodiagrama <strong>de</strong> casos <strong>de</strong> uso.Cadastrar AlunoIncluir Aluno Excluir Aluno Alterar AlunoCadastrar ProfessorIncluir Professor Excluir Professor Alterar ProfessorCadastrar DisciplinaIncluir Disciplina Excluir DisciplinaAlterar DisciplinaSGBDRealizar LoginSecretariaRegistrar MatrículaRegistrar NotaEmitir Diário <strong>de</strong> ClasseEmitir Confirmação<strong>de</strong> MatrículaImpressoraEmitir Histórico EscolarFigura I.10 – Diagrama <strong>de</strong> casos <strong>de</strong> uso final para o sistema <strong>de</strong> controle acadêmico.4 ConclusãoO mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso é uma ferramenta útil na <strong>de</strong>scrição dos requisitos funcionais <strong>de</strong> umsistema computacional. Ele permite especificar o conjunto <strong>de</strong> funcionalida<strong>de</strong>s ou serviços queum software <strong>de</strong>ve oferecer e as relações do sistema com entida<strong>de</strong>s externa (atores)necessárias para a realização <strong>de</strong>stes serviços.A notação <strong>UML</strong> para diagramas <strong>de</strong> casos <strong>de</strong> uso é em gran<strong>de</strong> parte intuitiva permitindo que osmo<strong>de</strong>los gerados possam ser apresentados aos clientes para discussões e revisões.Pág.: 13Deve-se sempre observar que o mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso é diferente da visão funcional nosentido que ele não apresenta enca<strong>de</strong>amentos <strong>de</strong> funções (por conseqüência, não <strong>de</strong>screveprocessos) e se limita a uma visão macroscópica dos serviços do sistema sem induzir a forma<strong>de</strong> realização (projeto) do software. O mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso oferece uma visão maisabstrata das funcionalida<strong>de</strong>s do sistema favorizando um trabalho <strong>de</strong> especificação maisabrangente.Por fim, o mo<strong>de</strong>lo <strong>de</strong> casos <strong>de</strong> uso po<strong>de</strong> também ser útil como ferramenta para planejamentodo <strong>de</strong>senvolvimento <strong>de</strong> sistemas computacionais (estimativas por caso <strong>de</strong> uso) e como basepara o <strong>de</strong>senvolvimento <strong>de</strong> projetos <strong>de</strong> software (projeto baseado em casos <strong>de</strong> uso).Créditos:Prof. Paulo Cézar StadziszPág.: 14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!