Alguns Exercícios Resolvidos

Documentos relacionados
Departamento de Engenharia Industrial. ENG Sistemas de Informação Gerenciais Caso de Uso - Exercícios

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Modelagem de Sistemas

Modelagem ou Diagrama de Caso de Uso

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Diagrama de Casos de Uso. Interagindo com o Usuário

Projeto Integrador II. Princípios de Análise e Projeto de Sistemas com UML (livro de Eduardo Bezerra)

UML Diagrama de Caso de Uso. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

Requisitos de sistemas

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

QUESTÃO 2: Sobre os relacionamentos utilizados no diagrama de caso de uso, analise as assertivas a seguir.

Resolução da lista de exercícios de casos de uso

Análise de Sistemas 3º Bimestre (material 2)

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Diagrama de Casos de Uso

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Engenharia de Software Orientada a objetos. Prof. Rogério Celestino dos Santos

Análise e Projeto de Sistemas

Análise e projeto de sistemas

Modelagem de Casos de Uso (Parte 1)

Lista Diagrama de Casos de Uso

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Princípios de Análise e Projeto de Sistemas com UML

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Conceitos de Programação Orientada a Objetos

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Modelagem de Casos de Uso. Sistemas de Informação

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

O que é um sistema distribuído?

Aula 7 - Análise de Requisitos: descrição de casos de uso. Análise de Sistemas Prof. Filipe Arantes Fernandes

Panorama da notação UML

O Fluxo de Requisitos

Análise e projeto de sistemas

PCS3413 Engenharia de Software e Banco de Dados

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Capítulo 2. Orientação a Objetos

UML. Modelando um sistema

Orientação a objetos. Objetos ou Instâncias I

O PARADIGMA ORIENTADO POR OBJETOS

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Princípios de Análise e Projeto Orientados a Objetos com UML

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Modelagem Orientada a Objeto

Análise de Sistemas. Visão Geral - Orientação a Objetos. Prof. José Honorato Ferreira Nunes

Análise de Sistemas 4º Bimestre (material 3)

Técnicas de Identificação

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

DIAGRAMAS DE CLASSE UML

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Engenharia de Software. Aula 2.4 Modelos de Casos de Uso. Prof. Bruno Moreno

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

MODELAGEM DE CLASSES DE ANÁLISE

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

Introdução à Orientação a Objetos

Linguagem de Programação I Apresentação da Disciplina

Unidade IV MODELAGEM DE. Prof. Daniel Arthur Gennari Junior

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Diagrama de Casos de Uso

Interface vs. Implementação Herança vs. Composição

Engenharia de Software. Projeto de Arquitetura

UML (Linguagem unificada de modelagem)

UML Diagrama de Classes

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

MAPEAMENTO OBJETO RELACIONAL. Professora Lucélia Oliveira

Introdução a UML (Unified Modeling Language)

UML (Unified Modelling Language)

Interfaces e Classes Abstratas

Transcrição:

Princípios de Análise e Projeto de Sistemas com UML 3ª edição, 2015, Eduardo Bezerra Alguns Exercícios Resolvidos

Capítulo 1 Exercício 1.1 Sim, porque ele representa graficamente um objeto do mundo real (a cidade). Características: Ele abstrai e só exibe as informações consideradas relevantes do objeto. (Encapsulamento) O objeto Mapa fornece serviços a outros objetos através de sua interface. Todos os detalhes de como esses serviços são implementados estão encapsulados pelo objeto. Os "clientes" deste objeto só precisam conhecer a sua interface para utilizá-lo. (Herança) Um objeto mapa pode ser considerado como um tipo especial de figura e como tal pode herdar propriedades e operações de uma figura (carregar, salvar, aumentar (zoom-in), diminuir (zoom-out), etc.). (Polimorfismo) Um objeto mapa pode ser formado de outros objetos (por exemplos, rios, rodovias, lagos, etc.). Quando houver a necessidade de desenhar o mapa, a mesma mensagem (desenhar) pode ser enviada a seus objetos componentes. Ao receber tal mensagem, cada objeto componente a implementa da forma mais adequada para o seu caso. Exercício 1.2 a) Mensagens são enviadas para outros objetos através da sua interface. b) Objetos têm uma fronteira (a sua interface). Cada objeto tem um comportamento interno que não é visível de fora (pelo princípio do encapsulamento). c) Objetos de um sistema de software colaboram entre si para realizar as funcionalidades externamente visíveis desse sistema. Esses objetos se comunicam requisitando serviços uns aos outros para resolver problemas ou para realizar uma função do sistema ao qual pertencem. Exercício 1.3 Sim. Porque de acordo com o primeiro desses princípios, qualquer coisa é um objeto. Exercício 1.4 Há sim. Os modelos utilizados, tanto no contexto do livro, quanto nessas áreas, servem para tornar algo complexo mais inteligível para a capacidade humana e também usam símbolos e notações para representar os objetos reais.

