Buscar

Desenvolvimento de Softwares e Modelagem de Sistemas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof.: JOSE CARLOS MILLAN 
O desenvolvimento de softwares no mercado requer cada vez mais o conhecimento do processo de negócio e as 
informações que são produzidas, pois o valor agregado da tecnologia nas empresas está centrado no potencial dos 
sistemas em extrair conhecimento e colaborar para as estratégias e tomadas de decisão. Sendo assim a modelagem 
tem uma importância fundamental na medida em que oferece suporte para investigação, conferência e validação 
dos procedimentos apreendidos durante as etapas de definição. Quanto mais aderência a realidade do usuário o 
sistema estiver, maior é o sucesso nos resultados. 
A linguagem de representação utilizada na disciplina oferece uma diversidade de modelos para representação das 
partes físicas e lógicas do sistema em desenvolvimento. 
A capacidade de representação do negócio através de modelos da UML e ter visibilidade para a construção do 
sistema são competências que devem ser desenvolvidas no aluno nesta disciplina. 
Ao final dessa disciplina você será capaz de: 
•Identificar requisitos funcionais e não-funcionais para representação em modelos; 
•Utilizar os modelos da UML; 
•Construir modelos baseados na UML; 
•Analisar a melhor forma de representação do negócio; 
•Conhecer os princípios e práticas da Metodologia RUP; 
•Conhecer o ciclo de vida iterativo e incremental, utilizados no desenvolvimento de software baseado na Orientação 
a Objetos. 
•Definir a ordem de desenvolvimento das iterações do sistema. 
•Conhecer a Metodologia RUP e a técnica de definição da ordem de desenvolvimento; 
•Empregar as técnicas de acordo com a natureza do modelo a ser desenvolvido; 
Nesta aula, você irá: 
 
1 - Diferenciar mundo real e mundo simbólico; 
 
2 - Listar as fases do processo unificado; 
 
3 - Definir uma iteração; 
 
4 - Analisar aspectos importantes para a modelagem de sistemas; 
 
5 - Aprender sobre o produto RUP para modelagem; 
Você sabe o que é mundo real? E mundo simbólico? 
Neste tópico, vamos desenvolver esses conceitos. 
 
 
 
Processo Unificado 
O Processo Unificado é iterativo e consiste em subdividir o projeto para sua implementação por partes. O PU é 
constituído de atividades divididas em quatro fases: 
I – Fase da Concepção - Nesta fase se “imagina” o produto, o que fará. Seu objetivo e suas principais funções. Pode-
se fazer uma estimativa, ainda que “grosseira” de prazos e custo. Pode-se “imaginar como funcionária a sua função 
principal”. Nessa fase, decide-se se o produto é viável ou não. Pode-se dizer que, nessa fase, definimos o ESCOPO do 
produto, definindo o que faz e quais as suas limitações. 
II- Nesta fase pegamos cada função, segundo o escopo do produto, e lhe damos um tratamento técnico, definindo 
como será feito. Nessa fase, o que se “imaginou” na fase anterior deve ganhar forma, isto é, deve ser 
viabilizado. Inicia-se a identificação de requisitos funcionais (necessidade do usuário) e não funcionais (necessidades 
técnicas), para implementar as funções do produto. Nessa fase surge o projeto. 
III- As definições feitas na fase de elaboração são construídas. No caso de software, nesta fase fazemos a 
programação, definimos arquivos, testamos o que se “imaginou” virar realidade. 
IV - Após o produto pronto, ele precisa ser disponibilizado. Nessa fase, fazem-se os ajustes necessários para 
viabilizar o uso do produto. No caso de software, fazem-se as implantações. Ajustes em programas e arquivos já 
existentes. Testes de integração e aceitação. Essa fase é responsável por disponibilizar o produto para uso. 
Exemplo do planejamento de um desenvolvimento em software: 
No primeiro momento, identificamos as tarefas mais evidentes nas fases: 
Concepção: 
 Missão do produto: Apoiar o controle de livros da biblioteca. 
Funções: Registrar o acervo de livros. Controlar os empréstimos. 
Elaboração: 
 
 
 
 
 
 
 
 
 
 
 
 
Nesta aula, você: 
 Atentou para o conceito de mundo simbólico; 
 Percebeu que importante organizar o trabalho em fases; 
 Avaliou a importância das as quatro fases do PU: concepção, elaboração, construção e transição; 
 Compreendeu a importância de subdividir as fases em iterações; 
 Aprendeu como especificar uma iteração; 
 Aprendeu o que o RUP. 
 
1. 
 Marque a afirmativa totalmente correta: 
 1) No Mundo real e mundo simbólico se confundem e sempres se repetem. 
 2) Sistemas existem no mundo real, detro de computadores, assim o processamento é do mundo real. Não existe 
mundo símbólico quando se processa com sistemas de informações informatizados. 
 3) O mundo das representações é igual em várias empresas, assim como o conhecimento que cada pessoa tem. 
 4) Cada empresa tem o seu mundo de representações que depende da lei, da cultura e das pessoas que compõem 
a empresa. 
 5) A analise de sistemas trabalha no mundo real, assim precisamos observar as coisas do mundo real e não como 
as pessoas usam o conhecimento. 
 4 
 2. 
 Abaixo temos a carteira de identidade de Luiz da Silva usa ribeiro 
 Sobre ela veja a afirmativa correta. 
 
 1) A carteira de identidade é do mundo real. É usada por todos não serve para processamento. 
 2) A carteira de identidade é uma imagem que representa uma pessoa para processamentos no mundo simbólico 
do Ministerio de Justiça 
 3) A carteira de identidade é a representação da pessoa, portanto, toda empresa obrigatoriamente incorpora a 
carteira de identidade 
 4) O simbólico da empresa não pode criar as suas próprias representações por isto usa a carteira de identidade. 
 5) A carteira de identidade é diferente do CPF com relação a repesentação dos processamentos de informações 
nos respectivos mundos simbólicos 
 2 
 3. 
 Sobre o processo do software pode-se afirmar que: 
 1) É uma burocracia desnecessária, um programador com experiência não precisa disto. 
 2) é sempre igual para todo e qualquer produto de software 
 3) é uma forma de se controlar o projeto e gera muito mais trabalho 
 4) O programador incia o desnvolvimento do código, e não precisa de processo. É muito mais rápido 
 5) É uma forma de se assegurar que o projeto será feito de forma correta, com método, com qualidade, e pode 
