Escolar Documentos
Profissional Documentos
Cultura Documentos
1.
INTRODUO..............................................................................................................................................................2
2.
3.
4.
1.
Introduo
2.
Neste captulo, sero apresentados, de uma forma sucinta, os principais enfoques utilizados
pelos mtodos tradicionais de desenvolvimento de sistemas para auxiliar na elicitao de
requisitos[Davis 90]. Quatro enfoques so apresentados: Decomposio Funcional, Fluxo de Dados,
Modelagem de Informaes e Modelagem Orientada a Objetos.
2.1
Na decomposio funcional, o domnio do problema deve ser mapeado para uma hierarquia de
funes e subfunes. Por exemplo, o mtodo HIPO(Hierarchy plus Input-Process-Output),
desenvolvido pela IBM, baseia-se em dois componentes principais: Representao Hierrquica, que
mostra como uma funo se subdivide em vrias funes e Representao de Entrada-Processo-Sada,
que mostra cada funo na hierarquia em termos de suas entradas e sadas. De uma forma geral, na
decomposio funcional, o desenvolvedor apresenta como resultado os nveis de sistema, subsistema,
funo e subfuno.
Os principais problemas do enfoque da decomposio funcional so relacionados com a
instabilidade da funcionalidade do sistema e com a dificuldade de se obter alta coeso e baixo
acoplamento, na descrio da composio dos componentes do sistema e nas interfaces entre estes
componentes. Muitos desenvolvedores encontraram dificuldades para identificar funes capazes de
suportar os novos requisitos do sistema com mnimas alteraes na anlise e organizao da
especificao.
Na prtica, a AOO usa a decomposio funcional, porm num contexto muito especfico,
quando se deseja dividir um grande Servio (comportamento que um objeto deve apresentar) em partes
menores para tornar mais claro e diminuir a complexidade. Esta definio, bom ressaltar, feita
dentro de um contexto muito limitado, no sendo usada como estrutura organizacional principal da
anlise.
2.2
Este enfoque talvez seja o mais conhecido, pois tem sido utilizado largamente no
desenvolvimento da maioria dos sistemas. Mtodos conhecidos como anlise estruturada mapeiam o
mundo real atravs de Atividades e fluxos de dados. Os problemas com a anlise estruturada e mais
recentemente anlise estruturada moderna, so relacionados com a dificuldade de conexo do
Diagrama de Fluxo de Dados(DFD) com a modelagem de informaes e da transio da anlise para o
projeto. Tambm, o lado funcional deste enfoque muito forte e acaba tendo os mesmos problemas da
decomposio funcional. A utilizao do Diagrama de Entidade e Relacionamento(DER) em conjunto
com o DFD e o particionamento do sistema por eventos da Anlise Essencial trouxe alguns resultados
positivos, porm ainda continua traumtica a conexo prtica do DFD e DER e a passagem do DFD,
uma representao em rede das atividades e dos depsitos de dados, para o Diagrama Estruturado(DE)
com representao hierrquica dos mdulos. Ainda, a utilizao de notaes distintas para
funes(DFD) e dados(DER), embora suportado por ferramentas CASE, no muito bom porque leva
a raciocnios separados.
Outro aspecto a ser mencionado com relao a este enfoque de fluxo de dados o tamanho do
dicionrio de dados que tende a ficar enorme no caso de existirem vrios nveis de DFDs, quando
centenas de equaes de nivelamento de fluxo de dados podem ser necessrias. Outra considerao
que DFDs no so muito teis para sistemas ou partes de sistemas que principalmente atualizam ou
recuperam dados, ao contrrio dos sistemas voltados para o processamento de transaes.
2.3
2.4
Muito se tem pesquisado segundo este enfoque, que representa o mundo real com objetos e
suas interaes. Busca-se a soluo dos problemas atravs de uma modelagem orientada a objetos,
conforme mostra a Figura 2.1. Os autores [Rumbaugh et alii 91] em seu ltimo livro, apresentam
conceitos importantes nos quais se baseia a AOO.
Mundo
dos
Objetos
Modelagem
Problemas
Sistemas
Solues
3.
3.1
Abstrao
Servio uma atividade executada para permitir que as pessoas utilizem alguma coisa
[Webster's 77]. Na AOO, o termo servio definido de forma a refletir o domnio do problema e as
responsabilidades do sistema, ou seja, servio um comportamento especfico que um objeto deve
exibir.
A abstrao tambm depende do ponto de vista. Por exemplo, o coelho da Figura 3.1, sob o
ponto de vista da moa tem atributos cor, aparncia, etc, e sob o ponto de vista do veterinrio tem
atributos peso, tamanho, etc. Da mesma forma, tem-se os servios correr e brincar, sob o ponto de
vista da moa, e criar e comer sob o ponto de vista do veterinrio.
cor
aparncia
peso
tamanho
Correr
Brincar
Criar
Comer
3.2
Encapsulamento
Princpio usado no desenvolvimento de uma estrutura global de programa, que estabelece que
cada componente do programa deve conter uma nica deciso de projeto. A interface para cada
mdulo definida de forma a revelar o menos possvel sobre seu funcionamento interno[Oxford 86].
O objetivo do encapsulamento (ocultamento de informaes) restringir o escopo ou
visibilidade da informao para obter melhor legibilidade, manutebilidade e principalmente
reutilizabilidade no desenvolvimento de um novo sistema. O encapsulamento permite que o
desenvolvedor reuna os aspectos mais instveis de forma a facilitar sua localizao e manuteno em
caso de alteraes, hoje muito comum nos sistemas.
O encapsulamento pode ainda ser visto como um processo pelo qual se combinam os atributos
e os servios que agem sobre estes atributos, em uma definio que oculta detalhes de implementao.
Por exemplo, a calculadora da Figura 3.2, tem internamente seus registradores, que so ocultos por
uma interface que disponibiliza para o usurio apenas os servios de Somar, Subtrair e outras
operaes. Note ainda que detalhes dos processos pelos quais se obtem um resultado no esto
diretamente visveis para quem est usando a calculadora, e nem mesmo isto interessa. Em resumo,
juntam-se atributos e servios disponibilizando apenas o que interessa mostrar, normalmente os
servios.
3.3
Classe e Objeto
Das idias de abstrao e encapsulamento tem-se o Tipo Abstrato de Dados(TAD), que possui
uma interface para ocultar detalhes de implementao, possibilitando que se tenham diferentes
especificaes, em diferentes tempos, sem afetar as aplicaes que utilizam o TAD. Um TAD
tambm chamado de Classe, a qual pode ser vista como uma fbrica de objetos idnticos no que diz
respeito sua interface e implementao. Assim por exemplo, tem-se, na Figura 3.3, o TAD Pessoa, ou
a Classe Pessoa, cujos atributos so Nome, Endereo, Identidade, Estado Civil e outros, e cujos
servios so Estudar, Trabalhar, Dirigir, Passear, e outros. Uma classe portanto um conjunto de
objetos similares. Uma instncia de uma classe chamada Objeto da Classe. Na Figura 3.3 tem-se que
Maria e Pedro so duas instncias da classe Pessoa.
classe Pessoa
objeto Maria
objeto Pedro
3.4
Herana
A abstrao de dados uma tcnica efetiva para se definir um conceito nico e claro, como os
TADs. Contudo, muitas vezes pode-se ter um TAD que quase, mas no exatamente o que queremos
e, neste caso, a herana uma tcnica til para ampliar a abstrao de dados. Baseado nestes conceitos,
define-se:
Herana o mecanismo para expressar a similaridade entre Classes, simplificando a definio
de Classes iguais a outras que j foram definidas.
Este princpio permite representar membros comuns, servios e atributos uma s vez, assim
como especializar estes membros em casos especficos.
A herana permite, portanto, a reutilizao de especificaes comuns, logo no incio das
atividades de anlise. A herana define uma relao entre classes do tipo -um(a), onde uma classe
compartilha a estrutura e o comportamento definidos em uma ou mais classes. O reconhecimento da
similaridade entre classes forma uma hierarquia de classes, onde superclasses representam abstraes
generalizadas e subclasses representam abstraes, onde atributos e servios especficos so
adicionados, modificados ou removidos. As classes so conectadas por uma estrutura de
generalizao e especializao, tornando explcitos os atributos e servios comuns em uma
hierarquia de Classes.
Na Figura 3.4, tem-se, por exemplo, que Estudante uma Pessoa, Professor uma Pessoa. Um
objeto da classe Estudante, tem no apenas os atributos e servios de Estudante, como tambm os
atributos herdados da classe Pessoa. Por exemplo, o estudante Joo tem atributos e servios de Pessoa,
como Nome, Endereo, Dirigir, Viajar, e atributos e servios que expressam o comportamento
especfico de um estudante, como Curso, Nota, Estudar e Realizar Prova. A classe Pessoa
reconhecida como uma generalizao e Estudante como uma classe especializao, a qual herda os
servios e atributos de Pessoa. Alm disso, uma classe derivada (uma especializao) pode incluir
novos servios e atributos ou redefinir os servios herdados. Dessa forma, Funcionrio pode incluir
atributos como Salrio e Profisso e servios como CalcularSalrio, que podem no ser relevantes ou
apropriados para Pessoa em geral.
Pessoa
Estudante
Professor
Funcionrio
Diretor
3.5
Escala
o princpio que permite ao desenvolvedor considerar algo muito grande atravs do enfoque
Todo-Parte. Todo-Parte um dos servios bsicos naturais de organizao dos seres humanos que
orienta o desenvolvedor atravs de um modelo extenso.
Todo-Parte tambm conhecido como Agregao, que um mecanismo que permite a
construo de uma classe agregada a partir de outras classes componentes. Usa-se dizer que um objeto
da classe agregada(Todo) tem objetos das classes componentes(Parte). Por exemplo, na Figura 3.5
tem-se que uma casa tem portas, janelas, paredes, escadas e outras partes.
TODO
PARTES
TODO
PEDIDO
PARTES
Item 1: Relgio
Item 2: Computador
3.6
Associao
A associao vem do relacionamento entre as entidades do mundo real, e usada para agrupar
certos objetos que ocorrem em algum ponto no tempo ou sob circunstncias similares.
Associao uma unio ou conexo de idias[Webster's 77]. Na AOO, a associao
modelada atravs de uma conexo de ocorrncias. Uma conexo de ocorrncia um relacionamento
que um objeto precisa ter com outro(s) objeto(s), para cumprir suas responsabilidades. Por exemplo, a
Figura 3.7 mostra a associao entre Estudante, Teste e Sala. Neste relacionamento ternrio, tem-se
que cada estudante faz determinado teste em uma sala. Outros tipos de relacionamentos binrios ou de
maior ordem podem existir, como o mostrado na Figura 3.8 onde Cliente faz determinado Pedido.
Estudante
Faz
Teste
Sala
Cliente
Faz
Pedido
3.7
Mensagem qualquer comunicao, escrita ou oral feita entre pessoas[Webster's 77]. Na AOO,
a comunicao entre objetos, feita atravs de mensagens modeladas usando conexes de mensagens.
Uma conexo de mensagem modela a dependncia de processamento de um objeto, indicando quais
servios ele precisa para cumprir suas responsabilidades. As conexes de mensagens existem somente
em funo dos servios, e fazem o mapeamento:
Numa conexo de mensagem, tem-se uma classe ou objeto emissor que envia a mensagem para
uma classe ou objeto receptor para realizao de algum processamento. O processamento necessrio
nomeado na especificao de servios do emissor, e definido na especificao de servios do
receptor.
Na Figura 3.9, uma estudante, objeto da classe Estudante, dispara uma mensagem para o
professor, objeto da classe Professor. A mensagem tratada e retornada uma resposta.
Abram seus
livros na
pgina 36
Qual a
prxima
lio?
3.8
Polimorfismo
Polimorfismo
Janela ( )
Janela ( 1 x 2 , 2 )
Janela ( 1 x 2 , 2, Azul )
95 + 5 = 100
3
23
0
-7
76
45
4
21
-9
+
13
23
11
45
56
46
8
3
18
Finalizando este captulo, conclu-se que o conhecimento dos princpios da orientao a objetos
de fundamental importncia, principalmente porque nos ajuda a pensar em objetos e no apenas em
dados ou funes, como era no paradigma tradicional de desenvolvimento de software. Em seguida,
sero apresentados os principais mtodos utilizados para o desenvolvimento de software orientado a
objetos.
4.1
4.2
91b]
identificao de Assuntos;
localizao de Classes-e-Objetos;
identificao de Estruturas;
definio de Atributos e
definio de Servios.
Camadas da Analise OO
Assunto
Classe e Objeto
Estrutura
Atributo
Servico
Figura 4.3 - Nveis da AOO
Estes cinco nveis podem ser vistos como cinco camadas de especificaes superpostas,
conforme mostra o exemplo da Figura 4.2, que modela um sistema de distribuidora de produtos. Os
resultados da Anlise so representados pelo componente Domnio do Problema (CDP), atravs dos
diferentes nveis: Classe e Objetos, Atributo, Estrutura e Servio. O sistema est particionado num
nico Assunto, que no est representado no modelo.
Conforme se pode notar, ainda no se tm idias bem consolidadas sobre qual a melhor
abordagem a aplicar no desenvolvimento de sistemas orientados a objetos. O mtodo Coad/Yourdon,
apesar de apresentar pequenos problemas denotacionais quando usado em sistemas de grande escala,
tem as vantagens de ser bastante divulgado, muito didtico e de facilitar a compreenso dos novos
conceitos da AOO, POO e IOO.
O mtodo representa Classe e Objeto por retngulos com cantos arredondados, sendo o mais
interno a representao da Classe e o mais externo os Objetos. Na parte superior, tem-se o nome da
classe, no meio os atributos e na parte inferior os Servios.
A estrutura de Generalizao-Especializao (herana) representada por uma meia lua,
ligando a classe pais s classes derivadas (filhos). Todo-Parte representado por um tringulo, que
aponta o Todo. As conexes de ocorrncias so representadas por linhas cheias que ligam objetos de
uma classe a objetos de outra classe. Tanto no Todo-Parte como nas conexes de ocorrncias so
indicadas as respectivas cardinalidades (mnima, mxima), que indicam as ocorrncias de objetos nos
relacionamentos.
Conexes de mensagens so representadas por linhas mais cheias, ou tambm tracejadas,
partindo da classe emissora da mensagem e apontando a classe receptora da mensagem.
O mtodo usa a mesma notao para anlise e projeto. Outras ferramentas como Diagramas de
Servios e Diagramas de Transio de Estados so utilizados na modelagem.
Requisicao
Pedido
Nmero
Data
Atender
0,m
1,m
Detalhe
Requisio
Detalhe
Pedido
Quantidade
Situao
Cliente
Cod
Nome
End
1,m
0,m
0,m
Fornecedor
Produto
Cdigo
Nome
0,m
0,m
1,m
Listar
Pessoa
Fsica
CPF
0,m
1
0,m
Pagar
Emitir
TratarNota
Quantidade
Preo
1
0,m
Nmero
Data
NmeroNE
DataNE
Situao
1,n
Cdigo
Nome
End
Pagar
Fatura
Pessoa
Jurdica
CGC
1
Nmero
Valor
Vencimento
Situao
Emitir
Liquidar
Figura 4.4 CDP : Distribuidora de Produtos - Camadas Classe e Objetos, Atributo, Estrutura e Servio
4.3
O mtodo Fusion foi desenvolvido para prover uma abordagem sistemtica para
desenvolvimento de software orientado a objetos.
O processo de desenvolvimento de software conta com dois estgios: produo e montagem. A
produo cobre as trs fases do ciclo de vida do software: Anlise (O que o sistema faz), Projeto
(define Como o comportamento especificado na anlise obtido) e Implementao (codificao do
projeto em linguagem de programao). Neste estgio obtm-se qualidade, evitando os erros. No
estgio da montagem do software, obtm-se qualidade pela deteco e remoo dos erros.
Quanto mais tarde um erro encontrado, mais cara ser a sua reparao. Um mtodo confivel
deve usar tcnicas que reduzam a probabilidade de erros, e deve conter checagem de erros que possam
ocorrer, pois mais eficiente evitar os erros que corrigi-los. O mtodo Fusion, ento, se concentra na
produo, ao invs da montagem do modelo.
Mtodos sistemticos gastam mais tempo nas fases prvias do desenvolvimento do software. O
cdigo leva mais tempo para aparecer, e seus benefcios incluem:
checagem de requisitos;
conceitos mais claros;
menos reprojeto de trabalho;
melhor fabricao do trabalho de projeto (decomposio do problema em partes
independentes);
melhoria das comunicaes entre os desenvolvedores e
necessidade de menos esforo na manuteno.
Divide o processo de desenvolvimento em fases e indica o que deve ser feito em cada fase;
Fornece notaes compreensveis e bastante formais e
Possui verificaes para assegurar a consistncia dentro e entre as fases.
Na anlise, os modelos so produzidos com objetivo de descrever:
Anlise
Dependendo da complexidade do sistema, pode-se ter mais de um Modelo Objeto. Uma diviso
por assuntos pode proporcionar uma viso geral que orienta o desenvolvedor em um modelo extenso.
Os assuntos tambm so teis para a organizao de pacotes de trabalho em grandes projetos, para
facilitar a visibilidade e compreenso do modelo.
4.3.1.1 Modelo Objeto
Modela as classes de objetos e a associao entre objetos pertencentes s classes. Objeto uma
instncia da classe que pode ser univocamente identificada.
A parte esttica do objeto composta de:
Identificador;
nmero de atributos e
Curso
+
ensina
1 Nome
numrica
intervalo
zero ou mais (representao default)
um ou mais
todos os objetos da classe adjacente devem aparecer no
relacionamento.
Quando o relacionamento obscuro, podemos atribuir papis aos objetos, por exemplo no caso
em que um objeto pessoa pai ou me de outra pessoa ou casado com outra pessoa.
Algumas perguntas, apresentadas a seguir, podem orientar o desenvolvedor na definio dos
atributos. Supondo ser um objeto especfico, pergunte:
Seguindo os princpios bsicos da anlise, no crie atributos como Chave e TotalParcial, apenas
para atender restries de implementao. Identificadores explcitos como Chave servem para
identificar um objeto especfico, porm necessitam de garantias que evitem duplicatas, o que implica
em decises de projeto no importantes em nvel de anlise. TotalParcial representa um valor batch
dos resultados de processamentos anteriores. Na AOO mais adequado especificar o clculo
requerido, atravs de um Servio CalcularTotalParcial, do que especificar o atributo TotalParcial. Outro
caso, o da normalizao, que exige que no se tenha atributo multivalorado, porm esta preocupao
tambm no importante durante esta fase da modelagem, mesmo porque nesta fase o desenvolvedor
ainda no sabe se ir normalizar os dados.
A Figura 4.4 mostra um relacionamento entre Mdico e PacienteInterno, tal que cada paciente
de PacienteInterno tem obrigatoriamente um mdico, e um mdico pode ter 0 ou mais pacientes. Isto
significa que paciente no existe sem mdico e mdico existe mesmo sem paciente.
Mdico
PacienteInterno
Id
Nome
Endereo
examina
Quarto
Leito
Medicao
Livro
Publica
DataHora
Quantia
Figura 4.5 - Conexo de Ocorrncia muitos-para-muitos
Ttulo
ISBN
Ano
A Figura 4.6 mostra um relacionamento entre objetos de uma nica classe. Se o significado de
um mapeamento for simples, como por exemplo, Proprietrio que casado com outro, ento apenas a
Conexo de Ocorrncia suficiente. Caso contrrio, adicione uma nova Classe-e-Objeto do tipo
evento lembrado.
Proprietrio
Casado
Marido
1
Esposa
Outro caso especial de Conexo de Ocorrncia ocorre quando for necessrio mais de um
mapeamento entre objetos, os quais precisam de alguma distino semntica, que pode ser obtida com
a adio de uma outra Classe-&-Objeto, evento lembrado. Na Figura 4.7, a Classe-e-Objeto
eventodeacesso capta a diferena semntica entre os diferentes mapeamentos das conexes ler e
modificar.
eventolegal
ler
modificar
eventolegal
1
tem
eventode
acesso
datahora
tipoacesso
escriturrio
escriturrio
*
faz
PacienteInterno
Quarto
Leito
Medicao
PacienteExterno
ltimaVisita
PrximaVisita
Mdico
SensorCrtico
Tolerncia
Paciente
Nome
Nascimento
Altura
Peso
1,2
Corao
Rim
0,2
Natural/Artificial
Implantado
Tipo
Natural/Artificial
Implantado
Bpm
Vista
Natural/Artificial
Viso
Tipo
1,4
Motor
Na Figura 4.12, tem-se que o Avio considerado como um recipiente no qual Passageiro est
dentro dele.
Avio
Passageiro
Escriturrio
PlanoGuerra
1,m
Ao
Especificao Adicional
Ao
um conjunto ordenado
sistema. A interface de um sistema o conjunto de operaes associadas aos eventos que podem ser
disparados.
O Modelo de Interface composto de:
Modelo de Operao: Especifica o comportamento das operaes do sistema
declarativamente, definindo o seu efeito em termos de mudana de estado e dos eventos que
so disparados.
Modelo de Ciclo de Vida: O modelo de ciclo de vida o segundo componente do modelo de
interface. Um esquema de modelo objeto descreve o comportamento de uma operao
individual do sistema, enquanto o modelo de ciclo de vida descreve o comportamento, de uma
perspectiva mais ampla de como o sistema se comunica com o seu ambiente, da criao at a
sua morte.
No processo da anlise, devem ser desenvolvidos todos os modelos da fase da anlise do
sistema:
reflete uma alterao necessria no comportamento, cujos valores so: desligado, ligado e
disponvel.
As operaes podem ser divididas em: operaes relacionadas com a existncia dos
objetos(criao/inicializao, acesso, conexo, liberao, etc) e operaes mais complexas que
executam clculos e monitoram um sistema ou um dispositivo externo.
As operaes relacionadas com a existncia dos objetos, podem ser omitidas na AOO, e
consideradas implicitamente definidas. As quatro operaes algoritmicamente simples so: Criar(cria e
inicia um novo objeto em uma classe), Conectar(conecta e desconecta um objeto a outro),
Acessar(obtm ou estabelece os valores de Atributos de um objeto) e Liberar(libera, ou seja elimina e
desconecta, um objeto). Nada impede contudo que estas operaes sejam explicitadas no modelo de
operaes.
Para que objetos executem servios para outros objetos, mensagens precisam ser enviadas.
Estas conexes de mensagens implicam na definio de operaes que disparam a mensagem e
operaes que tratam a mensagem na classe receptora. Para identificar todas as Conexes de
Mensagens, percorra cada objeto e verifique se:
Em sistemas de tempo real, onde as restries de tempo so rigorosas e precisam ser atendidas,
pode ser usada, semelhana da idia de autmato, uma notao adicional no diagrama que representa
as mensagens, que consiste em numerar a seqncia de execuo das mensagens. Esta especificao,
vital nos sistemas de tempo real, chamada de linha crtica de execuo.
4.3.2
Projeto
Fusion apresenta quatro tcnicas para suportar a modelagem na fase de projeto:
pedido
constant
Lista_det1:
detalhe
pedido
constant Lista_fat:
fatura
pedido tem:
Lista_det1: permanente, compartilhado, ligado e fixo.
For1 : permanente, compartilhado, no ligado e fixo.
Lista_fat : permanente, compartilhado, no ligado e fixo
class sensor
Sensor
constant
Dispositivo_Alarme1:
Dispositivo_Alarme
sensor tem:
Dispositivo_Alarme1: permanente, compartilhado, no ligado e fixo
constant P1:
pedido
class fatura
fatura
constant Cli1:
cliente
constant Lista_det:
detalhepedido
fatura tem:
P1 : permanente, compartilhado, no ligado e fixo
Cli1 : permanente, compartilhado, no ligado e fixo
Lista_det : permanente, compartilhado, no ligado e fixo
4.3.2.3 Verificao dos modelos
As referncias nos grafos de visibilidade so ligaes estruturais necessrias para implementar
a troca de mensagens definida durante a fase do grafo de interao entre objetos. Trs importantes
checagens devem ento ser feitas:
Consistncia com os modelos da anlise;
Consistncia mtua (checar se servidores exclusivos no so referenciados por mais de um
cliente) e
Completitude (todas as trocas de mensagens definidas nos grafos de interao entre objetos
devem estar representadas nos grafos de visibilidade).
4.3.2.4 Descrio das Classes
Depois de desenvolver os grafos de visibilidade para todas as classes, o prximo passo
coletar informaes do modelo objeto do sistema, dos grafos de interao entre objetos, e dos grafos
de visibilidade para construir as descries das classes.
Uma descrio de classe uma descrio de um conjunto de objetos que tm os mesmos
atributos e servios, alguns dos quais, herdados de superclasses. A descrio consiste das informaes:
nome da classes, superclasse(s) imediata(s), atributos da classe, e os servios providos pela classe.
Descries de classes so as especificaes das quais surge o cdigo. Elas especificam o estado
interno e o externo da classe. Existem quatro tipos de informaes coletadas na descrio das classes:
servios e parmetros, atributos dos dados, atributos dos objetos, e dependncias de herana.
Em resumo, a notao da descrio de classes usada para coletar as informaes das classes a
partir de outras notaes. A interface do servio derivada dos grafos de interao entre objetos, os
atributos dos objetos so derivados dos grafos de visibilidade, e os atributos dos dados so definidos
atravs do modelo objeto do sistema e do dicionrio de dados. Os relacionamentos de herana so
derivados dos grafos de herana. As descries de classes proporcionam o ponto de partida para a
implementao da classe.
O exemplo mostra a descrio de uma classe. Palavras como class, atribute, endclass e outras
no utilizadas no exemplo como exclusive, bound e constant so consideradas reservadas.
class Pessoa
attribute nome: string;
attribute endereco: string;
attribute idade: int;
method cadastrar(n:string, e: string, i:int);
method exibir( );
endclass
Implementao
Dicionrio de Dados
O dicionrio de dados serve para relacionar nomes utilizados nos diferentes modelos, cujos
significados no puderam ser colocados nos diagramas. Existem vrios modelos de dicionrio de
dados que so hoje normalmente utilizados, e que podem ser adaptados para o Fusion. Uma sugesto
utilizar uma tabela, mostrada a seguir, onde tem-se o nome, seguido de uma palavra chave que indica
o tipo e um texto que descreve o nome.
Nome
<classe>.<item>
Tipo
Descrio
Comentrios
descrevendo, com
mais detalhes, o
Nome
Tipo
operao
Argumentos
nome_cliente
id_cliente
end_cliente
cod_produto
qtd_pedida
Cliente
Descrio
Quando o cliente faz um pedido,
este cadastrado, caso ainda
no exista, e seu pedido
atendido, caso existam os
produtos solicitados
classe
nenhum
agente
nenhum
DetalhePedido
relacionamento
nenhum
Cliente.Endereo
atributo
nenhum
endereo do cliente
SituaoPedido
tipo
nenhum
4.4
Mtodo UML [UML 97, UML 98, Blaha and Premerlani 98]
FUSION
(Coleman)
Statecharts
(Harel)
Diagrama de Statecharts
(Diagrama de Atividades)
BOOCH
Diagrama de Estados
Diagrama de Classes
Diagrama de Objetos
(Diagrama de Colaborao)
Diagrama
de Processos
(Diagrama de Deployment)
Diagrama de Mdulos
(Diagrama de Componentes)
UML
OMT
(Rumbaugh)
Diagrama de Classes
Diagrama de Estados
OOSE
Diagrama Use Cases
(Jacobson) Subsistema (Package)
Em cada uma destas fases, diferentes artefatos so produzidos usando diferentes atividades e
tcnicas. Em cada uma das fases do processo, tem-se as fases normais do ciclo de vida do software:
Concepo
Elaborao
Construo
Transio
Anlise de
Requisitos
Design
Nvel de
arquitetura
Nvel de
classe
Implementao
Teste
Figura 4.16 Processo de Desenvolvimento de Software com UML
Use Case View descreve o sistema como um conjunto de transaes do ponto de vista dos
atores externos. Esta viso inicialmente criada na fase de concepo do ciclo de vida e
direciona o resto do processo.
Component View contm mdulos e subsistemas. Esta viso inicialmente criada na fase
de elaborao e refinada na fase de construo.
Deployment View contm a parte fsica do sistema e a conexo entre estas partes. Esta
viso criada na fase de elaborao do processo.
Segue-se uma lista das principais tcnicas disponveis no ROSE para suportar este Processo de
Desenvolvimento de Software, segundo as quatro vises:
Logical View
Diagrama de Classes
Compenent View
Diagrama de Componentes
Deployment View
Diagrama Deployment
nome-do-package
Distribuidora
Interface
global
Venda
Compra
c:\projeto\class
c:\projeto\aplicao
Menu.java
c:\sistema\financeiro
Durante
Anlise
Projeto
Um ator modela um tipo de objeto que interage diretamente com o sistema. Cada ator deve
ter um nome, como AtorCliente, mostrado na Figura 4.21.
<<Actor>>
AtorCliente
<<Actor>>
AtorFuncionario
ReceberProduto
VerificarPedido
<<extends>>
CadastrarProduto
Um use case uma seqncia de transaes realizadas pelo sistema em resposta ao disparo
de um evento. Um use case, quando realizado completamente, fornece um valor avalivel para o ator.
Um use case modela a dilogo entre um ator e o sistema.
Um use case mostrado como uma elipse contendo um nome, que pode ser colocado acima,
dentro ou abaixo do smbolo, como CadastrarCliente, mostrado na Figura 4.23.
CadastrarCliente
Nomes de use cases freqentemente iniciam com um verbo. Por exemplo, em um sistema
bancrio: IdentificarConta e VerificarSaldo.
A Tabela 4.2 descreve os relacionamentos permitidos nos use cases:
Relacionamento
Associao
Generalizao
Um use case.
Uma associao representa uma conexo semntica entre um use case e atores. Associaes
so unidirecionais e so mais comuns que generalizaes. O nome da associao usado para
identificar o propsito do relacionamento.
A Figura 4.24 apresenta um diagrama de use case com relacionamento de associao: o ator
AtorCliente relaciona-se atravs da associao DadosCliente, com o use case CadastrarCliente. O use
case CadastrarCliente relaciona-se com AtorCliente atravs da associao RespostaCadastro.
DadosCliente
AtorCliente
CadastrarCliente
RespostaCadastro
Um relacionamento de generalizao entre use cases mostra que um use case pode
compartilhar o comportamento definido em um ou mais use cases.
DadosEmprstimo
RealizarEmprstimo
AtorCliente
CPFCliente
RespostaEmprstimo
IdentificarCliente
DadosPedido
RealizarPedido
AtorCliente
RespostaPedido
<<uses>
>CPFCliente
ValidarCliente
Figura 4.26 - Exemplo de Generalizao <<uses>>
DadosPedido
RealizarPedido
AtorCliente
<<extends>
>CPFCliente
RespostaPedido
CadastrarCliente
Figura 4.27 - Exemplo de Generalizao <<extends>>
Diagrama de Seqncia
Diagramas de Seqncia mostram uma interao organizada em uma seqncia de tempo
entre os objetos participantes de uma operao e as trocas de mensagens entre eles. Esses diagramas
so bastante utilizados para especificar sistemas de tempo real e sistemas complexos. Um diagrama de
seqncia possui duas dimenses: vertical que representa o tempo e horizontal que representa
diferentes objetos (se for necessrio as dimenses podem ser invertidas).
A Figura 4.28 mostra um exemplo de um diagrama de seqncia para uma operao de
chamada telefnica.
Pedro : Chamador
a
{b - a < 1 seg.}
b
c
{d - c < 1 seg.}
d
EmpresaTelefnica:
Central
Mario : Chamado
5: toque de chamada
6: retira fone do gancho
7: conversao
8: conversao
indicando que Pedro retirou o fone do gancho (1). O nmero desse telefone ento anexado lista de
telefones ocupados e emitido um tom de discar para o Pedro (2).
Uma vez recebido o nmero do telefone desejado (3), a EmpresaTelefnica verifica se este
pertence lista de telefones ocupados. Em caso positivo, um tom de ocupado enviado a Pedro e a
fase de desconexo iniciada. Caso contrrio, um tom de controle de chamada enviado a Pedro (4), e
a campainha do objeto Mrio, do tipo Chamado, acionada (5), e o nmero de Mrio includo na
lista de telefones ocupados.
A ao do chamado de atender ao telefone (6), determina o fim da fase de conexo e o incio
da fase de conversao (7,8). Caso ele no atenda em um determinado intervalo de tempo, a
campainha do Chamado desativada, um tom de ocupado enviado ao Chamador, o nmero do
Chamado retirado da lista de telefones ocupados e a fase de desconexo iniciada.
O fim da fase de conversao ocorre quando Pedro repe o fone no gancho (9), e emitido
um tom de ocupado para o outro objeto Chamado (10). O fim da fase de desconexo ocorre somente
quando o Mrio tambm coloca o telefone no gancho (11).
Vrios rtulos (como marca de sincronizao e descries de aes durante uma ativao)
podem ser representados na margem, prximo s mensagens ou ativaes do diagrama de seqncia,
como mostra a Figura 4.28.
Uma ativao mostra o perodo de tempo que um objeto est realizando uma mensagem
para ele mesmo ou para outro objeto. representada como um retngulo fino alinhado com a linha do
tempo. As mensagens a serem realizadas podem ser rotuladas com um texto prximo ao smbolo de
ativao ou na margem esquerda, conforme mostra a Figura 4.28.
Uma mensagem uma comunicao entre objetos e transporta informaes que resultaro
em uma ao. A recepo de uma mensagem considerada um evento. Uma mensagem mostrada
como uma seta slida horizontal da linha de vida de um objeto para outro. No caso de uma mensagem
de um objeto para ele mesmo, a seta comea e termina no prprio objeto. A seta rotulada com o
nome de uma mensagem (operao ou sinal) e os valores de argumentos. Uma seta tambm rotulada
com uma seqncia de nmeros para mostrar a ordem de seqncia das mensagens, que sero
realizadas entre os objetos, conforme mostra a Figura 4.28.
A UML contm notaes, que podem ser adicionadas a qualquer mensagem para indicar um
comportamento concorrente. Esses smbolos foram trazidos do trabalho de Booch [Booch 91], e so
mostrados na Figura 4.29.
Simple
Synchronous
Balking
Timeout
Asynchronous
Mensagem simple indica uma linha simples de controle, isto , um objeto envia uma
mensagem para um objeto passivo.
Mensagem synchronous, indica que o processo ocorre somente quando o cliente envia uma
mensagem para o servidor e este recebe a mensagem. O cliente envia a mensagem e fica esperando at
que a mensagem seja recebida pelo servidor.
Na sincronizao balking, o cliente pode enviar uma mensagem somente se o servidor est
pronto para receb-la, caso contrrio, o cliente abandona a mensagem.
Na sincronizao timeout, o cliente envia uma mensagem e fica esperando at que a
mensagem seja recebida pelo servidor, durante um tempo determinado. O cliente abandona a
mensagem se o servidor no puder trat-la dentro do tempo.
Comunicao asynchronous ocorre quando o cliente envia uma mensagem para o servidor
processar e continua sua execuo normal sem esperar o reconhecimento da mensagem pelo servidor,
ficando de prontido para receber a resposta.
Diagrama de Colaborao
Um Diagrama de Colaborao representa a interao entre instncias de classes simples e de
classes utility, objetos e entidades atravs de uma seqncia de mensagens que implementam uma
operao ou uma transao. Esse diagrama mostra objetos , seus links e mensagens. Cada diagrama de
colaborao supre uma viso das interaes ou relacionamentos que ocorrem entre objetos e/ou
agentes externos no modelo corrente.
O diagrama de colaborao no mostra a dimenso do tempo, por isso as seqncias de
mensagens e linhas concorrentes devem ser determinadas usando a seqncia de nmeros.
Os diagramas de colaborao contm smbolos que representam objetos. As notaes
grficas para um objeto so mostradas na Figura 4.30 e podem ser: um retngulo com o nome do
objeto, ou um retngulo com o nome do objeto e sua classe, usando a seguinte sintaxe:
NomeObjeto : NomeClasse
Pedro
Pedro : Pessoa
Pedro : Pessoa
Objetos interagem com outros objetos atravs de seus links. Um link uma associao entre
objetos e/ou agentes externos.
Um link pode existir entre dois objetos (inclusive classe utility) somente se existir um
relacionamento entre essas classes. A existncia de um relacionamento entre duas classes simboliza um
meio de comunicao entre instncias de uma classe: um objeto pode enviar mensagens para outro.
Um link representado por uma linha reta entre objetos ou entre objetos e agentes externos.
Tambm pode ser representado um link para o prprio objeto. A Figura 4.32 mostra um exemplo de
link entre objetos.
Pea
Carro
1: InserirPea (integer)
Uma mensagem transporta a chamada de uma operao do objeto origem linkado com o
objeto destino. Cada mensagem pode estar associada a um nmero, que indica a ordem em que a
mensagem ser executada. Como no diagrama de seqncia, as mensagens podem ser classificadas
como: Simple, Synchronous, Timeout, Balking ou Asynchronous. Links suportam mltiplas mensagens
em ambas direes.
O diagrama com links e mensagens denominado diagrama de colaborao. O diagrama de
colaborao correspondente ao diagrama de seqncia da Operao de Chamada Telefnica,
mostrado na Figura 4.33.
EmpresaTelefnica : Central
7: conversao
4: tom de controle
2: tom de discar
Pedro : Chamador
5: toque de chamada
8: conversao
10: tom de ocupado
Mario :
Chamado
Diagrama de Estados
O Diagrama de Estados usado para mostrar os estados dos objetos de uma classe. Os
eventos do diagrama de estados causam uma transio de um estado para outro e as aes resultam na
mudana de estado. Cada diagrama de estados est associado a uma classe ou a um diagrama de
estados de um nvel mais alto.
Diagrama de estados um grafo direcionado de estados conectados por transies que
mostra um estado inicial, um ou mais estados, um ou mais estados finais e as transies de estados
entre eles. Cada classe que possui eventos significativos, pode conter um diagrama de estados para
descrever este comportamento.
Um estado inicial um estado especial que mostra o incio do diagrama e conectado ao
primeiro estado normal com uma transio, rotulada ou no. Em cada diagrama de estado h somente
um estado inicial. A notao grfica de um estado inicial mostrada na Figura 4.34.
Um estado uma condio durante a vida de um objeto que satisfaz alguma ao, realiza
alguma ao ou espera por algum evento. Um objeto permanece em um estado por um tempo finito. A
notao grfica e um exemplo de estado mostrada na Figura 4.35.
nome do estado
Liquidado
A Figura 4.36 mostra exemplos de aes entry e do. O exemplo refere-se a um relgio
despertador. A partir do momento em que o evento IniciaAcerto foi recebido, as aes
HabBotoConfirma, HabBotoCancela e DesBotoAcerto so executadas. O evento
IniciaControle ou Cancelamento esperado e ento ou ocorre a confirmao da hora
escolhida ou seu cancelamento. Se ocorrer a confirmao da hora escolhida, as aes
DesBotoCancela, DesBotoConfirma e HabBotoAcerto associadas ao evento
IniciaControle so realizadas; por outro lado, as aes DesBotoCancela,
DesBotoConfirma e HabBotoAcerto associadas ao evento Cancelamento so executadas.
Aguardando com Alarme Desligado
IniciaAcerto / HabBotoConfirma
^HabBotoCancela
DesBotoAcerto
Cancelamento / DesBotoCancela
^DesBotoConfirma
HabBotoAcerto
Cancelamento / DesBotoCancela
^DesBotoConfirma
HabBotoAcerto
IniciaControle / DesBotoCancela
^DesBotoConfirma
HabBotoAcerto
Estado final representa o termino de um sistema. A Figura 4.37 mostra a notao grfica de
um estado final. Podem existir mais de um estado final por diagrama.
Uma transio de estado um relacionamento entre dois estados, indicando que um objeto
no primeiro estado entrar no segundo estado e realizar aes especificadas quando um evento
ocorrer e se suas condies (caso existam) forem satisfeitas. Uma transio disparada quando o
evento ocorrer. Se um evento no habilitar nenhuma transio, ignorado. Se ele habilitar mais do que
uma transio, ser disparada aquela que atender a condio.
A Figura 4.38 mostra a notao de transio de estado e a Figura 4.39 mostra um exemplo.
Evento( Argumentos )[ Condio ] / Ao
Estado
Transio de Estado
Transio de Estado
EstadoFinal
ObterPrximoItem
[ TodosItensNoVerificados ]
Verificando
[ TodosItensVerificados
&& TodosItensDisponveis ]
Despachando
do: IniciarLiberao
do: VerificarItem
ItemRecebido
[ TodosItensVerificados [ ItensForaEstoque ]
&&ItensForaEstoque ]
Liberado
ItemRecebido
[ TodosItensDisponveis ]
Aguardando
Liberado
Somente um evento permitido por transio. Uma mesma transio pode ser colocada em
mais de um estado se pelo menos uma delas estiver rotulada com uma condio, como mostrado no
estado Aguardando, onde h duas transies com o nome ItemRecebido, mas as condies so
diferentes.
Quando uma transio possui um evento no rotulado, significa que a transio ocorre
quando uma ao interna associada a um estado completada. Isto ocorre, por exemplo, com o estado
Verificando. Trs transies com condies saem do estado Verificando. Uma condio retorna
verdadeiro ou falso; a transio que contm uma condio ocorre somente se a condio for
verdadeira.
Somente uma transio de um estado pode ser disparada por vez e as condies so
exclusivas para um evento. Na Figura 4.39 existem trs condies:
(1) Para todos os itens que no foram verificados obtido o prximo item e retorna para o
estado Verificando.
(2) Se todos os itens foram verificados e todos esto no estoque, v para o estado
Despachando.
(3) Se todos os itens foram verificados mas nem todos esto no estoque, v para o estado
Aguardando.
Na Figura 4.40 pode-se observar mais um exemplo do Diagrama de Estados, que trata da
abertura de cursos e seus estudantes de uma certa escola, onde cada curso s pode ter 10 estudantes.
Caso o curso no complete todas as vagas ele pode ser cancelado. Se o curso for fechado o professor
tambm pode cancelar o curso.
Inicializao
Aberto
entry: RegistrarEstudante
exit: ^EstDoCurso.AdicionarEstudante(Estudante)
[ Cont = 10 ]
Canc ela
Fechado
Canc elado
Canc ela
do: FinalizarCurso
^EstDoCurso.Remover
Uma transio de estado pode ter uma ao e/ou uma condio associada, ou pode ainda
disparar um evento. Uma ao o comportamento que ocorre quando a transio de estado ocorre. Um
evento uma mensagem que enviada para outro objeto no sistema. Uma condio deve ser
verdadeira para que ocorra a transio de estado.
A transio de estado do estado Inicializao para o estado Aberto tem o evento
AdicionaEstudante juntamente com a ao Set Cont = 0, que um contador que vai at 10 e o evento
Criar que uma mensagem disparada para o objeto da classe EstDoCurso.
No estado Aberto so executados a ao RegistrarEstudante e o evento AdicionarEstudante de
EstDoCurso passando o Estudante como argumento. H tambm uma transio de estado que tem o
evento AdicionarEstudante com a condio Cont < 10, que ocorre at Cont atingir o nmero mximo
de 10 estudantes.
Do estado Aberto pode-se passar para um dos dois estados: o estado Cancelado atravs da
transio de estado que tem o evento Cancela ou o estado Fechado atravs da transio de estado que
tem a condio Cont = 10.
No estado Cancelado h uma transio de estado que envia a mensagem Remover para o
objeto da classe EstDoCurso, que remove todos os estudantes de um curso, passando para o estado
final.
No estado Fechado a ao FinalizarCurso executada e pode passar para um dos dois estados:
o estado Cancelado atravs da transio de estado que tem o evento Cancela, caso o professor deseje
cancelar o curso aps de ter preenchido todas as vagas, ou o estado final que finaliza o curso.
4.4.2
Logical View
Diagrama de Classes
Um Diagrama de Classes uma representao grfica para descries genricas do sistema.
Pode conter packages, tipos, relacionamentos e instncias de classes. A Tabela 4.3 mostra como pode
ser usado o diagrama de classes nas fases de anlise e projeto de um sistema.
Durante
Anlise
Projeto
Tipo
Abstrata
Descrio
Define a classe como uma classe base, sem instncias.
Atributos
Cardinalidade
Concorrncia
Operaes
Visibilidade
A Figura 4.41 mostra a notao usada para representar uma classe e os diferentes tipos de
visibilidade.
Os tipos de visibilidade dos atributos e servios de uma classe, como a de Produto,
exemplificada na Figura 4.42, so:
public: os elementos so acessveis por todas as classes, como o atributo Observao e o
servio Cadastrar;
private: os elementos so acessveis por subclasses, classes friends ou pela prpria classe
como o atributo Cdigo e o servio ValidarQuantidade;
protected: os elementos so acessveis somente pela prpria classe ou pelas classes
friends como o atributo Saldo e o servio CalcularDesconto; e
implemented: os elementos so acessveis somente pela prpria classe como o atributo
Preo.
Classe
Atributo
Servio( )
Produto
Cdigo : integer
Saldo : float
Preo : float
Observao : memo
Cadastrar (cod : integer = default, saldo : float = default) : Produto
ValidarQuantidade (quant : float = default) : boolean
CalcularDesconto (vr : float = default) : valor
ImprimirDetalhe (cod : integer = default, quant : float = default)
BaixarEstoque (cod : integer = default, quant : float = default) : return
Uma classe parametrizada um template para instanciar classes que seguem este padro
formatado. Uma classe parametrizada declara parmetros formais. Pode-se usar outras classes, tipos e
expresses constantes como parmetros. Essas classes no podem ser usadas como parmetros. A
Figura 4.43 mostra a notao e exemplo de uma classe parametrizada. No caso, T e K so
metavariveis que podem ser qualquer classe ou tipo.
Parmetro
NomeDaClasse
T,K
Array
Uma classe utility contm um conjunto de operaes de uso comum. Uma utility modelada
como um tipo de uma classe, e a sua notao apresentada na Figura 4.44. A classe utility usada
para:
Denotar um ou mais subprogramas livres (uma funo que no membro de um objeto).
Nomear uma classe que somente fornece membros e/ou funes estticas que so usadas
independentemente das instncias da classe.
Uma classe utility tem a mesma notao de uma classe simples, com adio de uma sombra
que ilustra o tipo utility, como mostra a Figura 4.44.
String
Tamanho
Concatenar( )
Lista
NomeDaClasse
Tipo
Remover()
Inserir()
Figura 4.45 - Classe Utility Parametrizada
Uma classe utility instanciada criada substituindo-se os parmetros formais de uma classe
utility parametrizada por valores atuais. A notao de uma classe utility instanciada mostrada na
Figura 4.46, onde a classe Lista instanciada como uma lista de inteiros.
Lista
Remover()
Inserir()
Figura 4.46 - Exemplo de Classe Utility Instanciada
Uma metaclasse uma classe cujas instncias so classes. Em geral, uma classe est
relacionada com apenas uma metaclasse. Metaclasses fornecem operaes para criar objetos da classe
e definem atributos e servios que so compartilhados por todos os objetos da classe criada.
Smalltalk e CLOS suportam o uso de metaclasses. A linguagem C++ suporta metaclasse
atravs de servios e atributos static da classe. A notao de uma metaclasse mostrada na Figura
4.47.
nome-da-metaclasse
Relacionamentos
Os relacionamentos, entre classes, que podem existir na UML so: Generalizao,
Dependncia, Associao e Agregao.
superclasse
subclasse
Pessoa
Cdigo : integer
Nome : string
PessoaFsica
CPF : string
PessoaJurdica
CGC : string
Para
Uma classe ou uma classe instanciada.
Classe utility
Classe parametrizada
Notao
0..1
Significado
Zero ou uma instncia.
0..*
1..*
<literal>..*
<literal>
<literal>..<literal>
<literal>..<literal>,<literal>
<literal>..<literal>,
<literal>.. <literal>
Um relacionamento de dependncia entre duas classes mostra que a classe cliente depende
da classe servidora, para sua existncia. Por exemplo, a Figura 4.49 mostra que a classe Dependente
depende da classe Funcionrio para existir.
Funcionario
Dependente
1
0..n
Vendas
ContasReceber
Fornecedor
Pedido
1
0..*
Relacionamento:
Associao
Caso o relacionamento interesse apenas em uma direo este pode ser indicado conforme a
Figura 4.52.
Pedido
Cliente
1
0..*
Curso
Pedido
Aluno
DetalhePedido
Classe
De uma:
Para:
Outra classe ou uma classe instanciada.
Classe utility
Classe instanciada
Classe parametrizada
4.4.3
Component View
Diagrama de Componentes
Um Diagrama de Componentes mostra as dependncias entre componentes de software,
incluindo componentes de cdigo fonte, componentes de cdigo binrio e componentes executveis.
Um mdulo de software representado como um tipo de componente.
Componentes so derivados do mtodo Booch [Booch 91], compostos pelos seguintes
elementos: packages, programa principal, subprogramas e tarefas. Cada diagrama de componentes
fornece uma viso fsica de um modelo do software.
Packages de componentes
Componentes ou Mdulos
Packages
Programa principal
Subprogramas
Tarefas
Dependncias
Runnable.java
Em Java, pode-se usar um corpo de package para representar o arquivo .java, onde so
implementadas as classes. A Figura 4.55 mostra a notao e exemplo de um corpo de package.
CorpoDoPackage
Cliente.java
pode representar um arquivo com extenso .java que contm a funo main ou Init. H somente um
programa principal por mdulo de programa.
O nome de um programa principal um nome de arquivo. A Figura 4.56 mostra a notao
grfica e o exemplo de um programa principal.
main
Distribuidora.java
Corpo
Corpo
Financeiro
ContasPagar
A Tabela 4.9 mostra os tipos de processos, usados pelos processadores e sua respectivas
descries:
Tipo:
Preemptivo (default)
No preemptivo
Descrio:
Processos de alta prioridade que esto prontos para executar, podendo
suspender os processos de baixa prioridade que esto sendo
executados.
Um novo processo aguarda que o processo corrente termine.
Cclico
Executivo
Manual
4.4.4
Deployment View
Diagrama Deployment
Um Diagrama Deployment mostra as conexes fsicas entre os processadores, dispositivos e a
alocao dos processos aos processadores.
Este diagrama mostra a organizao do hardware e a ligao do software com os dispositivos
fsicos. O tipo do dispositivo de hardware dado pelo seu stereotype, tais como, processador, vdeo,
dispositivo, memria, disco e outros.
Um processador um componente do hardware capaz de executar programas. A Figura 4.60
mostra um exemplo de processador.
PC
Pentium
Impressora
HP 600
PC
Pentium
Cabo
Impressora
HP 600
Domnio da
Aplicao
Configurao da Unidade Pedido
Unidade
Pedido
Servidor da
Aplicao
Configurar
Usurios
Configurao
Aplicao
TCP/IP
Objeto
Contido
Interface
Hardware
Conexo
PC Windows
Unidade Pedido
AtenderCliente
Componente
Unidade Pedido
Interface do
Usurio