Exercício 1.5 Objeto: um objeto é qualquer coisa que possamos ver, sentir, tocar ou idealizar. Exemplos de objetos são: Eu, esse texto, sua conta de email, etc. Computacionalmente falando, um objeto é uma abstração de algo do mundo real. Em vista disso, um objeto nesse é bem mais simples que a sua contrapartida original e representas as características e comportamentos relevantes desse original. Classes: corresponde a um agrupamento de objetos. Ela retém os comportamento que serão característicos aos objetos que dela fazem parte. Por exemplo: Pessoa é uma classe onde estamos contidos todos nós, porém quando pensamos em alguém em específico, estamos pensando no objeto, quando idealizamos uma imagem de uma pessoa fizemos usando as características da classe. Por exemplo: Camisa é uma classe. A camisa que estou usando agora é um objeto dessa classe. Herança: é a capacidade que uma classe tem de herdar características da classe que está acima dela hierarquicamente. Por exemplo: Camisa é uma subclasse da classe Roupa, logo ela herda comportamentos e funções. Todas as duas tem a comportamento de servir como vestimentas para quem a usa. Mensagem: é um pedido ou informação passado de um objeto para outro. Por exemplo, quando giramos o objeto chave na ignição do carro, ele passa a mensagem para o carro de queremos que ele funcione, em reposta o carro executa essa tarefa.

Capítulo 4 Exercício 4.8 A tabela a seguir exibe as alternativas possíveis entre relacionamentos entre atores e casos de uso em um diagrama de casos de uso. As células da tabela com um X indicam possibilidade. As células não preenchidas indicam impossibilidade. Entre atores Entre casos de uso Entre ator e caso de uso Comunicação X Inclusão X Extensão X Generalização X X Exercício 4.14 Considerando-se somente o trecho fornecido no exercício, podem ser identificados 3 atores em potencial, a saber: Cliente, Vendedor e Depósito. O primeiro é o ator primário e os dois últimos são atores secundários. O nome do caso de uso correspondente poderia ser Comprar Produtos. Exercício 4.16 Na situação descrita neste exercício, pode-se definir um ator denominado Empregado. Este seria o ator primário no caso de uso Registrar Horas Trabalhadas. Podemos também criar um ator denominado Gerência. que seria o ator primário no caso de uso Obter Horas Trabalhadas. O diagrama de casos de uso a seguir ilustra a solução aqui descrita.

Exercício 4.17 Exercício 4.19 O erro do diagrama está no fato de que atores não se comunicam em um diagrama de casos de uso. Na primeira alternativa de escopo (o sistema é o browser), o sistema sendo modelado tem que se comunicar (interagir) com dois atores no caso de uso Obter URL: Usuário da Internet e Servidor WEB. Na segunda alternativa de escopo (o sistema é a Internet), o próprio servidor WEB faz parte do sistema sendo modelado e por conta disse não deve ser representado como um ator. Os dois diagramas de casos de uso a seguir ilustram as duas alternativas diferentes.

Exercício 4.20 A primeira e a segunda assertiva são verdadeiras. Na verdade essas assertivas são formas diferentes de declarar a mesma informação: um ator representa um papel em relação ao sistema. Considere o exemplo do exercício 4-16. Pode haver uma pessoa que seja um funcionário comum em um certo projeto, além de ser o gerente em outro projeto. Neste caso, a mesma pessoa assumirá papéis diferentes em instantes distintos em relação ao sistema. Exercício 4.21 A seguir, são apresentados os nomes de casos de uso de acordo com a nomenclatura adotada no livro. Possíveis nomes para atores primários em cada situação são também fornecidos. Deve-se enfatizar no entanto que isso é somente uma convenção de nomenclatura. Outras convenções podem ser usadas. a. Transferir Fundos Cliente b. Comprar Livros Usuário c. Obter Relatório de Vendas Gerência d. Abrir Estadia Hóspede Exercício 5-2 Capítulo 5 Na modelagem de cartões CRC, utiliza-se cartões de tamanho fixo (normalmente com as dimensões aproximadas de 10cm x 15cm). O fato de as dimensões utilizadas serem as mesmas para todo cartão contribui para uma distribuição mais uniforme das responsabilidades. Isso porque quando o cartão CRC correspondente a uma certa classe já foi todo preenchido com responsabilidades, e uma nova responsabilidade deve ser

