Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade II PROJETO DE SISTEMAS ORIENTADO A OBJETOS Prof. André Luiz Visões da UML Segundo a abordagem de Kruchten (1995), um sistema de software pode ser organizado em cinco visões e cada visão possui um conjunto de diagramas UML, que representam aspectos particulares desse sistema. Fonte: livro-texto Visão de processoVisão lógica Visão de caso de urso Visão de implementação Visão de implantação Visões da UML Visão de caso de uso Tem como objetivo capturar as funcionalidades, os requisitos, e seu comportamento sob a ótica do usuário final, ou dos atores. A visão de caso de uso é centralizada, uma vez que o que é produzido nessa visão é a base para as outras visões do sistema. Visões da UML Visão lógica Também chamada de visão de projeto ou visão de classe, tem como objetivo representar como as funcionalidades serão implementadas sob o aspecto da solução de projeto. Representa a estrutura estática de um sistema, seus componentes e o relacionamento entre eles e como eles interagem para resolver um determinado problema. Essa interação é capturada pela estrutura dinâmica do sistema. Visões da UML Visão de processo Também chamada de visão de concorrência, a visão de processo tem como objetivo capturar os aspectos não funcionais de um sistema. A visão de processo representa uma visão mais técnica do sistema tratada como unidades de processos e processamentos, que podem ocorrer de forma síncrona ou paralela. Visões da UML Visão de implementação Também chamada de visão de componentes, a visão de implementação tem como objetivo representar aspectos físicos necessários para a construção do sistema e como eles interagem e fazem interface com o sistema. São exemplos desses aspectos físicos: sistemas de software, programas e rotinas internas, bancos de dados e bibliotecas. Visões da UML Visão de implantação Também chamada de visão de organização, tem como objetivo representar a organização física de hardware do sistema, como computadores, servidores e periféricos, e como eles se relacionam com o sistema. Essa visão é utilizada principalmente no processo de implantação, também chamado de instalação ou distribuição do sistema. Visões x diagramas UML Fonte: livro-texto Conceito de projeto (design) Na fase de análise, trabalhamos com mais ênfase na visão de caso de uso, desenvolvendo os diagramas de caso de uso, de processo e de atividade, além de trabalhar com os diagramas de classe e sequência sob o aspecto de conhecimento do domínio. Já na fase de projeto, daremos ênfase à visão lógica, bem como à visão de implementação e a de implantação, que são as visões que dão suporte à modelagem sob o aspecto de construção. Interatividade A modelagem de um sistema utilizando a UML pode ser dividida em cinco visões. Qual da visões apresenta os diagramas que tem foco na fase de projeto de software? a) Visão de implantação. b) Visão lógica. c) Visão de implementação. d) Visão de processo. e) Visão de casos de uso. Resposta A modelagem de um sistema utilizando a UML pode ser dividida em cinco visões. Qual da visões apresenta os diagramas que tem foco na fase de projeto de software? a) Visão de implantação. b) Visão lógica. c) Visão de implementação. d) Visão de processo. e) Visão de casos de uso. Estrutura de diagramas da UML Os diagramas UML podem ser divididos em estáticos e dinâmicos. O modelo estático representa a coleção de objetos, seus atributos, métodos e relacionamentos. O modelo dinâmico, também chamado de visão comportamental, tem como objetivo representar a interação entre os objetos ao longo de uma linha de tempo. Estrutura de diagramas da UML Fonte: livro-texto Ferramentas CASE Ferramentas, de qualquer natureza, são utilizadas na engenharia para dar suporte ou auxiliar na execução de uma ou mais atividades. CASE é o acrônimo em inglês para Computer-Aided Software Engineering, ou em português: Engenharia de Software Auxiliada por Computador. Sommerville (2010) define CASE como “o processo de desenvolvimento de software com uso de suporte automatizado”. Ferramentas CASE Algumas das principais características de uma ferramenta CASE: Criação de diagramas e manutenção da consistência entre esses diagramas. Engenharia reversa: geração de código a partir de diagramas e vice-versa. Gerenciamento de versão. Gerenciamento de mudança. Testes automáticos, verificação e relatórios. Ferramentas de modelagem Existem diversas ferramentas CASE que seguem o padrão da UML e são um excelente apoio para a elaboração de diagramas. Algumas são gratuitas, outras são pagas. As mais utilizadas são: Enterprise Architect. Rational Modeler. Visual Paradigma. Astah. StarUML. Tecnologia de apoio ao projeto – back-end Tecnologias de apoio ao projeto classificadas como back-end estão relacionadas ao gerenciamento e ao armazenamento das informações. São os Sistemas Gerenciadores de Banco de Dados (SGBD). Um Sistema de Gerenciamento de Banco de Dados (SGBD) é uma coleção de dados inter-relacionados e um conjunto de programas para acessar esses dados e recuperar informações de forma conveniente e eficiente. Tecnologia de apoio ao projeto – back-end História dos SGBDs Fonte: livro-texto Tecnologia de apoio ao projeto – back-end A diferença conceitual do modelo orientado a objetos para o E-R está em alguns pontos: No modelo orientado a objetos, cada objeto possui um conjunto de códigos que operam sobre esse objeto, chamado de método. Objetos que possuem o mesmo conjunto de atributos e métodos são denominados classe. Cada objeto possui uma identidade única independente dos valores contidos em seus atributos. Adoção de mecanismos de relacionamento: composição, agregação e herança. Tecnologia de apoio ao projeto – back-end Comparativo de banco de dados relacional e orientado a objetos: Fonte: livro-texto T e m p o d e r e s p o s ta Banco de dados 00 Banco de dados relacional Complexidade de objetos Tecnologia de apoio ao projeto – front-end Tecnologias de apoio front-end são as linguagens de programação OO. As linguagens de programação orientada a objetos são mecanismos de implementação do modelo de projeto que desenhamos na fase de projeto. Pré-requisitos de uma linguagem OO: Encapsulamento de dados. Implementar métodos. Troca de mensagens entre os objetos. Herança. Tecnologia de apoio ao projeto – front-end Principais linguagens OO: Microsoft .NET Java Há diversas discussões: Qual a mais utilizada? Qual a mais flexível? Qual a mais produtiva? Interatividade Várias tecnologias apoiam a elaboração da fase de projeto, sejam elas ferramentas CASE, back-end ou front-end. Qual dos itens abaixo representa uma tecnologia de back-end? a) Linguagem OO. b) Rational Modeler. c) Banco de dados. d) UML. e) Nenhuma das alternativas. Resposta Várias tecnologias apoiam a elaboração da fase de projeto, sejam elas ferramentas CASE, back-end ou front-end. Qual dos itens abaixo representa uma tecnologia de back-end? a) Linguagem OO. b) Rational Modeler. c) Banco de dados. d) UML. e) Nenhuma das alternativas. Passando da análise ao projeto Na fase de análise, produzimos o modelo de classes de domínio que representa a estrutura estática do sistema. Nesse modelo são representados os atributos, os métodos e como as classes se relacionam (herança, ligação,composição e agregação). O modelo de classes evolui durante o ciclo de vida do software e na fase de projeto (design) é utilizado para representar objetos da solução. Refinando o diagrama de classes Há três perspectivas do modelo de classes: Modelo conceitual. Modelo de projeto. Modelo de implementação. Refinando o diagrama de classes Modelo conceitual Desenvolvido na fase de análise, esse modelo representa as classes no domínio do negócio em questão e não leva em consideração restrições inerentes à tecnologia a ser utilizada na solução de um problema. Refinando o diagrama de classes Modelo de projeto Também chamado de modelo de especificação, o modelo de projeto é desenvolvido na fase de projeto (design) e é uma evolução do modelo conceitual, no qual são adicionados detalhes da solução de software. Fonte: livro-texto Modelo de projeto Deve incluir: Identidade: identificador em termos de implementação. Atributos: definir os tipos de dados de cada atributo, como Integer, String, Double, Decimal etc. e a sua visibilidade. Métodos: definir as assinaturas dos métodos e sua visibilidade. Fonte: livro-texto Modelo de projeto Deve incluir: Criar as classes do tipo coleção do modelo de domínio. Fonte: autor próprio. Fonte: o autor Modelo de projeto Exemplo: diagrama de classes de projeto Classe de domínio Classe de projeto Fonte: o autor Refinando o diagrama de classes Modelo de implementação O modelo de classes de implementação corresponde à implementação das classes em alguma linguagem de programação, por exemplo, C# (Microsoft .Net Framework) ou Java. Fonte: livro-texto Tipos de classes Classe entidade As classes de entidade representam as informações e os comportamentos que são, de alguma forma, armazenados no sistema. Por exemplo: classe cliente, pedido, produto. Tipos de classes Classe fronteira São os objetos que têm como responsabilidade dividir o ambiente interno do sistema e suas interações externas. Podemos interpretar interações externas a um sistema como toda e qualquer comunicação que um sistema faz com outros sistemas. Por exemplo: cartão de crédito, Serasa, envio de informações para sistemas governamentais, interações com o SGBD etc. Tipos de classes Classe controle São objetos que têm como objetivo realizar o sequenciamento da execução de um caso de uso na estrutura de objetos do sistema, bem como fazer a coordenação entre as camadas internas do sistema, representadas pelas classes de entidade, com as camadas externas ao sistema, representadas pelas classes de fronteira. Essas classes são típicas do modelo de classes de projeto para melhorar as implementações de negócio. Interatividade O diagrama de classes evolui do modelo de domínio para o modelo de projeto com um maior detalhamento das classes envolvidas. Qual opção apresenta uma das atividades para o modelo de projeto? a) Alterar o nome de atributos e métodos. b) Incluir nomes nas classes. c) Definir o relacionamento entre as classes. d) Identificar classes de negócio. e) Atribuir visibilidade a atributos e métodos. Resposta O diagrama de classes evolui do modelo de domínio para o modelo de projeto com um maior detalhamento das classes envolvidas. Qual opção apresenta uma das atividades para o modelo de projeto? a) Alterar o nome de atributos e métodos. b) Incluir nomes nas classes. c) Definir o relacionamento entre as classes. d) Identificar classes de negócio. e) Atribuir visibilidade a atributos e métodos. Modelando aspectos dinâmicos do projeto O objetivo dessa fase é a representação da interação dos objetos de forma dinâmica. O dinamismo está relacionado à representação do estado e do comportamento do objeto em uma linha de tempo. O modelo dinâmico é lógica de funcionamento de uma aplicação orientada a objetos. Modelando aspectos dinâmicos do projeto O modelo de interação dos objetos representa a forma pela qual eles interagem para resolver um determinado problema. A interação dos objetos se dá pela troca de mensagens, as quais são o centro da representação desse modelo. As mensagens podem ser: Chamada de um método. Fila de mensagens. Evento. Modelando aspectos dinâmicos do projeto Chamada de um método É o tipo mais utilizado de mensagem. Significa que um objeto está solicitando a execução de um método de outro objeto. Fonte: livro-texto Modelando aspectos dinâmicos do projeto Fila de mensagens: Utilizando um tipo de serviço bem específico e especializado para envio e recebimento de mensagens contínuas. Evento: Quando uma mensagem é enviada para um objeto do sistema originário de um evento externo ao sistema. É comum que esse tipo de mensagem seja próprio da comunicação entre atores e objetos. Exemplo: um clique de mouse. Tipos de mensagens Mensagens síncronas: São mensagens que implicam um sincronismo rígido entre os estados do objeto que envia a mensagem e os do objeto de destino da mensagem, ou seja, um objeto chama o outro e aguarda pela sua resposta. É o tipo mais comum. Mensagens assíncronas: Não há dependência de estado do objeto chamador e do processamento do objeto chamado. O objeto chamador envia a mensagem e continua o seu processamento. Exemplo de uma modelagem dinâmica Fonte: livro-texto Tipos de mensagens Autodelegação de mensagens: Um objeto pode enviar uma mensagem para ele mesmo, solicitando a execução de um método. O método que só pode ser chamado pelo próprio objeto é um método privado. Fonte: livro-texto Tipos de mensagens Criação e destruição de objetos No ciclo de vida de um objeto, existem dois métodos, construtores e destrutores, que têm como objetivo criar e remover um objeto da estrutura de memória de um sistema. São representados pelos estereótipos <<create>> e <<destroy>> no diagrama de interação. Fonte: o autor Representação de fluxos alternativos Os diagramas de sequência podem representar os fluxos alternativos de um caso de uso. Fonte: livro-texto Representação de repetição Os diagramas de sequência podem representar repetições de chamada dentro do ciclo de vida do objeto. Fonte: livro-texto Interatividade A modelagem dinâmica representa a interação dos objetos ao longo do tempo de execução de uma funcionalidade. Assinale a alternativa que apresenta o que pode ser representado em um diagrama de sequência. a) Estruturas de repetição. b) Fluxos alternativos. c) Criação e destruição de objetos. d) Troca de mensagens síncronas e assíncronas. e) Todas as alternativas estão corretas. Resposta A modelagem dinâmica representa a interação dos objetos ao longo do tempo de execução de uma funcionalidade. Assinale a alternativa que apresenta o que pode ser representado em um diagrama de sequência. a) Estruturas de repetição. b) Fluxos alternativos. c) Criação e destruição de objetos. d) Troca de mensagens síncronas e assíncronas. e) Todas as alternativas estão corretas. ATÉ A PRÓXIMA!
Compartilhar