MODELAGEM DE SISTEMAS

Tamanho: px
Começar a partir da página:

Download "MODELAGEM DE SISTEMAS"

Transcrição

1 MODELAGEM DE SISTEMAS Da Orientação a Objetos à UML UHLMANN, Erwin A. Título do trabalho. Instituto Siegen. Guarulhos, 2015 Prof. Erwin Alexander Uhlmann Guarulhos, de 64

2 Agradecimentos Agradeço à minha esposa Kátia por entender minha ausência, meu filho Henrique que me motiva trabalhar (!!!), meus pais Mirtes e Günter por terem criado meu caminho, aos meus alunos que viabilizaram este trabalho e a todos os autores de livros e bibliotecas que consultei para que pudesse devidamente embasar este. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

3 Sumário Modelagem de Sistemas 1 Agradecimentos 2 Sumário 3 Modelagem de Sistemas 5 Orientação a Objetos 5 Objeto 5 Programação Orientada a Objeto 10 Introdução à UML 12 Diagramas 13 Diagrama de Casos de Uso 13 Scripts 13 Atores 14 Casos de Uso 14 Associação 15 Generalização ou Especialização 16 Include 16 Extend 17 Multiplicidade 17 Estereótipos 18 Exercício 1 18 Documentação de Casos de Uso 19 Fluxo das Informações 19 Exercício 2 19 Diagrama de Casos de Uso 20 Documentação de Casos de Uso 21 Fluxo das Informações 22 Diagrama de Classes 23 Relacionamentos ou Associações 23 Diagrama de Objetos 29 Diagrama de Sequência 31 Diagrama de Sequência 31 Diagrama de Colaboração 32 Sistema de Login 34 Diagrama de Atividades 35 Prof. Erwin Alexander Uhlmann Guarulhos, de 64

4 Diagrama de Componentes 36 Modelagem de Processos de Negócios - BPM 38 Um guia para iniciar estudos em BPMN (I): Atividades e sequência Blog da iprocess 38 Um guia para iniciar estudos em BPMN (II): Gateways Blog da iprocess 42 Gateway exclusivo (Databased Exclusive Gateway) 43 Um guia para iniciar estudos em BPMN (III): Eventos de Início e Fim Blog da iprocess 47 Um guia para iniciar estudos em BPMN (IV): Eventos Intermediários Blog da iprocess 52 Um guia para iniciar estudos em BPMN (V): Subprocessos Blog da iprocess 58 Um guia para iniciar estudos em BPMN (VI): Swimlanes e Artefatos Blog da iprocess 60 Prof. Erwin Alexander Uhlmann Guarulhos, de 64

5 Modelagem de Sistemas Orientação a Objetos A Orientação a Objetos (OO) é um paradigma de programação concebido para o reaproveitamento de códigos em um mesmo software ou em outros externos. A OO se vale de conceitos do mundo real para facilitar a programação, melhorar a qualidade do software, aumentar a produtividade e facilitar a manutenção, ou seja, a manutenabilidade e a documentação. Um objeto é uma entidade que possui uma identificação própria. Este é um conceito importante, pois cada objeto deve ser único e identificável. Os objetos podem compartilhar aspectos semelhantes, comportamentos idênticos e até os mesmos atributos. Quando objetos apresentam os mesmos atributos e comportamentos, eles são agrupados em classes. As classes então possuem objetos, chamados de instâncias e elas é que são as chamadas para ativarem os objetos. Vamos ver os exemplos: Objeto Um Objeto é como no mundo real algo tátil(exceto por isto!), que possui determinadas características (Atributos ou Propriedades) e tem alguma utilidade (Método, Operação ou Comportamento) e pertencem a algo ou alguém (Visibilidade[Público, Protegido, Privado ou Pacote]). Para construir no plantuml: object computador Atributos ou Propriedades Os atributos de um Objeto possuem dois tipos de dados: Nome e tipo de dados. O Nome, de forma geral, remete ao que o Atributo contém, como no Objeto Casa, o Atributo Cômodo remete à um cômodo da casa e o Tipo de dado, também de forma geral, é relacionado o que deve conter, como o numero (integer) de cômodos ou o nome (character) deles. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

6 No plantuml: object computador 'o atributo é marcado pelo[] computador: atributo[] Podem haver vários atributos, como: E no plantuml: object computador computador: processador[] computador: memoriaram[] computador: discorigido[] computador: dispositivodeentrada[] computador:dispositivosdesaida[] Métodos, Operações ou Comportamentos As Operações são as determinações de ação de um Objeto. Elas obedecem os parâmetros determinados em programação e estes parâmetros atendem os valores. Um parâmetro típico é o H de hora da função date. O valor é recebido pelo sistema. Outro exemplo de parâmetro é $_POST[] que recebe os dados escritos num formulário. O valor é o que é digitado pelo usuário. Uma Operação então é o descritor das atividades de um objeto. 'object computador computador : processador[] computador : memoriaram[] computador : discorigido[] computador : dispositivodeentrada[] computador : dispositivosdesaida[] computador : realizacalculos() Prof. Erwin Alexander Uhlmann Guarulhos, de 64

7 Visibilidade Podem ser quatro estados: Público, Protegido, Privado ou Pacote. comput : (-) privado[] comput : (+) público[] comput : (#) protegida() comput : ( ) pacote() Público Qualquer objeto pode utilizar um Atributo público. É representado pelo símbolo +. Uma Operação ou Atributo público de exemplo são os dispositivos de entrada e saída de um computador, pois qualquer computador da rede pode utilizá-los. computador : processador[] computador : memoriaram[] computador : discorigido[] computador : + dispositivodeentrada[] computador : + dispositivosdesaida[] computador : realizacalculos() Privado São os Atributos ou Métodos que podem ser utilizados somente pelo Objeto pai. É representado pelo símbolo -, como a memória RAM, o HD ou o processador. computador : - processador[] computador : - memoriaram[] computador : - discorigido[] computador : + dispositivodeentrada[] computador : + dispositivosdesaida[] computador : realizacalculos() Protegida É representada pelo símbolo # e pode ser visualizada pela classe pai e as subclasses. As classes relacionada não visualizam. Um exemplo é o método ou operação do objeto Prof. Erwin Alexander Uhlmann Guarulhos, de 64

8 computador. Seus dados podem ser visualizados por todos os componentes, mas somente por eles, por outro objeto não. computador : - processador[] computador : - memoriaram[] computador : - discorigido[] computador : + dispositivodeentrada[] computador : + dispositivosdesaida[] computador : # realizacalculos() Pacote Representado pelo, o o pacote pode ser visualizado pelos que pertencerem a ele, ou seja, os objetos que pertençam ao pacote podem visualizar. O monitor e o teclado não foram retratados aqui, mas fazem parte do pacote em que o computador está inserido. teclado : ~exibedados() Herança A Herança é um dos mais importantes conceitos da Orientação a Objetos. Ela garante que os Atributos e Operações do Objeto pai ou Superobjeto sejam aproveitados em código pelos objetos filhos ou subobjetos. Um o exemplo de herança é um sistema de login e senha. A busca do login que pode ser o e a senha. O pode ser público e a senha protegida, logo privada. No entanto outros objetos protegidos podem precisar do , herdando sua validação, não apenas o dado. sistlogin : + [] sistlogin : #senha[] sistlog : [] sistlog : + dataehora[] sistlog : armazenardadoslog() sistinsdados : ~ [] sistinsdados : gravardados() sistlogin < -- sistlog sistlogin < -- sistinsdados Prof. Erwin Alexander Uhlmann Guarulhos, de 64

9 Herança Múltipla Assim como a Herança simples, a múltipla recebe ou herda dados de mais de um objeto. Como é possível notar, o Atributo dataehora do Objeto sistlog é público e o A t r i b u t o e m a i l d o O b j e t o sistinsdados é privado a todos que pertençam ao pacote, logo um novo Objeto herdará estes atributos. sistlogin : + [] sistlogin : #senha[] sistlog : [] sistlog : + dataehora[] sistlog : armazenardadoslog() sistinsdados : ~ [] sistinsdados : gravardados() relatorios : [] relatorios : dataehora[] relatorios : imprimirrelatorios() sistlogin < -- sistlog sistlogin < -- sistinsdados sistlog < -- relatorios sistinsdados < -- relatorios Polimorfismo Polimorfismo é um método de reutilizar um objeto em outro objeto especializando-o, ou seja, se em um objeto que realiza determinada Operação é necessário em outro objeto porém com alguma especialização, isto constitui o polimorfismo. Ex.: Imagine um código que exiba números em ordem decrescente. Em outro ponto do software (pacote), você precisa exibir os três primeiros ou os três últimos colocados. Para quê reprogramar? Herde o métodos e decida como utilizá-los. Outro caso: Em um banco cliente é um objeto. Todos os clientes obedecem a uma regra básica: Quanto e quando depositou, quanto e quando retirou. Só isto já é difícil de controlar! Imagine quando você altera o status de um destes clientes, mas não de Prof. Erwin Alexander Uhlmann Guarulhos, de 64

10 todos(-), para cliente especial, com crédito, ou seja, cheque especial. Quanto a mais pode retirar e quanto e quando vai pagar? sistlogin : + [] sistlogin : #senha[] sistlog : [] sistlog : + dataehora[] sistlog : armazenardadoslog() sistinsdados : ~ [] sistinsdados : gravardados() sistlogin < -- sistlog sistlogin < -- sistinsdados Programação Orientada a Objeto Na programação, o Objeto é representado nesta linguagem pela function e seu nome é hora. Ignore a linguagem. O resultado é a exibição da hora atual, este é seu atributo. function hora(){ $hora = date('h:i:s'); echo $hora; } Se imaginarmos o seguinte novo objeto: function data(){ $data = date('d/m/y'); echo $data; } Os objetos hora e data possuem o mesmo comportamento: Exibir uma informação, especificamente informações sobre data e hora, então eles podem pertencer à mesma classe, a classe tempo. class Tempo{ function hora(){ $hora = date( H:i:s ); echo $hora; } function data(){ $data = date( d/m/y ); Prof. Erwin Alexander Uhlmann Guarulhos, de 64

11 } } echo $data; A classe Tempo possui duas instâncias, hora e data, e para chamar seu resultado, ou dispará-lo, por assim dizer, é preciso instanciá-lo. Mais uma vez ignore a linguagem. $instancia = new Tempo; $instancia -> hora(); Todas vez que seu programa precisar exibir a hora atual, basta instanciar o objeto hora(). Isto reduz o número de linhas de programação e pode-se aproveitar este código em outros softwares. Outra vantagem da Orientação a Objetos é o Polimorfismo, ou seja, o programa se comporta conforme o ambiente. Como ignoramos a linguagem, esta impressão de hora é estática, isto é, ocorre apenas uma vez, mas e se chamarmos este objeto em um looping? A hora irá mudar a cada novo segundo! O programa é o mesmo, mas o comportamento muda conforme o meio! Polimorfismo! $instancia = new Tempo; $instancia -> hora(); for($i=$instancia+60;$i<$instancia;$i++){ $instancia; } Herança é o comportamento da OO para os atributos de um objeto poderem ser incorporados por um novo objeto, aproveitando um código já escrito, sendo assim, a classe pai, envia os dados para a classe filho. class Pai{ $valor = '1, 2, 3, 4, 5'; strrev($valor); } class Filho extends Pai{ $partevalor = substr($valor, 0, 4); echo $partevalor; } Prof. Erwin Alexander Uhlmann Guarulhos, de 64