ser gerneciado 
 5 
 4. 
 Sobre o processo unificado escolha a alternativa totalmente correta. 
 1) O processo unificado não permite modificações no projeto. 
 2) Na fase de concepção ou iniciação deve-se definir detalhes do que será construído. 
 3) Na fase de elaboração deve-se detalhar os requisitos funcionais do sistema 
 4) Na fase de construção nada mais pode-se acrescentar, msmo que se identifique falha. 
 5) A programação e definição de arquivos devem ser feitas na fase de concepção. 
 3 
 5. 
 Sobre o RUP podemos afirmar com certeza. 
 1) é uma forma de se implementar o processo de cascatas com “templates” – gabaritos. 
 2) é um produto que é constituído de gabaritos escritos em HTLM geram os programas automaticamente. 
 3) Não permite implementar iterações nas fases de concepção. 
 4) Permite definir uma iteração sempre que necessário 
 5) É um novo processo de desenvolvimento e análise de sistemas, portanto não é um produto. 
 4 
 
Nesta aula, você irá: 
1. Aprender como apareceu a análise por objetos; 
2. Relacionar os objetivos da A.O.O; 
3. Aprender porque surgiu UML; 
4. Relacionar requisitos funcionais e não funcionais; 
5. Relacionar um caso e uso; 
6. Identificar um ator de caso e uso; 
7. Identificar comando de utilização; 
8. Definir estereótipos; 
9. Aprender a dicionarizar um comando de utilização. 
Surgimento do UML 
UML foi desenvolvida por Grady Booch, James Rumbaugh e Ivar Jacobson, que são conhecidos como “os três 
amigos”. UML(Unified Modeling Language) é um conjunto de diagramas padronizados e integrados para ajudar na 
descrição da análise e projeto de um software. O UML, foi propostoem 1976, com objetivo de padronizar o uso de 
ferramentas. Nessa época existiam vários autores, propondo soluções para a modelagem. O surgimento do UML 
possibilitou uma padronização e apóia o projeto de software, desde seu levantamento de requisitos até sua 
implantação. O UML , hoje, é controlado pelo OMG(Object Management Group). 
O UML é um conjunto de diagramas, como mostrado na imagem.
 
Análise Orientada Por Objetos 
A orientação a objetos tem-se desenvolvido desde o lançamento da 1ª linguagem orientada a objetos, a 
SIMULA. Autores consagrados da engenharia de software, como: Peter Coad, Edward Yourdon e Roger Pressman, 
consideram a análise orientada a objetos como o maior avanço para o desenvolvimento de software. 
 A orientação a objetos não é só teoria, mas uma tecnologia de eficiência e qualidade comprovadas, usadas em 
inúmeros projetos e para construção de diferentes tipos de sistemas. 
Quando o sistema é desenvolvido com esta tecnologia, tem-se: 
 
Desenvolvimento Diagramas De Caso E Uso 
Você sabe o que é um requisito de um usuário? Sabe como identificá-lo? 
 
Desenvolvimento Do Diagrama De Caso E Uso 
A documentação de um caso e uso é muito extensiva e, alguns casos e uso, podem apresentar um conjunto de 
tarefas repetidas. Isso quer dizer que estamos documentando duas ou mais vezes a mesma coisa. 
Para evitarmos isso, antes de documentarmos o fluxo principal, podemos analisar a descrição dos casos e uso de 
levantamento e identificarmos conjunto de tarefas iguais. Esse conjunto de tarefas iguais devem ser destacadas, 
pois, um dos nossos objetivos é não gerar redundância e re aproveitar código e isto deve ser feito desde o início da 
análise. 
Assim, no nosso exemplo, conversando com os atores, verificamos que o ação e uso controlar estoque e controlar 
pedido tem um conjunto de tarefas iguais e que se repetiriam no fluxo principal, destes . Ao conjunto de tarefas 
iguais chamamos de Identificar pedido e estamos retirando dos comando e de uso iniciais. 
 
O novo comando de utilização: Identificar pedido- contém as tarefas comuns de identificar pedidos, que são 
realizadas em controlar estoque e controlar pedido. Observe que os arcos estão marcados com a palavra 
include. INCLUDE é o que chamamos de estereótipos, mas não vamos nos preocupar com isto agora. Observe, 
ainda que,a nova elipse também tem a sua descrição, suas condições de pré e pós-condições. E ela é iniciada pelos 
casos e uso, não por atores. Assim, deve-se dicionarizar a nova elipse e indicar a chamada do include nos fluxos dos 
outros caso e uso. 
Nesse diagrama, ainda usamos linhas cheias mas o correto é trabalhar com linhas pontilhadas. As linhas pontilhadas 
indicam que a elipse de identificar pedido só pode existir se existirem as outras duas elipse. É o que chamamos de 
dependência. A linha pontilhada representa a dependência. 
Agora o diagrama esta correto. O dicionário agora ficará na forma: 
 
Existe ainda uma situação que pode acontecer, quando estamos trabalhando, por exemplo, com o incluir 
pedido. Suponha que existe uma situação MUITO particular que pode acontecer, quando se identifica um pedido. 
Nesse caso, vamos destacá-la, para que os desenvolvedores saibam que uma situação condicional que pode 
ocorrer. Vamos também trabalhar com a linha pontilhada, pois, esse novo conjunto de tarefas, que 
representaremos por uma nova elipse – tratar pedido internacional – só poderá existir se a elipse identificar pedido 
existir. Vamos usar o termo EXTENDED, vamos ver isto em seguida. O diagrama com o respectivo dicionário de 
identificar pedido é mostrado na imagem abaixo: 
 
