Vous êtes sur la page 1sur 9

16/04/12

Diretrizes: Classe de Anlise

Diretrizes: Classe de Anlise


As classes de anlise representam um primeiro modelo conceitual para "elementos no sistema que possuam responsabilidades e Classe de comportamento". Com o tempo, elas evoluiro para classes e Anlise subsistemas no Modelo de Design.
Tpicos

Esteretipos da Classe de Anlise Classe de Fronteira Classe de Controle Classe de Entidade Restries de Uso do Esteretipo de Associao Restries para Classes de Fronteira Restries para Classes de Controle Restries para Classes de Entidade Resumo de Restries Consistncia Obrigatria

Esteretipos da Classe de Anlise


As classes de anlise podem ser estereotipadas como: Classes de Fronteira Classes de Controle Classes de Entidade Alm de fornecer orientaes mais especficas do processo para localizar classes, a criao de esteretipos um poderoso modelo de objetos, pois as mudanas no modelo tendem a afetar somente uma rea especfica. As mudanas na interface do usurio, por exemplo, iro afetar somente as classes de fronteira. As mudanas no fluxo de controle iro afetar somente as classes de controle. As mudanas em informaes de longo prazo iro afetar somente as classes de entidade. Esses esteretipos so especialmente teis para identificar classes em anlise e design inicial. muito provvel que, em fases posteriores do design, voc precise utilizar um conjunto de esteretipos ligeiramente diferente para fazer uma correlao melhor com o ambiente de implementao, com o tipo de aplicativo, e assim por diante. Classe de Fronteira A classe de fronteira uma classe usada para modelar a interao entre o ambiente do sistema e seus trabalhos internos. Essa interao envolve transformar e converter eventos, bem como observar mudanas na apresentao do sistema (como a interface). As classes de fronteira modelam as partes do sistema que dependem do ambiente. As classes de entidade e de controle modelam as partes que so independentes de fatores externos ao sistema. Portanto, alterar a GUI ou o protocolo de comunicao significa alterar somente as classes de
www.wthreex.com/rup/process/modguide/md_acls2.htm 1/9

16/04/12

Diretrizes: Classe de Anlise

fronteira, e no as classes de entidade e de controle. As classes de fronteira tambm facilitam a compreenso do sistema, pois definem suas fronteiras. Elas ajudam no design, fornecendo um bom ponto de partida para identificar servios relacionados. Por exemplo, se voc identificar uma interface de impressora logo no incio do design, perceber de imediato que tambm deve modelar a formatao das impresses. Algumas classes de fronteira comuns so janelas, protocolos de comunicao, interfaces de impressora, sensores e terminais. Se voc estiver usando um construtor GUI, no ser necessrio modelar partes da interface de rotinas (botes, por exemplo) como classes de fronteira separadas. Geralmente, a janela inteira o objeto de fronteira mais refinado. As classes de fronteira tambm so teis para capturar interfaces para APIs possivelmente no orientadas a objetos (como cdigo mais antigo, por exemplo). Voc deve modelar as classes de fronteira de acordo com o tipo de fronteira que elas representam. A comunicao com outro sistema e a comunicao com um ator humano (atravs de uma interface do usurio) tm objetivos diferentes. Durante a modelagem da interface do usurio, a principal preocupao deve ser a forma como a interface ser apresentada ao usurio. Durante a modelagem da comunicao do sistema, a principal preocupao deve ser o protocolo de comunicao. Um objeto de fronteira (uma instncia de uma classe de fronteira) poder durar mais que uma instncia de caso de uso se, por exemplo, precisar ser exibido em uma tela entre o desempenho de dois casos de uso. Os objetos de fronteira, porm, costumam ter a mesma durao da instncia de caso de uso.
Localizao de Classes de Fronteira

Uma classe de fronteira faz a intermediao entre a interface e algo fora do sistema. Os objetos de fronteira isolam o sistema de mudanas externas (mudanas nas interfaces com outros sistemas, nos requisitos do usurio, etc.), impedindo que elas afetem o restante do sistema. Um sistema pode ter vrios tipos de classes de fronteira: Classes de interface do usurio - classes que intermedeiam a comunicao com usurios humanos do sistema Classes de interface do sistema - classes que intermedeiam a comunicao com outro sistema Classes de interface de dispositivo - classes que fornecem a interface para dispositivos (como sensores) que detectam eventos externos
Localizar Classes de Interface do Usurio

