modelando sistemas com uml - use case e modelo conceitual

6
  Modelando Sistemas em UML - Casos de Uso Neste artigo vou falar um  pouc o sobre m odelagem de s istemas usando UML f  ocando exclusivamente os diagr  amas de casos de uso . A primeira coisa que devemos ter em mente que os princípios aqui discutidos não se ref  erem a um  a linguagem específ  ica ; estam  os focando é claro a análise orientada a objetos onde conceitos como encapsulamento de atributos e métodos , alta coesão e baixo acoplam  ento , herança e polimorf   ismo devem esta bem assimilados. Vamos usar a UML que é um modelo de linguagem que define uma notação que são todos os elementos de representação gráf  ica vistos no modelo. Estamos pois na f  ase de análise e não estamos preocupados com software nem hardware. Caso de Uso - defi  nições Segundo Ivan Jaco bson , podem os dizer qu e um c aso de uso é um "d ocumento narrat ivo qu e descreve a sequência de eventos de um ator que usa um sistema para completar um processo". Um  caso de uso é uma técnica de modelagem usada para descrever o que um novo sistema deve f  azer . Ele é construído através de um processo interativo no qual as discussões entre o cliente e os desenvolvedores do sistema conduzem a uma especificação do sistema da qual todos estão de acordo. Um  caso de uso descreve as operações que o sistema deve cum  prir para cada usuário. Ele vai ajudar a f  ormalizar as funções que o sistema precisa f  azer. Um  caso de uso se a pr esenta como uma lista completa das interações entre um  usuário e o sistema para cumprir uma taref  a. Lista comp leta sig nifica que o c aso de uso desc reve as interações desde o in ício da t aref  a, até o f  im. Casos de uso têm  que ser compreensíveis por usuários por que só eles sabem o que o sistema precisa fazer. Os casos de uso permitem verif  icar se o desenvolvedor e o usuário concordam sobre o que o sistema deve fazer. Isso é um problema im  por tant e no desenvolvim  ento de software. No mesmo tempo, casos de uso podem servir de "contr  atos''  entre os usuários e a equipe de desenvolvimento. Os casos de usam tem  por objetivo : Decidir e descrever os requisitos funcionais do sistema. Fornecer um a desc r ição c lar a e consistente do que o sistem a deve fazer. Permitir descobrir os requisitos funcionais das classes e operações do sistema. ( Casos de uso NÃ O são requisi to s) Podemos dizer que os componentes de um modelo de casos de uso são : Ator  - é um papel que tipicamente estimula/solicita ações/eventos do sistema e recebe reações. Cada at or p ode participar d e vários casos de uso Casos de uso - documento narr ativo que desc reve a seqüência de ev entos fe itos por um ator no uso do sistema. Sistema - O sistema a ser modelado Na UML o modelo de casos de uso consiste de diagramas de casos de uso que mostram os atores , os c asos de uso e seus rel ac ionamentos. Os elem entos grá ficos que repr esentam atores, c asos de uso e sistema são mostrados abaixo:

Upload: carlos-kenny

Post on 21-Jul-2015

61 views

Category:

Documents


0 download

TRANSCRIPT

Modelando Sistemas em UML Casos de UsoNeste artigo vou falar um pouc o sobre modelagem de sistemas usando UML foc ando exclusivamente os diagramas de casos de uso . A primeira c oisa que devemos ter em mente que os princpios aqui discutidos no se referem a uma linguagem especfic a ; estamos focando c laro a anlise orientada a objetos onde c onceitos como encapsulamento de atributos e mtodos , alta c oeso e baixo acoplamento , heran a e polimorfismo devem esta bem assimilados. Vamos usar a UML que um modelo de linguagem que define uma nota o que so todos os elementos de representa o grfica vistos no modelo. Estamos pois na fase de anlise e no estamos preocupados c om software nem hardware.

