Verificação Formal de Workflow

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

Download "Verificação Formal de Workflow"

Transcrição

1 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Verificação Formal de Workflow Vinicius T. Petrucci 1, Rogério A. de Carvalho 2, Marcelo F. Felix 2 1 Departamento de Ciência da Computação Universidade Candido Mendes Campos dos Goytacazes RJ Brasil 2 Centro Federal de Educação Tecnológica de Campos Campos dos Goytacazes RJ Brasil vpetrucci@gmail.com, {ratem, fagundes}@cefetcampos.br Abstract. Workflow specifications can describe concurrent activities and, in particular cases, can also add time constraints on execution of those activities. When dealing with critical activities or when considerable reliance on their behavior is needed, formal verification is a quite attractive alternative. Our formal approach uses a semantic based on process calculi for a basic workflow language aiming at automatically generating formal specifications on process algebra (CCS Milner) in order to be verified using model checking through appropriated tools (CWB-NC). Resumo. Especificações de workflow podem descrever atividades concorrentes e, em alguns casos, acrescentar restrições temporais sobre a execução dessas atividades. Para atividades de caráter crítico ou que exijam confiabilidade, a verificação formal dessas especificações é uma alternativa bastante atraente. Nossa abordagem formal busca atribuir uma semântica baseada em cálculo de processos para uma linguagem de descrição de workflow e, a partir daí, gerar automaticamente especificações formais em alguma álgebra de processos (CCS Milner) que sejam verificáveis por meio de model checking, usando ferramentas apropriadas (CWB-NC). 1. Introdução O interesse em workflow tem aumentado nos últimos anos. Uma das razões é a utilização dessa tecnologia para coordenar interações entre Web Services, os quais permitem integrar aplicações baseadas na Web. O desenvolvimento de um grande sistema usando Web Services começa com a especificação do fluxo de controle e informação entre os serviços o Workflow. Diferentes linguagens de definições de processos de negócio foram desenvolvidas para especificar workflow, podemos citar a BPML [4], BPEL4WS [3], XPDL [2] e diagramas de atividades da UML 2.0 [13]. O principal benefício de usar especificação formal em descrições de workflow é o de permitir verificação de propriedades dessas descrições. Com auxílio de uma rigorosa notação matemática e ferramentas de verificação formal, podemos nos certificar de que propriedades importantes do modelo estão corretas e corrigir erros o mais cedo possível, reduzindo os custos de testes e de erros encontrados depois do modelo já implementando e em execução. Além do mais, especificações de workflow permitem expressar atividades em concorrência. Alguns desafios encontrados em um ambiente com atividades concorrentes envolvem evitar que atividades interfiram umas nas outras, como uma atividade

2 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho impedindo a continuação de outra, ou situações onde atividades interagem entre si de forma incorreta. Encontrar erros através de testes e depuração é muito mais difícil em ambientes concorrentes do que na forma seqüencial. As interações entre as tarefas podem ser diferentes a cada momento em que o sistema é executado, e falhas podem surgir mesmo quando um sistema já está em funcionamento há anos. Por essas razões, especificação e verificação formal se tornam uma alternativa bastante atraente no caso de sistemas de workflow. A abordagem formal aqui descrita busca atribuir uma semântica baseada em cálculo de processos para uma linguagem básica de descrição de workflow e, a partir daí, gerar automaticamente especificações formais em CCS [22] que sejam verificáveis por meio de model checking, usando ferramentas apropriadas (e.g. CWB-NC [20]). A organização do artigo é descrita a seguir. Na Seção 2 é discutida a importância de verificação em workflow e alguns trabalhos relacionados. Na Seção 3 é definido um workflow básico, envolvendo os elementos principais de um workflow. Na Seção 4 é apresentada a linguagem CCS utilizada para especificar sistemas concorrentes. Na Seção 5 é descrito o mapeamento de elementos de workflow em expressões CCS. A Seção 6 mostra um exemplo de workflow traduzido em expressões CCS a fim de fazer verificações formais utilizando a ferramenta CWB-NC. A Seção 7 é a parte de conclusão e apresentação de alguns trabalhos futuros. 2. Verificação de workflow Nos últimos anos, diversas pesquisas foram realizadas com enfoque na verificação formal de processos de negócio. Entre as várias abordagens formais podemos citar o uso de state charts (como em [7]); modelos de workflow baseados em Redes Petri [14, 16, 15]; e o uso de álgebra de processos, como CCS (Calculus of Communicating Systems) [8] e novas propostas usando π-calculus [9, 10, 11], apesar de ainda não haver até o momento uma contribuição prática da noção de mobilidade para descrição de workflow. Há também uma proposta mapeando elementos de workflow na ferramenta para verificação de sistemas de tempo real UPPAAL [19]. Na modelagem de processos de negócio várias propriedades devem ser verificadas, antes de o modelo ser implementado. Para isso utilizamos model checking. Model checking é uma técnica automática que, dado um modelo de transição de estados finitos de um sistema e uma propriedade em alguma lógica apropriada (tal como lógica temporal), sistematicamente verifica a validade desta propriedade [5]. Model checking é uma abordagem automática geral para verificação formal e é aplicada em áreas como verificação de hardware e engenharia de software. Essas propriedades verificadas através de model checking incluem a presença de deadlocks, livelocks; e outras como safety e liveness. Temos um deadlock quando uma atividade A espera pela resposta de uma requisição a atividade B, só que a atividade B espera pela atividade A terminar para prosseguir. Então há um impasse entre as duas atividades, uma esperando pela outra e nunca concluem suas atividades. A condição circular conhecida como livelock ocorre quando uma atividade A repassa um item de trabalho para a atividade B, e esta repassa o mesmo item de trabalho de volta para a