Podem existir classes de fronteira que representem a interface do usurio a partir de atividades de modelagem dessa interface. Quando apropriado, reutilize essas classes nessa atividade. Caso a modelagem de interface de usurio no tenha sido feita, a discusso a seguir ajudar a localizar essas classes. Existe pelo menos um objeto de fronteira para cada par de atores de caso de uso. Esse objeto pode ser visto como tendo a responsabilidade de coordenar a interao com o ator. Ele tambm pode ter objetos secundrios , aos quais delega algumas de suas responsabilidades. Isso verdadeiro para
www.wthreex.com/rup/process/modguide/md_acls2.htm 2/9

16/04/12

Diretrizes: Classe de Anlise

aplicativos GUI baseados em janela, nos quais geralmente existe um objeto de fronteira para cada janela ou para cada formulrio. Faa esboos ou use impresses de tela de um prottipo da interface do usurio que ilustrem o comportamento e a aparncia dos objetos de fronteira. Modele somente as principais abstraes do sistema. No modele todos os botes, listas e elementos da GUI. A meta da anlise no projetar cada detalhe, mas dar uma boa idia de como o sistema composto. Em outras palavras, identifique classes de fronteira apenas para fenmenos do sistema ou para elementos mencionados no fluxo de eventos da realizao de casos de uso. Consulte tambm Diretrizes: Classe de Fronteira (Modelagem da Interface do Usurio).
Localizar Classes de Interface do Sistema

Uma classe de fronteira que se comunica com um sistema externo responsvel pelo gerenciamento do dilogo com esse sistema. Ela fornece a interface entre o sistema externo e o sistema que est sendo criado.
Exemplo

Em um Caixa Eletrnico, a retirada de dinheiro deve ser verificada atravs da Rede do Caixa Eletrnico, um ator (que, por sua vez, faz a verificao da retirada com o sistema de contabilidade do banco). Um objeto chamado Interface da Rede do Caixa Eletrnico pode ser identificado para fazer a comunicao com aquela Rede. A interface com um sistema existente pode j estar bem definida. Se estiver, as responsabilidades sero derivadas diretamente da definio da interface. Se existir uma definio formal de interface, ela pode ser obtida por meio de engenharia reversa e isso precisa estar formalmente definido aqui. Simplesmente anote o fato de que a interface existente ser reutilizada durante o design.
Localizar Classes de Interface de Dispositivo

O sistema pode conter elementos que agem como se fossem externos (seus valores so alterados espontaneamente, sem que algum objeto do sistema os tenha afetado); por exemplo, um equipamento sensor. Embora seja possvel representar esse tipo de dispositivo externo usando atores, os usurios do sistema podem achar isso "confuso", j que o processo tende a colocar dispositivos e atores humanos no mesmo "nvel". Aps a concluso da coleta de requisitos, no entanto, precisamos considerar a origem de todos os eventos externos e verificar se dispomos de meios para fazer com que o sistema detecte esses eventos. Se o dispositivo estiver representado como um ator no modelo de casos de uso, ser fcil justificar a utilizao de uma classe de fronteira para intermediar a comunicao entre o dispositivo e o sistema. Se o modelo de casos de uso no incluir esses "atores-dispositivo", este ser o momento adequado para adicion-los, atualizando as Descries Suplementares dos Casos de Uso, quando apropriado. Para cada "ator-dispositivo", crie uma classe de fronteira para capturar as responsabilidades do dispositivo ou do sensor. Se j existir uma interface bem definida para o dispositivo, anote-a para fazer referncia posteriormente durante o design.

www.wthreex.com/rup/process/modguide/md_acls2.htm

3/9

16/04/12

Diretrizes: Classe de Anlise