Caso de Uso - definiesSegundo Ivan Jacobson , podemos dizer que um c aso de uso um "doc umento narrativo que desc reve a sequnc ia de eventos de um ator que usa um sistema para c ompletar um processo". Um c aso de uso uma tcnic a de modelagem usada para descrever o que um novo sistema deve fazer . Ele c onstrudo atravs de um proc esso interativo no qual as disc usses entre o cliente e os desenvolvedores do sistema c onduzem a uma espec ifica o do sistema da qual todos esto de ac ordo. Um c aso de uso descreve as opera es que o sistema deve c umprir para cada usurio. Ele vai ajudar a formalizar as fun es que o sistema prec isa fazer. Um caso de uso se apresenta c omo uma lista c ompleta das intera es entre um usurio e o sistema para c umprir uma tarefa. Lista completa signific a que o c aso de uso descreve as intera es desde o incio da tarefa, at o fim. Casos de uso tm que ser c ompreensveis por usurios por que s eles sabem o que o sistema prec isa fazer. Os c asos de uso permitem verific ar se o desenvolvedor e o usurio conc ordam sobre o que o sistema deve fazer. Isso um problema importante no desenvolvimento de software. No mesmo tempo, casos de uso podem servir de "contratos'' entre os usurios e a equipe de desenvolvimento. Os c asos de usam tem por objetivo : Dec idir e desc rever os requisitos func ionais do sistema. Fornecer uma desc ri o c lara e c onsistente do que o sistema deve fazer. Permitir desc obrir os requisitos func ionais das c lasses e opera es do sistema. (Casos de uso NO so requisitos) Podemos dizer que os componentes de um modelo de c asos de uso so : Ator - um papel que tipic amente estimula/solic ita a es/eventos do sistema e rec ebe rea es. Cada ator pode partic ipar de vrios casos de uso Casos de uso - documento narrativo que descreve a seqnc ia de eventos feitos por um ator no uso do sistema. Sistema - O sistema a ser modelado Na UML o modelo de casos de uso consiste de diagramas de c asos de uso que mostram os atores , os c asos de uso e seus relac ionamentos. Os elementos grfic os que representam atores, c asos de uso e sistema so mostrados abaixo:

O nome de um caso de uso pode ser qualquer sentencia, mas a UML rec omenda usar uma frase ativa c urta (verbo + substantivo), por exemplo: "comprar itens'', "efetuar venda", ... Os elementos principais do diagrama so uma elipse para representar um caso de uso e um pequeno bonec o para representar um ator

Nota: Abaixo temos uma estrutura de especificao que voc pode usar para casos de uso. No existe um padro.Nome do caso de uso De scrio do ca so de uso (um pargrafo). A tores Lista do s no m e s do s a tores com descrio curta. Prioridade Seja e ste ca so de uso m uito im portante no pro jeto o u acess rio? Pre-Condies Lista de condi es que t m que ser ve rificadas a nte s que o ca so de uso co m e a . Fluxo de eventos Fluxo principal 1. Prim e iro passo no caso de uso . 2. Se gundo passo no caso de uso . 3. ... Fluxos alternativos De screve r o s fluxos alternativo s. Ps-Condies Lista de condi es que t m que ser ve rificadas depo is do fim do ca so de uso. Pontos de extenso Lista do s po nto s de e xte nso no caso de uso . Casos de uso includos Lista do s no m e s do s caso s de uso s includos.

Nos primeiros contatos c om os modelos de c asos de uso surgem c om frequncia trs perguntas para as quais no existe uma resposta absoluta , so elas :: 1 - Como identificar atores ? Para identific ar os atores que vo partic ipar do modelo devemos fazer as seguintes perguntas : Quem usa o sistema ? Quem inicia o sistema ? Quem fornec e os dados ? Quem usa as informa es ?

2- Como desc rever atores ? Geralmente desc reve atores usando : Nome do c aso de uso tipo de uso (frequente, oc asional , etc ...) desc ri o de seu papel no sistema 3- Como Identificar casos de uso ? Os c asos de uso so intera es entre os atores e o sistema . Temos ento aes do ator e aes do sistema. Sendo que os atores sempre inic iam a a o.

Vamos dar um exemplo prtic o para que tudo fique mais c laro. Vamos supor , por questo de simplicidade , que temos que modelar usando c asos de uso a compra de item em um a loja com um terminal de ponto de venda. Quais so os atores ? Quem usa o sistema o cliente e ele usa um terminal de caixa . Como podemos identificar o caso de uso ? Podemos c hamar este c aso de uso de : Comprar Item (verto+substantivo) Agora vamos a um desc rio textual do caso de uso Comprar Item onde atual os atores cliente e caixa. (Aqui estou adotando uma estrutura de especific ao bem simplific ada por questes didtic as) Caso de uso - Comprar Item Atores - Cliente , Caixa Descrio - Este caso de uso comea quando um cliente chega ao terminal com itens que deseja comprar. O caixa registra os itens , recebe o pagamento e emite uma nota fiscal. O Cliente recebe os itens comprados. Na UML temos o diagrama de c aso de uso que pode ser representado para o c aso ac ima da seguinte forma:

Algumas considera es : - Nomeie um c aso de uso c ome ando c om um verbo , para enfatizar que ele um processo. Ex: Cadastrar Cliente , Comprar Item , etc. - Para identific ar c laramente um ator iniciador e um evento , c omece a desc ri o da sequnc ia de um c aso de uso usando o seguinte esquema: - Este caso de uso c ome a quando o Ex: Este c aso de uso c ome a quando um c liente c hega com vrios itens para c omprar Vamos a um outro exemplo: Suponha que voc tenha um almoxarifado de pe as onde c lientes fa am pedido e onde um operador rec eba tarefas do sistema para busc ar pe as para os pedidos dos c lientes e distribuir pe as do setor de c ompras para o almoxarifado. (O exemplo bem simples para fac ilitar o entendimento do c onc eito) Como poderamos identific ar os atores e os c asos de uso para este exemplo? Vamos identificar os atores . Eles so : Cliente , Operador , Sistema e Setor de Compras. Certo ?

No errado !!! No exemplo ac ima Sistema no pode ser um ator pois ele no se ajusta ao conc eito dado a um ator : Um agente externo ao sistema. Lembre-se que um ator um papel que interage c om o sistema mas no faz parte do sistema, ento no lugar de Sistema poderamos sugerir um administrador ou gerente. Ento os atores seriam : Cliente , Operador , Administrador e Compras. (Podem existir sub-sistemas que interagem c om o sistema , neste caso eles seriam c onsiderados atores.) E os c asos de usos , quais seriam ? solic ita pe as (ator Cliente) entrega pe as (ator Compras) buscar pedidos (ator operador) distribuir pedidos (ator operador) cadastrar Tarefas (administrador)

Certo ? Errado !!! No c aso do ator operador ele no atua sobre o sistema nos c asos de uso busc ar pedidos e distribuir pedidos , ele atua sobre o sistema realizando Tarefa. Ento o c orreto seria. solic ita pe as (ator Cliente) entrega pe as (ator Compras) realiza Tarefa (ator operador) cadastrar Tarefas (administrador)

Usando a representa o UML para os diagramas de casos de uso teramos :

Este seria o caso de uso preliminar(simplificado) pois no temos muito detalhamento nesta etapa do modelo. A prxima etapa seria realizar um refinamento do modelo a fim de obter o relac ionamento entre os c asos de uso atravs da generalizao , incluso ou extenso. A partir do diagrama de casos de uso preliminar muitas vezes temos que definir c asos de usos adic ionais separadamente pois as opera es se encontram duplicadas em outros c asos de uso ou so c omplexas e longas e a separao nos ajuda a c ompreend-las.

Os relac ionamentos possveis so : 1- Incluso : Se um c aso de uso inicia ou inc lui o c omportamento de outro , dizemos que ele usa o outro. Ex: No c aso de uso Comprar Item se o pagamento for feito com dinheiro podemos ter a inc luso PagarComDinheiro O relac ionamento de inc luso em UML ilustrado com uma linha de generaliza o c om o rtulo . Ento para o exemplo do cliente c om o use c ase Solic itar Pedidos de pe as teramos:

As propriedades bsicas da incluso so : realizar um dec omposi o func ional reduzir a c omplexidade de um caso de uso O c aso de uso bsico no pode executar sem a incluso. Comportamento c omum 2- Extenso - Define pontos de extenso que adic ionam c omportamento a um c aso de uso base desc revendo uma varia o do c omportamento normal. O c aso de uso base pode ser exec utado mesmo sem a extenso. Ex: O caso de uso Comprar Produto pode apresentar a extenso Compra por um Cliente Regular. Abaixo temos o diagrama UML

Os pontos de extenso so indic ados na linha entre os casos de uso do sistema. 3- Generalizao - Indic a um c aso de base que possui diferentes espec ializa es e inc lui comportamento ou sobrescreve o c aso de uso base. O caso de uso Pagar fatura apresenta as generalizaes : Pagamento com carto e Pagamento com Cheque , c onforme o diagrama Abaixo:

Alm disto temos tambm os relacionamentos entre atores onde um ator espec ializado pode ac essar os c asos de uso de um Ator base. Abaixo temos um exemplo onde o Ator gerente ac essa os c asos de uso do ator func ionrio

Espero que esta pequena introduo aos casos de uso amplie o seu horizonte para a modelagem UML. Creio que uma das melhores ferramentas para modelagem o Rational Rose, mas o pre o bem salgado. Como op o voc pode usar uma das seguintes ferramentas : Poseidon - existe um verso opensourc e (Community version) Pacestar UML - Uma verso shareware de uma ferramenta mais simples. Rational Rose - Cpia demo do (Rational Rose Limited Edition).(Tem 10 MB) Aguarde mais artigos onde irei falar sobre modelo c onc eitual , diagramas de seqncia , diagramas de estado , e muito mais... At breve... referncias: - OMG (Object Modeling Glossary). - Rational - Larman, Craig , "Utilizando UML e Padres - Uma introdu o analise e ao projeto orientados a objetos" , BooKman, 2000