Baixe o app para aproveitar ainda mais
Prévia do material em texto
30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/8 Histórico das Metodologias de Desenvolvimento de Sistemas A ETAPA DE ANÁLISE É FUNDAMENTAL PARA O DESENVOLVIMENTO DE SOFTWARE. ESSE TÓPICO DISCUTE A IMPORTÂNCIA DO USO DE METODOLOGIA NESSA ETAPA, APRESENTANDO O HISTÓRICO DA EVOLUÇÃO DAS ABORDAGENS EXISTENTES. AUTOR(A): PROF. GABRIEL LARA BAPTISTA Desenvolver softwares utilizando conceitos de engenharia. Essa é a maneira hoje utilizada dentro das organizações para tentar evitar o que ficou conhecido como Crise do Software. O termo foi apresentado no final da década de 1960, mas até hoje desafia aqueles que trabalham com desenvolvimento de software. Isso porque a teoria levantada, em que quanto mais complexo fosse o hardware, muito mais complexo seria a construção do software, não só é realidade, como também trouxe todas as consequências previstas já naquela época. Não é incomum vermos projetos de software falharem, seja por conta no erro de seu orçamento, prazo e/ou funcionalidades atendidas. Na verdade, números mais atuais indicam que mais de 60% dos projetos de software falham! Desses, 20% a 25% são cancelados ou não chegam a ser usados. Fica então a pergunta – Como melhorar esses percentuais? A Engenharia de Software surgiu com essa perspectiva. Considerando que na década de 1990 mais de 80% dos projetos falhavam, não se pode negar que houve evolução, apesar de muito aquém do esperado para uma área tão crítica como a desenvolvimento de software, onde cada vez mais se vê sua utilização em diferentes ramos e negócios. O fato é que a Engenharia de Software defende atividades fundamentais para a construção de um programa, chamado também de ciclo de vida do projeto de software. Veja abaixo cada uma das etapas fundamentais de um projeto de software. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/8 Legenda: Dentre as atividades fundamentais mencionadas, a Análise vem sendo estudada ao longo dos anos com diferentes abordagens. Isso porque a intenção dessa etapa é justamente simplificar a complexidade de se representar o software que será construído. Ao longo do tempo, portanto, uma série de metodologias para análise de sistemas foram sendo apresentadas, respeitando inclusive a estrutura das linguagens de programação que estavam sendo utilizadas. Esse tópico vai discutir três metodologias largamente conhecidas: Análise Estruturada, Análise Essencial e Análise Orientada a Objetos. Análise Estruturada A análise estruturada surgiu na década de 1970 com o objetivo de representar as funcionalidades dos grandes sistemas de armazenamento que estavam surgindo naquela época. Sendo assim, essa abordagem está voltada para os aspectos funcionais e de dados do sistema. A análise estruturada tem como artefatos produzidos os diagramas de Entidade-Relacionamento (DER) e de Fluxo de Dados (DFD). Além disso, espera-se a construção de um Dicionário de Dados. Conceitualmente, espera-se a construção do sistema de forma top-down (do todo para as partes). Dessa maneira, consegue-se apresentar os processos existentes no sistema, como exemplificado nas figuras abaixo. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/8 Legenda: EXEMPLO DE DIAGRAMA DE FLUXO DE DADOS (DFD) Legenda: EXEMPLO DE DIAGRAMA DE ENTIDADE-RELACIONAMENTO (DER) Análise Essencial 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/8 A Análise Essencial é uma evolução da Análise Estruturada, que adiciona a questão do Controle como aspecto a ser modelado além das Funções e dos Dados. Esse novo aspecto tem muita relação com os sistemas em tempo real, onde o fator evento se torna necessário visualizar. A análise essencial é formada por dois modelos: Modelo Ambiental: Composto pelo Diagrama de Contexto, por uma lista de eventos e pela descrição dos objetivos do sistema. O seu objetivo é apresentar uma visão externa do sistema. Modelo Comportamental: Composto pelo Diagrama de Fluxo de Dados, o Diagrama Entidade Relacionamento, o Diagrama de Transição de Estados e pelo Dicionário de Dados. Esse modelo apresenta uma visão interna do sistema. Legenda: EXEMPLO DE DIAGRAMA DE CONTEXTO Legenda: EXEMPLO DE DIAGRAMA DE TRANSIçãO DE ESTADOS Análise Orientada a Objetos O mundo real é composto por objetos. A Análise Orientada a Objetos é uma abordagem que muda o enfoque dado pelas análises anteriormente mencionadas. Por tal razão, consideramos essa abordagem uma quebra de paradigma, uma vez que ela inclusive, altera a maneira de se construir software. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/8 Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens YOURDON O método para modelagem utilizado deixa de ser top-down (todo para as partes) e passa a ser bottom-up (partes para o todo). O analista passa pela experiência de “brincar de lego”. Além disso, essa maneira de se modelar facilita a comunicação com o usuário. Também é importante ressaltar que, nas abordagens anteriores, dados e funções / processos estão estruturados de forma separada. Na orientação a objetos existe a união dessas estruturas dentro do conceito de objeto. A representação de um conjunto de objetos com características (dados / atributos) e comportamentos (funções / métodos) semelhantes é chamada de Classe. Legenda: ABORDAGEM ORIENTADA A OBJETOS Recapitulando Neste tópico vimos a importância de se trabalhar com o desenvolvimento de sistemas utilizando como base os conceitos de Engenharia de Software. Vimos ainda que temos a Análise como uma das atividades fundamentais para o desenvolvimento de um software. Estudamos três metodologias para análise de sistemas: Análise Estruturada, Análise Essencial e Análise Orientada a Objetos. ATIVIDADE FINAL Foi estudado nesse tópico a importância de se analisar um projeto de software. Para tanto, foram mostradas três metodologias para análise: estruturada, essencial e orientada a objetos. Que fator justifica melhor 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/8 a necessidade de fazermos a análise de um projeto? A. O fato de precisarmos levantar as necessidades e restrições de um sistema. B. O fato de precisamos simplificar a complexidade do software, construindo desenhos que servirão como auxílio para sua produção. C. O fato de precisarmos construir um software que atenda às especificações mapeadas e desenhos construídos. D. O fato de precisamos garantir que o software faz o que foi especificado. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. COAD, R; YOURDON, E. Object-oriented Design, (2nd Edition), Englewood Cliffs, NJ: Yourdon Press. 1991. DEMARCO, T. Análise Estruturada e Especificação de Sistemas, Rio de Janeiro: Campus, 1989. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. YOURDON, E. Análise Estruturada Moderna, Rio de Janeiro: Campus, 1990. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 7/8 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 8/8 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/7 Conceitos de Orientação a Objetos ESSE TÓPICO DISCUTEOS CONCEITOS BÁSICOS PARA A INTERPRETAÇÃO DO QUE É POSSÍVEL SE REALIZAR COM A ANÁLISE ORIENTADA A OBJETOS. AUTOR(A): PROF. GABRIEL LARA BAPTISTA A análise orientada a objetos baseia-se em alguns princípios que são utilizados para administrar a complexidade e facilitar a modelagem de sistemas. O entendimento desses princípios é essencial para a interpretação e uso de sistemas modelados orientados a objeto. São quatro os princípios da orientação a objetos: abstração, herança, encapsulamento e polimorfismo, sendo que esse tópico traz mais destaque para os três últimos. Porém, antes mesmo de discutir os princípios, se faz necessário definir algumas questões, conforme mostrado abaixo: Objeto: Qualquer coisa visível ou tangível para qual a ação, pensamento ou sentimento é direcionado, ou seja, o mundo real é formado por coisas e para a orientação a objetos estas coisas são denominadas de objetos. Classe: Representação de um conjunto de objetos que possuem os atributos (propriedades) e comportamentos (métodos) semelhantes. Instância: Objeto que foi criado em função de uma determinada classe. Princípio da Herança A palavra herança traz à lembrança de recepção de algo vindo de um ancestral. É exatamente esse o conceito aplicado quando utilizamos herança na orientação a objetos. O que a herança permite dentro da orientação a objetos é que uma classe Filha possa herdar Atributos e/ Comportamentos de uma classe Pai. Existem dois tipos de herança: Simples e Múltipla. Um grande exemplo de herança múltipla somos nós, afinal adquirimos características e comportamentos de nossos pais e mães. Entretanto, por questões de complexidade, a herança mais utilizada nas linguagens de programação e, por consequência, na modelagem de sistemas orientados a objetos, é a Herança Simples, onde um pai pode ter inúmeros filhos, mas os filhos são provenientes de um único objeto Pai. Também é possível observar diferentes maneiras de se descrever uma herança entre duas classes. Vamos tomar como exemplo a classe “A” e “B”, sendo que “A” herda características e/ou comportamentos da classe “B”. Pode-se dizer que: A classe Filha “A” herda da classe Pai “B”, ou A classe Filha “A” é uma classe “B”, ou A classe “A” é uma especialização da classe “B”, ou A classe “B” é uma generalização da classe “A”, ou 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/7 A classe “A” é uma subclasse da classe “B”, ou A classe “B” é a superclasse da classe “A” Todas essas leituras podem ser utilizadas ao longo de um estudo sobre as classes de um sistema. Vale ressaltar que não existe um número limite de heranças, sendo possível criarmos o conceito de netos, bisnetos, etc.. No exemplo da figura abaixo, temos três classes sendo representadas: Pessoa, Professor e Aluno. A classe Pessoa possui os atributos Idade, Nome e RG. Ela é a superclasse das classes Professor e Aluno, que foram especializadas por conta dos atributos e métodos particulares existentes para cada tipo de objeto. Lembrando que a classe professor terá como atributos, além das informações de Disciplinas e Matricula, os atributos da classe pai Idade, Nome e RG. Legenda: EXEMPLO DE HERANçA Princípio do Encapsulamento O objetivo do princípio de Encapsulamento é ocultar dados e/ou operações existentes em uma classe. A ideia de ocultar tais características e/ou comportamentos tem forte relação com segurança do objeto. Dessa maneira, o objeto só terá disponível conteúdos realmente necessários para sua interação. Sendo assim, o encapsulamento auxilia também na independência do objeto. Existem diferentes níveis de encapsulamento, que serão estudados com maiores detalhes no tópico vinculado ao diagrama de classes. Esses diferentes níveis se fazem necessários por conta da arquitetura do sistema em si, que pode estar segmentado em diferentes camadas. A definição do que pode ou não estar visível para outros objetos acessarem vai depender das definições de requisitos do sistema que está sendo modelado. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/7 Princípio do Polimorfismo A orientação a objetos permite que uma subclasse possa alterar o comportamento / forma como a sua superclasse executa determinada operação, mantendo o mesmo nome de operação. Esse princípio é chamado de polimorfismo, visto que essa possiblidade implica em um sistema poder ter múltiplas formas de execução de uma operação que possua a mesma assinatura (declaração do método). O exemplo abaixo mostra a capacidade do polimorfismo. A superclasse FiguraGeometrica é apenas uma simplificação do objeto real, indicando que toda figura geométrica tem uma quantidade de lados e que toda figura geométrica tem a operação Desenha. Entretanto, entende-se que a operação Desenha irá modificar o seu comportamento de acordo com o tipo de figura geométrica que estiver sendo desenhada. Legenda: EXEMPLO DE POLIMORFISMO Recapitulando Neste tópico vimos os princípios de Herança, Encapsulamento e Polimorfismo, utilizados pela Orientação a Objetos para administrar a complexidade e facilitar a modelagem de sistemas. ATIVIDADE FINAL 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/7 Leia as afirmações abaixo: I. A proteção de atributos e métodos em uma classe não está vinculada à aplicação da técnica Encapsulamento. II. O conceito de Herança faz com que características e comportamentos existentes na classe Pai também existam na classe Filha. III. O Polimorfismo é um conceito utilizado quando não temos a necessidade de modificar as formas das classes. Selecione os itens que estão corretos: A. I e III B. III C. II D. I, II e III REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/7 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/7 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 7/7 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Abstração: Conceitos e Exemplos ESSE TÓPICO DISCUTE O PRINCÍPIO DA ABSTRAÇÃO NA ORIENTAÇÃO A OBJETOS. AUTOR(A): PROF. GABRIEL LARA BAPTISTA DICTIONARY OF COMPUTING, 1986 Princípio de ignorar os aspectos de um assunto não relevantes para o propósito em questão, tornando possível uma concentração maior nos assuntos principais. O mundo real é feito por objetos e a Orientação a Objetos é uma metodologia de análise e desenvolvimento de sistemas que se utiliza desse conceito para facilitar a programação dos softwares. Entretanto, os objetos do mundo real tendem a ser muito mais complexos do que se faz necessário dentro do software. Por tal razão, utilizar-se da abstração para simplificar a modelagem do sistema é essencial. COMO SIMPLIFICAR A VISãO DO MUNDO REAL EM MEU SISTEMA COMPUTACIONAL? Tomemos como base o objeto Pessoa. Imagine quantos atributos (características) e métodos (ações) uma pessoa pode ter. Será que realmente se faz necessário detalhar todos esses atributos e métodos na construção de um sistema? Obviamente não. E mais, será que um sistema de contas a pagar possuirá o mesmo conjunto de atributos de um sistema para a área de saúde? Certamente, essa não é a melhor proposta. A abstração, portanto, ajudará o analista a pensar no que é realmente relevante para o sistema. Dessa forma, as pessoas envolvidas no sistema estarão dedicadas a exclusivamenteo que se espera naquele software. Objeto disponível na plataforma Informação: 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Legenda: A ABSTRAçãO é A RESPOSTA PARA A SIMPLIFICAçãO DA COMPLEXIDADE DE UM SISTEMA Classe e Métodos Abstratos No contexto de orientação a objetos, existe ainda a ideia de uma classe ou método abstrato, conforme é mostrado na figura abaixo. Fica o destaque para o fato de o nome da classe e do método serem apresentados em itálico nesses casos. Uma classe abstrata não pode ser instanciada, o que significa que ela é apenas um modelo de informações que as classes filhas terão. Da mesma maneira, o método abstrato não possui sua implementação (código) realizado, apenas a descrição da assinatura. Métodos abstratos obrigatoriamente deverão ser implementados nas subclasses, de forma que seja descrito o comportamento esperado daquele método na classe que será instanciada como um objeto no programa em execução. Legenda: EXEMPLO DE CLASSE ABSTRATA, COM MéTODO ABSTRATO Recapitulando 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 Neste tópico vimos o princípio da abstração e como ele é importante para que o sistema seja modelado respeitando a necessidade da solução. ATIVIDADE FINAL Em qual das situações abaixo a abstração é a ferramenta / técnica utilizada para resolver o problema? A. Levantar as funcionalidades do sistema. B. Levantar os riscos do sistema. C. Levantar o custo do sistema. D. Levantar as propriedades e ações do sistema. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Classe e Objetos: Conceitos e Exemplos ESSE TÓPICO DISCUTE COMO REPRESENTAR OS OBJETOS NA MODELAGEM DE UM SISTEMA AUTOR(A): PROF. GABRIEL LARA BAPTISTA Na orientação a objetos, a representação de um conjunto de objetos com características e comportamentos semelhantes é chamada de Classe. Sendo assim, a classe nada mais é que uma descrição do que o objeto possui e como o objeto atua. Os objetos são caracterizados por possuírem Identidade, Estado e Comportamento. A comunicação entre os objetos é feita através de mensagens que acionam os comportamentos definidos. Na etapa de Análise de um sistema, a grande preocupação existente se dá pela descoberta de suas classes. A relação entre as classes vai permitir a construção de um diagrama estrutural do sistema, chamado de Diagrama de Classes. Esse diagrama será discutido com maiores detalhes em outro tópico. A representação de uma classe pode ser feita conforme mostrado abaixo. REPRESENTAçãO DE UMA CLASSE UTILIZANDO DIAGRAMAçãO É importante enfatizar que a classe gerada pelo diagrama é facilmente transformada em código, como mostrado abaixo. Objeto disponível na plataforma Informação: Representação de uma classe utilizando diagramação N/A 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Legenda: CóDIGO DA CLASSE PRODUTO Daí a importância da Análise Orientada a Objetos! Ela simplifica a visão de como o sistema computacional será estruturado, para posteriormente ele ser codificado conforme a análise e organização definida pelo analista de sistemas. Essa representação, quando o programa em execução, vai ser utilizada no momento em que se desejar instanciar um objeto da classe Produto. Para cada objeto desejado, uma instância será criada, permitindo que existam diferentes informações nos objetos Produto instanciados, como mostrado na figura abaixo. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 Legenda: OBJETOS INSTANCIADOS - CLASSE PRODUTO Recapitulando Neste tópico vimos como uma classe representa um conjunto de objetos com características e comportamentos semelhantes. ATIVIDADE FINAL Selecione a opção que melhor define o que é uma classe: A. Representação de um conjunto de objetos com propriedades e métodos semelhantes. B. Conjunto de objetos com propriedades e métodos semelhantes. C. Abstração de objetos com exclusivamente propriedades semelhantes. D. Código escrito em linguagem orientada a objetos, com métodos semelhantes e valores de propriedades idênticos. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/7 Associação: Conceitos e Exemplos ESSE TÓPICO DISCUTE COMO É POSSÍVEL ASSOCIAR CLASSES UTILIZANDO A ORIENTAÇÃO A OBJETOS AUTOR(A): PROF. GABRIEL LARA BAPTISTA Um sistema orientado a objeto é formado pela associação de diversas classes. Dessa maneira, representar essas associações se faz necessário para termos uma visão completa da estrutura do sistema. Existem diferentes tipos de associações entre classes. Cada uma delas tem um propósito específica e deve ser utilizada de acordo com o cenário que está sendo modelado. O objetivo desse tópico é apresentar esses tipos de associações. Não será aprofundado, entretanto, o detalhamento desses relacionamentos pois, será discutido no momento em que estiver sendo apresentada a criação do diagrama de classes. Associação Unária Também conhecida como auto relacionamento, esse tipo de associação faz sentido quando um objeto precisa possuir como propriedade um ou mais objetos de mesma característica (classe). O exemplo abaixo mostra o conceito de um gerente, responsável por um ou mais funcionários. A sua ligação é feita através de uma seta que liga a classe a ela mesma. Legenda: EXEMPLO DE ASSOCIAçãO UNáRIA Associação Binária 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/7 Esse é o relacionamento simples existente entre duas classes. O exemplo apresentado indica a relação existente entre os departamentos de uma organização e os seus funcionários. A sua ligação é feita através de uma seta que liga as classes associadas. Legenda: EXEMPLO DE ASSOCIAçãO BINáRIA Generalização É na generalização que é aplicado o conceito de herança. Vale lembrar que, apesar de ser possível a representação de heranças múltiplas, é muito incomum utilizar-se desse tipo de representação, por conta das limitações de algumas linguagens de programação.Essa associação descreve uma relação “É UM”, inclusive podemos utilizar essa terminologia para realizar a leitura desse relacionamento. A sua ligação é feita através de uma seta não preenchida que liga a subclasse à superclasse, sempre com a seta apontada para a superclasse. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/7 Legenda: EXEMPLO DE GENERALIZAçãO Dependência Este relacionamento irá indicar o grau de dependência entre classes. Esses relacionamentos podem expressar também ordem de precedência, onde um elemento deve preceder a outro. A sua ligaçãoé feita através de uma seta tracejada apontada para a classe que se depende no relacionamento. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/7 Legenda: EXEMPLO DE DEPENDêNCIA Agregação A análise orientada a objetos tem como conceito a construção de sistemas a partir da técnica bottom-up, ou seja, das partes para o todo. Isso se assemelha muito a “brincar de Lego”, pois a medida que os elementos vão se relacionando, uma visão mais completa vai tomando forma. A ideia da agregação é mostrar justamente esse relacionamento, gerando na classe que está agregando a outra classe uma visão única. É possível agregar inúmeras classes a uma única classe e uma classe agregadora pode ainda ser agregada a outra classe. O grande detalhe do relacionamento de agregação é que, apesar da classe agregadora ter uma visão única do todo, não será ela que controlará as partes, ou seja, as classes que estão sendo agregadas. Esse controle diz respeito à instanciação ou destruição das classes, por exemplo. O exemplo abaixo mostra a evolução da representação do relacionamento entre departamento e funcionário. A representação da agregação é feita por uma linha que possui um losango sem preenchimento na classe responsável pela agregação. Legenda: EXEMPLO DE AGREGAçãO Composição 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/7 A composição é uma especialização da agregação, que indica que a classe que está compondo a entidade que se deseja representar será responsável pelo controle da classe que está sendo composta. A representação da composição é feita por uma linha que possui um losango com preenchimento na classe responsável pela composição. Legenda: EXEMPLO DE COMPOSIçãO Recapitulando Neste tópico vimos os diferentes tipos de associação em um diagrama de classes, a saber: unária, binária, generalização, dependência, agregação e composição. ATIVIDADE FINAL É correto dizer que as associações entre as classes representam: A. As ligações entre as propriedades e métodos de uma classe. B. O polimorfismo existente entre os métodos Filhos e as assinaturas do Pai. C. O modo como as classes do sistema se relacionam e o sistema se estrutura. D. A herança de objetos com comportamentos diferentes. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/7 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 7/7 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Atributos: Conceitos e Exemplos ESSE TÓPICO DISCUTE O CONCEITO DE ATRIBUTOS NA ORIENTAÇÃO A OBJETOS AUTOR(A): PROF. GABRIEL LARA BAPTISTA Quando modelamos um sistema, definir as informações de cada classe que está sendo modelada é uma atividade a ser realizada. A abstração ajudará o analista a realizar tal tarefa, transformando os objetos do mundo real em classes que o representam. Os atributos nada mais são que as variáveis que cada objeto possui. Assim como uma variável, os atributos são definidos pelo tipo de informação que armazenam. A figura abaixo mostra uma classe com os seus atributos já definidos. Legenda: CLASSE FUNCIONARIO COM ATRIBUTOS DEFINIDOS Em uma classe é possível definir atributos com tipos de dados primitivos, como inteiro ou ponto flutuante, e dados compostos, como o Texto em String. Também é possível definir que um atributo representa a associação de duas classes. As seguintes associações geraram atributos em uma classe: Associação Unária Associação Binária Agregação Composição 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Legenda: ATRIBUTO DEPTO QUE REPRESENTA O OBJETO DA CLASSE DEPARTAMENTO Além do tipo de informação, é necessário também definir a visibilidade de um atributo. A visibilidade de um atributo tem relação com o conceito de Encapsulamento, estudado anteriormente. Existem diferentes visibilidades disponíveis para um atributo, conforme mostrado abaixo: Privado (simbologia ?-?): Um atributo privado pode ser visualizado unicaexclusivamente pela classe em que ele foi definido. Protegido (simbologia ?#?): Um atributo protegido pode ser visualizado tanto pela classe que o definiu como pelas classes filhas dessa classe (conceito de herança). Pacote (simbologia ?~?): Um atributo pacote pode ser visualizado por qualquer classe existente dentro do pacote de classes definido (subsistema). Público (simbologia ?+?): Um atributo público pode ser visualizado por qualquer classe existente no sistema modelado. Os atributos representam características de uma classe e, por tal razão, são normalmente definidos por substantivos. Dependendo da linguagem de programação, existem boas práticas a serem seguidas no que diz respeito à visibilidade dos atributos. Em Java, por exemplo, sugere-se que os atributos devem ser sempre definidos como privados, deixando a responsabilidade de acessá-los através de Operações, conceito que será discutido em um próximo tópico. Recapitulando Neste tópico vimos como definimos informações em uma classe, bem como a maneira que possuímos para indicar a visibilidade de cada uma das informações definidas. ATIVIDADE FINAL Os atributos de uma classe presentam: A. O comportamento que um objeto pode executar. B. A descrição detalhada do funcionamento de um objeto. C. As características que um objeto pode ter. D. As ações que um objeto provém para sua execução. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Operações: Conceitos e Exemplos ESSE TÓPICO DISCUTE O CONCEITO DE OPERAÇÕES NA ORIENTAÇÃO A OBJETOS AUTOR(A): PROF. GABRIEL LARA BAPTISTA Assim como devemos definir os atributos de uma classe, definir as ações disponíveis para os objetos do sistema também faz parte da modelagem. As ações de uma classe são chamadas de operações. Na prática, as operações são as funções existentes dentro de uma classe. Essas funções podem receber parâmetros e retornar valores. Vale ressaltar que as operações também são chamadas de métodos. Do mesmo modo definimos a visibilidade de atributos, as operações também devem ter sua visibilidade definida. Existem diferentes visibilidades disponíveis para uma operação, conforme mostrado abaixo: Privada (simbologia “-“): Uma operação privada pode ser utilizada por outras operações única e exclusivamente existentes na classe em que ela foi definida. Protegida (simbologia “#”): Uma operação protegida pode ser utilizada tanto pelas operações da classe que a definiu como pelas operações das classes filhas dessa classe (conceito de herança). Pacote (simbologia “~”): Uma operação do pacote pode ser utilizada por qualquer operação de uma classe existente dentro do pacote de classes definido (subsistema). Pública (simbologia “+”): Uma operação pública pode serutilizada por qualquer operação de uma classe existente no sistema modelado. As operações representam ações de uma classe e, por tal razão, são definidas por verbos. Existem algumas vertentes que sugerem a definição das operações no Infinitivo e outras que sugerem a definição das operações na Terceira Pessoa do Singular do Subjuntivo. O exemplo abaixo mostra três operações existentes na classe Funcionario: o seu registro, a consulta de um funcionário, e a ação de alteração de seu salário. Legenda: OPERAçõES DA CLASSE FUNCIONáRIO 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Recapitulando Neste tópico vimos como definimos as funções em uma classe, chamadas de operações, bem como a maneira que possuímos para indicar a sua visibilidade. ATIVIDADE FINAL Selecione o nome apropriado para uma operação que tem a função de calcular a idade de uma pessoa. A. Idade() B. QualEAIdade() C. ValidaIdade() D. CalculaIdade() REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Diagrama de Casos de Uso: Conceitos, notação e aplicação APRESENTAR O DIAGRAMA DE CASOS DE USO, UTILIZADO PARA REPRESENTAR O COMPORTAMENTO DE UM SISTEMA NA UML. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de casos de uso é uma abordagem apresentada na UML – Unified Modeling Language, ou Linguagem de Modelagem Unificada para representar o comportamento de um sistema que está sendo modelado. Por tal razão, é muito comum utilizá-lo como ferramenta para substituir a especificação de requisitos funcionais. É importante salientar essa questão, uma vez que o diagrama de casos de uso não tem condições de representar requisitos não funcionais de um software. Além do diagrama de casos de uso, a definição das funcionalidades do sistema depende também da especificação de cada caso de uso contido no diagrama. O diagrama em si é muito simples de se interpretar e possui os seguintes elementos. ELEMENTOS DE UM DIAGRAMA DE CASOS DE USO Com base nestes elementos, é possível gerar diagramas como o mostrado abaixo. É importante salientar que o nome dos casos de uso sempre deve remeter a uma ação, portanto recomenda-se a utilização de verbos no infinitivo para iniciar a descrição dos casos de uso. Não se esqueça de também numerá-los. No exemplo em questão, UC significa use case, do inglês, caso de uso. Objeto disponível na plataforma Informação: Elementos de um diagrama de casos de uso N/A 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Legenda: EXEMPLO DE UM DIAGRAMA DE CASOS DE USO Notem que essa representação manual tende a esclarecer uma série de dúvidas do cliente em um processo de validação. Entretanto, sua visão é pouco detalhada e para o desenvolvimento do sistema, uma perspectiva com mais detalhes se faz necessário. É por tal razão que o diagrama de casos de uso deve vir acompanhado da especificação de casos de uso. A especificação de casos de uso é um documento técnico que visa detalhar o que de fato ocorrerá em cada caso de uso do sistema que o Analista de Requisitos está resolvendo. É importante lembrar que o foco do diagrama de casos de uso são os requisitos funcionais, portanto a especificação de casos de uso irá detalhar as funcionalidades do sistema. No infográfico a seguir você verificará os itens normalmente apresentados nesse documento. Uma vez que você tem todos os casos de uso desenhados e especificados, você terá a especificação de requisitos funcionais pronta. Recapitulando Neste tópico vimos que o modelo de casos de uso tem por missão descrever o comportamento de um sistema. Foi visto ainda que esse modelo pertence à UML e que ele é uma ferramenta útil para definição de requisitos funcionais. Além disso, foi visto que o modelo é composto por um diagrama e um conjunto de especificações, que apresenta de forma detalhada cada caso de uso do sistema. ATIVIDADE FINAL Observe as afirmações sobre o diagrama de casos de uso e selecione as que estão corretas. I. Representa o comportamento do sistema. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 II. Define a estrutura do sistema. III. Apresenta usuários e outros sistemas que interagem com o sistema modelado. IV. Apresenta a relação entre as classes do sistema. A. I e III B. I e II C. III e IV D. Apenas afirmação III REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/6 Diagrama de Classes: Conceitos, notação e aplicação ESTE TÓPICO VISA APRESENTAR O DIAGRAMA DE CLASSES, SUAS NOTAÇÕES E APLICAÇÃO. AUTOR(A): PROF. GABRIEL LARA BAPTISTA A UML é a linguagem unificada para modelagem de sistemas, concebida para especificar, visualizar e documentar softwares, incluindo sua estrutura, comportamento e interação. Sendo assim, um dos aspectos importantes abordado por ela é a definição da estrutura do sistema. O diagrama de classes é a solução mais utilizada para representar essa organização estrutural. Definitivamente, é ele o diagrama mais conhecido e aplicado da UML. Um dos motivos que o faz ser tão utilizado se deve à sua capacidade de representar os relacionamentos existentes dentro do sistema. É importante ressaltar que esse diagrama trará uma visão estática do sistema. Uso de interfaces O diagrama de classes pode também representar as interfaces do sistema. A UML define interface como uma coleção de operações que são utilizadas para especificar o serviço que uma classe irá se propor a realizar. As interfaces podem ser entendidas como abstrações de contratos que serão respeitados pelas classes concretas que a implementarão. Elas irão auxiliar na modelagem de um sistema com baixo acoplamento. Importante ressaltar nesse ponto que um modelo com baixo acoplamento, se desenhado corretamente, facilita a manutenção futura do sistema e aumenta também a sua possibilidade de escalonamento. Dentro do diagrama de classes é possível definir tanto as interfaces que serão providas por uma classe como aquelas que serão requeridas. A UML trata essa questão com o que chamamos de estereótipos de componentes visuais, ou seja, podemos utilizar o mesmo componente visual utilizado para representar uma classe na representação de uma interface, apenas sinalizando que essa classe na verdade não é uma classe, mas sim um estereótipo da classe, representando uma interface. A figura abaixo mostra a implementação de uma interface provida chamada IExemplo. Notem que é possível fazer a representação através do estereótipo ou através do componente visual específico que define uma interface. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php2/6 Legenda: EXEMPLO DE USO DE UMA INTERFACE PROVIDA Já a segunda imagem mostra o uso de uma interface requerida pela classe Teste, também mostrando o componente visual utilizado para indicar interfaces requeridas. É possível notar com os dois exemplos que as interfaces são definidas com o prefixo “I” em sua nomenclatura, justamente para facilitar a sua identificação. Legenda: EXEMPLO DE USO DE UMA INTERFACE REQUERIDA Um exemplo prático A ideia desse exemplo é apresentarmos as etapas de construção do diagrama de classes, utilizando como referência os requisitos que foram delimitados para o sistema através do diagrama de Casos de Uso a seguir. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/6 Legenda: DIAGRAMA DE CASOS DE USO DO SISTEMA DE GERENCIAMENTO DE RECLAMAçõES Notem que estamos falando de um sistema de lançamento de reclamações. Obviamente nem todas as funcionalidades do sistema estão levantadas no exemplo, por justamente estarmos tratando de uma parte específica do modelo. É importante ressaltar que a concepção do diagrama de classes é originada muitas vezes a partir do diagrama de Casos de Uso, que descreve o comportamento do sistema. Existe inclusive algumas dicas para conceber o diagrama de classes, a partir da especificação funcional do sistema, como mostrado na animação a seguir. Recapitulando Neste tópico vimos como construir um Diagrama de Classes, diagrama esse muito utilizado e com aplicação dedicada a determinar qual é a estrutura do sistema. ATIVIDADE FINAL Considerando que o diagrama de classes permite demonstrar as classes do sistema e os seus relacionamentos, é correto afirmar que seu propósito é: A. apresentar a estrutura do sistema. B. apresentar o comportamento do sistema. C. apresentar a interação do sistema. D. apresentar a execução do sistema. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/6 REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/6 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/6 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Diagrama de Objeto: Conceitos, notação e aplicação ESTE TÓPICO IRÁ APRESENTAR O DIAGRAMA DE OBJETO, SUAS NOTAÇÕES E APLICAÇÃO. AUTOR(A): PROF. GABRIEL LARA BAPTISTA Como visto anteriormente, o diagrama de classes traz uma visão estática do sistema. As classes representadas nesse diagrama são, na verdade, a sintetização de um conjunto de objetos que serão utilizados pela aplicação. Partindo desse princípio, pode-se dizer que o diagrama de objetos tem a função de representar um momento da aplicação, exemplificando assim o funcionamento das classes. Esse não é um diagrama muito utilizado na prática, uma vez que as aplicações orientadas a objeto tendem a ter inúmeros objetos instanciados ao longo do seu ciclo de vida, variando em número e classes de objeto, utilizados de acordo com o momento da aplicação. Entretanto, em termos didáticos, esse diagrama pode ser útil para explicar um momento específico do software. Para modelar um diagrama de objeto, se deve: Identificar o momento que deseja modelar. Também chamado de mecanismo a ser modelado, a ideia é representar uma função ou comportamento de parte do sistema, descrevendo então a interação de um conjunto de classes. Criar a colaboração e o relacionamento desse conjunto de objetos naquele momento. Imaginar o cenário de forma congelada, a fim de que se possa colocar os valores e estados de cada atributo, de cada objeto. A ideia é que se tenha no final dessa representação uma fotografia do sistema em um determinado momento. A figura abaixo mostra os objetos de um sistema de reclamação no momento em que um técnico assume que irá analisar a reclamação de seu cliente no equipamento que ele é mais especialista. Legenda: DIAGRAMA DE OBJETO: SISTEMA DE RECLAMAçãO 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Recapitulando Neste tópico vimos como podemos utilizar o diagrama de objeto para representar um determinado momento da aplicação que está sendo modelada, através dos objetos instanciados pelas classes desenhadas. ATIVIDADE FINAL Pode-se dizer que o diagrama de objetos é útil para: A. representar o comportamento do sistema. B. representar a interação existente entre os objetos do sistema. C. representar a troca de mensagens existente entre as classes do sistema. D. representar a situação dos objetos do sistema em um determinado momento de seu ciclo de vida. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/6 Diagrama de Seqüência: Conceitos, notação e aplicação ESSE TÓPICO DISCUTE OS CONCEITOS, NOTAÇÃO E APLICAÇÃO DO DIAGRAMA DE SEQUÊNCIA. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de sequência é uma das ferramentas mais conhecidas para se representar a interação de um sistema orientado a objetos. Ele é um diagrama que enfatiza a ordem de chamada das operações em uma determinada situação do sistema em função do tempo. Essa característica faz com que o diagrama de sequência tenha o conceito de linha do tempo e de execução de operações associado a ele. A figura a seguir mostra os elementos existentes em um diagrama de sequência. Legenda: ELEMENTOS BáSICOS DE UM DIAGRAMA DE SEQUêNCIA Assim como o diagrama de classes, também existem estereótipos para representar diferentes tipos de classe na linha do tempo. Abaixo cada um dos estereótipos existentes: Ator: representa um usuário ou outro sistema interagindo com o sistema. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/6 Interface: Classe que fará a troca de mensagens com o ator. Caso esse ator seja uma pessoa, esse será a classe que representará a interface gráfica daquela sequência que está sendo desenhada. Controle: Essa é a classe que possuirá a lógica de negócio do sistema para a sequência modelada. Entidade: Essa classe é conhecida por armazenar o conteúdo das entidades que estão sendo tratadas por aquele sistema. O diagrama de sequência pode ainda definir lógicas de execução através de operadores lógicos, como mostrado abaixo. Existem outros operadores definidos, mas os listados são os mais comuns. Condição opcional (opt): Só irá acontecer o bloco lógico se a condição pré-definida for válida. Condição alternativa (alt): A ideia é representar um conjunto de alternativas que podem ser executadas, de acordo com pré-condições de entrada para cada uma das alternativas. Execução em paralelo (par): Permite representar ações acontecendo de forma concorrente. Execução em loop (loop): Indica que haverá um loop de execução respeitado por uma lógica de atendimento do loop. Legenda: ESTEREóTIPOS DE UM DIAGRAMA DE SEQUêNCIA E EXEMPLODE OPERADOR LóGICO 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/6 Exemplo de um diagrama de sequência O exemplo abaixo mostra o diagrama de sequência para o Sistema de Reclamações, considerando que o técnico está consultando a lista de reclamações para selecionar uma reclamação para começar a atuar. Legenda: DIAGRAMA DE SEQUêNCIA EXEMPLO: CONSULTA DE RECLAMAçõES Recapitulando Neste tópico vimos como o diagrama de sequência pode ser utilizado para representar a interação do sistema. ATIVIDADE FINAL É sabido que o diagrama de sequência representa a interação do sistema. Quais são os elementos que podem ser descritos nesse diagrama? A. Ator, atributos, casos de uso e operações. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/6 B. Ator, classes de interface, classes de negócio e classes de acesso a dados. C. Classes de interface, classes de negócio e casos de uso. D. Ator, classes de interface, casos de uso, atributos, operações e classes de acesso a dados. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/6 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/6 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/5 Diagrama de Estrutura Composta: Conceitos, notação e aplicação ESSE TÓPICO DISCUTE OS CONCEITOS, NOTAÇÃO E APLICAÇÃO DO DIAGRAMA DE ESTRUTURA COMPOSTA. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de estrutura composta apresenta a estrutura interna de uma classe ou colaboração. A diferença entre esse diagrama e o diagrama de componentes é muito pequena, e por conta disso, muitos analistas quando realizam a modelagem acabam não se utilizando desse diagrama. O diagrama é formado pelos elementos abaixo: Classe estruturada: Representa justamente a classe que se deseja apresentar a estrutura interna. Parte: Indica um elemento necessário para a classe estruturada que está sendo modelada. Porta: Ponto de conexão entre a classe que está sendo detalhada e o mundo externo. Interface requerida: Indica uma interface necessária para compor a classe que está sendo modelada. Interface provida: Indica uma interface que está sendo fornecida para a classe que está sendo detalhada. Essa interface deverá ser implementada por alguma outra classe que está sendo representada no diagrama. A figura abaixo exemplifica a estrutura da classe Interruptor, composta pelas partes de uma chave liga / desliga e de um led para sinalização. Por tal razão, essa classe requer as interfaces IChaveLigaDesliga e ILed. Essas interfaces estão sendo providas pelas classes ChaveOnOff e Led. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/5 Legenda: EXEMPLO DE DIAGRAMA DE ESTRUTURA COMPOSTA Recapitulando Neste tópico vimos como o diagrama de estrutura pode ser utilizado para representar a estrutura interna de uma classe. ATIVIDADE FINAL Em que situações faz sentido a criação de um diagrama de estrutura composta? A. Representar o comportamento de um sistema. B. Representar a troca de informações entre as classes de um sistema. C. Representar a estrutura interna de uma classe ou colaboração. D. Representar a navegação de um sistema. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/5 30/09/2019 AVA UNINOVE https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/5 30/09/2019 about:blank about:blank 1/1 Diagrama de Comunicação: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de comunicação. AUTOR(A): PROF. GABRIEL LARA BAPTISTA Utilizado para representar o comportamento do sistema, o diagrama de comunicação é muito útil para apresentar a coleção de objetos que trabalham juntos para uma determinada ação do sistema. Esse diagrama também é chamado e conhecido como diagrama de colaboração, justamente por mostrar essa relação entre os objetos. Dessa maneira, o diagrama de comunicação traz uma visão dinâmica do que está acontecendo no sistema. Como pode ser visto, o diagrama de comunicação se utiliza dos elementos e estereótipos já vistos no diagrama de sequência para representar a troca de mensagens em um determinado cenário do sistema. Entretanto, apesar de semelhante a um diagrama de sequência, o diagrama de comunicação tem algumas características que o diferem, sendo elas: O diagrama de comunicação não apresenta a linha de tempo de execução de uma ação. Apesar disso, o conceito de se criar e destruir um objeto também pode ser representado pelo diagrama. O diagrama de comunicação possui uma numeração de execução. Além disso, é possível representar em cada link (linha entre os elementos conectados), mais de uma mensagem sendo chamada. Ou seja, o diagrama de comunicação mostra todo o caminho de chamadas entre os objetos. Recapitulando Neste tópico vimos como o diagrama de comunicação pode ser utilizado para representar o comportamento de uma determinada ação do sistema. ATIVIDADE FINAL É sabido que o diagrama de interação representa o comportamento do sistema. Quais são os elementos que podem ser descritos nesse diagrama? A. Ator, atributos, casos de uso e operações. B. Ator, objetos de interface, objetos de negócio e objetos de acesso a dados. C. Objetos de interface, objetos de negócio e casos de uso. D. Ator, objetos de interface, casos de uso, atributos, operações e objetos de acesso a dados. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/2 Diagrama de Máquina de Estados: Conceitos e notação Esse tópico discute os conceitos, notação e aplicação do diagrama de máquina de estados. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de máquina de estados demonstra a troca de estados possíveis de uma classe em específico do sistema, através da representação dos eventos responsáveis pela transição entre os estados existentes. É importante lembrar que o termo estado significa o período de tempo em que o objeto atenda a uma condição, realize alguma atividade ou espere algum evento. Portanto, esse é um diagrama muito útil para objetos do sistema que possuam muitos estados, pois dessa maneira se torna simples representar quando cada um dos estados do objeto será acionado. Além disso é possível representar estados internos existentes dentro de um estado específico, de tal forma a deixar muito claro todas as transições de situação existentes para o objeto que se está modelando, como mostrado na figura que apresenta os elementos do diagrama. Ocultar Legenda: ELEMENTOS DO DIAGRAMA DE MáQUINA DE ESTADO A figura abaixo mostra o diagrama de máquina de estados sendo utilizado para representar os estados possíveis de uma reclamação.Ocultar 30/09/2019 about:blank about:blank 2/2 Legenda: EXEMPLO DE DIAGRAMA DE MáQUINA DE ESTADOS O diagrama possui os objetos de início e fim de fluxo, bem como a representação por meio de caixas dos estados possíveis do objeto em questão e setas que representam o evento que faz a transição entre os estados. Recapitulando Neste tópico vimos como o diagrama de máquina de estados pode ser utilizado para representar o comportamento do sistema, no que diz respeito aos estados possíveis de uma classe em específico do sistema. ATIVIDADE FINAL Marque a afirmação correta sobre o diagrama de máquina de estado. A. Representa o comportamento do sistema, indicando a troca de informações entre os elementos de uma determinada situação de uso. B. Representa o comportamento do sistema, apresentando a transição entre os estados possíveis de uma determinada classe através dos eventos ocorridos para tal troca. C. Representa o comportamento do sistema, indicando o conjunto de ações disponíveis no sistema que está sendo modelado. D. Representa o comportamento do sistema, mostrando o relacionamento entre as classes do sistema que está sendo modelado. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/3 Diagrama de Atividades: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de atividades. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de atividades é mais um diagrama utilizado para representar o comportamento do sistema. Ele, em especial, é responsável por mostrar a lógica de execução, em passo-a-passo, de uma ação do sistema. Sendo assim, esse diagrama tem a capacidade de determinar fluxos. Por tal razão, o diagrama de atividades pode ser utilizado em diferentes níveis de representação: Atividades em um processamento Trabalho entre as unidades organizacionais em um modelo de negócio. Cenários de um caso de uso Seus elementos podem ser vistos na figura abaixo. Ocultar Legenda: ELEMENTOS DE UM DIAGRAMA DE ATIVIDADE Cada uma das áreas organizacionais representa um papel dentro da execução do processo. As atividades ocorrem sob a responsabilidade de algum desses papéis e existe ainda a possibilidade de se implementar lógicas de SE ou processamento paralelo através dos elementos existentes. Exemplo de um diagrama de atividades 30/09/2019 about:blank about:blank 2/3 O exemplo abaixo mostra o diagrama de atividades para o Sistema de Reclamações, considerando que o técnico está elaborando a resposta da reclamação. Ocultar Legenda: DIAGRAMA DE ATIVIDADES EXEMPLO: RESPOSTA DA RECLAMAçãO Recapitulando Neste tópico vimos como o diagrama de atividades pode ser utilizado para representar o comportamento do sistema. 30/09/2019 about:blank about:blank 3/3 ATIVIDADE FINAL Qual dos usos abaixo não é plausível para o diagrama de atividades? A. Representar a troca de mensagens entre as classes de um sistema. B. Representar o processamento do sistema. C. Representar a lógica de um modelo de negócio. D. Representar os cenários de um caso de uso. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/3 Diagrama de Interação Geral: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de visão geral da interação. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de visão geral da interação é um formulário de diagrama de atividades onde os nós são fragmentos que podem ser atrelados a um diagrama de sequência, mas também pode ser representado por um diagrama de comunicação, frequência, ou outro diagrama de visão geral da interação. A figura abaixo representa um exemplo de diagrama de interação geral. Vale ressaltar que esse é um diagrama pouco conhecido e raramente utilizado na prática. Ocultar 30/09/2019 about:blank about:blank 2/3 Vejam que no exemplo acima existe o detalhamento de uma lógica de execução utilizando um diagrama de sequência para mostrar o que acontece quando o Submissor que está realizando o login já possui acesso ao sistema. Os objetos que compõe esse diagrama são aqueles utilizados para elaborar os diagramas utilizados dentro de cada fragmento. Recapitulando Neste tópico vimos como o diagrama de visão geral da interação pode ser utilizado para representar a interação do sistema. ATIVIDADE FINAL Quais diagramas podem ser utilizados dentro de um diagrama de interação geral? A. Sequência, comunicação, frequência ou visão geral da interação. B. Classes, comunicação, frequência ou visão geral da interação. C. Casos de uso, classes, frequência ou visão geral da interação. D. Máquina de estados, comunicação, frequência ou sequência. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. 30/09/2019 about:blank about:blank 3/3 SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/3 Diagrama de Componentes: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de componentes. AUTOR(A): PROF. GABRIEL LARA BAPTISTA A criação de componentes em um sistema pode ser considerada uma excelente prática, visto que o uso de componentes favorece a reutilização dentro do sistema. É sabido que o processo de projeto, na maioria das engenharias, baseia-se no reuso de sistemas existentes ou componentes. Tem-se como definição de componente a parte lógica e substituível de um sistema, que possa atender e prover a realização de um conjunto de interfaces. Existe uma série de vantagens em se trabalhar com reuso - confiança aumentada; risco insucesso reduzido; uso eficiente de especialistas; conformidade com padrões; e desenvolvimento acelerado são algumas delas. Entretanto, o reuso também pode ser difícil por conta da falta de apoio de ferramenta, que dificulta a criação e manutenção de uma biblioteca de componentes, além de questões com os desenvolvedores, por argumentarem que tal componente não foi gerado pela equipe. Por tal razão, reutilizar software depende de um processo específico e consciente de que os componentes que estão sendo produzidos para reutilização serão realmente aproveitados em outros sistemas. Isso porque o custo inicial é mais alto quando se desenvolve voltado à reuso, mas será recompensado na medida que aquele componente é reaproveitado em outros sistemas. Existem diferentes abordagens que apoiam o reuso e todas elas se resumem à componentização. Bibliotecas Frameworks Softwares de prateleira Desenvolvimento orientado a objetos Desenvolvimento orientado a serviços Desenvolvimento orientado a aspectos Design Patterns Sendo assim, o diagrama de componentes é utilizado para modelar os componentes existentes no sistema, bem como o relacionamento entre eles através de interfaces. É importante mencionar que as interfaces são coleções de operações que especificam um serviço que é provido ou é requerido por uma classe ou componente. A figura abaixo apresenta os elementos de um diagrama de componentes. Existem duas representações possíveis, conforme visto abaixo. Ocultar Legenda: ELEMENTOS DO DIAGRAMADE COMPONENTES Em seguida, pode ser visto um exemplo de representação de um diagrama de componentes para um sistema que permite a utilização tanto de uma conexão Oracle como MS SQL Server. Alguns sistemas de gerenciamento de conteúdo fazem uso dessa modelagem para permitir diferentes tipos de bancos de dados para o seu sistema. 30/09/2019 about:blank about:blank 2/3 Ocultar Legenda: EXEMPLO DE USO DE UM DIAGRAMA DE COMPONENTES - CONEXãO COM BANCO DE DADOS Abaixo também existe a representação de um componente Validador que requer uma interface de Validação para realizar sua função. A ideia é que qualquer classe / objeto que implementar a interface IValidacao poderá ser utilizado pelo componente Validador para executar uma regra. No caso do exemplo, existe um componente dedicado para a validação do CPF. Ocultar Legenda: EXEMPLO DE USO DE UM DIAGRAMA DE COMPONENTES - VALIDAçãO DE CPF Recapitulando Neste tópico vimos como o diagrama de componentes pode ser utilizado para representar a estrutura do sistema e como o reuso é uma excelente prática para construção de software. 30/09/2019 about:blank about:blank 3/3 ATIVIDADE FINAL O diagrama de componentes representa a estrutura de componentes dispostos em um sistema. O uso de componentes patrocina a reutilização de software. Selecione qual dos itens abaixo não é uma vantagem do reuso. A. Confiança aumentada. B. Risco sucesso reduzido. C. Uso eficiente de especialistas. D. Desenvolvimento acelerado. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/3 Diagrama de Pacotes: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de pacotes. AUTOR(A): PROF. GABRIEL LARA BAPTISTA Como visto ao longo do curso, a orientação a objetos fará com que o analista crie inúmeras classes para representar os diferentes elementos que serão tratados no sistema modelado. Também foi visto que existem classes com diferentes objetivos dentro de um sistema modelado. Desta maneira, fica a pergunta de como se deve organizar um sistema modelado pela orientação a objetos. É aí que surgem os pacotes. Os pacotes servem para justamente organizar subsistemas existentes dentro do sistema que está sendo modelado, permitindo a visualização da organização dos subsistemas modelados. Sendo assim, o diagrama de pacotes mostra a decomposição do sistema, indicando suas dependências. Dentro de um pacote é possível adicionar outros elementos conhecidos da UML, como classes, interfaces, componentes, nós, casos de uso, diagramas e até outros diagramas de pacote. A figura abaixo representa um sistema que trabalha com o conceito de três camadas, tendo pacotes distintos para a interface gráfica, regra de negócio e acesso a dados. Ocultar 30/09/2019 about:blank about:blank 2/3 Legenda: EXEMPLO DE UM DIAGRAMA DE PACOTES A ideia é que exista uma tela de cadastro de usuários, que atende à assinatura de um Formulário. Essa tela passa informações para a classe de negócio dedicada para o usuário. Em seguida, após a aplicação das regras de negócio necessárias, a classe de acesso a dados dedicada para o usuário faz o acionamento do banco de dados de usuário. Recapitulando Neste tópico vimos como o diagrama de pacotes pode ser utilizado para organizar a distribuição de elementos de um sistema. ATIVIDADE FINAL Considerando o conteúdo aprendido sobre o diagrama de pacotes, é possível dizer que o seguinte elemento não pode ser colocado dentro de um pacote. A. Caso de Uso. B. Classe. C. Interface. D. Ator. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. 30/09/2019 about:blank about:blank 3/3 SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/2 Diagrama de Implantação: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de implantação. AUTOR(A): PROF. GABRIEL LARA BAPTISTA Como já falado em outros tópicos, a UML é uma linguagem para modelagem que busca representar o sistema de várias maneiras, facilitando assim a sua interpretação enquanto ainda ele não está implementado e implantado. Sendo assim, para se entender como deverá ser realizada a implantação do sistema, foi criado um diagrama para isso, que trará justamente a visão da instalação do sistema que está sendo produzido. Fica então sob responsabilidade do diagrama de implantação representar a relação entre diferentes hardwares existentes no sistema e organizar a distribuição de arquivos entregáveis, originalmente modelados como pacotes – executáveis, bibliotecas e bases de dados. A figura abaixo mostra os elementos que podem ser utilizados ao longo da criação do diagrama de implantação. Ocultar Legenda: ELEMENTOS DO DIAGRAMA DE IMPLANTAçãO Os nós são elementos de hardware em funcionamento no sistema, que podem ter componentes do sistema instalado. A figura abaixo mostra justamente essa possibilidade de uso do diagrama de implantação, onde um sistema em três camadas possui uma distribuição em diferentes servidores e estações de trabalho, além de também ser distribuído como uma App de celular. Ocultar Legenda: EXEMPLO DE USO DO DIAGRAMA DE IMPLANTAçãO Recapitulando Neste tópico vimos como o diagrama de implantação pode ser utilizado para representar uma visão estática da arquitetura do sistema que está sendo modelado. ATIVIDADE FINAL Pode-se dizer que o principal objetivo do diagrama de implantação está relacionado com: 30/09/2019 about:blank about:blank 2/2 A. O comportamento do sistema. B. A interação do sistema. C. As regras de negócio do sistema. D. A estrutura do sistema. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011. 30/09/2019 about:blank about:blank 1/1 Diagrama Temporização: Conceitos, notação e aplicação Esse tópico discute os conceitos, notação e aplicação do diagrama de temporização. AUTOR(A): PROF. GABRIEL LARA BAPTISTA O diagrama de temporização busca apresentar a mudança de estado de um ou mais objetos em função do tempo. Por tal razão, ele também apresenta os diferentes estados de um objeto, mas sob uma ótica de mudança de estágio não por evento, como no diagrama de máquina de estado, mas sim por tempo. A figura abaixo mostra uma visão do diagrama de temporização. Vejam que nele é representado o objeto que está sendo modelado, os estados que estão sendo representados desse objeto e o tempo para transição de um estado para outro. Ocultar Legenda: EXEMPLO DE DIAGRAMA DE TEMPORIZAçãO No exemplo acima, a ideia foi representar como funciona o controle do enchimento de um tanque. Esse tipo de representação e uso é muito comum em sistemas de automação. Quando tratamos sistemas embarcados ou mesmo sistemas de controle de hardwares, esse tipo de representação pode ser essencial na modelagem. Recapitulando Neste tópico vimos como o diagrama de temporização pode ser utilizado para representar a troca de estado de um ou mais objetos através do tempo. ATIVIDADE FINAL O diagrama de temporização pode ser considerado um diagrama que está preocupado com: A. A estrutura do sistema.B. A interação do sistema. C. O comportamento do sistema. D. O acesso a dados do sistema. REFERÊNCIA BOOCK, Grady; JACOBSON, Ivar; RUMBAUGH, James. UML: guia do usuário. Rio de Janeiro: Campus, 2000. PRESSMAN, R. S. Engenharia de Software: Uma abordagem profissional. 7ª. ed. Porto Alegre: AMGH, 2011. SOMMERVILLE, I. Engenharia de Software. 9ª. ed. São Paulo: Pearson Prentice Hall, 2011.
Compartilhar