3 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho atividade A sem produzir nenhum avanço ou novo resultado. Propriedades do tipo safety: o processo de negócio P irá sempre satisfazer uma certa propriedade. Por exemplo, o processo irá sempre terminar corretamente. Propriedades do tipo liveness: o processo de negócio P irá em algum momento satisfazer uma certa propriedade. Por exemplo, o processo irá em algum momento terminar corretamente. Este trabalho abstrai a noção de tempo e dados. As verificações feitas serão em relação ao controle de fluxo dos processos, como decisões e sincronizações. 3. Definição de Workflow A Workflow Management Coalition (WfMC) é uma organização com objetivo de desenvolver padrões e terminologias em tecnologia de workflow. No presente trabalho utiliza-se a padronização proposta pela WfMC. De acordo com a WfMC, workflow é a automação total ou parcial de um conjunto de atividades interligadas, que coletivamente alcançam um objetivo de negócio [1]. Durante a execução destas atividades podem ocorrer trocas de documentos, informações ou tarefas entre os participantes do workflow com a finalidade de realizar alguma ação. Esta automação é realizada de acordo com um conjunto de regras de procedimento. Um workflow normalmente consiste em atividades. Atividade é uma unidade atômica que realiza algum tipo de trabalho, não podendo ser subdividida [12]. Entre as atividades podem existir dependências em relação a controle de fluxo (processo). Essa perspectiva do processo é muito importante, uma vez que o núcleo de qualquer sistema de informação é essencialmente formado por processos. De forma a representar depedências entre atividades, a WfMC define os elementos básicos de controle de fluxo AND-Split, AND-Join, OR-Split 1, OR-Join [1]. Esses elementos servem para modelar rotas sequenciais, condicionais e paralelas e também estão identificados através dos padrões analisados por [17, 18], na primeira categoria dos padrões ( Basic Control Flow Patterns ). O elemento AND-Split é usado para dividir execuções de fluxos de atividades concorrentemente. O AND-Join é utilizado para sincronizar fluxos concorrentes e convergi-los em um único fluxo de controle. O elemento OR-Split representa o caso onde apenas um fluxo é escolhido quando há outros fluxos alternativos. Já o elemento OR-Join representa a união de fluxos em um único só, não havendo sincronização. Utilizando uma simples notação gráfica [19], os elementos básicos de controle são mostrados na Figura 1. Formalmente, um workflow é definido por: 1. Um conjunto O de objetos workflow. O é a união do conjunto de atividades A = {a 1,..., a n } e do conjunto de objetos de controle C = {c 1,..., c m }. Um objeto de controle pode ser definido por uma função tipo : C {as, aj, os, oj} que mapeia cada objeto o nos tipos: AND-Split, AND-Join, OR-Split e OR-Join, respectivamente. 2. Uma relação tran O O de transições. Se tran(a, b), isto é, (a, b) tran, então existe uma transição direcionada do objeto a ao objeto b. 1 Alguns autores utilizam XOR-Split para melhor definir decisão, pois na verdade a escolha entre atividades é exclusiva.

4 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Figura 1. Elementos de um workflow básico. 3. Uma função nome : A N retorna o nome de uma atividade onde N é um conjunto de nomes. 4. Duas atividades especiais: ai A como atividade inicial e af A como atividade final. 4. CCS CCS foi introduzido para verificar sistemas concorrentes [22]. Os conceitos fundamentais em CCS são processos, que representam o comportamento padrão de algum objeto, e eventos ou ações atômicas iniciadas pelo sistema ou por seu ambiente. Processos são definidos por equações algébricas e se envolvem em novos processos ao executar alguma ação. Processos simples podem ser combinados de várias maneiras (seqüencialmente, paralelamente, usando seleção etc.) com a finalidade de descrever sistemas mais complexos. A interação entre processos é feita através de um par de portas complementares. Para isso, precisamos definir um conjunto de ações (ou portas/canais de comunicação) onde fazemos a distinção entre leitura e escrita (indicada pelo uso do sublinhado). Temos também a ação invisível τ que é criada quando dois processos sincronizam. O mais básico dos processos é o processo 0 ( nil ). Ele não realiza ação alguma Sintaxe de CCS Seja Act o conjunto de ações tal que α e α Act. Seja τ / Act um símbolo distinto representando a ação especial invisível, seja α, β Act {τ}, Act Act, e seja 0 o processo vazio. Então 0 é uma expressão CCS e se P, Q são expressões CCS, também são α P, P + Q, P Q, P [α/β], P \Act. Abaixo temos informalmente as cinco operações básicas em CCS: 1. Prefixo a.p : o processo executa a ação a e depois se comporta como o processo P ; 2. Sumarização P +Q: o processo se comporta como P ou Q (operador de escolha); 3. Composição P Q: é o processo em P e Q executam independentemente e podem se comunicar via portas complementares (e.g. a e a); 4. Substituição P [a/b]: renomeia toda ocorrência do nome b por a no processo P ;