Uso De Estereótipo 
Você verificou que usamos um palavra entre << >>. Isto é, para indicar o que chamamos de estereótipos. Um 
estereótipos é uma série de características que servem para classificar alguma coisa. No diagrama, o estereótipos 
indica que devemos dar o mesmo tratamento de análise e construção, quando formos construir o sistema. Assim, o 
<<include>> indica que devemos tratar todos os arcos da mesma forma (sugiro o tratamento por função ou 
módulo). É comum, também, se usar << use >>, com as mesmas características. 
O << EXTENDED>> indica o tratamento comum. Se eu fosse o desenvolvedor, sempre trataria os elementos gerados 
a partir destas elipses como especiais e os separaria dos demais. Existem, ainda, o << INTERFACE>>, que é o arco 
entre o ator e o comando de utilização, nesse caso se informa que o tratamento de chamada deve ser feito do 
mesmo modo, por exemplo: com telas de entrada. Você pode criar o seu próprio estereótipos, por exemplo: 
<<ORACLE>> pode indicar que você deseja que os elementos da elipse marcadas com este estereótipos deverão ser 
implementadas no ORACLE. O importante é que se apresente o dicionário de estereótipos. 
Erros Comuns 
Muitas pessoas mal informadas consideram o diagrama de caso e uso como se fosse um DFD. Isto é um erro 
grave. O diagrama representa conjunto de atividades. Os arcos não indicam fluxos de dados. São chamadas a 
grupos de atividades. 
Assim, é comum vermos diagramas de caso e uso mal feitos, representando programas, como o mostrado abaixo: 
 
 
 
Nesta aula, você: 
 Aprendeu COMO APARECEU A ANÁLISE POR OBJETOS; 
 Aprendeu quais OS OBJETIVOS DA A.O.O; 
 Aprendeu porque surgiu UML; 
 Analisou com identificar o tipo e requisitos - requisitos funcionais e não funcionais; 
 Aprendeu a diagramar um caso e uso; 
 Aprendeu a identificar um ator de caso e uso; 
 Aprendeu a dicionarizar um comando de utilização; 
 Aprendeu a usar e definir estereótipos; 
 Aprendeu a identificar uma realização de um comando de realização; 
 Aprendeu o que o RUP; 
 Analisou algumas características do RUP. 
Na próxima aula, vamos aprender sobre classes e objetos. Esse diagrama é um dos mais importantes na análise por 
objetos. Você verá que, durante o desenvolvimento, já estamos solucionando muito dos requisitos identificados nos 
diagramas de caso e uso. Muitas pessoas acham que se pode fazer o diagrama de classes em qualquer fase do 
projeto mas, quando trabalhamos focados nos diagramas de caso e uso, evitamos desperdício de esforços. As 
classes que vamos estudar, na próxima aula, são chamadas de classes de domínio ou conceituais. Até lá. 
 
1. 
 Considere a A.O.O para verificar a afirmativa correta abaixo: 
 1) Trata-se de um modismo que serve para colocar novas linguagens no mercado, sem ganho para o desenvolvimento. 
 2) Permite que se desenvolva de forma organizada e econômica, pois, permite o reaproveitamento de código. 
 3) É constituída de diagramas padronizados para evitar a confusão no desnvolvimento. 
 4) É uma foram de se programar, mas devem-se buscar maneiras que gerem menos código, para no caso de reutilização 
ficar mais fácil gerar o mesmo código. 
 5) Trata-se de uma forma moderna de se desenvolver software, desde que se usem apenas novas linguagens. 
 2 
2. 
 Considere o UML: 
 1) Trata-se de uma linguagem que permite programar um sistema, de forma rápida, inclusive com geração de código. 
 2) É um banco de dados composto por dados e diagaramas. 
 3) Produz um desenvolvimento com o uso de diagramas integrados e padronizados. 
 4) É uma forma de se poder desenvolver o sistema com diagramas integrados, porém despadronizados. 
 5) No uso de diagramas do UML, só pode usar um tipo de diagrama por projeto. 
 3 3. 
 Sobre o ator, pode-se afirmar, com certeza: 
 1) É um personagem que interage com o sistema. 
 2) É um órgão ou pessoa responsável pelo sistema. 
 3) Representa um conjunto de pessoas que trabalham no sistema. 
 4) Repesenta um conjunto de pessoas que desenvolvem o sistema. 
 5) Repesenta um conjunto de pessoas interessados no sistema. 
 1 
Nesta aula, você irá: 
 
1. Identificar uma classe e objetos; 
 
2. Definir os tipos de classes; 
 
3. Identificaratributos e visibilidade de atributos; 
 
4. Relacionar classes; 
 
5. Definir os tipos de qualificações feitas nos relacionamentos; 
 
6. Classes dependentes; 
 
7. Modelar estruturas de herança; 
 
8. Modelar associações; 
 
9. Exemplos. 
Diagrama de Classe - Modelo de domínio 
Diagrama de classes 
O diagrama de classes é o principal dos diagramas do UML. O diagrama é como uma fotografia dos elementos usados pela 
aplicação. É uma representação estática e não deve ser usado para representar dinâmicas da aplicação, embora também as 
retrate, como veremos. Existem vários níveis de diagrama de classes, eles são usados no nível de domínio – conceitual – e em 
nível de projeto. Nesta aula vamos abordar o diagrama de classes a partir da observação do mundo real para um determinado 
contexto, vamos construir o diagrama, em nível de domínio. Isto é, não se devem representar estruturas de projeto (chaves, 
arquivos, campos...). O foco da análise é o negócio. Imagine que você está no século 15 e que não tem computador – quando 
estiver fazendo esse modelo. 
 
Identificando Classes. 
Uma classe é uma forma de representarmos no mundo simbólico um conjunto do mundo real. Ao observar um conjunto sobre 
o qual temos alguns interesses dizemos que temos uma classe. As propriedades que desejo observar são chamado de 
atributos. 
 
Representando Uma Classe 
Existem várias formas gráficas para se representar uma classe, mas em UML, quando temos interesse em um conjunto do 
mundo real, desenhamos: 
 
 
Uma classe é a descrição de um tipo de objeto do mundo real. Usam-se classes para classificar os objetos que identificamos no 
mundo real. As classes devem ser retiradas do domínio do problema. 
 
Uma classe completa, no UML, é representada por um retângulo dividido em três compartimentos: o compartimento de 
nome, que conterá apenas o nome da classe modelada, o de atributos, que possuirá a relação de atributos que a classe possui 
e o compartimento de operações chamadas de métodos. Nós veremos o que é método e sua modelagem em aulas futuras. 
 