Classe de Controle A classe de controle uma classe usada para modelar um comportamento de controle especfico de um ou alguns casos de uso. Como objetos de controle (instncias de classes de controle) geralmente controlam outros objetos, o comportamento de objetos de controle do tipo coordenador. As classes de controle encapsulam um comportamento especfico de caso de uso. O comportamento de um objeto de controle est estreitamente relacionado realizao de um caso de uso especfico. Em muitos cenrios, possvel at dizer que os objetos de controle "executam" as realizaes de casos de uso. Entretanto, se as tarefas de caso de uso estiverem intrinsecamente relacionadas, alguns objetos de controle podero participar de mais de uma realizao de casos de uso. Alm disso, vrios objetos de controle de diferentes classes de controle podem participar de um nico caso de uso. Nem todos os casos de uso exigem um objeto de controle. Por exemplo, se o fluxo de eventos em um caso de uso estiver relacionado a um objeto de entidade, um objeto de fronteira poder realizar o caso de uso em cooperao com o objeto de entidade. Comece identificando uma classe de controle para cada realizao de casos de uso e, em seguida, refine-a medida que identifica mais realizaes de casos de uso e o respectivo compartilhamento de caractersticas comuns. As classes de controle podem ajudar a entender o sistema, pois representam a dinmica do sistema, controlando as principais tarefas e os fluxos de controle. Quando o sistema executar o caso de uso, um objeto de controle ser criado. Os objetos de controle geralmente desaparecem aps a execuo do correspondente caso de uso. Observe que uma classe de controle no controla tudo o que necessrio em um caso de uso. Em vez disso, ela coordena as atividades de outros objetos que implementam a funcionalidade. A classe de controle delega trabalho aos objetos aos quais foi atribuda a responsabilidade pela funcionalidade.
Localizao de Classes de Controle

As classes de controle fornecem comportamento de coordenao no sistema. O sistema pode executar alguns casos de uso sem objetos de controle (simplesmente usando objetos de fronteira e de entidade), principalmente os casos de uso que envolvem somente a simples manipulao de informaes armazenadas. Em geral, casos de uso mais complexos exigem uma ou mais classes de controle para coordenar o comportamento de outros objetos no sistema. Exemplos de objetos de controle incluem programas como gerenciadores de transaes, coordenadores de recursos e identificadores de erros. As classes de controle realmente dissociam objetos de fronteira de objetos de entidade (e viceversa), tornando o sistema mais tolerante a mudanas em sua fronteira. Elas tambm dissociam o comportamento especfico de casos de uso dos objetos de entidade, tornando-os mais reutilizveis em casos de uso e sistemas. As classes de controle fornecem um comportamento que: Independe de fatores externos (o comportamento no se altera quando o ambiente alterado),
www.wthreex.com/rup/process/modguide/md_acls2.htm 4/9

16/04/12

Diretrizes: Classe de Anlise

Define a lgica de controle (ordem entre os eventos) e as transaes em um caso de uso, pouco alterado se a estrutura interna ou o comportamento das classes de entidade se altera, Usa ou define o contedo de vrias classes de entidade e, portanto, precisa coordenar o comportamento dessas classes. No executado da mesma maneira toda vez que ativado (o fluxo de eventos apresenta vrios estados).
Determinar se uma Classe de Controle Necessria

O fluxo de eventos de um caso de uso define a ordem em que diferentes tarefas so executadas. Comece investigando se o fluxo pode ser gerenciado pelas classes de fronteira e de entidade j identificadas. Para fluxos de eventos simples, que basicamente inserem, recuperam e exibem ou modificam informaes, normalmente no justifica ter uma classe de controle separada. As classes de fronteira sero responsveis por coordenar o caso de uso. Os fluxos de eventos devem ser encapsulados em uma classe de controle separada quando forem complexos e consistirem em comportamento dinmico, que possa ser alterado sem levar em considerao as interfaces (classes de fronteira) ou armazenamentos de informaes (classes de entidade) do sistema. Por meio do encapsulamento dos fluxos de eventos, a mesma classe de controle pode ser reutilizada para vrios sistemas, que podem ter diferente interfaces e armazenamentos de informaes (ou, pelo menos, as estruturas bsicas de dados). Exemplo: Gerenciamento de Fila de Tarefas possvel identificar uma classe de controle no caso de uso Executar Tarefa no Sistema para Administrao de Depsito. Essa classe de controle gerencia uma fila de Tarefas, assegurando a execuo das Tarefas na ordem correta. Ela executa a prxima Tarefa da fila assim que um equipamento de transporte adequado alocado. O sistema pode, portanto, executar vrias Tarefas ao mesmo tempo. Fica mais fcil descrever o comportamento definido pelo objeto de controle correspondente se voc dividi-lo em duas classes de controle, o Executor de Tarefas e o Gerenciador de Filas. O objeto Gerenciador de Filas ir gerenciar somente a ordem da fila e a alocao dos equipamentos de transporte. Um nico objeto Gerenciador de Filas necessrio para toda a fila. Cada vez que uma Tarefa executada, o sistema cria um novo objeto Executor de Tarefas, que executar a prxima Tarefa. Precisamos, portanto, de um objeto Executor de Tarefas para cada Tarefa que o sistema executar.

