aula_024 - modelagem funcional essencial

Upload: alessandra-galvao

Post on 20-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    1/105

    1

    Contedo:

    Modelagem

    Funcional Essencial

    Professor:

    Geraldo Xexo

    DCC/IM/UFRJ

    PESC/COPPE/UFRJ

    Aula 24

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    2/105

    2

    Modelo Funcional

    O Modelo Funcional tem como objetivo definir

    "o que" o sistema deve fazer, ou seja, as funes

    que deve realizar para atender seus usurios.

    No "como"

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    3/105

    todos os mtodos de anlise devem ser capazes

    de suportar 5 atividades:

    3

    Anlise

    Representar e entender o domnio da informao

    Definir as funes que o software deve executar

    Representar o comportamento do software em

    funo dos eventos externos

    Particionar os modelos de informao

    Prover a informao essencial em direo a

    determinao dos detalhes de implementao

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    4/105

    4

    O objetivo da Anlise Essencial descobrir,

    e documentar, todos os requisitos funcionais

    verdadeirosde um sistema e apenas esses

    requisitos.

    Anlise Essencial

    Para que isso seja possvel, adotamos um

    conjunto de princpios e conceitos que nos

    permitem identificar esses requisitos dentrode toda a informao levantada durante um

    processo de anlise.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    5/105

    5

    Respostas Planejadas

    O Mtodo Essencial no eficaz em qualquer

    tipo de projeto. Na verdade, estamos

    preocupados basicamente com sistemas de

    informao que sejam sistemas interativos

    de respostas planejadas.

    Esses sistemas funcionam sempre em resposta

    a algum evento fora do seu controle para o qualpossamos definir uma resposta planejada.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    6/105

    6

    Respostas Planejadas

    Deve ficar claro que no estamos interessados

    em eventos que exigem respostas ad-hoc, isto ,

    caso a caso.

    Usaremos o exemplo clssico do vendedor de passagens de

    avio: podemos fazer um sistema capaz de responder as perguntas

    tpicas como "qual o preo da passagem para So Paulo" ou

    "Quando sai o prximo vo para Braslia", porm no podemos

    considerar com esse mtodo um sistema que responda a

    absolutamente todas as perguntas que um ser humano poderia

    responder, como "Qual foi o resultado do ltimo jogo do

    Amrica?".

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    7/105

    7

    Princpios

    Os princpios da modelagem essencial seroos nossos guias no processo de anlise.

    O que acontece nesse processo que vriasvezes temos a opo de tomar dois ou maiscaminhos.

    Na modelagem essencial temos princpiosespecficos que nos orientam nessa escolha.

    Na modelagem estruturada tradicional temos apenas vagasrecomendaes que nos auxiliam a escolher esse caminho,

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    8/105

    8

    Princpios

    Os princpios da Anlise Essencial so:

    O oramento para a complexidade

    A neutralidade tecnolgica

    A tecnologia interna perfeita

    O modelo essencial mnimo

    A esses princpios somaremos um quinto, j apresentado,

    o princpio da ausncia de surpresas, por acreditarmos

    que perfeitamente condizente com os princpios

    essenciais.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    9/105

    9

    O Oramento para a Complexidade

    Esse princpio nos orienta a modelar umsistema que possamos compreender.

    Para isso devemos manipular a complexidadedo modelo de forma a manter tanto o todo comocada uma de suas partes em um nvel de

    complexidade compatvel com a intelignciahumana.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    10/105

    10

    O Oramento para a Complexidade

    Para isso utilizamos tcnicas de particionamento

    do sistema e o controle de caractersticas que

    aumento a complexidade do modelo, entre elas:

    Controle do nmero de componentes de cada parte do modelo;

    Controle da complexidade interna de cada parte do modelo;

    Controle da complexidade da interface entre componentes;

    Manuteno da qualidade dos nomes utilizados no modelo, e

    Manuteno da qualidade da representao do modelo,

    por exemplo, quanto clareza dos diagramas.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    11/105

    11

    72

    Um das tcnicas mais citadas para controlar

    a complexidade a de manter o nmero de

    componentes de cada modelo ou sub-modelo

    entre 5 e 9.

    Isso decorre de uma pesquisa que determinou

    que o ser humano mdio tem a capacidade de se

    concentrar em 7 elementos, com variao de 2.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    12/105

    12

    Todo e Partes

    Complexidade Total funo

    Muitas vezes, alterar uma especificao tira

    complexidade de uma "fonte" e coloca

    complexidade em outra.

    Complexidade de cada parte

    Complexidade do todo

    No h "conservao de complexidade"

    Essa transferncia pode diminuir a complexidade

    global

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    13/105

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    14/105

    14

    A Neutralidade Tecnolgica

    Alguns autores j criticam a neutralidade

    tecnolgica, ou simplesmente "passam por

    cima" dessa questo, colocando preocupaes

    de tecnologia j nessa fase.

    A questo tem relao com a necessidadede se assumir algumas premissas para obter

    solues mais eficientes.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    15/105

    15

    A Neutralidade Tecnolgica

    Em todo caso, na definio de sistemas de

    informao, a metfora evento-atividade-memria

    fornecida pela anlise essencial na maioria dos

    casos suficiente para fornecer todo o arcabouo

    necessrio para uma boa anlise de requisitos.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    16/105

    16

    A Neutralidade Tecnolgica

    Devemos ento no s seguir esse princpio,

    mas tambm us-lo como ferramenta de

    conferncia em cada um dos nossos passos,

    verificando se h ou no comprometimento

    com uma tecnologia especfica, corrigindo cadaponto onde for encontrado esse comprometimento

    para uma especificao tecnologicamente neutra.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    17/105

    17

    Tcnicas para Evitar a Influncia de

    Tecnologia

    Sistema capaz de ler mentes

    Sistema funciona pelo correio, com cartas e pessoas

    Sistema funciona via Web

    Sistema funciona via Celular e Telefonistas

    Sistema funciona s com papel

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    18/105

    18

    A Tecnologia Interna Perfeita

    O sistema deve ser modelado com a suposioque a tecnologia interna ao sistema perfeita.

    A velocidade do sistema perfeito infinita,

    Por tecnologia interna perfeita queremos dizerque todos os recursos do sistema so ideais.

    O sistema perfeito nunca apresenta falhas ou

    necessidade de manuteno.

    no h espera para conseguir um resultado.

    A memria de um sistema perfeito tambm

    no possui limitaes,

    podendo guardar qualquer quantidade deinformao por um perodo indeterminado,

    sem nenhum atraso no tempo de busco.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    19/105

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    20/105

    20

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    21/105

    21

    Tecnologia Interna Perfeira

    No faz backup

    Liga e desliga sem custo

    No existem clculos complicados demais

    No existem dados grandes demais

    No demora

    Custa barato

    Efeitos na modelagem conceitual de dados

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    22/105

    22

    O Modelo Essencial Mnimo

    Precisamos, porm, para garantir que nossomtodo tem uma resposta nica, ter uma formade escolher, entre dois modelos, qual o modeloessencial, mesmo que eles cumpram todos osrequisitos anteriores.

    Os princpios anteriores vo definir claramentea nossa forma de trabalho, porm muitas vezessero inteis para ajudar a escolher qual o o

    modelo essencial entre dois modelos possveis.

    O princpio do modelo essencial mnimo exige que,entre dois modelos possivelmente essenciais, adefinio menos complicada o modelo essencial.

    Assim possumos uma forma clara de escolha

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    23/105

    23

    Contedo:

    KISS

    Professor:

    "keep it simple, sir..."

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    24/105

    24

    Mnimo?

    Discutir o que mnimo pode ser um pouco mais

    difcil do que parece

    As alternativas podem alterar a complexidade

    em pontos distintos do sistema

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    25/105

    25

    O Princpio da Ausncia de Surpresas

    O princpio conservado quando o produto:

    Faz o que o usurio espera

    Responde de forma previsvel e consistenteaos estmulos.

    Comporta-se de forma limitada a sua razo

    de existncia. regular e mnimo, apesar de completo.

    Quando falha, o faz de forma graciosa e

    recupervel. Quando a dificuldade de utiliz-lo ou modific-loe compatvel com a dificuldade da rea de

    aplicao.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    26/105

    26

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    27/105

    27

    A Essncia

    A essncia do sistema tudo que precisariaser includo no sistema para que o mesmofuncionasse quando implementado em um

    ambiente de tecnologia perfeita.

    Sistemas essenciais possuem dois tipos de

    componentes: atividades e memrias.

    Isso compreende velocidade infinita no processador, tamanhoinfinito de memria, custo nulo para todas as operaes,

    infalibilidade, etc.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    28/105

    28

    Eventos Essenciais

    Na modelagem essencial tudo ocorre em funode eventos.

    Imaginamos que o sistema possui dois estados:

    em atividade ou

    esperando um evento.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    29/105

    29

    Eventos Essenciais

    o acontecimento do evento que faz com queo sistema entre em funcionamento e entorealize todas as tarefas necessrias para

    atender aquele evento, ou seja, a atividadeessencial correspondente ao evento.

    importante notar que o sistema s tem aoportunidade de funcionar quando aconteceum evento.

    O sistema incapaz de gerar um evento.

    Esses eventos, por definio, no socontrolveis pelo sistema

    A i id d

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    30/105

    30

    Atividades

    Cada tarefa que o sistema de tecnologia perfeitatem que realizar para cumprir a finalidade dosistema uma atividade essencial.

    Essas atividades existem em duas formas: asatividades fundamentaise as atividadescustodiais.

    Requisitos funcionais

    M i

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    31/105

    31

    Memrias

    As atividades essenciais, para poderem

    executar suas tarefas, precisam guardar

    informao.

    Essa informao guardada em memrias.

    Cada atividade essencial, porm, pode ter

    apenas uma viso parcial dessa memria, de

    acordo com suas necessidades.

    Modelo Conceitual de Dados

    Requisitos de Informao

    Ati id d F d t i

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    32/105

    32

    Atividades Fundamentais

    So aquelas que justificam a existncia do sistema.

    Certamente, ao comprar um sistema, precisamos

    fundamentalmente das sadas que ele nos

    disponibilizar.

    Ati id d F d t i

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    33/105

    33

    Atividades Fundamentais

    Assim, atividades fundamentais precisam

    incluir alguma sada para agentes externos.

    As atividades fundamentais necessitam de

    dados para funcionar,

    podem ser fornecidos diretamente por umagente externo, um ser humano ou outrosistema que faz parte do ambiente, interagindo

    com o sistema,

    Podem estar guardados em uma memria.

    Ati id d C t di i

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    34/105

    34

    Atividades Custodiais

    Se destinam a criar e manter as memrias

    necessrias para o funcionamento das atividades

    fundamentais.

    Um sistema, mesmo de tecnologia perfeita, no

    pode criar dados sozinho.

    Atividades Custodiais

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    35/105

    35

    Atividades Custodiais

    Atividades custodiais, fique bem claro, so

    essenciais ao funcionamento do sistema.

    Enquanto o usurio conhece a grandemaioria das atividades fundamentais queprecisa, muitas atividades custodiais ficamde fora de sua lista.

    Ao analisar um sistema, devemos estarsempre alerta para atividades custodiaisnecessrias para manter nossas memrias

    em ordem.

    Algumas atividades so custodiais e

    fundamentais simultaneamente, sendo ento

    chamadas de compostas ou mistas.

    Viso Pragmtica

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    36/105

    36

    Viso Pragmtica

    possvel ter uma viso menos funcionale mais pragmtica, que perde muito da qualidadefilosfica, mas ganha em simplicidade:

    Isso nos chama ateno que no existem

    atividades que no sejam fundamentais oucustodiais, isso , uma atividade deve pelomenos escrever em uma memria ou fazerum relatrio.

    atividades fundamentais tm uma sadapara o mundo externo, enquanto

    atividades custodiais alteram memrias.

    Agentes Externos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    37/105

    37

    Agentes Externos

    Representamos as pessoas, departamentos,

    empresas, mquinas ou sistemas que interagem

    com o sistema sendo analisado, enviando ou

    recebendo dados, por meio de agente externos,

    Agentes externos, tambm so chamados de

    entidades externas ou terminadores.

    Agentes Externos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    38/105

    38

    Agentes Externos

    Normalmente agentes externos representam

    pessoas, pois a maioria das funes de um

    sistema de informao se d por meio da

    interao com uma ou mais pessoas.

    Eventualmente um sistema de informao

    interage com outro sistema, recebendo ou

    enviando dados, ou ainda com sensor ou com

    um atuador.

    Agentes Externos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    39/105

    39

    Agentes Externos

    Os agentes externos controlam o funcionamento

    do sistema.

    detm o poder de iniciar as atividades essenciais,

    ao enviar um estmulo ao sistema.

    recebem todas as respostas emitidas pelo sistema.

    Transportadores

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    40/105

    40

    Transportadores

    O modelo essencial est interessado nosagentes externos que detm realmente o controledos estmulos ou que realmente recebem a

    informao.Alguns usurios do sistema implementado,

    como digitadores, no so modelados na

    anlise essencial.Usurios do sistema que apenas servem como

    interlocutores dos verdadeiros agentes externos

    so considerados transportadores de dados.Ao documentar um evento devemos

    documentar a existncia de transportadores,

    como veremos no dicionrio de eventos.

    Agentes x Transportadores

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    41/105

    41

    Agentes x Transportadores

    A verdadeira essncia de um sistema estrelacionada com sua funo no negcio emque ele est inserido.

    Devemos considerar como agentes externosaquelas pessoas ou artefatos tecnolgicos que

    detm o poder de iniciar o evento.

    Um bom teste para verificar se o agente

    externo o verdadeiro iniciador do evento ouapenas um transportador, no contexto de umnegcio, perguntar se ele pode realizar, por

    sua vontade, aquele evento.

    Descrio

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    42/105

    42

    Descrio

    No estamos preocupados com os motivosdos agentes externos, ou em modificar suasaes, ou com o que eles fazem com os dados

    que obtm do sistema.

    No estamos preocupados com os motivosdos agentes externos, ou em modificar suasaes, ou com o que eles fazem com os dadosque obtm do sistema.

    Por isso eles no so estudados, definindo

    a fronteira do sistema e os limites do trabalhode anlise.

    Descrio

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    43/105

    43

    Descrio

    Outro tipo comum de agente externo aqueleque representa uma instituio ou departamentoexterno ao ambiente de uso do sistema.

    Existem os agentes externos que so mquinas,como sensores, ou sistemas,

    nomeado com o nome desse departamentoou da instituio (ou ainda, do tipo dainstituio).

    nomeados diretamente com o nome dos mesmos.

    Agentes Externos e Memria

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    44/105

    44

    Agentes Externos e Memria

    importante perceber que muitos agentes

    devem ser representados no s fora do sistema,

    mas tambm em sua memria.

    Isso acontece quando o sistema deve guardar

    dados sobre um agente externo, de forma a

    poder reconhecer ou referenciar um agente

    externo, por exemplo, enviando uma conta parao agente externo.

    Agentes Externos e Memria

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    45/105

    45

    Nesse caso, haver pelo menos uma entidade

    no modelo de dados representando no total ou

    parcialmente o agente externo.

    Isso no se aplica, porm, no caso da segurana

    e acesso, pois essa no tratada na anlise

    essencial.

    Eventos e Atividades

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    46/105

    46

    Cada atividade iniciada com um nico evento,

    que define um estmulo, e compreende todo o

    conjunto de aes efetuado pelo sistema para

    executar a atividade, ou seja, a resposta

    planejada.A atividade relativa a um evento compreende

    toda a cadeia de aes causada por esse evento,

    at que o sistema tenha que parar porque todos

    os fluxos de dados atingiram seus objetivos

    (agentes ou memrias).

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    47/105

    Eventos: Gatilhos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    48/105

    48

    e tos Gat os

    O evento funciona como um gatilho, disparando

    uma reao em cadeia, que para apenas pela

    impossibilidade de realizar qualquer outra

    atividade. Nessa reao em cadeia no devemos

    nos preocupar no modo como as aes ocorrem nosistema existente, na encarnao atual, pois elas

    podem sofrer interrupes esprias, que dividem

    um evento entre vrios processadores.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    49/105

    49

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    50/105

    49

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    51/105

    49

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    52/105

    49

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    53/105

    49

    Dilogos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    54/105

    50

    Muitas vezes o iniciante na anlise essencialimagina que ser travado um dilogo com o

    usurio durante a atividade.

    O estmulo relacionado ao evento, isto , ofluxo de dados que parte do agente externo

    em direo atividade, possui toda a informao

    necessria para realizar a atividade,

    Esse dilogo interno a uma atividade noexiste na anlise essencial.

    incluindo partes opcionais.

    Dilogos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    55/105

    51

    Caso o dilogo seja realmente necessrio parao funcionamento do sistema, ento temos na

    verdade dois, ou mais, eventos e suas respectivas

    atividades

    A regra que usamos : se o sistema para, s

    pode voltar a funcionar com um evento.

    Isso acontece porque uma atividade, por

    definio, no pode ficar "esperando" poruma entrada de dados.

    O mesmo raciocnio se aplica quandofalamos de vrios agentes externos.

    Eventos Internos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    56/105

    52

    Segundo a anlise essencial, no existemeventos internos ao sistema,

    A anlise essencial parte do conceito que

    eventos iniciam atividadesessenciais e queessas atividades so executadas at que todasas respostas necessrias sejam geradas.

    no dizemos que um processo do sistema se inicia porcausa de um evento causado por outro processo.

    Devemos ter bastante ateno regra que uma atividadecontm a resposta completa para um evento (e apenas paraum nico evento), pois ela que vai definir o particionamentodo sistema sendo modelado.

    Reviso

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    57/105

    53

    Os eventos acontecem fora do sistema,correspondem a um estmulo que cruza a fronteirado sistema de fora para dentro* e so vistos e

    descritos na perspectiva de um ser imaginrioque habita sistema.

    Atividades essenciais no se comunicamdiretamente, isto , no se comunicam por meio

    de fluxos de dados.

    Assim eles so descritos tendo como sujeito o agente

    externo que os iniciam, como em "Aluno solicita matrcula"

    Toda comunicao entre atividades essenciais feitapor meio do uso da memria do sistema

    * O professor fala "dentro para fora", mas o correto oescrito no slide.

    Tipos de Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    58/105

    54

    Um evento externoquando parte doambiente para dentro do sistema. Um comandoou um pedido do usurio, por exemplo.

    Um evento temporalquando provocadopor uma mudana no tempo, como um alarmede relgio ou uma data no calendrio.

    Tipos de Eventos Temporais

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    59/105

    55

    Um evento temporal relativoquando definidoem funo do decorrer de um prazo depois doacontecimento de outro evento.

    Eventos temporais absolutosocorrem emfuno unicamente do calendrio e do relgio.

    Um evento temporal ocorre porque o sistema

    tem um contrato para entregar informao a umagente em um momento especfico

    Eventos Externos Agendado

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    60/105

    56

    Um evento externo agendado quandosabemos que ele vai acontecer em um instanteespecfico, ou que tem um limite de prazo para

    acontecer. Ele pode tambm ser chamado deevento agendado.

    Eventos Externos No-Agendados

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    61/105

    57

    Um evento externo no-agendado quandono podemos determinar momento ou limitepara seu acontecimento.

    Ele pode tambm ser chamado de evento no agendado.

    Os nomes "esperado" e "no-esperado" podem causar

    alguma confuso. O sistema, na realidade, espera queambos os tipos de eventos ocorram. Porm, alguns tmum prazo ou data para ocorrer. Por isso podemos usar,com mais preciso, o termo "agendado".

    No-Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    62/105

    58

    Eventos esperados formam uma categoriaimportante, pois sabemos que no mundo real,quando um evento esperado no acontece (o

    pagamento de uma conta, por exemplo), podeser necessrio tomar uma atitude especfica.

    Dizemos ento que eventos esperados podem

    necessitar que sejam definidos no-eventos.

    O nome "no-evento" pode causar confuso. Um no-evento um evento, em especial, um evento temporal relativo.

    Esse o nome que damos para eventos queacontecem em funo de outro no ter acontecido,

    possivelmente a partir de um prazo,

    No-Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    63/105

    59

    Um s evento esperado pode necessitar devrios no eventos, que ocorrem normalmenteem prazos distintos.

    Um no-evento um evento temporal relativoque deve acontecer se um evento esperado no

    ocorre, possivelmente considerando um prazo.

    Assim, se temos um evento esperado "cliente paga conta,at o dia 30 do ms", podemos ter vrios no eventos paraos prazos de 1 dia, 1 semana, 1 ms, 3 meses e 1 ano, por

    exemplo.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    64/105

    60

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    65/105

    60

    Descrevendo

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    66/105

    61

    Um evento externo sempre caracterizadopela existncia de agente externo, que apessoa ou um outro sistema que faz com que

    o evento acontea, enviando para o sistema oestmulo correspondente.

    Assim, na nossa descrio de um evento externo sempre

    devemos colocar o nome do agente externo que o causa.

    Descrevendo

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    67/105

    62

    No caso de eventos temporais, devemos colocaro fato que faz o evento acontecer.

    Alguns estmulos so bastante complicados,

    contendo dezenas ou centenas de dados, outrosso bastante simples, contendo apenas umcomando ou solicitao ao sistema.

    Eventos temporais no possuem um agente externo quefornea o estmulo.

    Eventos cujo estmulo apenas um comando de execuopodem ser chamados eventos de controle.

    Sintaxe

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    68/105

    63

    A sintaxe para definir eventos externos :

    Como em: "Cliente solicita lista de produtos".

    ,

    Opcionalmente, no caso de um evento esperado,pode ser usado o seguinte padro:

    Onde prazo pode ser absoluto ou relativo aoutro evento ou resposta de evento. Como em:"Fornecedor envia produtos pedidos, at 30 dias

    depois do pedido".

    Sintaxe

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    69/105

    64

    A sintaxe para definir eventos temporais :

    ou simplesmente

    , (hora|dia|etc.) de

    ,

    Como em: "Todo dia 30, dia enviar

    declarao de vendas" ou "dia 30, enviardeclarao de vendas".

    Sintaxe

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    70/105

    65

    A sintaxe para um no evento :

    Como em: "Fornecedor no enviou produtos

    pedidos, depois de 30 dias do pedido, avisarcomprador"

    ,

    , ,

    Sintaxe

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    71/105

    66

    O objeto da orao normalmente um objetodireto que, de alguma forma, representa umainformao tratada pelo sistema, e possivelmente

    tambm um objeto indireto indicando para quemou para onde a informao enviada.

    Exemplos

    Cliente envia pedido de compra

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    72/105

    67

    Cliente envia pedido de compra.

    Fornecedor entrega mercadoria

    Fornecedor entrega mercadoria, at 10 diasdepois do pedido.

    Vendedor solicita mercadoria.

    Filial envia vendas dirias.

    Cliente aluga fita. Ao final do ms, imprimir folha de pagamento.

    Ao fim do dia, imprimir resumo de vendas.

    Gerente solicita relatrio de produo.

    Caso o cliente no pague a conta, 20 dias depois,invocar departamento jurdico.

    Caso o aluno no apresente o boletim assinado,10 dias depois, enviar aviso aos pais.

    Erros!

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    73/105

    68

    Vejamos agora alguns eventos descritos deforma incorreta:

    Enviar pedido (sem agente externo ou indicaode tempo)

    Gerente imprime relatrio (quem imprime osistema, o gerente solicita, alm disso, "relatrio" um termo muito vago).

    Classificando os Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    74/105

    69

    Apesar de termos descrito os eventos comopodendo ser de vrios tipos, no extremamentenecessrio identificar todos os eventos.

    Porm, fazer isso traz a vantagem de podermostestar a forma como o evento est descrito

    Classificando os Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    75/105

    70

    Eventos externos:.

    So esperados ou agendados?

    So no-esperados ou no agendados?

    So uma solicitao?

    Possuem dados?

    Se esperados, possuem um no-evento correspondente?

    Classificando os Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    76/105

    71

    Eventos temporais:

    S ocorrem dessa forma?

    So realmente temporais ou podem ser calculados antes(sendo, nesse caso, uma sada do sistema)?

    So Relativos?

    O evento original existe sempre?

    So no-eventos?

    Qual o evento original?

    Classificando Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    77/105

    72

    Opcionalmente, podemos construir uma tabelade classificao de eventos, como a apresentadaa seguir.

    Todo evento deve ser facilmente classificado.

    A dificuldade de classificar um evento demonstra que ele

    no foi compreendido e indica que ele pode no estar correto,tanto na sua interpretao ou na sua descrio, ou at queseja um requisito falso.

    Alm disso, a tabela permite que verifiquemos setodos os eventos esperados possuem um ou maisno eventos correspondentes.

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    78/105

    73

    Encontrando Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    79/105

    74

    Os principais eventos so os pedidos que sofeitos ao sistema. Eles normalmente podem serencontrados em formulrios, memorandos,documentos que chegam e observando oatendimento que os usurios do sistema prestam.

    Relatrios devem ser gerados por algum evento.Eles, porm, so as respostas aos eventos e no

    os eventos propriamente ditos. Todo eventoexterno esperado deve precisar de um e podeprecisar de mais no eventos.

    No mundo real encontramos ainda outrascaractersticas que indicam novos eventos:

    Pedidos normalmente podem ser cancelados.

    Encontrando Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    80/105

    75

    O que enviado pode retornar, exigindo umaao especfica.

    Documentos podem ser perdidos e segundas

    vias podem ser necessrias Fiscais (ICMS, ISS, Trabalho,...) podem aparecere solicitar relatrios (que podem ser obrigatrios

    em um sistema). Processos que ocorrem em uma ordem podemter que ser "acelerados" para atender um cliente

    preferencial. Pagamentos podem ser feitos com o valor errado,para menos ou para mais, exigindo emisso de

    novas cobranas ou de crditos.

    Simplificando Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    81/105

    76

    Segundo a anlise essencial original, asoperaes de incluir, eliminar e alterar umamemria exigiriam pelo menos trs eventos

    distintos, como em:

    Proprietrio cadastra produto

    Proprietrio altera produto

    Proprietrio apaga produto

    Simplificando Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    82/105

    77

    Isso, porm, pode no representar a verdadee ser muito complicado em alguns sistemas.

    Em primeiro lugar, no criamos atividades

    custodiais que no so necessrias.s.

    Na vida real fcil termos um sistema com 30 a 40entidades. Isso exigiria no mnimo 90 eventos para cumprir

    as necessidades de manter a memria. No fazemosisso na prtica.

    Isso acontece quando a memria j gerenciada emuma atividade fundamental.

    Em segundo lugar, quando uma memrianecessita de uma funcionalidade que permitatratar esses trs casos, podemos utilizar umanotao mais simples:

    Proprietrio mantm produtos

    As Respostas aos Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    83/105

    78

    Para cada evento o sistema deve executar uma resposta.Essa resposta representada pela atividade essencialcorrespondente ao evento e produz dois tipos de resultados:alteraes no estado do sistema e emisso de informaopara o ambiente (alteraes do estado do ambiente).

    Uma alterao no estado do sistema significa que uma oumais memrias foram alteradas. Nisso inclumos a criao deregistros, a mudana de valores dentro de registros e a

    eliminao de registros.

    Como emisso de informao temos vrias formas deemisso de relatrios, feedback para os agentes externos e

    comandos para atuadores externos.

    As Respostas aos Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    84/105

    79

    Cada evento pode exigir uma ou mais repostas,obrigatrias ou opcionais, do sistema. Oprocessamento de todas essas respostas,

    juntas a atividade essencial.

    As Respostas aos Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    85/105

    80

    Algumas respostas a eventos so bvias apartir do nome do evento, como por exemplo,em "Gerente solicita relatrio de vendas". Uma

    resposta bvia "relatrio de vendas". Porm,poderamos, em um caso real, ter outras respostas,como por exemplo, "aviso ao diretor".

    As Respostas aos Eventos

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    86/105

    81

    Logo aps levantar a lista de eventos importante levantar a lista de respostas paracada evento. Apesar de no ser importante

    classificar cada resposta, recomendvelque o analista saiba se a resposta opcionalou obrigatria, e, caso seja opcional, estarpreparado para fornecer, mais tarde, as regrasque indicam sua necessidade.

    Confundindo eventos e respostas

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    87/105

    82

    muito comum tambm que o iniciante confundauma resposta a um evento com um evento.

    Para isso podemos usar uma ttica deverificao: perguntar por que um evento acontece.

    Confundindo eventos e respostas

    Se a resposta for "Esse evento acontece i X i d d " "

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    88/105

    83

    porque o usurio X enviou um dado" ou "porquese passaram X dias", estamos em um bomcaminho e provavelmente temos um evento.

    Porm, se respondermos com algo do tipo "Esseevento acontece porque o sistema..." ou "Esseevento acontece quando verdade que..." ento

    estamos em um mau caminho, pois no existemeventos gerados pelo sistema para o sistema..

    Outra coisa importante verificar se existe algum

    motivo para o sistema comear a funcionar sozinho(o evento). Se no existe, provavelmente escolhemoscomo evento algo que resposta para outro evento.

    Confundindo eventos e respostas:casos especiais

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    89/105

    84

    Um exemplo muito comum acontece em"casos especiais".

    Vamos supor que temos um sistema que deveproduzir um relatrio a cada 100 vendas informadas

    por cada vendedor. A resposta correta ter um evento "Vendedorinforma venda", com uma sada (alm das outras

    necessrias) "Relatrio de Vendas".Geralmente analistas iniciantes "inventam" umevento especial "Vendedor faz centsima venda".

    Confundindo eventos e respostas:casos especiais

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    90/105

    85

    Esse raciocnio pode ser aplicado em todos oscasos em que temos uma sada opcional.

    interessante notar que, em um DFD, as sadase entradas em um processo no so obrigatrias,mas opcionais.

    a lgica do processo que vai decidir se elasexistem ou no.Assim, podemos incluir em um evento todos os

    casos especiais que so identificveis pelo sistema.Obviamente, se o sistema no tiver um meio dedescobrir que um caso especial, ento devemos

    ter outro evento.

    A Memria do Sistema

    Como memria do modelo essencial deve ser

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    91/105

    86

    Como memria do modelo essencial deve serutilizado o modelo de entidades e relacionamentos,descrito no Captulo VII.

    Para cada evento e atividade essencial importante definir que memrias sero utilizadas.Isso pode ser feito por meio de uma Matriz CRUDou por meio de DFDs e mini-especificaes.

    Entendendo um Evento

    Para garantir que entendemos completamente

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    92/105

    87

    Para garantir que entendemos completamenteum evento, devemos nos perguntar as seteperguntas do mtodo 5W2H: Who, When, Where,

    What, Why, How, How Much.

    Who? Ou Quem?

    Quem so os agentes externos?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    93/105

    88

    Quem so os agentes externos?

    Quem o iniciador?

    Quem o transportador?

    Existem outras pessoas ou sistemas envolvidos

    nesse evento?

    Essa atividade precisa de mais agentes externos?

    When? Quando?

    Quando ocorre essa atividade?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    94/105

    89

    Quando ocorre essa atividade?

    Alguma coisa precisa acontecer antes dessaatividade?

    Alguma coisa deve acontecer depois dessaatividade?

    Essa atividade est limitada no tempo por algumoutro evento? Por exemplo, s podemos vender apsa loja abrir e at a loja fechar.

    Quando os dados (de entrada ou de sada) sonecessrios?

    Where? Onde?

    Onde ocorre a atividade em que setor ou

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    95/105

    90

    Onde ocorre a atividade, em que setor oudepartamento?

    De onde vem o estmulo?

    Para onde vai cada sada?

    What? O que?

    O que deve ser feito pela atividade?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    96/105

    91

    O que deve ser feito pela atividade?

    Que dados devem vir no evento externo?

    Que sadas devem ser feitas?

    Que dados so necessrios?

    Why? Por que?

    Porque o evento acontece?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    97/105

    92

    Porque o evento acontece?

    Porque alguns dados so necessrios?

    How? Como?

    Como a atividade acontece detalhadamente?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    98/105

    93

    Como a atividade acontece detalhadamente?

    Como so as sadas (relatrios) e entradas?

    How much? Qual o valor? Quanto custa?

    Quanto custa implementar o evento?

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    99/105

    94

    Quanto custa implementar o evento?

    Quanto custa o evento para a empresa cliente?

    Quanto custa um erro na atividade que realiza oevento?

    O Dicionrio de Eventos

    Com o tempo a Lista de Eventos entendidadi i i d t d

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    100/105

    95

    Com o tempo, a Lista de Eventos entendidapara um dicionrio de eventos, que descrevedetalhadamente as caractersticas de cadaevento.

    Cada entrada no Dicionrio de Eventos composta de:

    Identificador do evento, um nmero nico identificar doevento. Esse nmero obrigatrio.

    Nmero de seqncia do evento no tempo, se existe.Novamente um nmero, porm indicando a ordem doevento no tempo, se existir. O nmero opcional. Vrioseventos podem possuir a mesma ordem (pois aconteceriamno mesmo intervalo de tempo).

    Nome do evento, uma sentena que identifica o evento,de acordo com as regras anlise essencial.

    O Dicionrio de Eventos

    Descrio do evento, uma descrio mais longa do evento,possivelmente contendo informaes no essenciais (como a

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    101/105

    96

    , uma descrio mais longa do evento,possivelmente contendo informaes no essenciais (como amotivao do agente externo), porm que aumentam acompreenso do evento. um resumo do que o evento.

    Classificao do evento(externo (E/NE), temporal (R/A),No-evento.

    Iniciador, o agente externo que envia o estmulo. Transportador, i.e., quem inserir os dados no sistema

    Dados presentes no estmulo, descritos segundo alguma linguagemde dicionrio de dados, como a descrita nesse texto.

    O Dicionrio de Eventos

    Atividade, descrio sucinta da atividade, por meio de algumalinguagem Possivelmente uma descrio algortmica em portugus

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    102/105

    97

    p glinguagem. Possivelmente uma descrio algortmica em portugusestruturado ou como uma seqncia de passos. Uma soluointeressante e descrever a atividade de acordo com suaspr-condies e ps-condies, possivelmente em uma linguagemformal como VDM ou Z.

    Informao emitida na atividade, efeito da atividade no ambiente,

    descrio de cada sada do sistema de acordo com uma linguagemde dicionrio de dados ou equivalente.

    O Dicionrio de Eventos

    Efeito da atividade no sistema, descrio em linguagem naturalou em outra linguagem das modificaes que ocorrem no estado

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    103/105

    98

    ou em outra linguagem das modificaes que ocorrem no estadoglobal do sistema, ou com entidades especficas, com a execuoda atividade.

    Tempo, limites de tempo do evento, ligado aos eventosesperados, quando devem acontecer.

    Lista de entidades utilizadas(tiradas do modelo conceitual de dados),ou Matriz CRUD.

    Efeitos colaterais das atividades so descritos aqui.Por exemplo: a atividade pode cadastrar um cliente na listade clientes inadimplentes, um efeito seria "o cliente estproibido de realizar outros gastos na empresa".

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    104/105

    99

    Professor:

    Geraldo XexoDCC/IM/UFRJAula 24

  • 7/24/2019 Aula_024 - Modelagem Funcional Essencial

    105/105

    100

    Contedo:

    FIM: Modelagem

    Funcional Essencial

    DCC/IM/UFRJ

    PESC/COPPE/UFRJ

    Aula 24