Foi instanciado o objeto Pablo Barros, da classe cliente. E as operações que se pode fazer com ele são: criar() e 
destruir(). Vamos aprender como identificar os métodos, ainda em aulas futuras 
Relacionamentos 
Outro elemento importante, para a modelagem de classes, é o relacionamento. Aqui, o relacionamento tem o mesmo 
conceito matemático estabelecido em teoria dos conjuntos. Tem-se um relacionamento, quando estabelecemos alguma 
“ligação”, do nosso conhecimento, entre os conjuntos. VIU... Não é uma ligação física... é uma ligação do nosso 
conhecimento – ou do domínio da aplicação- por isto, não tem como se constatar fisicamente. É um elemento conceitual. 
Reflete o conhecimento a respeito de alguma coisa. Só existe no mundo simbólico. 
Vamos esclarecer com alguns exemplos: 
Você tem o conjunto dos homens e o conjunto das mulheres. 
 
Um relacionamento é um estabelecimento conceitual entre elementos de um conjunto com outro que depende de que aspecto 
do mundo real estamos analisando. 
Multiplicidade Dos Relacionamentos: 
Uma informação importante, quando trabalhamos com os relacionamentos é de como os elementos do conjunto se comportam 
em relação ao outro. Quando eu tenho um conjunto A e um conjunto B, na matemática um relacionamento representa um 
par (a,b) onde a pertence ao conjunto A e b pertence ao conjunto B. 
Pode ser que todos os elementos de A tenham o par (a, b), neste caso se fala PARA TODO a pertencente ao conjunto A temos 
uma imagem b no conjunto B. Observe que não INTERESSA como chega ou para quem chega ao conjunto B. 
Existem quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B: 
 
 
 
 
Análise Dos Relacionamentos: 
Quando fazemos a análise dos relacionamentos, estabelecemos duas informações: Relacionamento do conjunto A para o 
conjunto B; e do conjunto B para o conjunto A. Assim, vamos completar os exemplos anteriores: 
 
 
 
 
De forma resumida para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos 
estão relacionados. O intervalo pode ser de zero para um (0..1), zero para vários (0..* ou apenas *), um para vários (1..*), 
dois (2), cinco para 11 (5..11) e assim por diante. É também possível expressar uma série de números como (1, 4, 6..12). 
Se não for descrita nenhuma multiplicidade, então é considerado o padrão de um para um (1..1 ou apenas 1). 
Classes Dependentes 
Existem alguns conjuntos que, no processo de modelagem, desejamos condicioná-los à existência de outros conjuntos. São 
chamados de conjuntos dependentes. A dependência de conjuntos é uma ferramenta da modelagem. Nesse caso, o 
modelador deseja que a identificação do conjunto dependente seja feita a partir do conjunto a. A representação da 
dependência é por uma linha tracejada. 
O diagrama significa que o familiar deve ser identificado a partir da identificação do empregado. Na realidade, um objeto 
dependente só pode ser dependente de um único objeto, por isto é desnecessário a indicação da multiplicidade 1. 
 
Associações 
Outro recurso importante é a associação. Uma associação é um conjunto criado com objetivo de ligar outros dois (ou mais) 
conjuntos existentes. As classes associadoras são representadas por linhas cheias e a classe que as associa é ligada a esta linha 
cheia por uma linha pontilhada. Toda vez que tivermos um relacionamento de multiplicidade ( 0..*) para os dois lados do 
relacionamento, deve-se usar a classe associativa. O modelo de classes de objetos é determinista, isto é, devemos saber 
quem se relaciona com quem, portanto a multiplicidade 1 é obrigatória nos relacionamentos fora da estrutura associativa. 
 
Exemplo 
Uma empresa trabalha com projetos. Todo empregado trabalha em um projeto, cada projeto é coordenado por um órgão. O 
departamento de pessoal precisa saber que dia e hora o empregado entrou e saiu de cada projeto. Faça um modelo de classes 
que permita fornecer esta informação: 
Primeiro passo : O modelador iniciaria identificando os conjuntos existentes: 
 
 
 
 
Nesta aula, você: 
 Aprendeu que o diagrama de classes é o mais importante na análise por objetos; 
 Aprendeu o que é um objeto e como fazer um diagrama de objetos; 
 O diagrama deve ser iniciado, forçando-se no caso e uso crítico; 
 Aprendeu a estabelecer relacionamentos e como representar conjuntos; 
 Usou as classes associativas e verificou a importância delas para dar flexibilidade aos sistemas criados a 
partir destes modelos; 
 Aprendeu que se pode qualificar os relacionamentos e definir restrições junto às classes; 
 Aprendeu a modelar uma associação. 
Na próxima aula, vamos aprender a usar esta importante ferramenta do UML, desenvolvendo alguns estudos de 
casos, para o desenvolvimento de suas habilidades de análise. Você aprenderá alguns complementos de 
representação usado pelo UML, no diagrama de classes. Até lá. 
 
 
1. 
 Responda, falso ou verdadeiro: 
No UML, a representação de uma classe é formada em três compartimentos, sendo: o primeiro, para identificar o nome da 
classe, abaixo vem o compartimento com os objetos relativos à classe e, por último, o compartimento dos atributos. 
 1) FALSO 
 2) VERDADEIRO 
 1 
2. 
 Dadas as seguintes afirmações, marque a opção falsa, em relação à generalização: 
 1) Todas as instâncias de uma classe filha são também instâncias da classe mãe. 
 2) É uma associação ‘é um tipo de’. 
 3) Todas as instâncias da classe mãe são também instâncias das classes filhas. 
 4) Uma classe pode ter várias ou nenhuma classe mãe. 
 5) Uma classe pode ter nenhuma ou várias classes filhas. 
 3 
3. 
 Quais dos relacionamentos abaixo podem haver entre classes? 
I – Include (inclusão) . II – Extends (extensão). 
III – Agregação. IV – Generalização. 
V – Composição.VI – Associação. 
 1) Todos 
 2) Nenhum 
 3) II, III, IV, VI 
 4) III, IV, V, VI 
 5) I, II, IV 
 4 
4. 
 Dadas as seguintes afirmações, marque a opção falsa, em relação à herança: 
 1) A herança é um mecanismo que deriva novas classes, a partir de uma classe já existente, através de um processo de 