atribuída, é hora de o modelador considerar a criação de uma nova classe para cumprir com essa responsabilidade, ou então atribuir essa responsabilidade a uma outra classe.. Exercício 5-4 Exercício 5-5 Exercício 5-7

Exercício 5-8 Exercício 5-11 Em um modelo de classes, as responsabilidades atribuídas aos objetos devem ser o mais uniformemente distribuídas. Em muitos casos, um modelo no qual há uma classe que seja responsável pela maioria das atribuições do sistema muito provavelmente está mal balanceado quanto à distribuição de responsabilidades. Sempre que o modelador precisar de mais do que as dimensões usuais de um cartão CRC para enumerar as responsabilidades de uma classe, ele deve ser questionar se esta classe não está sobrecarregada com muitas responsabilidades.

Capítulo 7 Exercício 7-3 O diagrama de sequência apresenta uma estrutura de repetição aninhada. A ordem na qual as mensagens são passadas é a seguinte: m1, m2, m2, m2, m1, m2, m2, m2. Exercício 7-6 Este exercício diz respeito a duas estruturas de controle encontradas em diagramas de interação: a centralizada e a descentralizada. Estrutura centralizada Há um pequeno grupo de objetos que controla a realização de uma tarefa do sistema e coordena outros objetos periféricos através do envio de mensagens. A inteligência do sistema está concentrada nesse pequeno grupo de objetos controladores. De fato, os objetos desse pequeno grupo podem se encaixar na categoria de "objetos controladores" (veja detalhes no Capítulo 5). Na situação extrema desta estrutura de controle, um único objeto contém quase toda a lógica da aplicação e somente obtém pequenos serviços de outros objetos enviando mensagens para eles. Em relação à atribuição de responsabilidades, significa que uma grande quantidade de responsabilidades foi atribuída àquele objeto, tornando-o excessivamente complexo. Muito provavelmente seria mais adequado que algumas de suas responsabilidades fossem atribuídas a outro(s) objeto(s). Nessa situação, a estrutura de controle assume a forma de um garfo (fork) no diagrama de sequência. Estrutura descentralizada Dada uma tarefa que o sistema deve realizar, partes dessa tarefa são delegadas a vários objetos. A tarefa é realizada de forma descentralizada. Não há um único grande objeto controlador. Em vez disso, cada objeto faz uma parte da tarefa e envia uma mensagem para outro(s) objeto(s) realizarem uma outra parte. Cada objeto conhece apenas poucos outros objetos. Note que a "inteligência" do sistema fica distribuída pelos objetos que participam da realização da tarefa. Na situação extrema da estrutura de controle descentralizada, uma tarefa do sistema é realizada por uma sequência de envios de mensagens entre objetos O 1, O 2,..., O n, onde o objeto O i envia uma mensagem para o objeto O i+1. Nesse sentido, cada objeto controla o seu sucessor na sequência de mensagens enviadas. Nessa situação, a estrutura de controle assume a forma de uma escada (stair) no diagrama de sequência. Vantagens e desvantagens Há vantagens de desvantagens em ambas as estruturas de controle. A utilização de uma ou de outra estrutura depende muito do problema de modelagem a ser resolvido. No entanto, na prática, um modelo mais flexível e robusto é obtido quando se combinam

essas duas estratégias, considerando suas características particulares. É muito pouco provável que uma boa modelagem de um determinado diagrama de interação seja feita através da utilização exclusiva de uma ou de outra estratégia. Uma estrutura de controle descentralizada é apropriada quando: Os objetos têm uma conexão forte (por agregação, por composição, ou por generalização). As mensagens serão sempre enviadas em uma mesma ordem. Uma estrutura de controle centralizada é apropriada quando: As mensagens podem ser enviadas em ordens diferentes. Novas operações poderiam ser inseridas. A distribuição de responsabilidades segunda categorias (fronteira, controle e entidade) também pode ajudar na identificação de que estrutura de controle é mais adequada. Normalmente, costumo utilizar uma estrutura centralizada em relação ao objeto controlador de um caso de uso. No entanto, para outros objetos que participem da realização desse caso de uso e que se relacionem por agregação, por composição, ou por generalização, acho mais adequado usar uma estrutura descentralizada. Portanto, em um mesmo caso de uso, é comum a utilização das duas estruturas de controle.

Exercício 08-06 Capítulo 08

Exercício 08-07 Exercício 08-08 Exercício 08-09