5 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Restrição P \a\b: delimita o escopo de nomes dos canais a e b somente ao processo P. 5. Elementos de Workflow em CCS Esta seção descreve o mapeamento entre os elementos encontrados em um modelo básico de workflow em expressões CCS. Assim, para todo objeto workflow o O, definimos o objeto P o. Informalmente, P o deve ser visto como o processo que é o ponto de entrada de um objeto workflow o Atividade e Transição Para toda atividade a A, traduzimos a atividade em um processo CCS: P a = nome(a) P o Nesta equação temos que o processo P a é definido pela execução da atividade (ação) com seu próprio nome retornado pela função nome(a), seguido da execução de um novo processo P o, sendo que P o só será definido se houver transição definida por tran(a, o). Para a atividade que não é seguida da execução de outra atividade, isto é, não existe tran(a, o), a definição de P a será a seguinte: P a = nome(a) 0 Abaixo temos dois exemplos ilustrativos: Figura 2. (a) Atividade A. (b) Atividade A seguida pela atividade B. O exemplo da Figura 2a é traduzido em: P a = a 0 E o exemplo da Figura 2b é traduzido em: P a = a P b P b = b 0 Caso logo após um objeto o tenha um objeto j de sincronização AND-Join, usaremos um canal de comunicação (chamado ack) para sinalizar que neste caso há um momento de sincronização. Formalmente, se tran(o, j) (j C) (tipo(j) = aj), então definimos P o para: P o = nome(o) (ack nome(o) 0 P j ) A equação acima escreve no canal de comunicação ack. Abaixo veremos que o processo P o representando o elemento AND-Join em CCS irá esperar pela leitura nesse mesmo canal, realizando assim a sincronização entre as atividades.

6 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Atividades em Paralelo e Sincronização AND-Split Para todo (c C) tipo(c) = as, temos: P as = P o1 P o2 Na equação temos que o processo P as é definido por executar paralelamente os processos P o1 e P o2, que são definidos se houver transição definida por tran(c, o1) e tran(c, o2), respectivamente. AND-Join Para todo (c C) tipo(c) = aj, temos: P aj = ack o1 ack o2 P o O processo P o é definido se houver transição definida por tran(c, o). Os canais ack o1 e ack o2 são definidos anteriormente pelas atividades especiais que que são executadas em paralelo e usamos os canais no processo de sincronização em P aj Decisão e União entre Atividades OR-Split Para todo (c C) tipo(c) = os, temos: P os = P o1 + P o2 Na equação temos que o processo P os é definido por uma escolha entre executar o processo P o1 ou P o2, que são definidos se houver transição definida por tran(c, o1) e tran(c, o2), respectivamente. OR-Join Para todo (c C) tipo(c) = oj, temos: P oj = P o O processo P o é definido se houver transição definida por tran(c, o). Neste caso podemos substituir a ocorrência do processo P oj diretamente por P o, pois nesse caso não há sincronização Um Exemplo Abaixo mostramos um exemplo utilizando os elementos de workflow e como este é traduzido para expressões em CCS. Traduzindo o workflow de exemplo da Figura 3 para expressões em CCS, temos: P a = a P as P as = P b P c P b = b P d P c = c P os P os = P e + P f P d = d (ack d 0 P aj ) P e = e (ack e 0 P aj ) P f = f P oj

7 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Figura 3. Exemplo de workflow. P aj = ack d ack e P g P g = g P oj P oj = P h P h = h.0 Observe que P d e P e representam casos especiais de atividades, que utilizam o canal de comunicação ack para sinalizar sincronização definida pelo processo P aj. 6. Ambiente de Verificação Nesta seção estamos interessados na verificação de algumas propriedades importantes no modelo de workflow, especificado em CCS. Para isso, usamos a ferramenta CWB-NC (Concurrent Workbench of the New Century) [20] que implementa a técnica de model checking [5]. Quando usamos a técnica de model checking, precisamos que o sistema seja definido em alguma notação formalmente precisa (no nosso caso, em CCS) e que seja definida uma propriedade que esse sistema deve ter, expressada através de uma fórmula lógica. Essa fórmula define o comportamento que o sistema deve ou não deve possuir quando é executado. A lógica para expressar essas fórmulas contém operadores temporais que permitem descrever como o sistema se comporta com o passar do tempo em vez de simplesmente descrever uma caracteristica do sistema num dado momento específico no tempo. Usando tal lógica temporal podemos fazer afirmações sobre propriedades como: Em algum momento um evento a irá ocorrer ou É sempre verdade que depois de um evento a, o evento b em algum momento ocorre.