refinamento. 
 2) Uma classe derivada herda atributos e operações da classe base. 
 3) A classe derivada não pode adicionar novos atributos ou operações às já existentes. 
 4) Quando uma classe herda de mais de uma classe, temos a herança múltipla. 
 5) A classe derivada pode redefinir a implementação de operações existentes na classe base. 
 3 
 
Estar sempre preparado para mudar o diagrama de caso de uso, pois ele pode sendo alterado a medida que se implementa o 
projeto. 
Aula 4: Prática e Particularidades do UML - Diagrama Caso de Uso e Classe 
Nesta aula você irá aprender sobre: 
 
1. Fazer uma nota (observação) nos diagramas do UML; 
2. Fazer auto relacionamentos; 
3. Definir a navegação no diagrama de classes 
4. Especificar restrições; 
5. Trabalhar com a estrutura a todo-parte; 
6. Diferenciar uma agregação de uma composição; 
7. Fazer um diagrama de pacotes; 
8. Definir visibilidade de atributos; 
9. Identificar as informações que o UML definiu para os relacionamentos. 
Diagrama De Classes 
O UML específica uma série de informações complementares aos conjuntos identificados do mundo real e seus 
respectivos relacionamentos. Essas informações têm o objetivo da implementação. Sim, porque não devemos 
esquecer que o objetivo é definir um sistema de informações. Alguns dos instrumentos apresentados são para 
outros diagramas e vamos aprender a usar estas ferramentas em outros diagramas. 
Completando As Associações 
Uma associação é um conceito que liga dois conjuntos, matematicamente é um par (a,b) onde: a pertence a um 
conjunto e b pertence ao outro conjunto. 
Quando apresentamos a associação, mostramos que existem duas informações - do conjunto A para o conjunto B 
e do Conjunto B para o conjunto A – e representamos estas informações. Estávamos NOMEANDO 
OS relacionamentos mas, na prática, não há necessidade de se qualificar estes relacionamentos, pois, o nosso 
principal objetivo é a multiplicidade. 
 
 
 
 
 
 
 
 
 
Mutabilidade 
Indica se os relacionamentos estabelecidos são mutáveis (podem ser agregados, apagados). Quando nada é dito, 
indica que nenhum indicador é necessário. A propriedade {congelado} indica que após ser criado, nenhum vinculo 
pode ser feito. A propriedade {somarSomente} indica que os vínculos podem ser somados. 
 
Relacionamentos Recursivos Ou Autorelacionamento. 
Imagine que você tem um conjunto de equipamentos de hardware. Nesse conjunto temos equipamentos como 
teclados, vídeos, mouses, que são únicos, ou seja, tem um identificador e um único fabricante. Existem também 
computadores (equipamentos compostos) que são compostos por equipamentos únicos. Para representar isto 
temos: 
Ou seja, estamos criando relacionamento entre os elementos do próprio conjunto. 
É possível conectar uma classe a ela mesma, através de uma associação e que ainda representa, semanticamente, 
a conexão entre dois objetos; mas os objetos conectados são da mesma classe. Uma associação deste tipo é 
chamada de associação recursiva. 
 
Relacionamentos Recursivos Ou Autorelacionamento. 
Apesar de o UML definir o autorelacionamento, no meu entender, não há necessidade de se usar este tipo de 
recursos, pois, fica pouco claro como ocorre o relacionamento e não se define que objetos estão associados. Você 
já tem o recurso do subconjunto, portanto, basta modelar os subconjuntos e estabelecer o relacionamento entre 
eles. Assim, no exemplo, temos dois tipos de equipamentos: Simples e Compostos – podemos definir dois 
subconjuntos e depois associar os componentes. 
 
Sempre que possível, desenvolva a análise, identifique que objeto se relaciona com que objeto. Isso evitará 
problemas, na fase de implementação do sistema. 
Associação Exclusiva 
Uma associação exclusiva é uma restrição em duas ou mais associações. Ela especifica que objetos de uma classe 
podem participar de, no máximo, uma das associações, em um dado momento. 
 Uma associação exclusiva é representada por uma linha tracejada entre as associações, que são partes da 
associação exclusiva, com a especificação “{ou}” sobre a linha tracejada. 
No diagrama, um contrato não pode se referir a uma pessoa e a uma empresa ao mesmo tempo, significando que 
o relacionamento é exclusivo a somente uma das duas classes. Novamente, lembro que podemos destacar como 
subconjuntos e mostrarmos a disjunção. 
 
 
 
 
 
 
 
Nesta aula, você: 
 Aprendeu a colocar anotações no diagrama de classes; 
 Aprendeu a criar um pacote; 
 Aprendeu a estabelecer informações nos relacionamentos; 
 Aprendeu a trabalhar com a agregação e a composição; 
 Aprendeu o que é uma estrutura toda parte; 
 Aprendeu sobre visibilidade de atributos; 
 Aprendeu sobre auto relacionamentos. 
Na próxima aula, vamos aprender o que é um método, uma mensagem e como identificá-los. Vamos 
aprender uma nova ferramenta que nos ajuda na identificação de métodos e, desta forma, podemos 
representar um novo diagrama de classes, mas desta vez, já considerando alguns aspectos da 
implementação 
 
1. 
 Indique que grupo de informações pode ser representado junto ao relacionamento: 
 1) Agregação, multiplicidade, navegação, atributo. 
 2) Composição, ordenação, atributo, navegação. 
 3) Ordenação, composição, qualificação, navegação. 
 4) Objeto, composição, classificação, restrição. 
 5) Generalização, nomeação, classe, ordenação. 
 3 
10. 
 Considere as seguintes classes e associações e escolha a alternativa correta 
 
 1) Classe B compõe a Classe A, Classe D é uma Classe C, Classe F tem visibilidade para Classe E 
 2) Classe B é uma classe A; Classe D compõe a Classe A; Classe F tem visibilidade para Classe E 
 3) Classe B tem visibilidade para Classe A; Classe D é uma Classe C; Classe F compões a Classe E 
 4) Classe A compõe a Classe B; Classe C é uma Classe D; Classe E tem visibilidade para Classe F 
 5) Classe A compõe a Classe B; Classe D tem visibilidade para Classe C; Classe F é uma Classe E 
 1 
