Documente Academic
Documente Profesional
Documente Cultură
Funcional
Essencial
Geraldo Xexo
DCC/IM/UFRJ
PESC/COPPE/UFRJ
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
Anlise
todos os mtodos de anlise devem ser
capazes de suportar 5 atividades:
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
Anlise Essencial
O objetivo da Anlise Essencial descobrir, e
documentar, todos os requisitos funcionais
verdadeiros de um sistema e apenas esses
requisitos.
Para que isso seja possvel, adotamos um
conjunto de princpios e conceitos que nos
permitem identificar esses requisitos dentro de
toda a informao levantada durante um
processo de anlise.
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 qual possamos definir uma resposta
planejada.
Respostas Planejadas
Deve ficar claro que no estamos interessados
em eventos que exigem respostas ad-hoc, isto
, caso a caso.
Princpios
Os princpios da modelagem essencial sero
os nossos guias no processo de anlise.
O que acontece nesse processo que vrias
vezes temos a opo de tomar dois ou mais
caminhos.
Na modelagem estruturada tradicional temos apenas
vagas recomendaes que nos auxiliam a escolher
esse caminho,
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.
O Oramento para a
Complexidade
Esse princpio nos orienta a modelar um
sistema que possamos compreender.
Para isso devemos manipular a complexidade
do modelo de forma a manter tanto o todo
como cada uma de suas partes em um nvel de
complexidade compatvel com a inteligncia
humana.
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:
10
72
11
Todo e Partes
Complexidade Total funo
Complexidade de cada parte
Complexidade do todo
12
A Neutralidade Tecnolgica
Exige que um modelo essencial no inclua em
nenhuma de suas partes indcios da tecnologia
de implementao
Essa exigncia, apesar de importante, das mais
quebradas pelos analistas.
Isso acontece por que geralmente j sabemos qual a
tecnologia em que vamos implementar o sistema.
13
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 necessidade de se assumir algumas
premissas para obter solues mais eficientes.
14
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.
15
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 cada
ponto onde for encontrado esse
comprometimento para uma especificao
tecnologicamente neutra.
16
17
18
19
20
No demora
Custa barato
21
KISS
keep it simple, sir...
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
24
O Princpio da Ausncia de
Surpresas
O princpio conservado quando o produto:
25
26
A Essncia
A essncia do sistema tudo que precisaria
ser includo no sistema para que o mesmo
funcionasse quando implementado em um
ambiente de tecnologia perfeita.
Isso compreende velocidade infinita no processador,
tamanho infinito de memria, custo nulo para todas
as operaes, infalibilidade, etc.
Eventos Essenciais
Na modelagem essencial tudo ocorre em funo de eventos.
Imaginamos que o sistema possui dois estados:
em atividade ou
esperando um evento.
28
Eventos Essenciais
o acontecimento do evento que faz com que
o sistema entre em funcionamento e ento
realize todas as tarefas necessrias para
atender aquele evento, ou seja, a atividade
essencial correspondente ao evento.
importante notar que o sistema s tem a
oportunidade de funcionar quando acontece
um evento.
Esses eventos, por definio, no so controlveis
pelo sistema
29
Atividades
Cada tarefa que o sistema de tecnologia perfeita tem que
realizar para cumprir a finalidade do sistema uma atividade
essencial.
Requisitos funcionais
30
Memrias
As atividades essenciais, para poderem
executar suas tarefas, precisam guardar
informao.
Requisitos de Informao
31
Atividades Fundamentais
So aquelas que justificam a existncia do sistema.
Certamente, ao comprar um sistema, precisamos
fundamentalmente das sadas que ele nos disponibilizar.
32
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 um agente
externo, um ser humano ou outro sistema que faz
parte do ambiente, interagindo com o sistema,
Podem estar guardados em uma memria.
33
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.
34
Atividades Custodiais
Atividades custodiais, fique bem claro, so
essenciais ao funcionamento do sistema.
35
Viso Pragmtica
possvel ter uma viso menos funcional e
mais pragmtica, que perde muito da
qualidade filosfica, mas ganha em
simplicidade:
atividades fundamentais tm uma sada para o
mundo externo, enquanto
atividades custodiais alteram memrias.
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.
37
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.
38
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.
39
Transportadores
O modelo essencial est interessado nos agentes
externos que detm realmente o controle dos estmulos
ou que realmente recebem a informao.
Alguns usurios do sistema implementado, como digitadores,
no so modelados na anlise essencial.
40
Agentes x Transportadores
A verdadeira essncia de um sistema est
relacionada com sua funo no negcio em
que ele est inserido.
Devemos considerar como agentes externos
aquelas 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 ou
apenas um transportador, no contexto de um
negcio, perguntar se ele pode realizar, por
sua vontade, aquele evento.
41
Descrio
No estamos preocupados com os motivos dos
agentes externos, ou em modificar suas aes,
ou com o que eles fazem com os dados que
obtm do sistema.
Por isso eles no so estudados, definindo a
fronteira do sistema e os limites do trabalho de
anlise.
42
Descrio
Outro tipo comum de agente externo aquele
que representa uma instituio ou
departamento externo ao ambiente de uso do
sistema.
nomeado com o nome desse departamento ou da
instituio (ou ainda, do tipo da instituio).
43
44
45
Eventos e Atividades
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).
46
Eventos e Atividades
Como apenas um evento inicia a atividade, ento apenas um
nico agente externo pode enviar informaes para uma
atividade.
Isso uma regra importante da anlise essencial, pois indica
como o sistema ser particionado.
47
Eventos: Gatilhos
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 no sistema existente,
na encarnao atual, pois elas podem sofrer
interrupes esprias, que dividem um evento
entre vrios processadores.
48
Evento
Sadas
Sistema
Parado
Sistema
Parado
Sadas
Tempo
49
Dilogos
Muitas vezes o iniciante na anlise essencial imagina
que ser travado um dilogo com o usurio durante a
atividade.
Esse dilogo interno a uma atividade no existe na anlise
essencial.
50
Dilogos
Caso o dilogo seja realmente necessrio para o
funcionamento do sistema, ento temos na verdade
dois, ou mais, eventos e suas respectivas atividades
Isso acontece porque uma atividade, por definio, no pode
ficar esperando por uma entrada de dados.
51
Eventos Internos
Segundo a anlise essencial, no existem eventos
internos ao sistema,
no dizemos que um processo do sistema se inicia por causa
de um evento causado por outro processo.
52
Reviso
Os eventos acontecem fora do sistema,
correspondem a um estmulo que cruza a
fronteira do sistema de fora para dentro e so
vistos e descritos na perspectiva de um ser
imaginrio que habita sistema.
Assim eles so descritos tendo como sujeito o
agente externo que os iniciam, como em Aluno
solicita matrcula
53
Tipos de Eventos
Um evento externo quando parte do ambiente para dentro
do sistema. Um comando ou um pedido do usurio, por
exemplo.
Um evento temporal quando provocado por uma mudana
no tempo, como um alarme de relgio ou uma data no
calendrio.
54
55
56
57
No-Eventos
Eventos esperados formam uma categoria importante,
pois sabemos que no mundo real, quando um evento
esperado no acontece (o pagamento de uma conta,
por exemplo), pode ser necessrio tomar uma atitude
especfica.
Dizemos ento que eventos esperados podem
necessitar que sejam definidos no-eventos.
Esse o nome que damos para eventos que
acontecem em funo de outro no ter acontecido,
possivelmente a partir de um prazo,
O nome noevento pode causar confuso. Um noevento
um evento, em especial, um evento temporal relativo.
58
No-Eventos
Um s evento esperado pode necessitar de
vrios no eventos, que ocorrem normalmente
em prazos distintos.
Assim, se temos um evento esperado cliente paga
conta, at o dia 30 do ms, podemos ter vrios no
eventos para os prazos de 1 dia, 1 semana, 1 ms,
3 meses e 1 ano, por exemplo.
Eventos Essenciais
Eventos Externos
Agendados
No Agendados
Eventos Temporais
Absolutos
Relativos
No- Evento
Descrevendo
Um evento externo sempre caracterizado
pela existncia de agente externo, que a
pessoa ou um outro sistema que faz com que o
evento acontea, enviando para o sistema o
estmulo correspondente.
Assim, na nossa descrio de um evento externo
sempre devemos colocar o nome do agente externo
que o causa.
61
Descrevendo
No caso de eventos temporais, devemos
colocar o fato que faz o evento acontecer.
62
Sintaxe
A sintaxe para definir eventos externos :
Sintaxe
A sintaxe para definir eventos temporais :
<condio temporal>, (hora|dia|etc.) de <verbo no
infinitivo> <objeto>
ou simplesmente
<condio temporal>, <verbo no infinitivo> <objeto>
64
Sintaxe
A sintaxe para um no evento :
<condio de no acontecimento de um evento>, <prazo ou condio
temporal>, <verbo no infinitivo>, <objeto>
65
Sintaxe
O objeto da orao normalmente um objeto direto que, de
alguma forma, representa uma informao tratada pelo
sistema, e possivelmente tambm um objeto indireto indicando
para quem ou para onde a informao enviada.
66
Exemplos
67
Erros!
Vejamos agora alguns eventos descritos de forma incorreta:
Enviar pedido (sem agente externo ou indicao de tempo)
Gerente imprime relatrio (quem imprime o sistema, o
gerente solicita, alm disso, relatrio um termo muito vago).
68
Classificando os Eventos
Apesar de termos descrito os eventos como podendo ser de
vrios tipos, no extremamente necessrio identificar todos
os eventos.
Porm, fazer isso traz a vantagem de podermos testar a forma
como o evento est descrito
69
Classificando os Eventos
Eventos externos:
So esperados ou agendados?
Se esperados, possuem um noevento correspondente?
So no-esperados ou no agendados?
So uma solicitao?
Ppossuem dados?
70
Classificando os Eventos
Eventos temporais:
S ocorrem dessa forma?
So realmente temporais ou podem ser calculados
antes (sendo, nesse caso, uma sada do sistema)?
So Relativos?
So noeventos?
Qual o evento original?
71
Classificando Eventos
Opcionalmente, podemos construir uma tabela
de classificao de eventos, como a
apresentada a 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 que seja um requisito falso.
72
Encontrando Eventos
Os principais eventos so os pedidos que so feitos ao
sistema. Eles normalmente podem ser encontrados em
formulrios, memorandos, documentos que chegam e
observando o atendimento 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 evento externo esperado
deve precisar de um e pode precisar de mais no
eventos.
No mundo real encontramos ainda outras
caractersticas que indicam novos eventos:
Pedidos normalmente podem ser cancelados.
74
Encontrando Eventos
O que enviado pode retornar, exigindo uma ao
especfica.
Documentos podem ser perdidos e segundas vias
podem ser necessrias
Fiscais (ICMS, ISS, Trabalho,...) podem aparecer e
solicitar relatrios (que podem ser obrigatrios em um
sistema).
Processos que ocorrem em uma ordem podem ter 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.
75
Simplificando Eventos
Segundo a anlise essencial original, as operaes de incluir,
eliminar e alterar uma memria exigiriam pelo menos trs
eventos distintos, como em:
Proprietrio cadastra produto
Proprietrio altera produto
Proprietrio apaga produto
76
Simplificando Eventos
Isso, porm, pode no representar a verdade e ser
muito complicado em alguns sistemas.
77
78
79
80
81
Confundindo eventos e
respostas
82
84
85
A Memria do Sistema
Como memria do modelo essencial deve ser utilizado 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 CRUD ou por meio de DFDs e mini-especificaes.
87
Entendendo um Evento
Para garantir que entendemos completamente um evento,
devemos nos perguntar as sete perguntas do mtodo 5W2H:
Who, When, Where, What, Why, How, How Much.
88
Who? Ou Quem?
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?
89
When? Quando?
Quando ocorre essa atividade?
Alguma coisa precisa acontecer antes dessa
atividade?
Alguma coisa deve acontecer depois dessa
atividade?
Essa atividade est limitada no tempo por
algum outro evento? Por exemplo, s podemos
vender aps a loja abrir e at a loja fechar.
Quando os dados (de entrada ou de sada) so
necessrios?
90
Where? Onde?
Onde ocorre a atividade, em que setor ou departamento?
De onde vem o estmulo?
Para onde vai cada sada?
91
What? O que?
O que deve ser feito pela atividade?
Que dados devem vir no evento externo?
Que sadas devem ser feitas?
Que dados so necessrios?
92
93
How? Como?
Como a atividade acontece detalhadamente?
Como so as sadas (relatrios) e entradas?
94
95
O Dicionrio de Eventos
Com o tempo, a Lista de Eventos entendida para um
dicionrio de eventos, que descreve detalhadamente
as caractersticas de cada evento.
Cada entrada no Dicionrio de Eventos composta de:
Identificador do evento, um nmero nico identificar do
evento. Esse nmero obrigatrio.
Nmero de seqncia do evento no tempo, se existe.
Novamente um nmero, porm indicando a ordem do evento
no tempo, se existir. O nmero opcional. Vrios eventos
podem possuir a mesma ordem (pois aconteceriam no mesmo
intervalo de tempo).
Nome do evento, uma sentena que identifica o evento, de
acordo com as regras anlise essencial.
96
O Dicionrio de Eventos
Descrio do evento, uma descrio mais longa do
evento, possivelmente contendo informaes no
essenciais (como a motivao do agente externo),
porm que aumentam a compreenso 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 linguagem de dicionrio de dados, como a
descrita nesse texto.
97
O Dicionrio de Eventos
Atividade, descrio sucinta da atividade, por meio
de alguma linguagem. Possivelmente uma descrio
algortmica em portugus estruturado ou como uma
seqncia de passos. Uma soluo interessante e
descrever a atividade de acordo com suas prcondies e ps-condies, possivelmente em uma
linguagem formal como VDM ou Z.
Informao emitida na atividade, efeito da
atividade no ambiente, descrio de cada sada do
sistema de acordo com uma linguagem de dicionrio
de dados ou equivalente.
98
O Dicionrio de Eventos
Efeito da atividade no sistema, descrio em
linguagem natural ou em outra linguagem das
modificaes que ocorrem no estado global do
sistema, ou com entidades especficas, com a
execuo da atividade.
Efeitos colaterais das atividades so descritos aqui. Por
exemplo: a atividade pode cadastrar um cliente na lista de
clientes inadimplentes, um efeito seria o cliente est
proibido de realizar outros gastos na empresa.
99
Geraldo Xexo
FIM: Modelagem
Funcional
Essencial
DCC/IM/UFRJ
PESC/COPPE/UFRJ