12 Introdução à UML O projeto do software é um esquema visual que permite a criação do projeto antes de sua execução ou programação. A Unified Modeling Language (UML), para Guedes (2011) é uma linguagem visual utilizada para modelar softwares baseados no paradigma da orientação a objetos. O autor explica ainda que a programação orientada a objetos é um método de atribuir identidade a scripts que realizem funções específicas e pertençam a uma parte maior de um software. A UML é constituída de 14 diagramas com especificidades e representações para diversas situações, como explica Guedes (2011). Para criarmos os diagramas, vamos utilizar o NetBeans 8.0 ( com o plugin PLantUML ( e o Graphviz( como gerador de imagens. ArgoUML ( Prof. Erwin Alexander Uhlmann Guarulhos, de 64

13 Diagramas Diagrama de Casos de Uso O diagrama de Casos de Uso, comumente chamado de UC, por questões óbvias, é normalmente o primeiro a ser desenvolvido. Isto por que ele permite a primeira visão do sistema numa rápida conversa com o cliente e sua demonstração do uso, da dinâmica do software, além disto ele serve como guia para o desenvolvimento deste e é recorrentemente consultado e alterado para se adequar. O Diagrama de Casos de Uso tem por objetivo apresentar a visão externa das funcionalidades do sistema, isto é, a visão do usuário sobre o uso do sistema, sem se preocupar com a implantação destas funções. Para criar um Diagrama de Casos de Uso é preciso compô-lo de: Scripts title Exemplos de Sintaxe de Casos de Uso 'direcionamento 'left to right direction 'top to bottom direction (Caso de Uso) usecase (Caso de Uso Dois) as CUD :Ator 1: actor Ator2 actor :Outro Ator: as OA 'relação entre atores e casos de uso :Ator 1: -- (Caso de Uso) 'Uma declarado como ator, chame somente o nome Ator2 -> CUD OA --> (Terceiro \ncaso de Uso) :Ator 4: ---> (Caso de Uso) : Uma mensagem simples 'extensão 'O Caso de Uso Dois leva ao Outro Ator OA < -- CUD Ator2 -- > OA 'notas de projeto note right of :Ator 4: : Nota de projeto note "Nota em meio de caminho" as N2 CUD.. N2 N2.. (Terceiro \ncaso de Uso) 'direções e ligações Prof. Erwin Alexander Uhlmann Guarulhos, de 64

14 :AtorCentral: (CasoDeUso1) (CasoDeUso2) (CasoDeUso3) (CasoDeUso4) :AtorCentral: -left- (CasoDeUso1) : associação :AtorCentral: -up-> (CasoDeUso2) : link ou encaminhamento :AtorCentral:.right.> (CasoDeUso3) : <<include>> inclusão :AtorCentral: <.down. (CasoDeUso4) : extensão <<extend>> Atores Representa qualquer elemento externo que interaja com o sistema, podendo ser um usuário, um hardware ou outro software. :Ator: Casos de Uso Os Casos de Uso servem para expressar o comportamento primário ou secundário de um sistema. Quando primário ele é associado às funções para o qual o software foi concebido e o secundário para funções de manutenção, por exemplo. Num sistema de cadastro de usuário, o cadastro é a função primária e a edição destes dados é a função secundária. (Caso de Uso) Os atores acessam as funcionalidades de um sistema, desta forma eles representam fracamente um descritivo destas funções, como segue: :Usuário: --> (Cadastro de usuário) :Usuário: --> (Editar cadastro) Prof. Erwin Alexander Uhlmann Guarulhos, de 64

15 No plantuml, você pode definir o ator entre dois pontos ou especificá-lo como actor, veja: 'actor Ator 'ou :Ator: O Caso de Uso possui, de forma geral, uma documentação que descreve de forma sucinta a sequencia de ações do sistema. Nome do Caso de Uso UC 01 Ator principal: Diretor Ator secundário: Gerente Ator terciário: Funcionário Ator quaternário: Usuário Descrição Acesso ao sistema Cadastra usuários, edita e exclui, além de todo conteúdo Cadastra usuários Acessa o sistema Não pode acessar Observe que no ator principal, o texto além de todo conteúdo foi tachado, pois não pertence ao Caso de Uso UC 01 que descreve ações de acesso ao sistema. A continuidade é o descritivo do fluxo de ações do sistema. Nome do Caso de Uso UC 01 Descrição Acesso ao sistema 1 - Ator solicita acesso por login e senha 2 - Sistema busca no Banco de Dados o login 3 - Caso o usuário seja encontrado, solicita a senha 4 - Caso a senha esteja correta, permite acesso, senão solicita o cadastro 5 - Abre a sessão Associação é a relação criada entre atores e atores ou casos de uso e casos de uso dentro de um diagrama. Exemplos: :Cliente: -- (Cadastro de clientes) :Cliente: -- (Edita cadastro) :Suporte: -- (Edita cadastro) :Cliente: -- Suporte (Edita cadastro) -- (Cadastro de clientes) : Verifica existência \n do cadastro Prof. Erwin Alexander Uhlmann Guarulhos, de 64

16 Generalização ou Especialização O diagrama de Especialização ou Generalização determina um plano abstrato e o decompõe em níveis mais baixos, veja: (Usuário Diretor) -up-> (Usuário) (Usuário Gerente) -up-> (Usuário) (Usuário Funcionário) -up-> (Usuário) Também se especifica as permissões, como segue: :Diretor: -- (Cadastra, edita e exclui usuário) :Gerente: -- (Cadastra usuários) :Funcionário: -- (Acessa o sistema) Include É utilizado quando uma função é recorrente em um sistema, assim um Caso de uso ou ator pode chamar este processo e incluí-lo no sistema. De forma geral, o Include é utilizado quando você deve consultar outro processo para concluir o primeiro, este outro processo é o Include. :Ator 1: --> (Acesso ao Sistema) (Acesso ao Sistema)..> (Log do sistema) :Ator 2: --> (Excluir dados) Prof. Erwin Alexander Uhlmann Guarulhos, de 64

17 (Excluir dados)..> (Log do sistema) O Include é representado pelo tracejado. Extend É indicado quando uma excessão é executada ou uma condição específica, como um cadastro que é feita apenas na primeira vez. No extend, em oposição ao Include, a seta é invertida. De maneira ampla, o Extend é utilizado quando o processo primário não pode concluir o serviço, então chama-se outro extenso a ele, como uma condição. :Usuário: --> (Acesso ao Sistema) (Acesso ao Sistema)..> (Log do sistema) note "Caso não tenha cadastro \n (Opicional)" as nota1 (Acesso ao Sistema) <.. nota1 nota1.. (Cadastro de usuário) :Funcionário: --> (Excluir dados) (Excluir dados)..> (Log do sistema) note "Confirmação de motivo \n(opcional)" as nota2 :Funcionário: <.. nota2 nota2.. :Usuário: Multiplicidade Um para muitos ou um para um. Um processo pode ser chamado n vezes por um ator ou o inverso. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

18 Estereótipos Para representar processos, utiliza-se os sinais << e >>, assim, o processo de validação de acesso ao sistema, pode ser representado apenas como: (<<Acesso>> \n Acesso ao sistema) Exercício 1 Crie a UML de um sistema de login simples com validação de login e recriação e validação de sessão (caso correto) e três páginas protegidas e uma de cadastro. title Sistema de login simples left to right direction (Acesso ao Sistema) as AS (Valida Login) as VL (Cadastro) (Página Protegida 1) as PP1 (Página Protegida 2) as PP2 (Página Protegida 3) as PP3 (Valida Sessão) as VS (Menu de Acesso) as MA :master: -- AS :funcionário: -- AS AS -- > VL VL..> (Cadastro) : <<extend>> VL -- > PP1 PP1 <.. VS : <<include>> PP1 <.. MA : <<include>> PP2 <.. VS : <<include>> PP2 <.. MA : <<include>> PP3 <.. VS : <<include>> PP3 <.. MA : <<include>> (Cadastro) <.. VS Prof. Erwin Alexander Uhlmann Guarulhos, de 64

19 Documentação de Casos de Uso Casos de Uso de Login Descritivo UC 01 Ator Cliente 1 - Acessa o sistema 2 - Acessa cadastro de usuário 3 - edita dados próprios se cadastrado 4 - exclui-se do BD Ator Master 1 - Acessa o sistema 2 - Acessa cadastro de usuário 3 - edita dados próprios se cadastrado 4 - exclui-se do BD 5 - Inclui novos usuários 6 - Exclui usuários 7 - Edita dados de usuários Edita o tipo de usuário como adm/usuário Fluxo das Informações Casos de uso de Login Requisição Resposta 1 - Acessa o sistema 2 - Sistema procura do BD o e a senha 3 - usuário entra no sistema 4 - acessa página de edição de dados 5 - sai do sistema Exercício 2 Crie um sistema de controle de petshop. Seus requisitos são: Agenda de serviços, animais e clientes; Tipo de serviço: Consulta veterinária ou petshop (banho)?; Dados par ao serviço (Doença, tosa, castração ); Exames a serem marcados pelo veterinário; Prof. Erwin Alexander Uhlmann Guarulhos, de 64

20 A secretária é o ator agenciador entre clientes, veterinários e agenda do petshop. Diagrama de Casos de Uso Prof. Erwin Alexander Uhlmann Guarulhos, de 64

21 title <b>casos de Uso de uma veterinária</b> :Animal: :Cliente: :Secretária: :Veterinário: :Tratador: :Animal: -- :Cliente: :Cliente: -- :Secretária: :Secretária: -- (Serviço) : acessa \nconsulta (Serviço) <-- (Serviço veterinário) (Serviço) <-- (Serviço petshop) :Secretária: -- (Agenda) : acessa \nconsulta :Secretária: -- (Cadastro veterinário) :Secretária: -- (Cadastro tratador) :Secretária: -- (Cadastro clientes) :Secretária: -- (Cadastro animais) (Cadastro clientes) <.. (Cadastro animais) : <<include>> (Serviço) <.. (Agenda) : <<include>> (Insumos veterinários) <.. (Serviço) : <<include>> :Veterinário: -- (Insumos veterinários) : informa :Veterinário: -- (Cadastro veterinário) (Cadastro veterinário)..> (Autocadastro) : <<extend>> (Autocadastro) <.. (Tipo função) : <<include>> :Veterinário: -- (Serviço) :Veterinário: -- (Agenda) :Veterinário: -- (Serviço veterinário) note bottom of (Serviço veterinário) : Cadastra novos serviços (Insumos petshop) <.. (Serviço) : <<include>> :Tratador: -- (Insumos petshop) : informa :Tratador: -- (Cadastro tratador) (Cadastro tratador)..> (Autocadastro) : <<extend>> :Tratador: -- (Serviço) :Tratador: -- (Agenda) :Tratador: -- (Serviço petshop) note bottom of (Serviço petshop) : Cadastra novos serviços Documentação de Casos de Uso Casos de Uso Agenda Veterinária Descritivo UC 01 Ator Secretária Acesso à Agenda 1 - Consulta horários, agenda novos e desmarca; 2 - Consulta serviços 3 - Cadastra, edita e exclui clientes e animais, veterinários e tratadores. 4 - Emite relatórios Ator Veterinário 1 - Cadastra-se como veterinário (validado pelo CPF) 2 - Cadastra novos serviços de veterinária 3 - Consulta e marca novos compromissos na agenda Prof. Erwin Alexander Uhlmann Guarulhos, de 64

22 Casos de Uso Agenda Veterinária Ator Tratador Descritivo 1 - Cadastra-se como novo Tratador (validado pelo CPF) 2 - Cadastra novos serviços de petshop 3 - Consulta e marca novos compromissos na agenda Ator Cliente Ator Animal 1 - Consulta verbalmente o Ator Secretária 1 - Dependente do Ator Cliente Fluxo das Informações Casos de uso da Veterinária Requisição Resposta 1 - O Cliente entra em contato com o Ator Secretária solicitando uma consulta 2 - O Ator Secretária questiona o tipo de serviço 3 - O Ator Cliente descreve o tipo de serviço: Veterinário ou petshop 4 - O Ator Secretária, consulta na Agenda o Serviço e verifica as datas e horários disponíveis por profissional Veterinário ou Tratador; 5 - O Ator Cliente concorda com a data 6 - O Ator Secretária solicita os dados do Ator Cliente, caso não exista no sistema, deve ser cadastrado e o Ator Animal cadastrado como dependente do Ator Cliente; O Ator Secretária associa o profissional ao cliente na data e horário solicitado. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

23 Diagrama de Classes O Diagrama de Classes é um dos mais importantes da UML, servindo de base para outros. Este diagrama serve para projetar, documentar ou mesmo compreender como um software foi projetado e como as métodos dos objetos interagem, servindo de base para os diagramas de Sequência, Estados e Comunicação. Uma Classe é um elemento que contém diversos objetos que tenham as mesmas características ou aspectos. Ex.: A Classe Login reúne os Objetos ValidaLogin, ValidaSessao e LogDeErros. Todos eles servem ao login. Neste diagrama podem ser definidos Atributos como a Visibilidade, Tipo de Dados, Multiplicidade e Propriedade. Um Diagrama de Classe exibe o nome da Classe a qual pertence, seus atributos (nomearquivo[], numlink[] e conteudolink[]), o tipo de dado que compõe o atributo (varchar, int, date, etc) e na parte inferior os métodos, ou seja, as ações que a classe executa, neste caso, imprimir o nome do link (imprimenomelink()). Além destes elementos, também é possível descrever a visibilidade do atributo ou o método (privado(-), público(+), protegido(#) ou pacote( )). Relacionamentos ou Associações Classes e objetos podem se relacionar de diversas formas para permitir o funcionamento do software. O tipo de relação determina como é esta relação, vejamos: Relação Unária ou Reflexiva A relação uniria ou reflexiva descreve a relação entre objetos de uma mesma classe. Como um c o n t a d o r d e e l e m e n t o s é chamado para construir uma laço de repetição em outro objeto. Ela pode expressar de forma simplificada, também a hierarquia Prof. Erwin Alexander Uhlmann Guarulhos, de 64

24 dos relacionamentos e o numero de chamados. Estes chamados podem ser 0..*, ou seja, não há chamado de um elemento, porém muitos de outro, 1..* como um chefe tem vários funcionários, um elemento chama muitos de outro, 1..1 um elemento se relaciona com outro diretamente como uma chamada telefônica e determinado, como 5 gerentes se relacionam com 8 funcionários. Binária É a associação mais simples. O contratante de um plano de saúde possui dependentes, estes não comandam nem enviam dados ao contratante, porém ele determina o tipo de contrato de todos. Navegabilidade class contratante contratante : -saláriodebito[] contratante : +planosaúde[] contratante : #agregadependentes() class dependente dependente : +planosaúde[] contratante "possui" --> "0..*" dependente Associação Ternária ou N-ária class professor class sala class turma left to right direction professor "leciona" -- "possui" turma (professor, turma) --> sala : ocupam Prof. Erwin Alexander Uhlmann Guarulhos, de 64

25 Agregação Um elemento puxa para si outro elemento, como um CEP agrega uma cidade ou um Bairro, mas um Bairro não pode Agregar Cidade, certo? Composição Uma classe é composta por outras classes, como um cliente que tem um endereço. class Cliente Cliente : - endereço[] class CEP CEP : + CEP[] CEP : + logradouro[] class Estado Estado : + Estado[] class Cidade Cidade : + Cidade[] class Bairro Bairro : + Bairro[] CEP "*" *-- "1" Estado CEP "*" *-- "1" Cidade CEP "*" *-- "1" Bairro Cliente "*" o-- "1" CEP Generalização e especialização A Generalização (inverso da Especialização) é o aproveitamento de diversas características de uma classe que se aproveita em outras, como o cadastro de funcionários e de clientes. Ambos são pessoas que possuem endereços e dados pessoais, sendo diferenciados por dados de relacionamento com a empresa. class Clientes Clientes : + numcliente[] class Funcionarios Funcionarios : # Cargo class Pessoas Pessoas : + Nome[] Pessoas : # Endereço[] Pessoas : # Telefone[] Pessoas : # Foto[] Pessoas < -- "Generalização" Clientes Pessoas < -- "Generalização" Funcionarios Prof. Erwin Alexander Uhlmann Guarulhos, de 64

26 Associação A Associação é uma relação entre classes que permite a definição de n atributos para n atributos sob uma determinada condição, comovam nota fiscal de uma loja. A nota fiscal pode conter n produtos e n tipo de produtos podem estar em n notas fiscais, porém, suas quantidades podem varias, sendo então uma condição específica para cada registro. 'left to right direction class "Nota Fiscal" as NF class "Produtos" as Prod NF : + númnotafiscal[] NF : + dataemissão[] NF : # produtos[] NF : # quantprod[] Prod : + descrtprod[] Prod : + qteestoque[] Prod : +preçoprod class Clientes Clientes : + numcliente[] Clientes --o NF NF o-- Prod Diagrama de Classes para uma Veterinária title Classes Veterinária class CEP CEP : + CEP[] CEP : + logradouro[] CEP : + CRUD() CEP : + Lista_Estados() CEP : + Lista_Cidades() CEP : + Lista_Bairros() class Estado Estado : + Estado[] Estado : + CRUD() class Cidade Cidade : + Cidade[] Cidade : + CRUD() class Bairro Prof. Erwin Alexander Uhlmann Guarulhos, de 64

27 Bairro : + Bairro[] Bairro : + CRUD() class Pessoa Pessoa : - nome[] : string Pessoa : - CEP[] : string Pessoa : - telefone[] : string Pessoa : - [] : string Pessoa : + animal[] : int Pessoa : + Função : int Pessoa : + registaclidata() : int Pessoa : + CRUD() Pessoa : + Lista_Funções() Pessoa : + Lista_Animais() Pessoa : + Lista_CEP() class Animal Animal : - nome[] : string Animal : - idade[] : number Animal : - sexo[] : char Animal : + Espécie[] : int Animal : + FiloAnimal: int Animal : + CRUD() class Espécie Espécie : + nome[] : string Espécie : + CRUD() class FiloAnimal FiloAnimal : + nome[] : string FiloAnimal : + CRUD() class Tratamento Tratamento : - nome[] : string Tratamento : + Animal : int Tratamento : - datainicio[] : date Tratamento : - datafinal[] : date Tratamento : + CRUD() Tratamento : + Lista_Animais() class Consulta Consulta : - historico[] : string Consulta : - Função[] : int Consulta : - Animal[] : int Consulta : - data[] : date Consulta : - Tratamento[] : int Consulta : - Exame[] : int Consulta : + Lista_Animais() Consulta : + Lista_Exames() class Função Função : - nome[] : string (Veterinário, \nsecretária, Cliente, \ntratador...) Função : - descritivo[] : string Função : + CRUD() class Exame Exame : + nome[] : string Exame : + custo[] : string Exame : + CRUD() Exame : + Lista_Insumos() class Insumos Insumos : + nome[] : string Insumos : + fabricante[] : string Insumos : + qte[] : numero Prof. Erwin Alexander Uhlmann Guarulhos, de 64

28 Insumos : + validade[] : date Insumos : + posição_estoque[] : string class PessAnim PessAnim : - Pessoa[] : int PessAnim : - Animal[] : int PessAnim : + Lista_Pessoas() PessAnim : + Lista_Animais() class Veterinário Veterinário : - Nome[] : string Pessoa "*" *-left- "*" PessAnim : possui PessAnim "*" -- "*" Animal : pertence Animal *-- Espécie : pertence Animal "1" -right- "*" Tratamento : realiza Animal *-left- FiloAnimal Tratamento "1" -- "*" Consulta : tem Veterinário "*" *-- "*" Pessoa Pessoa "1" *-- "1" Função Consulta "1" -right- "*" Exame Exame "*" -right- "*" Insumos CEP "*" *-- "1" Estado CEP "*" *-- "1" Cidade CEP "*" *-- "1" Bairro Pessoa "*" o-- "1" CEP Prof. Erwin Alexander Uhlmann Guarulhos, de 64

29 Diagrama de Objetos O Diagrama de Objetos é um complemento ao de Classes. Enquanto o primeiro exibe os atributos (valores) e métodos (ações) que aquele objeto trata, ignorando os outros valores (atributos) que compõem o software, o Diagrama de Objetos exibe a totalidade de atributos (valores) que pertencem ao objeto. Este diagrama permite o programador fazer a ponte com o Modelo de Entidade Relacionamento (MER) que pertence ao desenvolvimento do Banco de Dados por sua semelhança. left to right direction object Aluno object Série object Disciplinas object Professor object AnoAtivo object Sala Para se demonstrar os dados hipotéticos ou dados tipo do objeto. Aluno : id = "1101" Aluno : Nome = "Cunegundes Jacinto Leite Aquino Rego" Aluno : Número = "10" Aluno : ano = "2016" Aluno : histórico = "A aluna é problemática...\nem Março ele fez a aula de Objetos!" E para se demonstrar os relacionamentos. Série -- > Sala Sala o-- Aluno Série --* Aluno : Composição Série --* Disciplinas Disciplinas -- > Professor AnoAtivo -- > Série Prof. Erwin Alexander Uhlmann Guarulhos, de 64

30 AnoAtivo -- > Aluno E de forma completa: object Aluno object Série object Disciplinas object Professor object AnoAtivo object Sala Série -- > Sala Sala o-- Aluno Série --* Aluno : Composição Série --* Disciplinas Disciplinas -- > Professor AnoAtivo -- > Série AnoAtivo -- > Aluno Prof. Erwin Alexander Uhlmann Guarulhos, de 64

31 Aluno : id = "1101" Aluno : Nome = "Cunegundes Jacinto Leite Aquino Rego" Aluno : Número = "10" Aluno : ano = "2016" Aluno : histórico = "A aluna é problemática...\nem Março ele fez a aula de Objetos!" Série : id = "3" Série : nome = "Terceiro Ano" Série : sala_id = "38" Série : ano = "2016" Sala : id = "38" Sala : nome = "38" Sala : capacidade = "50" AnoAtivo : id = "19" AnoAtivo : AnoAtivo = "2016" AnoAtivo : histórico = "Ano do Impeachment!\nCoordenação: Profa. Silvia" Disciplinas : id = "18" Disciplinas : nome = "História" Disciplinas : ementa = "Contar história!!!" Professor : id = "12" Professor : nome = "Erwin Alexander Uhlmann" Diagrama de Sequência O Diagrama de Sequência é uma forma esquemática de representar a ordem com que partes do sistema trocam mensagens entre si e acontecem, e tem por objetivo demonstrar o comportamento dos objetos em um determinado contexto, ou seja, uma parte específica como um Caso de Uso. Os diagrama de Casos de Uso e de Classe podem servir de suporte para sua construção, assim como após sua elaboração deve ser verificado nestes diagramas a coerência do projeto. De forma genérica a interação entre os objetos pode ser representada pelo Diagrama de Sequência e pelo de Colaboração, sendo: Diagrama de Sequência Enfatiza o tempo em que ocorrem as ações; Mostra os objetos e interações durante sua linha de vida (tempo de atividade). Prof. Erwin Alexander Uhlmann Guarulhos, de 64

32 Diagrama de Colaboração Enfatiza o relacionamento entre os objetos. ObjetoA -> ObjetoB : Requisição activate ObjetoA activate ObjetoB ObjetoB -> ObjetoB : Auto delegação ObjetoB --> ObjetoA : Resposta deactivate ObjetoB ObjetoA ->> ObjetoB : Mensagem Assíncrona destroy ObjetoB ObjetoA ->> ObjetoA : Objeto ativo com resposta\n para objeto inativo em linha de vida deactivate ObjetoA Exercício 1 : Grupos e Comunicações title Exercício 1 - Comunicação entre os participantes 'Existem várias formas de requisição e resposta group Mudando a ordem dos participantes Cliente -> Servidor: Requisição de Arquivo Servidor --> Cliente: Resposta em HTML end 'Forma dois group Mudando as requisições Cliente -> Servidor: Requisição de Arquivo Cliente <-- Servidor: Resposta em HTML end 'Forma assíncrona group Forma assíncrona Cliente ->> Servidor: Requisição Assíncrona de Arquivo Servidor ->> Cliente: Resposta Assíncrona em HTML end Exercício 2 : Identificações e Ativações actor Usuário as U #blue participant Interface as I #88AAFF participant "Regras de Negócio" Prof. Erwin Alexander Uhlmann Guarulhos, de 64

33 as RDN #FFAA88 participant "Banco de Dados" as BD #88FFAA U -> I: Acesso ao sistema activate I I -> RDN: Verificação de conexão com o BD activate RDN RDN -> BD: Requisição de dados activate BD BD --> RDN: Banco de dados Ativo deactivate BD RDN --> I: Resposta em HTML deactivate RDN I --> U: Págin ade login deactivate I Exercício 3 : Completo title Exemplo 1 actor Usuário as U #blue participant Interface as I #88AAFF participant "Regras de Negócio" as RDN #FFAA88 participant "Banco de Dados" as BD #88FFAA autonumber "<b> [00] " group Requisições U -> I: Acesso ao sistema activate I note left: Este é o usuário I -> RDN: Verificação de conexão com o BD activate RDN note left: Este é o computador RDN -> BD: Requisição de dados note left: Esta é a programação alt Resposta OK do BD Prof. Erwin Alexander Uhlmann Guarulhos, de 64

34 activate BD BD --> RDN: Banco de dados Ativo deactivate BD note over BD: Este é o Banco de Dados RDN --> I: Resposta em HTML I --> U: Págin ade login end == Caso não tenha conexão == group Condição não satisfeita else RDN --> RDN: Sem conexão com BD RDN --> I: Resposta em HTML: Sem conexão, retorne depois! deactivate RDN I --> U: Popup: OOps... Volte mais tarde! deactivate I end Sistema de Login title Login e senha 10.activate Programacao 11.alt ok 3. actor Usuario 12. Programacao -> BD : senha 4. Usuario -> LoginSenha : acessa daquele 5. LoginSenha -> Programacao : e 13. deactivate Programacao senha 14. BD --> Programacao : ok ou 6. activate Programacao falha 7. Programacao -> BD : 15. deactivate BD 8. activate BD 16. Programacao -> ValidaSessao : 9. BD --> Programacao : ok ou falha caso ok Prof. Erwin Alexander Uhlmann Guarulhos, de 64

35 17. activate ValidaSessao 18. ValidaSessao -> PaginaProtegida 19. ValidaSessao -> ValidaSessao 20. PaginaProtegida -> Logout 21. activate Logout 22. destroy ValidaSessao 23. deactivate Logout 24. deactivate ValidaSessao 25. Logout -> LoginSenha 26. ValidaSessao --> LoginSenha : caso expirado 27.else 28. Programacao --> LoginSenha : ou senha invalidos 29. deactivate Programacao 30. Diagrama de Atividades (*) --> "Inserir e senha" if " e senha preenchidos?" then -->[sim] "Verificar em BD" if " existe?" then -->[sim] "verificar senha" if "senha certa?" then --> === AP1 === -->[sim] "criar sessão" --> === AP2 === === AP1 === --> "encaminhar para página protegida" --> === AP2 === === AP1 === --> "revalidar sessão" --> === AP2 === --> (*) else --> [não]"inserir e senha" end if else --> [não] "Inserir e senha" end if else --> [não] "Inserir e senha" end if Prof. Erwin Alexander Uhlmann Guarulhos, de 64

36 Diagrama de Componentes Prof. Erwin Alexander Uhlmann Guarulhos, de 64

37 O Diagrama de Pacotes é o diagrama que demonstra a organização de um sistema, desde sua arquitetura como sua interface, sua programação e seu Banco de Dados, e outras partes, como também os componentes de um sistema, os servidores, componentes de uma rede e outros sistemas e sub-sistemas. Este tipo de diagrama é também muito útil para desenvolver projetos com a visão topdown, ou seja, a partir da visão geral do projeto para decompor em partes menores. [Interface] --> [Programação] [Programação] --> [Banco de Dados] [Banco de Dados] --> [Programação] [Programação] --> [Interface] Prof. Erwin Alexander Uhlmann Guarulhos, de 64

38 Modelagem de Processos de Negócios - BPM Texto na íntegra de: Um guia para iniciar estudos em BPMN (I): Atividades e sequência Blog da iprocess BPMN (Business Process Model and Notation) é uma notação gráfica que tem por objetivo prover uma gramática de símbolos para mapear, de maneira padrão, todos os processos de negócio de uma organização. Desde sua disponibilização formal em 2004, BPMN tem sido amplamente utilizada em organizações do mundo inteiro. Atualmente há uma grande oferta de ferramentas de mapeamento de processos(gratuitas e licenciadas) que oferecem suporte à notação. Devido à sua grande aceitação, BPMN está ajudando a disseminar conceitos relacionados a processos de negócio e é considerada hoje uma característica chave de qualquer iniciativa BPM. Dedicaremos os artigos semanais de novembro e dezembro para contribuir com o estudo progressivo dos elementos dede BPMN que compõem o nível 1 desta notação, utilizados para mapear processos em nível descritivo. Representando Processos com BPMN Em BPMN, um processo de negócio é representado através do encadeamento de eventos e atividades, ligados através de conectores que demonstram a sequência em que os mesmos são realizados. Além de eventos e atividades, outros elementos de controle de fluxo podem ser utilizados na modelagem para permitir a criação ou Prof. Erwin Alexander Uhlmann Guarulhos, de 64

39 unificação de fluxos paralelos que ocorram no decorrer de um mesmo processo de negócio. Processo de Compra de Refrigerante Exemplo de um processo mapeado utilizando BPMN O grande potencial de BPMN para representação de processos está no fato de que ela propõe um conjunto simplificado de elementos (atividades, eventos, gateways, conectores e swimlanes), mas que podem ser derivados para atender situações específicas de negócio, de forma que a documentação de um processo em nível de negócio possa adquirir profundidade técnica à medida que é preparado para a implementação. Nota: A especificação BPMN está documentada em inglês e não existe uma tradução oficial para o português. A tradução neste e nos próximos artigos é livre por parte dos autores, e pode ser diferente entre bibliografias ou ferramentas que adotem esta notação. Para mais informações sobre a documentação oficial e completa consulte Atividades (Activities) Atividades representam um trabalho realizado em uma etapa do processo de negócio. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

40 As atividades podem ser de dois tipos: Tarefa (task) Sub-processo (subprocess) Tarefa (Task) A tarefa é a atividade de trabalho atômica. Ela representa uma ação no processo que pode ser executada por uma pessoa ou um sistema. Visualmente é representada como um retângulo com bordas arredondadas, contendo sua descrição dentro da área da caixa. Exemplos de atividades que podem ser representadas através de tarefas são: Avaliar documentos Calcular impostos Elaborar parecer técnico Elaborar proposta comercial Cadastrar operação BPMN sugere alguns símbolos que podem ser adicionados à tarefa para representar visualmente sua utilização: Assim é possível distinguir visualmente que uma atividade é realizada por um usuário através do sistema se for simbolizada por uma Tarefa de usuário, enquanto uma tarefa Prof. Erwin Alexander Uhlmann Guarulhos, de 64

41 que pode ser executada automaticamente pelo sistema pode ser sinalizada como Tarefa automática. Uma tarefa executada por uma pessoa (usuário) e uma tarefa executada automaticamente (serviço) Conector de Sequência de fluxo (Sequence flow) O principal objetivo no mapeamento de um processo com BPMN é representar a sequência em que as atividades acontecem desde o seu início até a sua conclusão. Em BPMN Method & Style (2ed), Bruce Silver esclarece que o propósito de BPMN é representar a lógica do processo. A lógica do processo é visualmente demonstrada através do fluxo criado pelos conectores de sequência. No exemplo acima, o conector de sequência torna explícito que há uma sequência a ser realizada entre as atividades. A atividade Digitalizar documento só poderá ser realizada após a atividade Receber documento ser concluída. Da mesma forma, a atividade de Arquivar documento só poderá ser iniciada após o término da tarefa Digitalizar documento. O conector de fluxo de sequência é representado através de uma linha sólida com uma seta preenchida apontando para o destino (o próximo elemento do fluxo). Em um Prof. Erwin Alexander Uhlmann Guarulhos, de 64

42 processo de negócio, todos os elementos de fluxo precisam estar conectados uns aos outros através de um conector de sequência conforme a ordem em que devem ser realizados. É importante entender que, na interpretação de um processo BPMN, o conector de sequência implica que existe uma dependência entre as atividades conectadas, do tipo fim-início. Ou seja, a conexão significa que após a conclusão da atividade, a próxima atividade poderá ser iniciada. Um guia para iniciar estudos em BPMN (II): Gateways Blog da iprocess No artigo anterior, iniciamos o estudo da notação BPMN apresentando os elementos task e sequence flow, utilizados para representar a sequência lógica de atividades a serem executadas para a realização do processo. Neste artigo estudaremos um novo elemento de fluxo. Gateways são os elementos de BPMN responsáveis por controlar iterações do fluxo, criando caminhos alternativos ou paralelos no mapeamento do processo ou unificando fluxos para continuação em uma mesma sequência de atividades. Gateways são elementos chave na modelagem de processos de negócio, pois permitem descrever não apenas o dia feliz do processo, em que as atividades acontecem sempre da mesma maneira ou na mesma sequência, mas prever possíveis exceções conhecidas do negócio, ou beneficiar a duração do processo através da paralelização de atividades. O gateway é conectado ao fluxo através de setas de fluxo de sequência e é representado visualmente por um losango. O símbolo interno do losango identifica a interpretação lógica representada. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

43 Gateway exclusivo (Databased Exclusive Gateway) Representa uma condição de fluxo exclusiva, em que apenas um dos caminhos criados a partir do gateway será seguido, de acordo com uma informação a ser testada. Este gateway pode ser representado visualmente como o losango vazio ou com um marcador de x. Quando o processo em execução atingir este gateway, o processo deverá verificar a condição indicada, e apenas uma das saídas do gateway dará seguimento. Semanticamente, este gateway funciona como um ou, já que ou um ou outro caminho será seguido nunca mais de um. Os conectores de sequência de saída deste gateway podem apresentar descrições que ajudem a identificar qual a condição para que o fluxo siga por aquele caminho. Além de realizar separação de fluxos, o gateway também pode unificar fluxos distintos em uma única sequência de atividades. Neste caso, o gateway exclusivo implica no entendimento que, dos caminhos que convergem a ele, o primeiro que chegar dará continuidade no fluxo do processo. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

44 No exemplo acima, o gateway Resultado da avaliação testará o resultado da atividade anterior. Se na execução da atividade Avaliar artigo o usuário aceitar o conteúdo, o fluxo seguirá pela saída superior Conteúdo aceito, e as atividades Realizar revisão final do artigo e Publicar artigo serão realizadas. Se o usuário rejeitar o conteúdo, o fluxo seguirá pela saída Conteúdo rejeitado, e apenas a atividade Cancelar artigo será realizada. Por fim, se o usuário optar por requerer ajustes, o fluxo seguirá a sequência Requer ajustes, iniciando a atividade Ajustar artigo. Ao terminá-la, note que o fluxo seguirá novamente para a atividade de Avaliar artigo. Ainda no exemplo acima, note a utilização do gateway exclusivo para convergir dois dos fluxos criados. Isto garante que a atividade Comunicar partes interessadas só aconteça depois que a tarefa Publicar artigo ou a tarefa Cancelar artigo for executada, de acordo com o fluxo iniciado pelo gateway anterior. Gateway paralelo (Parallel Gateway) A paralelização de trabalho em um diagrama BPMN é possível com a utilização do gateway paralelo. Este gateway representa a divisão de um fluxo em dois ou mais que serão executados paralelamente. Todos os caminhos que saem deste gateway são executados. Este gateway é representado visualmente como o losango com um marcador de + dentro dele. Semanticamente, este gateway funciona como um e, já que um e outro caminho serão executados. Quando este gateway é utilizado para realizar a convergência de fluxos, ele garantirá que todos os fluxos paralelos sejam concluídos, chegando até ele antes de dar continuidade ao fluxo de saída. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

45 No exemplo acima, o primeiro gateway paralelo produz dois fluxos que serão executados paralelamente. Enquanto a tarefa Escrever artigo é realizada, as atividades Selecionar imagens e Tratar imagens também podem ser executadas. Ainda no exemplo acima, o segundo gateway faz a convergência dos fluxos, garantindo que a tarefa Realizar diagramação só seja executada depois que Escrever artigo e Tratar imagens tenham sido finalizadas. Gateway inclusivo (Databased Inclusive Gateway) Representa uma condição de fluxo inclusiva, em que pode haver uma combinação dos caminhos criados a partir do gateway, de acordo com uma informação a ser verificada. Este gateway é representado visualmente como o losango com um marcador de círculo dentro dele. Quando o processo em execução atingir este gateway, o processo deverá avaliar a condição relacionada, e uma ou mais das saídas do gateway poderão dar seguimento. Semanticamente, este gateway funciona como um e/ou, já que o caminho a ser seguido pode ser um e/ou outro, de acordo com as informações e a lógica do negócio. Quando este gateway é utilizado para realizar a convergência de fluxos, ele garantirá que todos os fluxos que estiverem em execução sejam concluídos, chegando até ele antes de dar continuidade à sequência de atividades. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

46 No exemplo acima, o gateway Documentos necessários testará o resultado da atividade anterior. Se na execução da atividade Identificar documentação necessária o usuário identificar a necessidade de um, dois, ou três dos documentos requeridos, cada um dos fluxos será executado. Por exemplo, se para um processo em execução for identificada a necessidade da Negativa civil e Negativa criminal, mas não a de débitos, o processo seguirá pelas saídas Negativa civil e Negativa criminal, mas não pela Certidão negativa de débitos. Assim, as atividades Anexar negativa civil e Anexar negativa criminal deverão ser executadas. Em outro processo, pode ser possível que uma combinação diferente de documentos seja requerida. Ainda no exemplo acima, note a utilização do gateway inclusivo para convergir os fluxos criados. Isto garante que a atividade Analisar validade dos documentos só aconteça depois que todos os fluxos que forem iniciados pelo gateway anterior sejam executados, para então a atividade ser iniciada. No exemplo citado, a tarefa de analisar validade dos documentos só será iniciada depois que as tarefas Anexar negativa civil e Anexar negativa criminal, mas sem que ocorra a atividade Anexar negativa de débitos. Algumas coisas importantes que devem ser observadas ao utilizar gateways: Diferente dos diamantes dos tradicionais fluxogramas, os gateways em BPMN não são apenas pontos de divisão binária do fluxo. É possível (e muito mais Prof. Erwin Alexander Uhlmann Guarulhos, de 64

47 vantajoso!) utilizá-los para realizar testes mais complexos do que o tradicional sim/ não. Isto vale para todos os tipos de gateway nesta notação. Nos gateways exclusivo e inclusivo, onde o fluxo é direcionado com base em uma condição, a informação a ser validada (para identificar que fluxo o gateway deve seguir) já deve ter sido obtida anteriormente no processo. Embora a notação não coloque isto como uma regra obrigatória, é sempre uma boa prática descrever, nos conectores de sequência que saem destes gateways com decisão, que valor resultante da condição deve ser verdadeiro para que o fluxo siga por aquele caminho. (Veja nos exemplos aplicados como os conectores de sequência que saem dos gateways exclusivo e inclusivo possuem descrições associadas às suas linhas.) Isto deixará o diagrama mais claro para a leitura dos que venham a consultá-lo futuramente! BPMN 2.0 possui outros tipos de gateways, como os baseados em eventos, por exemplo. estes gateways, entretanto, são utilizados em casos mais especializados (a partir do nível 2 analítico, de acordo com a classificação de Bruce Silver). Um guia para iniciar estudos em BPMN (III): Eventos de Início e Fim Blog da iprocess Este é o terceiro artigo de uma série dedicada ao estudo da notação BPMN básica, ou nível descritivo. No artigo anterior, descrevemos um importante elemento na representação de processos nesta notação, os gateways. Este artigo é dedicado ao esclarecimento de outro importante componente de fluxo em BPMN: os eventos. Eventos (Events) são elementos utilizados para representar a ocorrência de fatos em um processo. Prof. Erwin Alexander Uhlmann Guarulhos, de 64

Diagrama de Sequência

Diagrama de Sequência Diagrama de Sequência O Diagrama de Sequência é uma forma esquemática de representar a ordem com que partes do sistema trocam mensagens entre si e acontecem, e tem por objetivo demonstrar o comportamento

Leia mais

Introdução à UML. Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 12 de 29

Introdução à UML. Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 12 de 29 Introdução à UML O projeto do software é um esquema visual que permite a criação do projeto antes de sua execução ou programação. A Unified Modeling Language (UML), para Guedes (2011) é uma linguagem visual

Leia mais

MODELAGEM DE SISTEMAS

MODELAGEM DE SISTEMAS MODELAGEM DE SISTEMAS Da Orientação a Objetos à UML UHLMANN, Erwin A. Título do trabalho. Instituto Siegen. Guarulhos, 2015 Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015

Leia mais

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

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

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

Análise de Sistemas 4º Bimestre (material 3) Análise de Sistemas 4º Bimestre (material 3) Permite a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos, bem como demonstrar como elas se relacionam, complementam

Leia mais

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

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo DCC / ICEx / UFMG Primeiro Diagrama de Classes Diagrama de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Professor Aluno matricula Outro Diagrama de Classes Diagrama de Classes Serve de

Leia mais

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli Um dos diagramas mais importantes da UML; Permite visualizar as classes que comporão o sistema, seus atributos e métodos; Demonstra como as classes do diagrama se relacionam e transmitem informações entre

Leia mais

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

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso. Engenharia de Software Aula 07 Tópicos da Aula Introdução à UML e Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 28 Março 2012 A

Leia mais

UML UNIFIED MODELING LANGUAGE LINGUAGEM DE MODELAGEM UNIFICADA

UML UNIFIED MODELING LANGUAGE LINGUAGEM DE MODELAGEM UNIFICADA UML UNIFIED MODELING LANGUAGE LINGUAGEM DE MODELAGEM UNIFICADA UML - Introdução Não é uma linguagem de programação É uma linguagem de modelagem e projeto É uma linguagem padrão para modelagem orientada

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br O que é?? 2 A UML

Leia mais

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

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

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas Diagrama de Atividades Diagrama de Caso de Uso ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br 1 - Conceitos 2 UML é uma linguagem para: Especificar Visualizar Construir...

Leia mais

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

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago Diagramas de Classes Conceitos Básicos O caso de uso fornece uma perspectiva do sistema de um ponto de vista externo (do ator) Internamente os objetos colaboram para atender às funcionalidades do sistema

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

Leia mais

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

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos Programação para Games II Professor Ariel da Silva Dias Orientação a Objetos Pacotes Pacotes são um modo de organizar classes e interfaces Um programa pode ser formado por centenas de classes individiduais;

Leia mais

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

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

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

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.

Leia mais

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

Análise de Sistemas. Visão Geral - Orientação a Objetos. Prof. José Honorato Ferreira Nunes Análise de Sistemas Visão Geral - Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas

Leia mais

UML - Diagrama de Classes

UML - Diagrama de Classes UML - Diagrama de Classes Este é um dos mais importantes e utilizados diagramas da UML, cujo objetivo principal é apresentar as classes que compõem o sistema com seus respectivos atributos e métodos, assim

Leia mais

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1. Banco de Dados Aula 1.5 - Modelo ER Bruno Neiva Moreno Instituto Federal do Rio Grande do Norte Campus Nova Cruz bruno.moreno@ifrn.edu.br 1/40 Modelo Entidade Relacionamento Descreve objetos (entidades),

Leia mais

Lista Diagrama de Casos de Uso

Lista Diagrama de Casos de Uso Lista Diagrama de Casos de Uso 1. Qual é a notação da UML para um caso de uso? Qual é a notação da UML para um ator? Qual a notação utilizada na UML para o relacionamento de generalização? 2. Defina o

Leia mais

Modelagem de Processos

Modelagem de Processos Modelagem de Processos Prof.: Fernando Ascani Itens Estruturais Classes Uma Classe é um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos. É representada graficamente

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer Introdução As funcionalidades de um SOO são realizadas internamente através de colaborações entre objetos. Externamente,

Leia mais

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência Diagramas Os diagramas utilizados pela UML são compostos de nove tipos: diagrama de use case, de classes, de objecto, de estado, de sequência, de colaboração, de actividade, de componente e o de instalação/execução.

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite Modelo Conceitual Análise e Projeto de Sistemas Avançados Aula 5 Allan Rodrigo Leite Modelo Conceitual Oferece uma visão das informações que são gerenciadas pelo sistema Representação e transformação da

Leia mais

Panorama da notação UML

Panorama da notação UML Panorama da notação UML A notação UML (Unified Modeling Language linguagem de modelagem unificada) evoluiu desde que foi adotada a primeira vez como um padrão em 1997. Uma revisão maior para o padrão foi

Leia mais

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU Aula 4 POO 1 Análise OO Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Linguagem de Modelagem Unificada UML

Linguagem de Modelagem Unificada UML Linguagem de Modelagem Unificada UML Parte 1 Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Tópicos abordados Paradigma Orientado a Objetos Linguagem UML e seus principais diagramas Diagramas

Leia mais

Modelagem ou Diagrama de Caso de Uso

Modelagem ou Diagrama de Caso de Uso Modelagem ou Diagrama de Caso de Uso Objetivos principais: Delimitar o contexto de um sistema Documentar os requisitos Ajudar no entendimento dos requisitos Descrever os requisitos funcionais Facilitar

Leia mais

04/11/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE CLASSE

04/11/2016 UML. Prof. Esp. Fabiano Taguchi  DIAGRAMAS DE CLASSE UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com DIAGRAMAS DE CLASSE 1 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES O diagrama de classes serve de apoio para

Leia mais

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos UML Aula I Diagramas de Caso de Uso Ricardo Argenton Ramos Engenharia de Software II 2016.1 25/04/2016 Um Exercício Como você pode representar? Uma casa de 2 andares, 4 quartos, 2 banheiros, 1 sala, 1

Leia mais

Introdução a UML e seus diagramas

Introdução a UML e seus diagramas Introdução a UML e seus diagramas A Unified Modelling Language (UML) é uma linguagem ou notação de diagramas para especificar, visualizar e documentar modelos de software orientados por objetos. O UML

Leia mais

Modelagem de Processos. Prof a. Silvia Inês Dallavalle de Pádua

Modelagem de Processos. Prof a. Silvia Inês Dallavalle de Pádua Modelagem de Processos Prof a. Silvia Inês Dallavalle de Pádua 1 BIBLIOGRAFIA DEBEVOISE, T;GENEVA,R. The microguide Process Modeling in BPMN. Booksurge, 2008. VALLE, R.; OLIVEIRA, S.B. Análise e modelagem

Leia mais

Modelos de Sistemas Casos de Uso

Modelos de Sistemas Casos de Uso Modelos de Sistemas Casos de Uso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Casos de Uso Objetivos Principais dos Casos de Uso: Delimitação do contexto de

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

Modelagem de Casos de Uso (Parte 1)

Modelagem de Casos de Uso (Parte 1) Modelagem de Casos de Uso (Parte 1) Introdução (1) Objetivos Principais dos Casos de Uso: Delimitação do contexto de um sistema Documentação e o entendimento dos requisitos Descrição dos requisitos funcionais

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES. MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES lucelia.com@gmail.com Externamente ao sistema, os atores visualizam resultados de cálculos, relatórios produzidos, confirmações de requisições solicitadas,

Leia mais

Análise e Projeto de Software Parte I. Marcos Dósea

Análise e Projeto de Software Parte I. Marcos Dósea Análise e Projeto de Software Parte I Marcos Dósea marcosdosea@gmail.com Agenda Apresentação do professor Apresentação da disciplina Metodologia e avaliação Apresentação do professor Marcos Barbosa Dósea

Leia mais

Engenharia de Software. UML Unified Modeling Language

Engenharia de Software. UML Unified Modeling Language Engenharia de Software UML Unified Modeling Language UML - INTRODUÇÃO UML é um acrônimo para a expressão Linguagem de Modelagem Unificada. Pela definição de seu nome, vemos que a UML é uma linguagem que

Leia mais

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Relacionamentos Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Dependência Generalização Associação Realização Relacionamentos - Dependência

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec Sumário Sobre o autor...11 Estrutura deste Guia...12 Capítulo 1 Introdução à UML...13

Leia mais

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

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem? DCC / ICEx / UFMG A Linguagem UML A Linguagem UML Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo UML (Linguagem de Modelagem Unificada) É uma notação gráfica (visual) para projetar sistemas OO Não

Leia mais

Introdução à UML. Prof. Jesus José de Oliveira Neto

Introdução à UML. Prof. Jesus José de Oliveira Neto Introdução à UML Prof. Jesus José de Oliveira Neto UML Linguagem de Modelagem Unificada Linguagem visual utilizada para modelar softwares baseados no paradigma de orientação a objetos UML não é uma linguagem

Leia mais

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

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

Tópicos da Aula. Alguns Diagramas UML. Diagramas Principais. Diagramas de Interação: Sequência e Colaboração. Tipos de Diagramas de Interação

Tópicos da Aula. Alguns Diagramas UML. Diagramas Principais. Diagramas de Interação: Sequência e Colaboração. Tipos de Diagramas de Interação Engenharia de Software Aula 10 Tópicos da Aula Diagramas de Interação: Sequência e Colaboração Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 09 Abril 2012 Alguns Diagramas UML

Leia mais

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

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010 1 1 Introdução 1.1 Teoria dos Sistemas 1.2 Constituição dos sistemas 1.3 Natureza dos sistemas 1.4 Parâmetros do sistema 1.5 Descrição de sistemas 1.6 Desafios enfrentados no desenvolvimento 1.7 Perfil

Leia mais

PROJETO DE DESENVOLVIMENTO DE SOFTWARE

PROJETO DE DESENVOLVIMENTO DE SOFTWARE PROJETO DE DESENVOLVIMENTO DE SOFTWARE Professor: Diego Oliveira Aula 12: Diagrama de Classes Diagrama de Classes Seu principal objetivo é permitir a visualização das classes que vão compor o sistema,

Leia mais

PROJETOS DE SISTEMAS DE INFORMAÇÃO

PROJETOS DE SISTEMAS DE INFORMAÇÃO PROJETOS DE SISTEMAS DE INFORMAÇÃO Aula 9 - Modelagem de Processos com BPMN Prof. Fabiano Nezello, Msc :: Tipos de Notação para modelagem de processos Tipos de Modelagem Hierarquia Fluxograma Rummler-Brache

Leia mais

UML. Modelando um sistema

UML. Modelando um sistema UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema

Leia mais

Engenharia de Software. Projeto de Arquitetura

Engenharia de Software. Projeto de Arquitetura Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

[BPM CBoK, v3.0] CONCEITO DE PROCESSO:

[BPM CBoK, v3.0] CONCEITO DE PROCESSO: Metodologias e estruturas de trabalho padronizadas asseguram que a modelagem, análise e transformação de processos siga um caminho comumente aceito para atingir os melhores resultados. CONCEITO DE PROCESSO:

Leia mais

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira Engenharia de Software Aula 10 Representação dos Conceitos de Orientação a Objetos Prof. Me. Rogério Ferreira 2 Roteiro Representação dos Conceitos OO Mensagens Navegabilidade Pacotes Encapsulamento Herança

Leia mais

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER. Modelos Banco de dados Professor: Jarbas Araújo professorjarbasaraujo@gmail.com CENTRO EDUCACIONAL RADIER Projeto de banco de dados Todo bom sistema de banco de dados deve apresentar um projeto, que visa

Leia mais

Simbolos/Componentes desse diagrama:

Simbolos/Componentes desse diagrama: DIAGRAMA DE CASO DE USO Simbolos/Componentes desse diagrama: ATORES CASOS DE USO LINHAS: Associações (Associam os casos de usos a outros casos de uso e também a atores) Especialização / Generalização (características

Leia mais

Introdução a UML. Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski

Introdução a UML. Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski Introdução a UML 1 Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski rita.gaieski@qi.edu.br 2 Introdução a UML É uma linguagem criada para especificação, construção, visualização e documentação

Leia mais

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

Engenharia de Software. Aula 2.4 Modelos de Casos de Uso. Prof. Bruno Moreno Engenharia de Software Aula 2.4 Modelos de Casos de Uso Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Comportamento do Sistema Refere-se às funcionalidades do sistema Requisitos funcionais; O comportamento

Leia mais

Especificações de Casos de Uso e Regras de Negócio

Especificações de Casos de Uso e Regras de Negócio Especificações de Casos de Uso e Regras de Negócio Régis Patrick Silva Simão Régis Simão Especificações de Casos de Uso e Regras de Negócio 1/41 Introdução Agenda Objetivos das Especificações de Casos

Leia mais

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes Engenharia de Software Aula 09 Tópicos da Aula Projeto de Software Revisão de orientação a objetos Projeto orientado a objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 04

Leia mais

Business Process Modeling and Notation

Business Process Modeling and Notation Business Process Modeling and Notation Material adaptado a partir do material de: Prof a. Dr a. Ellen Francine Barbosa Estagiário PAE Anderson S. Marcolino Material de apoio Processos Organizações executam

Leia mais

BANCO DE DADOS. Bacharelado em Sistemas de Informação MODELAGEM DE DADOS. Profº Luciano Roberto Rocha. Itararé, 2º período

BANCO DE DADOS. Bacharelado em Sistemas de Informação MODELAGEM DE DADOS. Profº Luciano Roberto Rocha. Itararé, 2º período BANCO DE DADOS Bacharelado em Sistemas de Informação MODELAGEM DE DADOS Profº Luciano Roberto Rocha Itararé, 2º período CONCEITOS MODELO ENTIDADE RELACIONAMENTO Entidade Relacionamento Atributos Cardinalidade

Leia mais

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos: Motivação Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos: Modelo de Entidades e Relacionamento (MER) UML (linguagem de modelagem universal) Fases de um projeto de

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

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

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML. ESPECIALIZAÇÃO EM GESTÃO DE TECNOLOGIAS DA INFORMAÇÃO Análise Orientada a Objetos AULA 03 Análise Orientada a Objetos; O Paradigma de Objetos; A UML. Prof. Sandrerley R. Pires Goiânia, agosto de 2003 Conceitos

Leia mais

BPMN. Prof a. Silvia Inês Dallavalle de Pádua

BPMN. Prof a. Silvia Inês Dallavalle de Pádua BPMN Prof a. Silvia Inês Dallavalle de Pádua 1 BIBLIOGRAFIA DEBEVOISE, T;GENEVA,R. The microguide Process Modeling in BPMN. Booksurge, 2008. VALLE, R.; OLIVEIRA, S.B. Análise e modelagem de processo de

Leia mais

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO s Representam os tipos de objetos existentes no modelo Descritas a partir de seus atributos, operações e restrições Podem ser organizadas segundo uma estrutura de generalização/especialização

Leia mais

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

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

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.

Leia mais

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

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42 Diagrama de Classes Régis Patrick Silva Simão Régis Simão Diagrama de Classes 1/42 Agenda Introdução Objetos Classes Atributos Operações & Métodos Relacionamentos Relacionamento: Associação Nome de Relacionamento

Leia mais

Introdução a UML (Unified Modeling Language)

Introdução a UML (Unified Modeling Language) Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Diagramas comportamentais UML Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

Leia mais

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

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer BANCO DE DADOS I Prof. Luiz Antônio Vivacqua C. Meyer Projeto de Banco de Dados Etapas do Desenvolvimento de um Projeto de Sistemas: 1. Levantamento de Requisitos a. Requisitos Funcionais b. Requisitos

Leia mais

Especificação de Requisitos e Documento de Projeto

Especificação de Requisitos e Documento de Projeto SISTEMA DE AGENDAMENTO DE VISITAS DO JARDIM BOTÂNICO DA UNIVERSIDADE FEDERAL DE SANTA MARIA Especificação de Requisitos e Documento de Projeto Willian da Rocha Lopes Manucello Santa Maria, RS 27 de Junho

Leia mais

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de

Leia mais

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO Sumário PREFÁCIO...3 MODELO DA DOCUMENTAÇÃO...3 1. INTRODUÇÃO AO DOCUMENTO...3 1.1. Tema...3 2. DESCRIÇÃO

Leia mais

Programação Orientada a Objetos JAVA - NETBEANS

Programação Orientada a Objetos JAVA - NETBEANS Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento

Leia mais

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

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos: Módulo 6 Análise Orientada a Objeto É interessante observar como a análise orientada a objeto utiliza conceitos que aprendemos há muito tempo: objetos, atributos, classes, membros, todos e partes. Só não

Leia mais

Levantamento de Classes

Levantamento de Classes Levantamento de Classes Conceito de Classe e Objeto Principais primitivas ou elementos de composição de softwares orientados a objetos Objeto elemento componente de um sistema computacional entidade que

Leia mais

DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO

DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO SUMÁRIO Parte I Modelagem do Software Documento de Requisitos 1. Introdução 2. Descrição Geral do Sistema 3. Requisitos Funcionais 4. Requisitos

Leia mais

ASSOCIAÇÃO ENTRE CLASSES

ASSOCIAÇÃO ENTRE CLASSES Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 5 ASSOCIAÇÃO ENTRE CLASSES O objetivo deste texto é rever, um pouco mais detidamente, o relacionamento

Leia mais

PCS3413 Engenharia de Software e Banco de Dados

PCS3413 Engenharia de Software e Banco de Dados PCS3413 Engenharia de Software e Banco de Dados Aula 7 Escola Politécnica da Universidade de São Paulo 1 Diagramas de Interação Diagramas de Sequência Diagrama de Comunicação 2 Solange N. A. de Souza Principais

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade II - Processos de Negócio Identificação Conceitos Modelagem - BPM - UML Processos x Requisitos 1 Processo de negócio CONCEITO Um processo de negócio, processo organizacional

Leia mais

Unidade 2 Modelo Conceitual

Unidade 2 Modelo Conceitual Unidade 2 Modelo Conceitual UFCG/CEEI/DSC Banco de Dados I Prof. Cláudio Baptista, PhD Motivação Motivação Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos: MER -

Leia mais

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( ) ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: plentz@inf.ufsc.br URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da

Leia mais

Curso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos

Curso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos Curso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos Prova A 01)O que é UML (Unified Modeling Language)? Cite pelo menos três exemplos de diagramas Comportamentais e três

Leia mais

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais