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