8 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Uma execução do sistema é uma sequência de estados. A lógica temporal usa proposições atômicas para fazer afirmações sobre esses estados. Essas proposições são afirmações elementares que, em um certo estado, possuem um valor verdadeiro bem definido. Por exemplo, consideramos que aberto, pedido aceito são proposições. Iremos de maneira intuitiva tratar as fórmulas em lógica temporal nesta seção. Um estudo aprofundado pode ser encontrado em [5] e [21]. As lógicas temporais possuem algumas variantes e neste trabalho optamos pela lógica chamada µ-calculus que é suportada pelo CWB-NC, acrescentada de operadores da lógica chamada CTL (Computation Tree Logic). A lógica CTL, assim como as outras lógicas temporais usadas por ferramentas de model checking, servem para expressar formalmente propriedades em relação a execução do sistema. Uma breve visão intuitiva dos operadores temporais que iremos usar da lógica CTL codificada em termos da lógica µ-calculus é apresentada a seguir. Os seguintes operadores apresentam as diferentes fases durante o tempo: G φ: é verdade φ em todos os estados futuros; F φ: é verdade φ em algum estado futuro; X φ: é verdade φ no próximo estado; φ 1 U φ 2 : é verdade φ 2 num determinado estado e φ 1 tem que ser verdade até esse estado. Aplicados a esses operadores, usamos os quantificadores A indicando ao longo de todos os caminhos e E indicando ao longo de pelo menos um caminho. Em µ-calculus, negação, conjunção e disjunção são representados respectivamente por: not, \/ e /\. Possui também duas proposições atômicas: verdadeiro e falso (tt e ff). Um pequeno exemplo de uma fórmula para tratar exclusão mútua entre dois processos: Apenas um único processo pode estar na região crítica num dado momento. Pode ser expresso intuitivamente dessa forma: AG (P 1 na regiaocritica P 2 na regiaocritica) Nesse caso, ao longo de todos os caminhos, em todos os estados, não pode ser verdade a proposição P 1 na regiaocritica e P 1 na regiaocritica ao mesmo tempo. Vamos aplicar a mesma idéia na verificação do modelo workflow da Figura 4, que mostra um exemplo de processo de negócio de pedido de livros (adaptado de [16]). O processo inicia quando um pedido é recebido. O pedido é processado verificando o estoque e o cliente concorrentemente. Se o livro está no estoque, então o pedido é enviado. A atividade Envia fatura espera até o pedido ser enviado e o cliente verificado, aí então ela é executada. E caso um cliente verificado não esteja de acordo, o processo é finalizado. Por fim, o processo então espera receber o pagamento e logo após processa o pagamento recebido. O mapeamento do processo de negócio da Figura 4 em CCS segue abaixo: proc P_inicial = inicial.p_recebepedido proc P_recebepedido = recebepedido.p_as proc P_as = P_verifestoque P_verifcliente proc P_verifestoque = verifestoque.p_os1 proc P_verifcliente = verifcliente.p_os2

9 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Figura 4. Um processo de negócio de pedido de livros. proc P_reporestoque = reporestoque.p_enviapedido proc P_os1 = P_reporestoque + P_enviapedido proc P_os2 = ( ack_or2.nil P_aj) + P_final proc P_enviapedido = enviapedido.( ack_enviapedido.nil P_aj) proc P_aj = ack_or2.ack_enviapedido.p_enviafatura proc P_enviafatura = enviafatura.p_recebepagamento proc P_recebepagamento = recebepagamento.p_processapagamento proc P_processapagamento = processapagamento.p_final proc P_final = final.nil Primeiramente gostaríamos de saber se nosso processo de negócio a partir do estado inicial chega ao estado final, isto é, termina corretamente. Para isso definimos a seguinte propriedade: prop termina = AG [inicial](af<final>tt) As fórmulas em µ-calculus são interpretadas em relação ao sistema de estados. Todo estado satisfaz tt, enquanto nenhum estado satisfaz ff. A fórmula φ 1 /\ φ 2 é verdade se ambos φ 1 e φ 2 são também, e φ 1 \/ φ 2 se um deles é verdade. Um estado satisfaz <actset>φ se existe uma transição derivada do estado com uma ação definida em actset que leva a um estado satisfazendo φ. E um estado satisfaz [actset]φ se toda transição derivada do estado com ação definida em actset satisfaz φ. Dessa forma, intuitivamente, a fórmula termina diz que ao longo de todos os caminhos, em todos os estados satisfaz [inicial](af<final>tt), que é verdade se toda transição do estado com um marca inicial satisfaz (AF<final>tt). Da mesma forma, (AF<final>tt) satisfaz se ao longo de todos os caminhos em algum momento <final>tt é verdade. Por sua vez, <final>tt é verdade se existe uma tansição do estado com um marca