2. 
 Uma agregação indica que: 
 1) a classe que agrega deve colocar todos os itens em ordem. 
 2) a classe que agrega deve colocar restrições em todos os itens. 
 3) a classe que agrega deve criar uma relação de dependência para todos os itens. 
 4) a classe que agrega deve ser trabalhada como uma associação entre seus itens. 
 5) a classe que agrega deve carregar automaticamente todos os itens que a compõem. 
 5 
3. 
 Uma nota em UML é colocada em uma figura e deve ser usada: 
 1) para completar com algum comentário para o entendimento do diagrama. 
 2) só no diagrama de classe. 
 3) para uma informação que detalha a forma de implementar e que interessa apenas ao programador. 
 4) para uso obrigatório quando fazemos um diagrama de classes. 
 5) para uma informação referente ao diagrama de casos e uso. 
 1 
4. 
 Considere o diagrama abaixo, e veja a opção absolutamente correta: 
 
 1) O conjunto aluno é ordenado por matrícula. 
 2) O conjunto veículo é ordenado por placa. 
 3) O conjunto veículo é ordenado. 
 4) O conjunto de veículos é ordenado com base no CPF. 
 5) O conjunto aluno e o conjunto veículo são ordenados. 
 3 
5. 
 Dadas as seguintes afirmações, marque a opção falsa em relação à generalização: 
 1) Todas as instâncias de uma classe filha são também instâncias da classe mãe. 
 2) É uma associação ‘é um tipo de’. 
 3) Todas as instâncias da classe mãe são também instâncias das classes filhas. 
 4) Uma classe pode ter nenhuma ou várias classes mãe. 
 5) Uma classe pode ter nenhuma ou várias classes filhas. 
 3 
6. 
 Quais dos relacionamentos abaixo que podem haver entreclasses? 
I – Include (inclusão) II – Extends (extensão) 
III – Agregação IV – Generalização 
V – Composição VI – Associação 
 1) Todos 
 2) Nenhum 
 3) II, III, IV, VI 
 4) III, IV, V, IV 
 5) I, II, IV 
 4 
7. 
 Dadas as seguintes afirmações, marque a opção falsa em relação à herança. 
 1) A herança é um mecanismo que deriva novas classes, a partir de uma classe já existente através de um processo de 
refinamento. 
 2) Uma classe derivada herda atributos e operações da classe base. 
 3) A classe derivada não pode adicionar novos atributos ou operações as já existentes. 
 4) Quando uma classe herda de mais de uma classe, temos a herança múltipla. 
 5) A classe derivada pode redefinir a implementação de operações existentes na classe base. 
 3 
8. 
 Dadas as seguintes afirmações, marque a opção falsa em relação à herança. 
 1) A herança é um mecanismo que deriva novas classes a partir de uma classe já existente, através de um processo de 
refinamento. 
 2) Uma classe derivada herda atributos e operações da classe base. 
 3) A classe derivada não pode adicionar novos atributos ou operações as já existentes. 
 4) Quando uma classe herda de mais de uma classe, temos a herança múltipla. 
 5) A classe derivada pode redefinir a implementação de operações existentes na classe base. 
 3 
9. 
 _______________ e ___________________ - chamados diagramas de interação – são dois dos cinco diagramas utilizados na UML, 
para a modelagem dos aspectos ____________ de sistema 
 1) Sequencia – atividade – dinâmicos 
 2) Sequencia – colaboração – dinâmicos 
 3) Sequencia – colaboração – estáticos 
 4) Sequencia – atividade – estáticos 
 5) Gráfico de estado – colaboração – dinâmicos 
 2 
Aula 5: Identificação de Métodos e Mensagens 
Nesta aula, você irá: 
 
1. Modelar um método. 
2. Identificar a diferença de método e mensagem. 
3. Identificar os componentes de um diagrama de sequência. 
4. Identificar a seqüência de métodos. 
5. Identificar os três tipos de visibilidade de atributos e como representá-los. 
6. Identificar uma característica de sincronismo de métodos. 
7. Identificar uma característica de um método assíncrono. 
8. Identificar quando e como um método deve criar um objeto. 
Diagrama de sequência 
Os casos e uso devem ser implementados, deve-se definir como devem ser implementados. Os diagramas de 
interação, que mostram como as classes interagem, são o diagrama de sequência e o diagrama de colaboração. 
Nesta aula vamos estudar os principais aspectos do diagrama de sequência. No diagrama de sequência estamos 
definindo que funções devem ser implementadas, se definir como é o código, para que o caso e uso possa ser 
realizado. O objetivo é identificar funções, que são as unidades para definir novas funções. 
Comparando com fatoração de números, no diagrama de sequência “fatoramos” os caso e uso. Não confunda – 
Um diagrama de sequência mostra a sequência de execução de funções, portanto, não mostra troca de 
informação. Um diagrama de sequência é uma espécie de algoritmo de alto nível em que se destaca a chamada das 
funções. 
Os casos e uso devem ser implementados, deve-se definir como devem ser implementados. Os diagramas de 
interação, que mostram como as classes interagem, são o diagrama de sequência e o diagrama de colaboração. 
Nesta aula vamos estudar os principais aspectos do diagrama de sequência. No diagrama de sequência estamos 
definindo que funções devem ser implementadas, se definir como é o código, para que o caso e uso possa ser 
realizado. O objetivo é identificar funções, que são as unidades para definir novas funções. Comparando com 
fatoração de números, no diagrama de sequência “fatoramos” os caso e uso. Não confunda – Um diagrama de 
sequência mostra a sequência de execução de funções, portanto, não mostra troca de informação. Um diagrama 
de sequência é uma espécie de algoritmo de alto nível em que se destaca a chamada das funções. 
 
 
Métodos: 
Um método é uma função que colocamos dentro da classe, isto quer dizer que a função está encapsulada e só 
pode ser executada a partir da classe. 
Não é uma boa prática de modelagem colocar métodos nas classes sem o desenvolvimento de um dos diagramas 
de interação. 
 
