Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade II MODELAGEM DE PROCESSOS Profa. Gislaine Stachissini Modelo conceitual da UML O Object Management Group (OMG) adotou a UML em novembro de 1997. Essa adoção ocorreu em um evento histórico e marcante, pois assinalou a aceitação de uma linguagem padronizada de modelagem de sistemas baseada nas melhores práticas atuais para a análise, projeto e construção de software orientado a objetos. Modelagem de forma efetiva Segundo Grady Booch (2000), a modelagem deve atingir quatro objetivos para se tornar efetiva em um ambiente de desenvolvimento de software: ajudar a equipe de projeto a visualizar um sistema como ele é ou como ele pretende ser; ajudar a especificar a estrutura ou comportamento do sistema; proporcionar um modelo que sirva de guia para a construção do sistema; documentar as decisões tomadas pela equipe de desenvolvimento de projeto. Visão geral da UML A UML não é um modelo de processo/metodologia de software. É uma notação, um mecanismo para “mostrar o problema” de forma a expor a essência do domínio de um aplicativo. Artefatos Todos os artefatos propostos pela UML são rastreáveis e, se construídos ao longo de um processo de desenvolvimento padronizado na empresa, os modelos podem completar uns aos outros. O elemento da rastreabilidade é fundamental para o projeto. Arquitetura da UML Uma arquitetura de sistema de software pode ser descrita por cinco visões interconectadas. Cada visão é uma projeção na organização e estrutura do sistema, focando um aspecto particular desse. São elas: visão de análise; visão de design; visão de implementação; visão do processo; visão da implantação. Visão de caso de uso A visão de caso de uso de um sistema compreende os que descrevem o comportamento do sistema como visto pelos usuários finais, analistas e testadores. Categorias de diagramas de UML: diagrama estático; diagrama dinâmico; diagrama arquitetural. Diagrama estático Os diagramas estáticos mostram a estrutura do sistema, suas responsabilidades, a estrutura física dos elementos e não envolvem a passagem do tempo. Eles não mostram a dinâmica das coisas; mostram simplesmente sua organização. Modelo de caso de uso, modelo de classes e modelo de objetos. Diagrama dinâmico Um diagrama dinâmico mostra a interação ativa que o sistema suporta e detalha a interação entre os elementos estruturais dos diagramas estáticos. Mostra o comportamento pretendido do sistema. Os principais diagramas dinâmicos são: atividades; comunicação; sequência; estado. Diagrama arquitetural Este diagrama mostra a realização do sistema em componentes funcionais e executáveis. Também diferencia a localização física da execução e os nós de armazenamento e uma estrutura dentro da qual eles podem interagir. Os principais diagramas estruturais são: componentes; implantação. Modelagem estrutural O principal diagrama que mostra a estrutura de um sistema é o diagrama de classes. Os demais diagramas também permitem visualizar a estrutura do sistema, como: diagrama de pacotes; diagrama de componentes; diagrama de objetos; diagrama deployment (implantação). Classes de objetos Uma classe de objetos é uma coleção de objetos que podem ser descritos com os mesmos atributos e as mesmas operações. Uma classe de objetos, na UML, possui três segmentos: nome, atributos e operações. A representação ou notação de uma classe é um retângulo com os três segmentos. Cada classe deve ter um nome que a distingue de outras classes. Relacionamentos entre classes de objetos/instâncias I As classes de objetos, no modelo de classes, se relacionam ou se associam de acordo com as necessidades do sistema. Esses relacionamentos são denominados “associação entre classes”. Um relacionamento define as regras da associação que, por seu lado, são impostas pelas regras de negócio da aplicação, sendo modeladas. Relacionamentos entre classes de objetos/instâncias II Instância Quando é necessário manipular um determinado objeto, a classe é carregada na memória, e os objetos são instanciados, isto é, são criados na memória e podem ser manipulados. Interatividade Como é chamado todo e qualquer documento desenvolvido na UML? a) Artefato. b) Processo. c) Gabarito. d) Esquema. e) Livro. Resposta a) Artefato. Mecanismos comuns A UML é feita simplesmente pela presença de mecanismos comuns que garantem a consistência a partir da linguagem, como: especificação; adornos; mecanismo de extensibilidade. Especificação Refere-se aos padrões das descrições dos componentes dos modelos: nomear os componentes; descrever a lógica do cenário de um caso de uso. Adornos São itens gráficos e textuais que são adicionados a uma notação de um elemento básico e são usados para visualizar detalhes da especificação do elemento. Usados no símbolo de nó de um diagrama de implantação ou componentes executáveis dentro de uma caixa extra do desenho. Mecanismo de extensibilidade Permite estender a linguagem de uma maneira controlada. Esse mecanismo inclui estereótipos, valores marcados e restrições. Um estereótipo permite que se criem novos tipos de blocos de construção que são derivados de outros existentes, mas específicos para um determinado problema. Diagramas da UML I Com um modelo, é possível um melhor entendimento dos sistemas que estão em desenvolvimento. Podem-se construir modelos a partir de um conjunto de blocos básicos: classes, interfaces, colaborações, componentes, nós, dependências, generalizações e associações. Diagramas da UML II Fonte: Livro-texto. Diagrama de atividade Usado para modelar o comportamento de um sistema e a forma como esses comportamentos estão relacionados em um fluxo geral. Construção de um sistema, processo ou procedimento. Diagrama de caso de uso Captura as funcionalidades do sistema e as relações entre os atores e o sistema. Descreve os requisitos funcionais do sistema, a maneira pela qual as coisas de fora (atores) interagem no limite do sistema e a resposta desse aos usuários. Diagrama de objetos I Está intimamente relacionado a um diagrama de classes de objetos, com a distinção de que retrata instâncias de objetos das classes e seus relacionamentos em um ponto no tempo. É útil para a compreensão de um diagrama de classes complexas, criando diferentes casos em que os relacionamentos e as classes são aplicados. Diagrama de objetos II Este diagrama também pode ser uma espécie de diagrama de comunicação, que também modela as conexões entre os objetos, mas adiciona sequências de eventos ao longo de cada caminho. Diagrama de sequência É um diagrama de interação. É uma representação estruturada de comportamento com uma série de etapas sequenciais ao longo do tempo. Usado para descrever o fluxo de trabalho e a passagem de mensagens. Diagrama de comunicação É um diagrama de interação. Mostra as interações entre os elementos em tempo de execução da mesma maneira que um diagrama de sequência. Usado para visualizar as relações entre objetos, enquanto os diagramas de sequência são mais eficazes na visualização de processamento ao longo do tempo. Diagrama de estado Ilustra como um elemento (geralmente uma classe) pode mover-se entre os estados, classificando o seu comportamento de acordo com gatilhos de transição ou guardas de restrição. Ajuda a descrever e explicar os movimentos e comportamentos dos sistemas. Diagrama de componentes Mostra os pedaços de software, controladores embutidos que formam um sistema, sua organização e dependências. Interatividade Emqual das alternativas há um diagrama de interação que representa uma série de etapas sequenciais ao longo do tempo? a) Diagrama de atividade. b) Diagrama de casos de uso. c) Diagrama de objetos. d) Diagrama de sequência. e) Diagrama de comunicação. Resposta d) Diagrama de sequência. Diagrama de implantação Mostra como e onde o sistema será implantado, ou seja, sua arquitetura de execução. Dispositivos de hardware, processadores e ambientes de software de execução (artefatos do sistema) são refletidos como nós. Mostra a organização dos elementos de um modelo em pacotes (agrupamentos) e as dependências entre esses pacotes, incluindo pacotes importados e extensões de pacotes. Diagrama de pacotes Diagrama de interação Visualiza a cooperação entre os diagramas de interação para ilustrar um fluxo de controle que serve a um propósito abrangente. Pontos de decisão, forks, junções, pontos iniciais e finais são os mesmos. Diagrama de tempo Define o comportamento de objetos diferentes dento de uma escala de tempo. Fornece uma representação visual da mudança dos objetos, mudando de estado e interagindo todo o tempo. Pode ser usado para definir os componentes e softwares embutidos. Diagrama de estrutura composta Reflete a colaboração interna de classes, interfaces ou componentes (e suas propriedades) para descrever a funcionalidade do sistema. Usado para expressar o tempo de execução das arquiteturas, padrões e relacionamentos dos elementos participantes, que não podem ser refletidos por meio de diagramas estáticos. Diagrama de classes de objetos da UML Mostra a estrutura estática do sistema por meio de suas classes e objetos e também como eles se relacionam. É considerado por alguns autores como o mais importante diagrama para o desenvolvimento orientado a objetos. Modelo de classes de objetos na UML Fonte: Livro-texto. Objetivos do diagrama de classes Mostrar a estrutura estática do sistema. Montar essa estrutura com as classes de objetos e também com seus relacionamentos. Mapear os objetos a partir das classes de objetos com seus nomes, atributos e operações. Aplicar as propriedades e características da tecnologia OO por meio dos mecanismos de associação, herança, polimorfismo e abstração. Metamodelo de classe - Instância Fonte: Livro-texto. Visibilidade Uma classe pode ter visibilidade: pública, protegida, privada Classe pública (+): indica que qualquer outra classe poderá acessar seus atributos e solicitar a execução de suas operações. Classe privada (-): restringe totalmente o acesso a seus atributos e operações. Classe protegida (#): somente permite a ela e aos seus herdeiros o acesso a seus atributos e operações. Chamada de uma operação com a lista de argumentos Fonte: Livro-texto. Fonte: Livro-texto. Associação I É uma relação semântica entre classes. Uma associação acontece quando uma determinada instância de uma classe se associa a uma ou mais instâncias de outra ou da mesma classe. Associação II As associações ainda podem ser binárias, unárias, ternárias e assim por diante. Fonte: Livro-texto. Papéis em associação Usados para representar as regras de uma associação entre os objetos das classes. Chamam-se cardinalidade ou multiplicidade e devem ser descritas no diagrama. Fonte: Livro-texto. Fonte: Livro-texto. Classe de associação Em alguns modelos, devido às regras de negócio, torna-se necessária a colocação de atributos em uma determinada associação. Um atributo é uma propriedade dos objetos de uma classe. Como uma associação também é um objeto, é perfeitamente possível colocar nela atributos. Um atributo de ligação é uma propriedade de uma associação. Interatividade Qual diagrama mostra a arquitetura de execução, os dispositivos de hardware, processadores e ambientes de software de execução? a) Diagrama de atividade. b) Diagrama de casos de uso. c) Diagrama de implantação. d) Diagrama de sequência. e) Diagrama de comunicação. Resposta c) Diagrama de implantação. Agregação e composição I É um tipo especial de associação em que um objeto contém o(s) outro(s). Chamado de relacionamento “todo/parte”. Agregação é um modo de associação na qual um objeto agregado é feito de componentes. Os componentes fazem parte do agregado. Fonte: Livro-texto. Fonte: Livro-texto. Agregação e composição II Uma composição é uma agregação forte em que as partes estão fisicamente contidas dentro do todo. Os componentes não podem ser compartilhados por outros compostos. Uma exclusão do todo desencadeia uma exclusão em cascata das partes; o ciclo de vida das classes em composição coincide. Generalização/especialização I É uma forma de estruturar a visibilidade de um elemento global com uma visão mais detalhada. Isso é feito adicionando características específicas ao elemento na visão detalhada e aproveitando as características gerais. Pode ser usada para diversos outros modelos da UML, como em diagramas de pacotes e diagramas de casos de uso. Fonte: Livro-texto. Generalização/especialização II Na generalização, um objeto é simultaneamente instância da superclasse e instância da subclasse. Herança É um mecanismo por meio do qual uma instância de uma classe assume os atributos e os comportamentos dos objetos de outra classe (antepassados ou antecedentes). Os objetos subordinados herdam atributos e serviços da classe superior. Funcionário feminino Nome solteira registrar licença licença-maternidade Funcionário masculino Funcionário Fonte: Livro-texto. Conceitos avançados envolvendo classes Herança múltipla: é uma extensão da análise orientada a objetos que permite a uma classe ter mais de uma superclasse e herdar todas as características (atributos e operações) de todos os seus pais. Fonte: Livro-texto. Classe de junção Classe com mais de uma superclasse: é chamada de classe de junção. Classes abstratas I São classes que não possuem instâncias diretamente, mas cujos descendentes possuem instâncias diretas. Esse tipo de classe é útil durante um projeto OO para facilitar a programação e a manutenção dos sistemas. Uma classe abstrata não pode ser classe de folha, já que precisa de descendentes para ser instanciável. Classes abstratas II São usadas frequentemente para definir métodos a serem abordados por subclasses. Uma classe concreta pode ser uma classe de folhas (último nível da hierarquia). Fonte: Livro-texto. Polimorfismo Implica que uma mesma operação pode comportar-se de maneira diferente em classes distintas, apesar de possuir o mesmo nome. É a propriedade de se utilizar um mesmo nome para fazer coisas diferentes. Interfaces: tipos e papéis A herança múltipla não é permitida em algumas linguagens de programação OO diretamente. Para facilitar a necessidade do uso desse tipo de herança, aparece o uso da interface. Uma interface, por exemplo, na linguagem Java, não é uma classe, é um arquivo que define valores constantes e as operações que outra classe deve implementar. Ela não tem operações/métodos, apenas seus protótipos. Pacotes lógicos I A UML define um diagrama de pacotes como um modelo que descreve de que modo os elementos são organizados dentro de pacotes e suas dependências. Um pacote pode estar contido em outros pacotes. Em um diagrama de pacotes, esses são ligados por setas pontilhadas, que têm seu estereótipo alterado de acordo com a necessidade. Pacotes lógicos II Um pacote pode ter qualquer diagrama da UML, porém são mais comuns em diagramas de casos de uso, para melhorar a abstração do domínio do problema, e em classes, para ajudar na organizaçãodas classes construídas em sistemas médios e grandes. Uma classe também pode ser declarada como “em pacote” e, dessa forma, terá a sua visibilidade restrita ao pacote em que reside. Classes fora desse pacote não poderão sequer saber de sua existência e, por isso, não poderão acessar classes do pacote. Pacotes lógicos III Uma classe dentro de um pacote sem visibilidade definida assume a visibilidade padrão do pacote. Existe uma notação especial na UML para designar um pacote. Essa notação não deixa dúvidas ao implementador que está usando o diagrama sobre a intenção do uso do pacote. Fonte: Livro-texto. Interatividade Como é chamado, na UML, o item que é uma instância de uma classe e assume os atributos e os comportamentos dos objetos de outra classe? a) Associação. b) Polimorfismo. c) Generalização. d) Pacotes. e) Herança. Resposta e) Herança. ATÉ A PRÓXIMA!
Compartilhar