10 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho final que leva a um estado que satisfaz tt, que é verdade pra todo estado. Em outras palavras, termina diz: para todo estado com marca inicial, em algum momento encontraremos um estado com a marca final. Verificando a fórmula termina usando o comando chk do CWB-NC a partir do estadop inicial, temos a resposta que é verdade para o modelo descrito acima: cwb-nc> chk "P_inicial" termina Invoking alternation-free model checker. Building automaton..... States: 274 Transitions: 788 Done building automaton. TRUE, the agent satisfies the formula. Outra verificação que podemos fazer é a seguinte: será que toda vez que eu envio um pedido, sempre irei receber o pagamento?. Porém, dessa vez vamos fazer um outro tipo de verificação. Em vez de verificar se um propriedade é verdade ou falsa, iremos tentar achar um estado onde a propriedade é verdadeira. Definimos então a propriedade envia nao recebe onde para todo estado de envio de pedido (enviapedido), não é verdade que em um momento do futuro recebemos um pagamento (recebepagamento. A fórmula segue abaixo: prop envia_nao_recebe = AG [enviapedido](not AF<recebepagamento>tt) Para encontrar um estado onde essa propriedade é verdadeira utilizamos o comando search do CWB-NC da seguinte forma: cwb-nc> search "P_inicial" envia_nao_recebe Abaixo temos a saída gerada CWB-NC: State found satisfying envia_nao_recebe. Path to state contains 7 states, invoking simulator. 1: P_inicial -- inicial --> 2: P_recebepedido -- recebepedido --> 3: P_as -- verifcliente --> 4: P_verifestoque P_os2 -- final --> 5: P_verifestoque nil -- verifestoque --> 6: P_os1 nil -- enviapedido --> 7: ( ack_enviapedido.nil P_aj) nil cwb-nc-sim> trace inicial recebepedido verifcliente final verifestoque enviapedido Analisando a saída observamos que propriedade envia nao recebe é satisfeita e encontramos um caso onde é enviado um pedido mas não recebemos o pagamento. Esse caso pode ser visto pelo comando trace, onde temos os seguintes passos: inicial recebepedido verifcliente final. Voltando na Figura 4, podemos acompanhar esses passos. 7. Considerações Finais Neste trabalho apresentamos um esquema de mapeamento entre elementos de descrição de controle de fluxo encontrados em workflow para a linguagem de especificação de processos concorrentes CCS.

11 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho Um processo de negócio especificado em CCS permite a verificação de importantes propriedades no modelo, antes da sua implementação. Dessa forma, podemos corrigir erros o mais cedo possível, reduzindo os custos de erros encontrados depois do modelo já implementando e em execução. A contribuição principal deste trabalho é mostrar que a utilização de verificação formal em especificações, especialmente linguagens de descrição de workflow, é uma alternativa viável e bastante atraente. Num cenário onde as aplicações estão se tornando cada vez mais complexas, validação e verificação desses sistemas computacionais e algoritmos são de extrema importância tanto para o sucesso de projeto quanto econômico. Trabalhos futuros e desafios estão concentrados em tornar mais natural e intuiva as especificações de propriedades em lógica temporal e também facilitar a modelagem através de ferramentas integradas. Um exemplo trivial é a geração automática de expressões em CCS a partir do esquema de mapeamento apresentado. Outro aspecto a considerar é que o modelo de workflow apresentado é bastante básico e simplificado, modelos mais realistas necessitam de elementos de maior expressividade. 8. Agradecimentos Este trabalho contou com apoio financeiro através do Programa de Bolsas da Fundação Estadual Norte Fluminense - FENORTE/TECNORTE. Referências [1] WFMC. Workflow Management Coalition Terminology and Glossary (WFMCTC- 1011). Technical report, Workflow Management Coalition, Brussels, 1996, disponível em [2] WFMC. Workflow Management Coalition Workflow Standard: Workflow Process Definition Interface XML Process Definition Language (XPDL) (WFMCTC- 1025). Technical report, Workflow Management Coalition, Lighthouse Point, Florida, USA, [3] F. Curbera, Y. Goland, J. Klein, F. Leymann, D. Roller, S. Thatte, and S. Weerawarana. Business Process Execution Language for Web Services, Version 1.0. Standards propsal by BEA Systems, International Business Machines Corporation, and Microsoft Corporation, [4] A. Arkin. Business Process Modeling Language (BPML). Specification. BPMI.org [5] B. Berard, M. Bidoit, A.Finkel, F. Laroussinie, A. Petit, L. Petrucci, P. Schnoebelen, and P. McKenzie. Systems and Software Verification: Model-Checking Techniques and Tools. Springer, [6] R. Eshuis and R. Wieringa. Tool Support for Verifying UML Activity Diagrams. IEEE Trans. Softw. Eng. 30, 7 (Jul. 2004), [7] D. Wodtke and G. Weikum. A Formal Foundation for Distributed Workflow Execution Based on State Charts. In Proceedings of the 6th international Conference on Database theory (January 08-10, 1997). F. N. Afrati and P. G. Kolaitis, Eds. Lecture Notes In Computer Science, vol Springer-Verlag, London,

12 Revista Eletrônica de Iniciação Científica, Vol. 6, No. 2, Junho [8] M. Schroeder. Verication of business processes for a correspondence handling center using CCS. In A. I. Vermesan and F. Coenen, editors, Proceedings of European Symposium on Validation and Verication of Knowledge Based Systems and Components, pages 1-15, Oslo, June Kluwer. [9] D. Yang and S. Zhang. Approach for workflow modeling using Pi-calculus. Journal of Zhejiang University SCIENCE Nov-Dec;4(6): [10] F. Puhlmann, Mathias Weske. Using the Pi-Calculus for Formalizing Workflow Patterns. In W.M.P. van der Aalst et al. (Eds.): BPM 2005, volume 3649 of LNCS, Berlin, Springer-Verlag (2005) [11] R. Szturc, I. Vondrák, M. Kruzel, Application of Pi-Calculus for Software Process Formalization Transactions of the V c B Technical University of Ostrava, [12] Charles Plesums. Introduction to Workflow. In: L. Fischer (Ed.): Workflow Handbook 2002, Lighthouse Point (FL) 2002, pp [13] M. Dumas and A.H.M. ter Hofstede. UML activity diagrams as a workflow specification language. In M. Gogolla and C. Kobryn, editors, Proc. of the 4th Int. Conference on the Unified Modeling Language (UML01), volume 2185 of LNCS, pages 7690, Toronto, Canada, October Springer Verlag. [14] W.M.P. van der Aalst, K.M. van Hee. Workflow Management: Models, Methods, and Systems. MIT press, Cambridge, MA, [15] W.M.P. van der Aalst. The Application of Petri Nets to Workflow Management. The Journal of Circuits, Systems and Computers, 8(1):2166, [16] W. M. P. van der Aalst. Challenges in business process management: Verication of business processes using Petri nets. Bulletin of the EATCS, (80): , [17] W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, and A.P. Barros. Workflow Patterns. Distributed and Parallel Databases, 14(1):551, [18] Workflow Patterns Home Page. [19] V. Gruhn and R. Laue. Using Timed Model Checking for Verifying Workflows. Proc. of the 2nd Workshop on Computer Supported Activity Coordination, Miami, USA, pp , [20] R. Cleaveland, L. Tan, and S. Sims. Concurrent Workbench of the New Century: User Manual. Computer Science Department, SUNY at Stony Brook, 2000, disponível em cwb/. [21] J. Katoen. Principles of model-checking. Univ. of Twente, Lecture Notes, [22] R. Milner. Comunication and Concurrency. Prentice-Hall, 1989 [23] M. F. Felix. Análise Formal de Modelos de Software Baseada em Abstrações Arquiteturais, Tese de Doutorado, Dep. de Informática, PUC-Rio, 2004.

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Estefânia Paula da SILVA¹; Lígia Maria SOARES PASSOS² ¹ Aluna do curso de Engenharia de Produção do IFMG

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Especificação Formal e Verificação de Workflows Científicos

Especificação Formal e Verificação de Workflows Científicos Especificação Formal e Verificação de Workflows Científicos Edno V. Silva 1, Eduardo Ogasawara 1, Daniel de Oliveira 1, Marta Mattoso 1, Mario R. F. Benevides 2 1 PESC - COPPE Universidade Federal do Rio

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

BPMN (Business Process. George Valença gavs@cin.ufpe.br

BPMN (Business Process. George Valença gavs@cin.ufpe.br BPMN (Business Process Modeling Notation) George Valença gavs@cin.ufpe.br 31/10/2012 Introdução Modelagem de processos No ciclo de vida BPM, a etapa de modelagem de processos consiste em um conjunto de

Leia mais

INTRODUÇÃO A MODELAGEM DE PROCESSOS UTILIZANDO BPMN 1 FÁBIO RODRIGUES CRUZ 2 2.1 CONCEITO DE MODELAGEM DE PROCESSOS UTILIZANDO BPMN

INTRODUÇÃO A MODELAGEM DE PROCESSOS UTILIZANDO BPMN 1 FÁBIO RODRIGUES CRUZ 2 2.1 CONCEITO DE MODELAGEM DE PROCESSOS UTILIZANDO BPMN INTRODUÇÃO A MODELAGEM DE PROCESSOS UTILIZANDO BPMN 1 FÁBIO RODRIGUES CRUZ 2 1 INTRODUÇÃO A Business Process Modeling Notation (BPMN), ou Notação de Modelagem de Processos de Negócio, é um conjunto de

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow

Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow Resumo. A fim de flexibilizar o fluxo de controle e o fluxo de dados em Sistemas Gerenciadores de Workflow (SGWf),

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Guia de Especificação de Caso de Uso Metodologia CELEPAR Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007

Leia mais

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina Verificação de Modelos (Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina Cîrstea Lista de Leitura para a Parte Teórica M. Huth and M. Ryan, Logic in Computer Science Modelling

Leia mais

Construção de tabelas verdades

Construção de tabelas verdades Construção de tabelas verdades Compreender a Lógica como instrumento da ciência e como estrutura formal do pensamento, conhecendo e compreendendo as operações com os principais conceitos proposicionais

Leia mais

DESENVOLVIMENTO DE SISTEMAS CORRETOS. BISI, Nícolas Nogueira Universidade Federal de Pelotas nicolasbisi@gmail.com

DESENVOLVIMENTO DE SISTEMAS CORRETOS. BISI, Nícolas Nogueira Universidade Federal de Pelotas nicolasbisi@gmail.com DESENVOLVIMENTO DE SISTEMAS CORRETOS BISI, Nícolas Nogueira Universidade Federal de Pelotas nicolasbisi@gmail.com FOSS, Luciana; COSTA, Simone André da Universidade Federal de Pelotas lfoss@inf.ufpel.edu.br,

Leia mais

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO ADAM DREYTON FERREIRA DOS SANTOS CARLOS ROGÉRIO CAMPOS ANSELMO FELIPE BATISTA CABRAL FRANK GOMES DE AZEVEDO NAGIB

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. Visão Geral do Sistema Prof. Raul Sidnei Wazlawick UFSC-CTC-INE 2010 Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. A fase de concepção do UP consiste

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Engenharia de Software: Introdução Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Programa 1. O processo de engenharia de software 2. UML 3. O Processo Unificado 1. Captura de requisitos 2.

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

TRADUZINDO A DEFINIÇÃO DE PROCESSO EM XPDL PARA MODELOS EM REDES DE PETRI

TRADUZINDO A DEFINIÇÃO DE PROCESSO EM XPDL PARA MODELOS EM REDES DE PETRI XXIX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO. TRADUZINDO A DEFINIÇÃO DE PROCESSO EM XPDL PARA MODELOS EM REDES DE PETRI Rosemary Francisco (PUCPR) rmaryf@gmail.com Eduardo de Freitas Rocha Loures (PUCPR)

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet) UML Felipe Denis M. de Oliveira Fonte: Alice e Carlos Rodrigo (Internet) 1 Programação O que é UML? Por quê UML? Benefícios Diagramas Use Case Class State Interaction Sequence Collaboration Activity Physical

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR Jeferson J. S. Boesing 1 ; Manassés Ribeiro 2 1.Aluno do Curso

Leia mais

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0. AULA 22 ESTUDO E APLICAÇÕES DAS REDES DE PETRI COMO MECANISMO DE DESCRIÇÃO DE SISTEMAS. 6. Propriedades das redes Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Leia mais

Mapeamento de processo para a ISO 9001:2000

Mapeamento de processo para a ISO 9001:2000 Mapeamento de processo para a ISO 9001:2000 Christopher Paris(*) O item 4.1 da Norma ISO 9001:2000 requer, nas alíneas "a" e "b", da empresa "a) identificar os processos necessários para o sistema de gestão

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

Leia mais

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15 Bases Matemáticas Aula 2 Métodos de Demonstração Rodrigo Hausen v. 2013-7-31 1/15 Como o Conhecimento Matemático é Organizado Definições Definição: um enunciado que descreve o significado de um termo.

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Notas de Aula 04: Casos de uso de um sistema

Notas de Aula 04: Casos de uso de um sistema Notas de Aula 04: Casos de uso de um sistema Objetivos da aula: Aprender os elementos básicos da modelagem por casos de uso Utilizar as associações entre casos de uso, atores e demais artefatos Compreender

Leia mais

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Requisitos. Sistemas de Informações

Requisitos. Sistemas de Informações Requisitos Sistemas de Informações Definindo o Sucesso do Software Clientes satisfeitos Eles estão satisfeitos quando você: Atende às expectativas Entrega no prazo Entrega no orçamento O Sucesso começa

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Este material traz a teoria necessária à resolução das questões propostas.

Este material traz a teoria necessária à resolução das questões propostas. Inclui Teoria e Questões Inteiramente Resolvidas dos assuntos: Contagem: princípio aditivo e multiplicativo. Arranjo. Permutação. Combinação simples e com repetição. Lógica sentencial, de primeira ordem

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Análise e Projeto Orientados a Objeto

Análise e Projeto Orientados a Objeto Análise e Projeto Orientados a Objeto Objetivos Comparar e contrastar Análise e Projeto Definir O que vamos fazer na disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Verificação e Validação de Sistemas de Software para Projetos Espaciais

Verificação e Validação de Sistemas de Software para Projetos Espaciais Verificação e Validação de Sistemas de Software para Projetos Espaciais Coordenador: Carlos H.N. Lahoz Equipe: Miriam C. B. Alves Martha A. D. Abdala Luciene Bianca Alves (bolsista DTI) Tópicos: 1- Objetivo

Leia mais

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais Objetivos de Software Gidevaldo Novais (gidevaldo.vic@ftc.br) Introduzir os conceitos do usuário e do Descrever requisitos funcionais e nãofuncionais (domínio) Apresentar um esqueleto de documento e notas

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

UML: Casos de Uso. Projeto de Sistemas de Software

UML: Casos de Uso. Projeto de Sistemas de Software UML: Casos de Uso Projeto de Sistemas de Software UML Casos de Uso Introdução Casos de uso Elementos do diagrama de casos de uso Descrição de casos de uso Exemplo: Blog Ferramentas de modelagem Bibliografia

Leia mais

O Komunik é uma ferramenta de comunicação interna que permite a interação completa entre todos os setores de uma empresa.

O Komunik é uma ferramenta de comunicação interna que permite a interação completa entre todos os setores de uma empresa. ORG 13.8 KOMUNIK O QUE É Manual Estoque - Versão 4.55.001-2ª Edição - 2012 O Komunik é uma ferramenta de comunicação interna que permite a interação completa entre todos os setores de uma empresa. PRA

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 capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Processo de Controle das Reposições da loja

Processo de Controle das Reposições da loja Processo de Controle das Reposições da loja Getway 2015 Processo de Reposição de Mercadorias Manual Processo de Reposição de Mercadorias. O processo de reposição de mercadorias para o Profit foi definido

Leia mais

Transformação de um Modelo de Empresa em Requisitos de Software

Transformação de um Modelo de Empresa em Requisitos de Software Transformação de um Modelo de Empresa em Requisitos de Software Fábio Levy Siqueira 1 and Paulo Sérgio Muniz Silva 2 1 Programa de Educação Continuada da Poli-USP, São Paulo, Brazil 2 Escola Politécnica

Leia mais

Diagramas de Casos de Uso

Diagramas de Casos de Uso UML Unified Modeling Language Diagramas de Casos de Uso José Correia, Março 2006 (http://paginas.ispgaya.pt/~jcorreia/) Objectivos O objectivo de um diagrama de casos de uso de um sistema é mostrar para

Leia mais

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

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br 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

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML UML (Unified Modeling Language Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Excel Planilhas Eletrônicas

Excel Planilhas Eletrônicas Excel Planilhas Eletrônicas Capitulo 1 O Excel é um programa de cálculos muito utilizado em empresas para controle administrativo, será utilizado também por pessoas que gostam de organizar suas contas

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Ricardo Roberto de Lima UNIPÊ 2008.1 APS-I. Históricos e Modelagem Orientada a Objetos

Ricardo Roberto de Lima UNIPÊ 2008.1 APS-I. Históricos e Modelagem Orientada a Objetos Históricos e Modelagem Orientada a Objetos Histórico Diversas metodologias e métodos surgiram para apoiar OO. Evolução a partir de linguagens C++ e SmallTalk. Anos 80 Anos 80-90: diversidade de autores.

Leia mais

Interface Humano-Computador IHC Paradigmas de IHC

Interface Humano-Computador IHC Paradigmas de IHC Instituto Federal de Educação, Ciência e Tecnologia Campus Formosa Interface Humano-Computador IHC Paradigmas de IHC Prof. M.Sc. Victor Hugo Lázaro Lopes IHC Paradigmas de IHC AGENDA Engenharia Cognitiva

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

2. Sistemas Multi-Agentes (Multi-Agent System - MAS)

2. Sistemas Multi-Agentes (Multi-Agent System - MAS) AORML uma linguagem para modelagem de uma aplicação Multiagentes: Uma Aplicação no Sistema Expertcop. Hebert de Aquino Nery, Daniel Gonçalves de Oliveira e Vasco Furtado. Universidade de Fortaleza UNIFOR

Leia mais

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu.

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu. ANÁLISE ORIENTADA À OBJETO UML FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu.br AULA Nº 1 A UML utiliza vários diagramas

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas Sistemas de Informação e Tecnologia em 3º Semestre Análise Orientada aos Objetos Modelagem de Casos de Uso Objetivo: Apresentar

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Manual dos Serviços de Interoperabilidade

Manual dos Serviços de Interoperabilidade MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO Secretaria de Logística e Tecnologia da Informação Manual dos Serviços de Interoperabilidade Sumário Lista de Figuras...3 Lista de Tabelas...4 Introdução...5

Leia mais