Mensagem: 
Os objetos precisam trabalhar de forma coordenada, e por isto devem se comunicar através de seus métodos. Um 
objeto pode chamara a execução de um método de outro objeto. A chamada do método de outra mensagem é o 
que chamamos de mensagem. 
Quando desejamos definir como e quais mensagens são transmitidas, podemos fazer um diagrama de sequência 
ou um diagrama de colaboração são chamados de diagramas interativos. 
Para cada caso e uso desenhamos que classes e que mensagens são necessárias para se implementar o caso e uso. 
 
Diagrama de sequência 
Mostra a sequência de chamada de métodos (MENSAGENS) ao longo do tempo. 
Para isto devemos estanciar os objetos que irão ser utilizados. 
Para se representar um objeto instanciado, por exemplo, para a classe aluno, temos: 
: aluno representa que um objeto qualquer da classe aluno foi instanciado- João 
: aluno representa que o objeto nomeado como João, da classe aluno, foi instanciado. 
 
 
 
Autodelegação 
Um método pode ser chamado por outro método dentro de uma classe. Nesse caso, o objeto está enviando uma 
mensagem para ele mesmo. È o chamamos de autodelegação e representa-se: 
 
Na prática, as linguagens de programação, ao executarem um método, guardam o endereço desta execução em uma 
variável especial chamada THIS. Quando se faz a auto delegação, busca-se, para execução do método, o endereço 
armazenado nessa variável. 
Podemos indicar a execução da forma: THIS.mesagem(); 
 
Uma mensagem é uma chamada a esse método. Pode-se indicar o acesso a um atribulo, ou método de um objeto, 
indicando o nome do objeto. 
Assim para a classe: 
 
Podemos chamar a função construtora, que vai criar o objeto. Suponha que desejamos o objeto João. 
As linguagens, geralmente, fazem isso por um método com o mesmo nome da função ou pelo operador new. 
 Aluno João: /aluno é um novo tipo e foi criado o objeto João. 
João = new aluno; / João é um objeto que foi criado da classe aluno. 
Podem-se acessar os atributos da classe, indicando o objeto e a estrutura que desejamos de dentro da classe. 
 Nome --> indica que estamos acessando a variável nome do objeto João 
 João.Telefone = “23657854”. --> indica que o telefone 23657854 foi atribuído a variável telefone no objeto João. 
 João.transferir(); --> indica que foi ativada (executar) a função transferir, a partir do objeto João e com as 
características existentes no objeto, na hora da chamada. 
Vamos construir alguns diagramas de sequência para explicitar alguns conceitos: 
Considere o caso e uso: Matricular um aluno em uma universidade. 
 Com uma única classe´. 
 
Para incluir um objeto aluno, temos o seguinte diagrama de sequência: 
Inicialmente, registramos os objetos que serão usados com a representação de sua existência na linha da vida. 
Depois, começamos a desenhar cada método com as respectivas mensagens. 
Observe que o nome do caso e uso é o método inicial no diagrama. E esse método estabelece uma série de 
mensagens. Todas as mensagens são feitas no próprio objeto. A primeira mensagem chama o método 
mostrar_tela(); este método é responsável por criar uma tela para ser preenchida com os dados do aluno e, 
também, faz a crítica desses dados (eu estou definindo isto), ao se clicar OK (eu estou imaginando um botão de OK 
na tela) os dados (nome, matrícula e telefone), correspondente aos atributos da classe, serão conhecidos e devem 
ser incluídos no conjunto (arquivos ou banco de dados, não é momento de definir isto agora), para isto vou estipular 
outro método com o nome de incluir_aluno(); e vou passar estes dados como parâmetros. 
O diagrama de sequência com os métodose mensagens fica: 
 
Observação: 
Observe que a chamada de métodos (mensagens) só pode ser feita para métodos definidos na classe, por isto vamos 
colocando os métodos identificados por cada classe. 
Se analisarmos a estrutura do caso e uso do exercício, verificamos que a forma que foi projetado não é adequada, 
pois, permitirá que se inclua duplicatas de alunos. O ideal é que verificássemos se o aluno já existe no 
conjunto. Nesse caso, deveríamos colocar um método para verificar isso, poderíamos, por exemplo, criar um 
método que retorne a string “sim”, se ele já existe ou não, se ele não existe. Só vamos incluir se voltar não. 
Com as informações do diagrama, podemos completar a classe aluno, colocando os métodos que identificamos: 
 
Veja que o digrama de sequência serve para verificar a melhor forma de implementar. Por isso, durante o estudo e 
definição de que métodos vamos definir, podemos fazer vários diagramas, até decidirmos pelo mais adequado. 
Se tivermos uma linguagem de programação orientada a objetos, teríamos de definir nossa classe assim: 
 Classe Aluno 
 { atributos: 
 String Nome; 
 String end; 
 Int matrícula; 
 Métodos: 
 Void matricular(); 
 Void mostrar_tela(); 
 String Validar(); 
 Void incluir-_aluno(); 
 } 
O diagrama corresponde a um algoritmo que incida métodos usados: 
Vamos mostrar, com uma pseudolinguagem, como ficaria o método matricular(); 
Aluno:: void matricular() 
 { string variável; // para receber a volta da validação 
 ..... 
 // nome, end, matrícula são variáveis da classe e são 
 //acessadas pelos métodos 
 This.mostrar_tela(); 
 // esta função lê e armazena dados nos atributos; 
 Variável= this.validar(); //retorna sim ou não para a variável 
 Se (variável==”não”) 
 This.incluir_aluno() 
 Senão 
 Imprimir “aluno já existe” 
retornar 
 } 
O diagrama de sequência com os métodos e mensagens fica: 
 
Exemplo 
Considere que o analista de requisitos nos enviou o seguinte: 
 
Os Objetos envolvidos para se realizar o método são: :matrícula, :aluno e :curso Esses objetos precisam estar na 
memória (pelo menos achamos isto inicialmente) para podermos executar as funções (que vamos identificar) e 
acessar os valores dos atributos. 
Observe, no meu diagrama, que comecei pelo objeto matrícula, você pode contestar isso. Para fazermos a 
matrícula, no diagrama de classes vemos que precisamos, de alguma forma, buscar o código do aluno e o código da 
disciplina, então mandamos mensagens para esses objetos retornarem esses códigos. Com o conhecimento dos 
códigos, podemos incluir no conjunto associativo. 
 
 
A título de exemplo, teríamos o algoritmo em pseudocódigo correspondente ao diagrama de classes, par ao método 
mat(): 
 
 
 
 
 
 
Mensagens etiquetadas 
Já vimos nos itens anteriores o que UML classifica como uma mensagem etiquetada. Uma mensagem etiqueta é 
quando se estabelece uma série de condições que devem ser cumpridas para se enviar a mensagem 
De acordo com a UML a sintaxe da etiqueta é: 
<Predecessor><condição><expressão><retorno> := <mensagem> (<parâmetros>); 
 
<predecessor> é uma lista de números separada por virgulas terminando por uma “/” 
 Exemplo: 1.1, 1.2, 1.2.1, 1.2.2, 1.2.2.3/ 
<CONDIÇÃO> 
<EXPRESSAO> É uma lista de termos de sequência separados por . seguida por dois pontos. 
Exemplo 1: 3.1 [x<y] : variável:= função (valor1,valor2); 
 
Exemplo 2: 1.1b ,1.1 c [x<10] : variável := função (valor1,valor2); 
 - Indica que serão executas as mensagens consecutivamente 
 <Retorno> uma lista de nomes separados por virgula que são retornados pela função. 
Exemplo3: 3.1 * [x=1..n] : nome,endereço,matricula:= id_aluno(); 
 Obs: * indica repetição - para valores de x de 1 ate n. 
Exemplo4: 3.1 * [x=1;x<100,x++] : nome,end := id_al (); 
 Obs: pode-se usar estruturas de sintaxe de linguagens de programação. 
Exemplo5 : 3.1 *|| [x=1; x<100,x ++] : nome,end id_al(); 
 Obs: o símbolo *|| indica que as mensagens podem executar em paralelo, isto é, não existe sincronismo na 
execução. 
<Mensagem> é o nome da função. 
<parâmetros> é o conjunto de parâmetros passados na função pode-se usar sintaxe de alguma linguagem como por 
exemplos passar simplesmente o nome dos parâmetros: 
 1.2 : int nome:= Id_aluno (matricula, curso) 
Ou passar o tipo junto ao parâmetro: 
 1.2 : int nome:= id_aluno (string:matricula, int:curso); 
Casos especiais de representação 
Tempo real: Um sistema em tempo real, em principio, tem o tempo como o principal fator para sua execução. O 
sistema precisa responder conforme projetado, permitindo a execução simultânea de processos em 
paralelo. Precisa-se definir tempo de resposta, comportamento, comunicação entre processos. 
Embedded System: Um sistema de tempo real, normalmente, tem os processos muito integrados a dispositivos de 
hardware. Este tipo de sistema é chamado de Embedded System. 
Classe ativa: Normalmente os objetos (de uma classe passiva) só são instanciandos quando recebem mensagens – as 
classes que vimos nos exemplos anteriores-. Uma objeto de uma classe ativa pode tomar iniciativa para executar 
ações sem enviar mensagens. Para isto deve-se representar os métodos com a preocupação de definir a forma de 
comunicação entre os objetos ativos e sua sincronização. Na UML uma classe ativa é representado com a indicação 
do estereótipos <<classe ativa>>. 
A UML indica a forma de sincronismo durante a transferência das mensagens, por variações na ponta da flecha: 
 
 
 
 
 
Exemplo de mensagem assíncrona: figura do livro Modelagem de Objetos – Furlan,Jose,David. 
Observação: Uma ativação é a execução de uma ação. 
 
 
Um diagrama de sequência, usando todas as representações da UML, dá para o implementador uma série de 
informações importantes. 
Quando o diagrama de sequência envolve vários objetos, pode-se ter dificuldadade de visualizar o método que se 
está desenhando. Para resolver isto temos um outro tipo de diagrama chamado diagrama de colaboração. O 
diagrama de colaboração tem o mesmo objetivo do diagrama de sequência, mas permite uma melhor visualização, 
pois só se representa as classes envolvidas no método. 
Dica: 
 Seja simples: 
 1 - Não queira iniciar usando todas as representações apresentadas nesta aula. Use as básicas e a medida que for 
ganhando experiência vá introduzindo novas representações 
2 – O diagrama de seqüência é para ser simples. Por isto desenhe apenas o desenvolvimento de um método ou caso 
e uso completo por diagrama. Não resolva vários caso-uso ou método no mesmo diagrama 
3 – pratique, este é o segredo. Lembre-se que ao desenhar um diagrama de seqüência você esta definindo código. 
Nesta aula, você: 
 Aprendeu o que é encapsula mento. 
 Aprendeu o que é um método e como modelá-lo. 
 Aprendeu a diferença entre método síncrono e método assíncrono. 
 Aprendeu sobre a visibilidade de atributos. 
 Aprendeu sobre as características de um diagrama de sequência. 
 Aprendeu a definir uma classe de projeto. 
 
1. 
 Um diagrama de interação serve para: 
 1) mostrar o fluxo de informação entre o ator e o sistema 
 2) mostra como as mensagens retornam para o ator 
 3) mostra a seqüência de chamada de métodos 
 4) mostra a seqüência de instancias de objetos graficamente 
 5) mostar como o fluxo de informação deve ser armazenado 
 3 
2. 
 A linha da vida serve para: 
 1) definir o sincronismo entre a criação de objetos 
 2) representar o tempo de vida de um objeto 
 3) representa o tempo de vida de uma classe 
 4) representa o tempo de vida de um método assíncrono 
 5) representa o tempo de vida de um método síncrono 
 2 
3. 
O método: 
 2.1.2 a [sexo = “m”] : string:nome,int:numero:= MSG(int:CPF) 
Significa: 
 1) o método é etiquetado, portanto deverá ser criado um fluxo de informação contendo nome e numero 
 2) o método esta etiquetado, mas não esta correta na sua sintaxe,pois falta a indicação de sexo = “f”. 
 3) é uma mensagem que indica que a classe MSG deverá apresentar os dados de nome e número quando se passa r o CPF. 
 4) é um fluxo que é chamado de 2.1 se o sexo = “m” e apresenta na tela o nome de quem possui o CPF informado 
 5) é um método etiquetado que retorna o nome e matricula quando for chamado para um CPF 
 5

Outros materiais