Classes complexas devem ser divididas segundo um modelo de responsabilidades semelhantes


www.wthreex.com/rup/process/modguide/md_acls2.htm 5/9

16/04/12

Diretrizes: Classe de Anlise

A principal vantagem dessa diviso obter responsabilidades de gerenciamento de filas separadas (algo genrico em muitos casos de uso) a partir das atividades especficas de gerenciamento de tarefas, que so especficas para esse caso de uso. Isso torna as classes mais fceis de entender e de adaptar, medida que o design se desenvolve. Tambm traz vantagens ao equilibrar a carga do sistema, j que vrios Executores de Tarefas podem ser criados conforme a necessidade de gerenciar a carga de trabalho.
Encapsulamento do Fluxo de Eventos Principal e de Fluxos de Eventos Alternativos/Excepcionais em Classes de Controle separadas

Para simplificar as mudanas, encapsule o fluxo de eventos principal e os alternativos em classes de controle diferentes. Se os fluxos alternativos e excepcionais forem completamente independentes, separe-os tambm. Isso facilitar a ampliao e manuteno do sistema ao longo do tempo.
Dividir Classes de Controle em que dois Atores compartilhem a mesma Classe de Controle

Tambm pode ser necessrio dividir as classes de controle quando vrios atores usam a mesma classe de controle. Ao fazer isso, isolamos as mudanas nos requisitos de um ator a partir do restante do sistema. Quando o custo da mudana for alto ou as conseqncias forem terrveis, voc dever identificar e dividir todas as classes de controle que estejam relacionadas a mais de um ator. Em uma situao ideal, cada classe de controle deve interagir (atravs de algum objeto de fronteira) com um ou nenhum ator.
Exemplo: Gerenciamento de Chamadas

Considere o caso de uso Chamada Local. Inicialmente, podemos identificar uma classe de controle para gerenciar a chamada em si.

A classe de controle que gerencia chamadas telefnicas locais em um sistema telefnico pode ser rapidamente dividida em duas classes de controle, comportamento A e comportamento B, uma para cada ator envolvido.

Em uma chamada telefnica local, h dois atores: assinante A, que inicia a chamada, e assinante B, que recebe a chamada. O assinante A tira o telefone do gancho, ouve o tom de discagem e disca alguns nmeros, que o sistema armazena e analisa. Depois de
www.wthreex.com/rup/process/modguide/md_acls2.htm 6/9

16/04/12

Diretrizes: Classe de Anlise

receber todos os nmeros, o sistema envia um tom de chamada para o assinante A e um sinal de chamada para o assinante B. Quando o assinante B responde, o tom e o sinal param e a conversa entre os assinantes pode comear. A chamada concluda quando os dois assinantes desligam. Dois comportamentos devem ser controlados: o que ocorre no local do assinante A e o que ocorre no local do assinante B. Por esse motivo, o objeto de controle original foi dividido em dois objetos de controle, comportamento A e comportamento B. No ser necessrio dividir uma classe de controle se: Voc puder ter certeza suficiente de que o comportamento dos atores relacionados com os objetos da classe de controle nunca ser alterado ou ser muito pouco alterado. O comportamento de um objeto da classe de controle em relao a um ator for insignificante quando comparado ao seu comportamento em relao a outro ator; um nico objeto pode conter todo o comportamento. A combinao de comportamento dessa maneira ter um efeito insignificante na mutabilidade.

Classe de Entidade A classe de entidade uma classe usada para modelar as informaes e o comportamento associado que devem ser armazenados. Os objetos de entidade (instncias de classes de entidade) so usados para manter e atualizar informaes sobre alguns fenmenos, como um evento, uma pessoa ou algum objeto real. Esses objetos geralmente so persistentes, precisando de atributos e relacionamentos durante muito tempo, algumas vezes durante todo o ciclo de vida do sistema. Um objeto de entidade geralmente no especfico para uma realizao de casos de uso. s vezes, um objeto de entidade no nem mesmo especfico para o prprio sistema. Os valores de seus atributos e relacionamentos costumam ser fornecidos por um ator. Um objeto de entidade tambm pode ajudar a executar tarefas internas do sistema. Seu comportamento pode ser to complicado quanto o de outros esteretipos de objeto. No entanto, ao contrrio de outros objetos, esse comportamento est intrinsecamente relacionado ao fenmeno que o objeto de entidade representa. Os objetos de entidade independem do ambiente (os atores). Os objetos de entidade representam os conceitos-chave do sistema que est sendo desenvolvido. Exemplos tpicos de classes de entidade em um sistema bancrio so Conta e Cliente. Em um sistema de gerenciamento de redes, os exemplos so N e Link. Se o fenmeno que voc deseja modelar no for usado por outras classes, ser possvel model-lo como um atributo de uma classe de entidade ou mesmo como um relacionamento entre classes de entidade. Por outro lado, se o fenmeno for usado por qualquer outra classe do modelo de design, ser preciso model-lo como uma classe. As classes de entidade fornecem um outro ponto de vista do sistema, pois mostram a estrutura lgica dos dados, que pode ajud-lo a compreender o que o sistema deve oferecer aos usurios.
Localizao de Classes de Entidade

As classes de entidade representam os armazenamentos de informaes no sistema e geralmente so


www.wthreex.com/rup/process/modguide/md_acls2.htm 7/9

16/04/12

Diretrizes: Classe de Anlise

usadas para representar os conceitos-chave que o sistema gerencia. Os objetos de entidade costumam ser passivos e persistentes. Suas principais responsabilidades so armazenar e gerenciar informaes no sistema. O Glossrio (desenvolvido durante os requisitos) e um modelo de domnio de negcios (desenvolvido durante a modelagem de negcios, se esta tiver sido executada) so fontes freqentes de inspirao para as classes de entidade.

Restries de Uso de Esteretipo de Associao


Restries para Classes de Fronteira As seguintes situaes so permitidas: Comunicar associaes entre duas classes de Fronteira, por exemplo, para descrever como uma janela especfica est relacionada a outros objetos de fronteira. Comunicar ou assinar associaes de uma classe de Fronteira para uma classe de Entidade, pois os objetos de fronteira podem precisar controlar certos objetos de entidade entre aes no objeto de fronteira ou ser informados de mudanas de estado no objeto de entidade. Comunicar associaes de uma classe de Fronteira para uma classe de Controle, para que um objeto de fronteira possa disparar um determinado comportamento. Restries para Classes de Controle As seguintes situaes so permitidas: Comunicar ou assinar associaes entre classes de Controle e classes de Entidade, pois os objetos de controle podem precisar controlar certos objetos de entidade entre aes no objeto de controle ou ser informados de mudanas de estado no objeto de entidade. Comunicar associaes entre classes de Fronteira e de Controle, permitindo que os resultados do comportamento disparado sejam comunicados ao ambiente. Comunicar associaes entre classes de Controle, permitindo a construo de padres de comportamento mais complexos. Restries para Classes de Entidade As classes de entidade devem ser apenas a origem de associaes (comunicar ou assinar) com outras classes de entidade. Os objetos da classe de entidade normalmente tm longa durao, j os objetos de classe de fronteira e de controle costumam durar pouco. Do ponto de vista arquitetural, sensato limitar a visibilidade que um objeto de entidade tem do ambiente; dessa maneira, o sistema fica mais receptivo a mudanas. Resumo de Restries De\Para (navegabilidade) Fronteira Entidade Controle
8/9

www.wthreex.com/rup/process/modguide/md_acls2.htm

16/04/12

Diretrizes: Classe de Anlise

Fronteira

comunicar

comunicar assinar

comunicar

Entidade

comunicar assinar

Controle

comunicar

comunicar assinar

comunicar

Combinaes de Esteretipos de Associao Vlidas

Consistncia Obrigatria
Quando um novo comportamento for identificado, verifique se h uma classe existente que tenha responsabilidades semelhantes e, sempre que possvel, reutilize as classes. S crie novas classes se tiver certeza de que nenhum objeto existente pode executar o comportamento. medida que as classes forem identificadas, examine-as para verificar se elas tm responsabilidades consistentes. Quando as responsabilidades de uma classe forem desconexas, divida o objeto em duas ou mais classes. Atualize os diagramas de colaborao de acordo. Se uma classe for dividida porque responsabilidades desconexas foram identificadas, examine as colaboraes nas quais a classe desempenha um papel a fim de verificar se a colaborao precisa ser atualizada. Atualize a colaborao, se necessrio. Uma classe com uma nica responsabilidade no um problema por si s, mas levanta questes sobre o motivo pelo qual ela necessria. Esteja preparado para questionar e justificar a existncia de todas as classes.

Copyright (c) 1987 - 2001 Rational Softw are Corporation Rational Unified Process

www.wthreex.com/rup/process/modguide/md_acls2.htm

9/9

Vous aimerez peut-être aussi