Buscar

Cursinho online - Análise Estruturada de Sistemas

Prévia do material em texto

Análise Estruturada de Sistemas
Módulo 01 - Introdução
Introdução
	Incialmente vamos abordar o conceito da Análise funcional, uma técnica utilizada para especificar um sistema.
	Vamos ver também como é utilizado:
	O Modelo de Contexto e o Modelo de Análise funcional.
	O Diagrama de Contexto e como, por meio dele, podemos elaborar uma lista de eventos.
Vamos aprender sobre:
· Identificar as entidades externas e eventos temporais.
· Identificar os fluxos de dados de entrada e saída.
· Funções essenciais de um sistema e elaborar o diagrama de fluxo de dados das funções essenciais.
· Como elaborar os modelos funcionais dos sistemas e como utilizar as funções macro para agrupar funções essenciais.
· Como elaborar o diagrama de decomposição das funções essenciais e como realimentar os diagramas de níveis superiores.
· Listas de verificação, que ajudam na qualidade dos modelos de contexto e modelo funcional.
· Identificar os depósitos de dados de um sistema.
Objetivos
	O objetivo deste curso é lhe proporcionar conhecimentos, competências e habilidades no desenvolvimento da Análise estruturada de sistemas.
	Os exercícios propostos irão facilitar a assimilação dos conceitos, fazendo você construir, a seu tempo, o conhecimento necessário para desenvolver o uso dessa técnica de análise.
Análise funcional
Introdução
	Vamos abordar a técnica da Análise funcional, conhecendo seus conceitos e suas funcionalidades.
Objetivos
	Conhecer os conceitos básicos deste tipo de análise, onde e para que ela pode ser utilizada.
Conteúdo do módulo
O que é analise funcional
Para que serve esta técnica
Onde e quando ela é aplicada
O que é Analise funcional?
	A Análise funcional é uma técnica de especificação de sistemas.
Dica
	Especificar um sistema é definir o que ele deve fazer.
	Um dos problemas mais sérios no processo de especificação de sistemas é a dificuldade de analistas e usuários se comunicarem de forma eficaz e não ambígua.
Uma linguagem comum
	A análise funcional introduz uma linguagem comum, isenta de aspectos técnicos, de fácil entendimento por parte dos usuários, por meio da qual analistas, usuários e demais envolvidos podem se comunicar e se fazer entender.
	Ela se baseia nos princípios da técnica de análise estruturada, introduzida na década de 70 por diversos metodologistas, principalmente, por Trish Sarson, Chris Gane e Tom DeMarco. Porteriormente, esta técnica foi aprimorada, com a inclusão de novos conceitos pela chamada análise essencial, introduzida por Palmer e McMenamin.
Quando se aplica?
	A análise funcional serve principalmente para:
1. Sistematizar o processo de especificação de sistemas.
Sem a análise funcional, a especificação do sistema, quando é feita, se baseia em descrições textuais, com todas as limitações da linguagem natural. Cada analista usa sua própria forma de especificação, sem uma padronização de linguagem e de métodos.
2. Obter a visão lógica ou conceitual do sistema de informação.
Um dos princípios básicos das boas práticas de desenvolvimento de sistemas é a separação entre a visão lógica e a visão física. Tradicionalmente, os analistas têm tido dificuldades de expressar suas ideias em termos lógicos ou conceituais. Eles têm a tendência de se concentrar nos aspectos físicos da solução, antes mesmo da análise dos aspectos conceituais do problema ser concluída.
A análise funcional se caracteriza pela absoluta independência dos detalhes de implementação do sistema. Seu resultado é um conjunto de gráficos e descrições que oferecem uma visão lógica ou conceitual do sistema.
Quando se aplica? – Uniformizando e estruturando
3. Uniformizar as diferentes visões que as pessoas têm de um sistema.
4. Estruturar e simplificar a análise de sistemas de informação, principalmente dos mais complexos.
Quando se Aplica? – Registrando
5. Registrar de forma sistemática as necessidades do usuário.
Módulo 02 – Análise Estruturada
Introdução
	Neste módulo vamos abordar os conceitos básicos da análise estruturada.
Conteúdo do módulo
O que é um sistema?
Sistema de informação
Os elementos básicos da análise funcional
Objetivos
	Discutir os conceitos de sistema e de sistema de informação.
	Discutir o conceito de decomposição funcional de um sistema.
	Apresentar os elementos básicos da análise estruturada.
	Apresentar o roteiro de atividades utilizado para fazer a análise estruturada de um sistema.
Sistema
	A análise funcional é uma técnica de especificação de sistemas.
	O Sistema é um conceito útil, que ajuda a analisar diversos fenômenos segundo um ângulo novo. A origem deste conceito é a biologia, mas ele se aplica de forma semelhante nas ciências sociais, na administração de empresas, na engenharia etc.
NOTA
	Um sistema é um conjunto de partes inter-relacionadas, denominadas componentes ou subsistemas, que busca um determinado fim global comum.
	Esta definição indica que um sistema:
· Tem um objetivo.
· É formado por componentes ou subsistemas.
· Mostra um forte relacionamento entre os componentes.
· Recebe destes componentes uma contribuição direta ou indireta para atingir seu objetivo.
Exemplo de sistema
	Um bom exemplo de sistema é o corpo humano. Ele é um conjunto de partes que se inter-relacionam para um objetivo comum: preservar a vida de uma pessoa.
	O conceito de sistema nos faz ver as coisas de forma diferente. Por exemplo, a decomposição de um corpo humano em cabeça, tronco e membros é inadequada porque não fica claro como as partes se relacionam e como contribuem para o objetivo comum.
Exemplo de sistema – Subsistema
	Um exemplo de decomposição é como o sistema corpo humano pode ser dividido em subsistemas: digestivo, circulatório, nervoso, reprodutor etc.
	Dividindo o corpo humano desta forma, fica mais claro entender como cada componente (subsistema) contribui para o objetivo comum do sistema.
Sistemas
Circulatório
Digestivo
Nervoso
Reprodutor
A organização vista como um sistema
	Uma organização pode ser vista como um sistema. Suas diversas áreas e departamentos funcionam como componentes, interagindo entre si para atingir o objetivo comum. Os componentes aqui são:
· A recepção da matéria-prima.
· O estoque.
· A produção.
· O controle de qualidade
· A expedição.
· O sistema de segurança.
· A administração.
Sistema de informações
	O sistema de informações de uma organização é um dos componentes do sistema global. Existe um paralelo entre os componentes de um sistema de informações e o sistema de produção de uma organização.
	Os componentes de um sistema de informações são:
· A entrada dos dados (matéria-prima) para o sistema, que devem ser recebidos e codificados para uma forma que o sistema possa entender e processar.
· O controle de qualidade, que verifica a correção dos dados recebidos.
· O processamento (produção) dos dados recebidos.
· O armazenamento (estoque) de informações.
· A saída (expedição) das informações obtidas por meio de relatórios e/ou telas.
· A administração, que controla todo o processamento.
Decomposição sucessiva
	Para entender o funcionamento de um sistema, usamos uma estratégia denominada “decomposição sucessiva”. Um sistema é composto de partes e cada parte é também um sistema. Cada subsistema, por sua vez, pode ser dividido em partes e assim por diante.
	A análise funcional utiliza a decomposição para resolver problemas complexos. Consiste em dividi-los em problemas mais simples e estes, sucessivamente, em problemas mais simples ainda, até que a complexidade chegue a um nível adequado para um entendimento correto e para sua solução.
Elementos básicos	
	A análise funcional utiliza um conjunto de quatro elementos básicos para descrever um sistema. Estes elementos são adequados para representar uma visão lógica do sistema, que não se preocupa com detalhes de implementação.
Função		Depósito de Dados		Função
		Depósito de Dados
Função		Depósito de Dados		Função
	O depósito de dados é um local para armazenagem de dados e pode ser: um HD, um CD, uma tabela do Acess etc.
Entidade Externa	Função	 Depósito de Dados	Função Entidade Externa
				 Depósitode Dados
Entidade Externa	Função	 Depósito de Dados	Função Entidade Externa
	As entidades externas representam a origem e o destino dos dados processados pelo sistema.
Entidade Externa	Função	 Depósito de Dados	 Função Entidade Externa
				 Depósito de Dados
Entidade Externa	Função	 Depósito de Dados	Função Entidade Externa
As setas na imagem representam os “Fluxos de Dados”
	Da mesma forma, o fluxo de dados representa dados em movimento, não importando através de qual meio.
Roteiro para especificação de sistemas
	O processo de especificação de sistemas, segundo a técnica de análise funcional, é realizado em três passos:
Definir o contexto de análise
	Antes de qualquer coisa, é importante obter um consenso junto aos usuários sobre o que está dentro e o que está fora do escopo daquilo que será realizado. O instrumento que registra o resultado deste primeiro passo é o modelo de contexto.
Modelar as funções
	Este passo constitui o elemento central do processo de especificação, pois nele são:
· Identificadas as funções do sistema.
· Decompostas as funções complexas em funções mais simples.
· Identificados os depósitos de dados.
Roteiro para especificação de sistemas
	Para completar a especificação do sistema, cada um dos elementos identificados que constam dos modelos produzidos nos passos anteriores, são individualmente descritos, criando-se um conjunto de descrições conhecido como dicionário de dados.
PASSOS					PRODUTO
1 Definir o Contexto de Análise- Modelo de Contexto
2 Modelar as Funções – Modelo Funcional
3 Descrever os Elementos dos Modelos – Dicionário de Dados
Módulo 03 – Modelo de Contexto
Introdução
	Neste módulo vamos aprender o que é o modelo de contexto, como ele é desenvolvido e os seus componentes.
Conteúdo do módulo
O que é o modelo de contexto?
Como é desenvolvido?
Componentes principais do modelo de contexto
Objetivos
	Definir os limites do sistema que está sendo analisado.
	Conhecer os dois componentes deste modelo que são o diagrama de contexto e a lista de eventos.
Modelo de contexto – O que é?
	É o instrumento de análise funcional que serve para:
· Identificar os elementos externos que interagem com o sistema.
· Mostrar o fluxo de informação existente entre o sistema e seu ambiente externo.
· Estabelecer os limites do sistema.
· Identificar os eventos que ocorrem no ambiente externo e que provocam uma resposta do sistema.
Modelo de contexto – Como é desenvolvido?
	O modelo de contexto deve ser desenvolvido em conjunto com os usuários. Se não for possível, ele pode ser desenvolvido pelos analistas e submetido à aprovação dos usuários. 
	De qualquer forma, o modelo de contexto vai se constituir numa espécie de contrato de prestação de serviços entre analistas e usuários com relação àquilo que vai ser incluído no sistema. Por isso, todos os cuidados devem ser tomados para garantir uma correta determinação dos limites do sistema, do que vai ser e do que não vai ser objeto de análise.
Modelo de contexto – Componentes
	O modelo de contexto tem dois componentes:
· O diagrama de contexto, que é uma representação gráfica do sistema com seu ambiente externo.
· A lista de eventos, que relaciona os fatos do ambiente externo que o sistema obrigatoriamente deve reconhecer.
Diagrama de Contexto
					 Lista de Eventos
ESTÍMULO		RESPOSTA		EVENTO
Pagamento		Recibo	 Cliente efetua pagamento
			Extrato	 Hora de emitir extrato
		 	Relação de	 Hora de emitir relação de inadimplentes
 Inadimplentes
Construindo o modelo de contexto
	Para construir o modelo de contexto seguimos os passos descritos na animação.
1. Identificar as entidades externas e representa-las no Diagrama de Contexto.
Entidade Externa			Entidade Externa
			Sistema
Entidade Externa			Entidade Externa
Módulo 04 – Diagrama de Contexto
Introdução
	Neste módulo vamos ver com mais detalhes o diagrama de contexto e como usamos este instrumento para estabelecer os limites do sistema.
Conteúdo do módulo
O sistema de cobrança
Os limites do sistema
Exemplos de diagrama de contexto
Objetivos
	Saber como funciona o Sistema de Cobrança, conhecer alguns exemplos de diagrama de contexto e também alguns limites do Sistema.
O sistema de cobrança
	Considere um sistema de cobrança de uma organização. Suponha que este sistema seja bastante simples.
	Ele deve ser capaz de:
· Receber os pagamentos feitos pelos clientes.
· Emitir os recibos dos pagamentos realizados.
· Emitir extratos periódicos para os clientes.
· Emitir relação de clientes inadimplentes para uso do Departamento Jurídico.,
Diagrama de contexto
	Neste exemplo, podemos destacar que:
· O cliente é origem e destino das informações que o sistema recebe e gera.
· O Departamento Jurídico é o destino das informações geradas pelo sistema.
· O sistema recebe informações relativas aos pagamentos feitos pelo cliente.
· O sistema emite os recibos e os extratos para os clientes.
· O sistema emite a relação de inadimplentes para o Departamento Jurídico.
Diagrama de contexto – Sistema de cobrança
	Veja o diagrama de contexto do sistema de cobrança:
	Você pode observar que:
· O cliente e o Departamento Jurídico são as entidades externas, origem e destino das informações que o sistema recebe ou emite.
· Pagamento é um fluxo de dados recebido pelo sistema. Nós chamamos este tipo de fluxo de dados de “fluxo de entrada” ou de “estímulo”.
· Recibo, extrato e relação de inadimplentes são fluxos de dados emitidos pelo sistema. São “fluxos de saída” ou “respostas” do sistema.
Ambiente externo
	O cliente e o Departamento Jurídico não fazem parte do sistema, mas interagem com ele, fornecendo ou recebendo dados. Constituem o que se denomina o “ambiente externo” do sistema.
	Se quisermos, podemos considerar que o Departamento Jurídico é parte integrante do sistema de cobrança. Sendo assim, ele deixa de fazer parte do ambiente externo e não aparece mais no diagrama de contexto como entidade externa.
Limites do sistema
	Como podemos ver, a inclusão ou não de uma entidade externa e os fluxos de dados correspondentes podem aumentar ou diminuir a abrangência de um sistema.
	Neste exemplo, o que está em discussão é se o Departamento Jurídico e as funções por ele executadas fazem parte ou não do sistema. Analista e cliente devem chegar a um consenso a respeito disto e o diagrama de contexto refletirá o resultado da discussão.
Módulo 05 – Entidade e Fluxos Externos
Introdução
	Neste módulo vamos aprender a identificar as entidades externas que fazem parte do ambiente externo de um sistema e identificar os fluxos de dados que são originados nestas entidades ou que se destinam a elas.
Objetivos
	Desenhar um diagrama de contexto para um sistema.
Conteúdo do módulo
Entidades externas
Fluxo de dados
Como desenhar um diagrama de contexto
Entidade externa
	Uma entidade externa é um elemento do ambiente externo ao sistema que:
· Gera informações que dão entrada no sistema.
· Recebe informações que são geradas pelo sistema.
Para identificar entidades externas, respondemos às seguintes perguntas:
Que elementos externos (pessoas ou organizações) são origem de informações que se destinam ao sistema?
Que elementos externos (pessoas ou organizações) são o destino de informações geradas pelo sistema?
Esses elementos realmente tratam os dados que geram ou recebem ou apenas os repassam?
Esses elementos realmente fazem parte do ambiente externo ou são parte integrante do sistema?
Fluxo de dados
	Fluxos de dados são dados em movimento. Podem ser:
· Entradas ou estímulos para o sistema.
· Saídas ou respostas do sistema.
As entidades externas são a origem ou destino dos fluxos de dados.
Desenhando diagrama de contexto
	Para desenhar o diagrama de contexto, siga o roteiro descrito na apresentação:
1. No meio da página coloque o símbolo que representa o sistema.
2. Disponha as entidades externas em volta do sistema.
Módulo 06 - Eventos
Introdução
	Neste módulo, teremos a oportunidade de conhecer um novo conceito de eventos.
Conteúdo do módulo
Tipos de eventos
Definir os limites de um sistemaIdentificar as funções que compõem um sistema
Objetivos
	Preparar uma lista de eventos.
Eventos
	Eventos são fatos que ocorrem fora do sistema e têm o poder de fazer com que reaja e produza respostas.
	Imagine o sistema como um ser que fique o tempo todo dormindo e só é acordado quando alguma coisa acontece.
	Existem dois tipos de eventos:
· Eventos externos
· Eventos temporais
Eventos externos
	Eventos externos são fatos que ocorrem fora do sistema e que fazem o sistema reagir.
	Por exemplo:
Cliente paga conta
	Um evento externo:
· Acontece fora do sistema
· Gera um estímulo que “acorda” o sistema
· Provoca uma resposta do sistema.
Eventos temporais
	Eventos temporais não estão relacionados a fatos externos. Estão relacionados à passagem do tempo.
	Exemplo:
	É hora de emitir extratos.
	Outro exemplo de evento temporal:
	É hora de emitir relação de inadimplentes.
Nomeando eventos
	Os eventos externos são nomeados com uma frase que indica a ação que está sendo executada fora do sistema.
	Por exemplo:
	Cliente efetua pagamento
	Na maioria dos casos, a frase que dá nome ao evento é formada assim:
· O sujeito é a entidade externa
· O verbo indica a ação executada
· O objeto é o nome do fluxo de dados
O nome dos eventos temporais sempre começa pela expressão
É hora de ...
Seguida da ação que o sistema deverá executar:
É hora de emitir extratos periódicos
É hora de emitir relação de inadimplentes.
	Recibo
		Sistema
Cliente	Pagto	 de		 Relação de	Depto.
		Cobrança	Inadimplentes	Jurídico
	Extrato
 Periódico
Lista de eventos
	A lista de eventos é a relação de eventos externos e temporais:
	Cliente efetua pagamento
	É hora de emitir extratos periódicos
	É hora de emitir relação de inadimplentes
Módulo 07 – Limites do Sistema
Introdução
	Vamos aprender a completar a lista de eventos, preenchendo as colunas referentes aos estímulos e às respostas. Com a lista de eventos completa, você terá definido de forma clara e objetiva os limites do sistema.
Objetivos
	Conhecer os conceitos de estímulo e resposta e como eles se relacionam com os eventos e elaborar uma lista de eventos, a partir do diagrama de contexto.
Conteúdo do módulo
O que são estímulos e respostas
Como preencher e elaborar uma lista de eventos
Estímulos
 Recibo
		Sistema
Cliente	Pagto	 de		 Relação de	Depto.
		Cobrança	Inadimplentes	Jurídico
	Extrato
 Periódico
	Estímulos são os fluxos de dados que entram no sistema. Estes fluxos de dados informam ao sistema que um evento externo ocorreu.
	No exemplo ao lado, o fluxo de dados Pagamento representa um estímulo recebido pelo sistema. Este estímulo indica ao sistema a ocorrência do evento Cliente efetua pagamento.
	Este fluxo de dados contém todos os dados relativos ao pagamento efetuado e habilita o sistema a dar a resposta adequada ao evento ocorrido. No caso, a resposta do sistema ao estímulo recebido é a emissão do recibo correspondente.
A lista de eventos
	A lista de eventos é uma tabela de três colunas:
Eventos
Estímulos
Respostas
EVENTOS					ESTÍMULOS		RESPOSTAS
Cliente efetua pagamento
Hora de emitir extrato
Hora de emitir relação de inadimplentes
Preenchendo a lista de eventos – Estímulos 
	Os estímulos devem ser colocados na lista de eventos, junto ao evento correspondente.
	Eventos externos sempre estão ligados a um estímulo.
	Eventos temporais nunca geram um estímulo.
EVENTOS					ESTÍMULOS		RESPOSTAS
Cliente efetua pagamento			Pagamento
Hora de emitir extrato			----------------
Hora de emitir relação de inadimplentes	----------------
Respostas
	As respostas são fluxos de dados de saída do sistema. Eles são gerados quando um evento, externo ou temporal, acontece.
	No exemplo, as respostas são:
O recebido
O extrato periódico
A relação de inadimplentes
 Recibo
		Sistema
Cliente	Pagto	 de		 Relação de	Depto.
		Cobrança	Inadimplentes	Jurídico
	Extrato
 Periódico
Preenchendo a lista de eventos – Respostas
	As respostas devem ser colocadas na lista de eventos na coluna correspondente, vinculadas ao evento que dá origem a elas.
EVENTOS					ESTÍMULOS	RESPOSTAS
Cliente efetua pagamento			Pagamento	Recibo
Hora de emitir extrato			----------------	Extrato Periódico
Hora de emitir relação de inadimplentes	----------------	Relação de 
								Inadimplentes
Elaborando a lista de eventos
	Para elaborar a lista de eventos a partir do diagrama de contexto, siga os passos abaixo:
	Para descobrir os estímulos (fluxos de dados de entrada) fazemos as perguntas: Que fato ou acontecimento externo gera este estímulo? e O que a entidade externa faz que gera este estímulo?
	No exemplo, o estímulo é o resultado do fato Cliente efetua pagamento, que é o evento externo correspondente.
	Indique as respostas (fluxos de saídas) correspondentes aos eventos já identificados. No exemplo, o fluxo de dados Recibo é a resposta ao evento Cliente efetua pagamento.
	Identifique os evento temporais que geram as demais respostas que ainda não foram inseridas na tabela.
· Eventos temporais não estão relacionados a estímulos.
 Recibo
		Sistema
ClientePagto	 de		 Relação de	Depto.
		Cobrança	Inadimplentes	Jurídico
	Extrato
 Periódico
EVENTOS					ESTÍMULOS	RESPOSTAS
Cliente efetua pagamento			Pagamento	Recibo
Hora de emitir extrato			----------------	Extrato Periódico
Hora de emitir relação de inadimplentes	----------------	Relação de 
								Inadimplentes
 
Módulo 08 – Ocorrência dos Eventos
Introdução
	Para ter certeza de que a lista de eventos está completa, submetemos cada evento às seguintes indagações:
1. O que acontece se este evento não ocorrer?
2. Que evento acontece antes deste?
3. Que evento acontece depois deste?
As respostas a estas perguntas podem indicar eventos que provocam resposta do sistema e que também devem constar da lista de eventos.
Conteúdo do módulo
Novos eventos
Eventos anteriores ou posteriores 
Complementando o diagrama de contexto
Objetivos
	Aprender a avaliar se a lista de eventos está completa e, se necessário, complementá-la, bem como o diagrama de contexto.
	Este passo é muito importante.
	Se algum evento for esquecido ou se o diagrama de contexto não estiver completo, os limites do sistema não estarão corretamente estabelecidos. Como resultado, poderá haver desentendimentos entre o analista e o usuário a respeito do que o sistema deve ou não fazer.
Não ocorrência de eventos 
	Considere a lista de eventos do sistema de cobrança:
	Considere o seguinte evento:
Cliente efetua pagamento
	Faça a seguinte pergunta:
	O que acontece se este evento não ocorrer?
	A resposta pode ser:
	O sistema deve emitir uma carta de cobrança.
	Isto dá origem a um novo evento temporal:
	É hora de emitir cartas de cobrança.
Eventos					Estímulos	Respostas
Cliente efetua pagamento			Pagamento	Recibo
É hora de emitir extratos			-------------	Extrato periódico
É hora de emitir relação de inadimplentes	------------- Relação de inadimplentes
Eventos anteriores
	Outra pergunta:
	Que evento acontece antes deste?
	Faça esta pergunta em relação ao evento:
	Cliente efetua pagamento.
	Para que o cliente possa efetuar o pagamento, ele precisa receber antes um boleto de cobrança.
	Neste caso, precisamos de um evento temporal:
	É hora de emitir boletos de cobrança.
EVENTOS					ESTÍMULOS	RESPOSTAS
Cliente efetua pagamento			Pagamento	Recibo
Hora de emitir extrato				--------------	Extrato Periódico
Hora de emitir relação de inadimplentes	-------------- Relação de Inadimplentes
Hora de emitir cartas de cobrança		--------------	Carta de Cobrança
Eventos posteriores
	Mais uma pergunta:
	Que evento acontece depois deste?
	Vamos aplicar esta pergunta ao evento:
	É hora de emitir cartas de cobrança.
	O que acontece depois que as cartas de cobrança forem enviadas, se o cliente não efetuar o pagamento?
	Enviar o título para protesto?
	Se este for o caso, temos mais um evento:
	É hora de enviar títulos para protesto.
EVENTOS					ESTÍMULOS	RESPOSTAS
Cliente efetua pagamento			Pagamento	Recibo
Hora de emitir extrato				-------------Extrato Periódico
Hora de emitir relação de inadimplentes	------------- Relação de Inadimplentes
Hora de emitir cartas de cobrança		-------------	Carta de Cobrança
Hora de emitir boletos de cobrança		-------------	Boletos de Cobrança
Hora de enviar títulos para protesto		-------------	Títulos para Protesto
Complementando o diagrama de contexto
	Todos os novos estímulos e respostas identificados precisam ser incluídos no diagrama de contexto.
	Neste exemplo, descobrimos três novas respostas, que precisam constar do diagrama de contexto.
EVENTOS					ESTÍMULOS	RESPOSTAS
Cliente efetua pagamento			Pagamento	Recibo
Hora de emitir extrato				--------------	Extrato Periódico
Hora de emitir relação de inadimplentes	-------------- Relação de Inadimplentes
Hora de emitir cartas de cobrança		--------------	Carta Cobrança
Hora de emitir boletos de cobrança		--------------	Boletos Cobrança
Hora de enviar títulos para protesto		--------------	Títulos Protesto
		Recibo
				Sistema	Relação de
Clientes	Pagamento	de		Inadimplentes	Depto.	
				Cobrança			Jurídico
		Extrato
		Periódico
Módulo 09 – Funções essências dos sistemas
Introdução
	O modelo funcional define as funções que o sistema vai executar. Aqui, ainda usamos a visão lógica, isto é, damos ênfase ao que o sistema vai fazer, independentemente de como. Por isso, chamamos as funções identificadas de funções essenciais do sistema. O modelo funcional será composto pela lista de funções essenciais e por uma série de diagramas, cada um mostrando como a informação flui entre as funções do sistema e as entidades externas.
Objetivos
· Conhecer o modelo funcional e seus componentes.
· Saber elaborar a lista de funções essenciais e o diagrama de fluxo de dados dessas funções.
Conteúdo do módulo
Decomposição sucessiva
O que é modelo funcional?
Componentes do modelo funcional
Componentes de modelo funcional
	O modelo funcional possui dois componentes:
· Lista de funções essenciais
· Diagrama de fluxo de dados das funções essenciais
ESTÍMULO		RESPOSTA		EVENTO		FUNÇÃO 
								 ESSENCIAL
Pagamento		Recibo		 Cliente efetua 	 Registra pagamento
					 pagamento
 -			Extrato		 Hora de emitir	 Emite extrato
					 extrato
 - 			Relação de	 Hora de emitir	 Emite relação de
		 Inadimplentes	 relação de 	 relação de
					 inadimplentes inadimplentes
Funções essenciais e eventos
	O primeiro componente é a lista de funções essenciais. Ela é construída a partir da lista de eventos que faz parte do modelo de contexto.
	Uma função essencial é um componente do sistema de informação que fornece uma resposta completa a um evento. Haverá uma função essencial para cada evento da lista de eventos.
ESTÍMULO	RESPOSTA	EVENTO	FUNÇÃO ESSENCIAL
Pagamento	Recibo	 Cliente efetua	Registra pagamento
			 Pagamento
 -		Extrato Hora de emitir	Emite extrato
			 Extrato
 -	 Relação de Hora de emitir	Emite relação de inadimplentes
	 Inadimplentes relação de
			 inadimplentes
Diagrama de fluxo de dados das funções essenciais
	O outro componente é o diagrama de fluxo de dados (DFD) das funções essenciais, que é uma representação gráfica da interação das funções essenciais com seu ambiente externo.
Roteiro de elaboração
	Para elaborar o modelo funcional, seguimos o roteiro abaixo:
1. Construir a lista de funções essenciais
2. Construir o DFD das funções essenciais
3. Construir, se necessário, um DFD de decomposição para cada função essencial
ESTÍMULO	RESPOSTA	EVENTO
Pagamento	Recibo		Cliente efetua pagamento
 -		Extrato		Hora de emitir extrato
 -		Relação de	Hora de emitir relação de inadimplentes
		Inadimplentes
Módulo 10 – Funções essenciais
Introdução
	Neste módulo, você conhecerá, com mais detalhes, a função essencial, que é o componente mais importante na decomposição de um sistema.
Objetivos
	Aprender a identificar corretamente as funções essenciais de um sistema e a elaborar a lista de funções essenciais.
Conteúdo do módulo
Função essencial
Tecnologia perfeita
Lista de funções essenciais
Identificando funções essenciais
Funções essenciais
	Uma função essencial é um componente do sistema de informação que fornece resposta completa a um estímulo recebido de um evento ocorrido no seu ambiente externo.
	Isto significa que, quando um evento acontecer e o sistema “acordar”, uma série de ações será executada, até que nada mais seja possível ou necessário fazer e, então, o sistema voltará a “dormir”.
	Estas ações executadas constituem uma função essencial.
Tecnologia perfeita
1 As funções essenciais não levam em conta as características e imposições do ambiente tecnológico em que serão executadas.
Em vez disto, devemos imaginar um ambiente de tecnologia perfeita, de modo a nos abstrair das restrições que nos são impostas por ela e que acabam influenciando a solução.
Uma tecnologia perfeita é aquela que nos oferece:
· Velocidade infinita
· Custo zero
· Capacidade infinita de armazenamento
2 As características de uma tecnologia perfeita são:
· Velocidade infinita: significa que não temos de nos preocupar com a capacidade de processamento de nossos processadores, nem com a velocidade de transmissão de nossas linhas, com o tempo de acesso a discos, nem com a velocidade de impressão.
· Custo zero: significa que temos a liberdade de pensar em soluções ideias, sem limitações orçamentárias ou financeiras.
· Capacidade infinita de armazenamento: significa que não temos de limitar nossa soluções por causa do volume de dados a armazenar.
Como identificar as funções
	Para identificar as funções essenciais, procedemos da seguinte forma:
· Para cada item constante da lista de eventos devemos fazer a seguinte pergunta: Quando este evento acontece, o que o sistema deve fazer?
· A resposta a esta pergunta é o nome da função essencial correspondente.
· O nome de uma função essencial sempre começa com um verbo no infinitivo.
Eventos			Estímulos	Respostas	Função essencial
Cliente efetua pagamento	Pagamento	Recibo
Hora de emitir extrato		-------------	Extrato 
						Periódico
Hora de emitir relação de	--------------	Relação de
Inadimplentes					Inadimplentes
Hora de emitir cartas de	---------------	Carta de Cobrança
cobrança
Hora de emitir boletos de	--------------	Boletos e Cobrança
cobrança
Hora de enviar títulos para	--------------	Títulos para Protesto
protesto
Listas de funções essenciais
	A lista de funções essenciais pode ser então preenchida:
Eventos			Estímulos	Respostas	Função essencial
Cliente efetua pagamento	Pagamento	Recibo		Processar pagamento
Hora de emitir extrato		-------------	Extrato 	Emitir extratos
						periódico	periódicos
Hora de emitir relação de	--------------	Relação de	Emitir relação de
Inadimplentes					Inadimplentes inadimplentes
Hora de emitir cartas de	---------------	Carta de Cobrança Emitir cartas de
cobrança							 cobrança
Hora de emitir boletos de	--------------	Boletos e Cobrança Emitir boletos de
cobrança								cobrança
Hora de enviar títulos para	--------------	Títulos para Protesto Enviar títulos para
protesto								protesto
Módulo 11 – Depósito de dados e funções
Introdução
	Neste módulo você vai conhecer o depósito de dados (componente do modelo funcional) e aprender a identificar os depósitos de dados que são mantidos pelas funções essenciais.
Objetivos
	Identificar os depósitos de dados de um sistema.
Conteúdo do módulo
Depósito de dados
Depósito de dados e funções
Identificando depósito de dados
Depósito de dados
	Depósitos de dados são locais nos quais os dados são armazenados. Estes dados são atualizados e recuperados pelas funções do sistema.
	Eles representam conjuntos de informações relacionadas que precisam ser armazenadas pelo sistema durante o intervalo entre a ocorrência dos eventos.
	Este é o símbolo que usamos para representar um depósito de dados:
Identificando depósitos de dados
	Para identificar depósitosde dados, proceda da seguinte maneira:
1 Pergunte:	 A respeito de que coisas o sistema deverá guardar informações?
2 Para cada função essencial, pergunte: Quando esta função é executada, que dados são armazenados?
3 Para cada função essencial, pergunte: Que dados obtidos e armazenados por outras funções são necessários para esta função executar?
Exemplo de sistema de cobrança
	Considere a lista de funções essenciais do sistema de cobrança:
Eventos			Estímulos	Respostas	Função essencial
Cliente efetua pagamento	Pagamento	Recibo		Processar pagamento
É hora de emitir extratos	---------------	Extrato 	Emitir extratos
					 Periódico	periódicos
É hora de emitir relação de	------------	Relação de	Emitir relação de
inadimplentes					inadimplentes	inadimplentes
É hora de emitir cartas de 	-------------	Carta de 	Emitir cartas de
cobrança					cobrança	cobrança
É hora de emitir boletos de	--------------	Boleto de	Emitir boletos de
cobrança					cobrança	cobrança
É hora de enviar títulos para	--------------	Títulos para	Enviar títulos para
protesto					protesto	protesto
Curiosidade
A resposta pode ser:
· Pagamentos a receber
· Pagamentos efetuados
Função essencial
1. Pergunte:
A respeito de que coisas o sistema deverá guardar informações?
2. Para cada função essencial, pergunte:
Quando esta função é executada, que dados são armazenados?	Quando a função Processar pagamento é executada, que dados são armazenados?
Resposta
	- Pagamentos efetuados
3. Para cada função essencial, pergunte:
Que dados obtidos e armazenados por outras funções são necessários para esta função executar?
			Processar
			pagamento
Pagamentos		Pagamentos
a receber		efetuados
Exemplo de processar pagamento
Exercícios
1- Que dados são necessários para executar a função Processar pagamento?
R – Pagamentos a rceber
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes	Emitir extratos
2- Que dados são necessários para Emitir extratos periódicos?
R- Pagamentos efetuados
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes Emitir extratos
3- Que dados são necessários para Emitir relação de inadimplentes?
R- Pagamentos a receber, pagamentos efetuados
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes Emitir extratos
4- Que dados são necessários para Emitir Cartas de cobrança?
R- Pagamentos a receber, pagamentos efetuados
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes Emitir extratos
5- Que dados são necessários para Emitir boletos de cobrança?
R – Pagamentos a receber
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes	Emitir extratos
6- Que dados são necessários para Enviar títulos para protesto?
R – Pagamentos a receber, pagamentos efetuados
Emitir boletos de cobrança	Emitir cartas de cobrança	Processar pagamento
Pagamentos							Pagamentos
 a receber							efetuados
Enviar títulos para protesto	Emitir relação de inadimplentes	Emitir extratos
Depósito de dados e funções
	Depósitos de dados e funções essenciais podem ser relacionados em uma tabela, como a que segue:
Função			Armazena dados em		Usa dados de
Processar pagamento		Pagamentos efetuados	Pagamentos a receber
Emitir extratos periódicos	-----------------------------	Pagamentos efetuados
Emitir relação de inadimplentes ----------------------------	Pagamentos a receber
								Pagamentos efetuados
Emitir cartas de cobrança	----------------------------	Pagamentos a receber
								Pagamentos efetuados
Emitir boletos de cobrança	---------------------------		Pagamentos a receber
Enviar títulos para protesto	----------------------------	Pagamentos a receber
								Pagamentos efetuados
Módulo 12 - Diagrama de fluxos
Introdução
	Neste módulo vamos aprender a elaborar o diagrama de fluxos de dados das funções essenciais.
	Para isto, vamos tomar como base as listas de funções essenciais e de depósitos de dados que elaboramos nos módulos anteriores.
Objetivos
	Elaborar o diagrama de fluxo de dados das funções essenciais.
Conteúdo do módulo
Desenhando o diagrama
Diagrama de fluxos de dados
Diagrama de fluxos de dados
	O diagrama de fluxo de dados mostra como os dados fluem das entidades externas para as funções essenciais do sistema, destas para os depósitos de dados e para as entidades externas.
		1				2
			
		3				4
			
			
Como elaborar o diagrama
	Para desenhar o diagrama, levamos em conta a lista de eventos e a lista de depósitos de dados.
	Para elaborar o diagrama, devemos seguir os seguintes passos:
1. Disponha no gráfico as funções essenciais
Eventos			Estímulos	Respostas	Função essencial
Cliente efetua pagamento	Pagamento	Recibo		Proc. Pagto
Hora de emitir extrato		--------------	Extrato 	Emitir ext.
						Periódico	periódicos
Hora de emitir relação de	--------------	Relação de	Emitir relação
inadimplentes					Inadimplentes inadimplente
Hora de emitir cartas de 	--------------	Carta de 	Emitir cartas de
cobrança					Cobrança	cobrança
Hora de emitir boletos de	-------------	Boletos de	Emitir boletos de
cobrança					Cobrança	cobrança
Hora de enviar títulos para	-------------	Títulos para	Enviar títulos
protesto					Protesto	para protesto
Proc. Pagto		Emitir ext. periódicos		Emitir relação inadimplente
Emitir cartas de 	Emitir boletos de cobrança	Enviar títulos para protesto
cobrança	
2. Disponha no gráfico os estímulos e as respostas. Coloque também as entidades externas que aparecem no diagrama de contexto. Se necessário, duplique no gráfico as entidades externas para evitar o cruzamento de linhas.
Eventos		Estímulos	Respostas		Função essencial
Clique efetua 		Pagto		Recibo			Processar pagamento
Pagamento			
É hora de emitir	-------------	Estrato			Emitir extratos periódicos
 extr. periódicos			periódico
É hora de emitir	-------------	Relação de		Emitir relação de
 relação de				inadimplentes		inadimplentes
 inadimplentes
É hora de emitir	-------------	Carta de		Emitir cartas de cobrança
 cartas de cobrança			cobrança
É hora de emitir	-------------	Boleto de		Emitir boletos de 
 boletos de cobrança			cobrança		cobrança
É hora de enviar	-------------	Títulos para		Enviar títulos para
 títulos para protesto			protesto		protesto
Pagamento	Cliente	Extrato Periódico	Emitir		Relação de
					 relação de	Inadimplentes
					 inadimplentes
 Processar	Recibo		Emitir
pagamento		 extratos				Depto
			 periódicos		 jurídico
		
 Emitir		 Emitir
 cartas		 boletos de		Enviar
 de	 cobrança		títulos
cobrança					 para	Títulos para Protesto
					 protesto
Carta de	Cliente	 Boletos de Cobrança
Cobrança	
3. Inclua no diagrama os depósitos de dados. Se necessário, duplicar no gráfico os depósitos de dados para evitar o cruzamento de linhas.
Função		Armazena dados em		Usa dados de
Processar pagamento	Pagamentos efetuados	Pagamentos a receber
Emitir extratos		----------------------------	Pagamentos efetuados
periódicos
Emitir relação de	-----------------------------	Pagamentos a receber
inadimplentes						Pagamentos efetuados
Emitir cartas de	-----------------------------	Pagamentos a receber
 cobrança						Pagamentos efetuados
Emitir boletos de 	------------------------------	Pagamentos receber
cobrança
Enviar títulos para	------------------------------	Pagamentos a receber
protesto						Pagamentos efetuados
Eventos		Estímulos	RespostasFunção essencial
Cliente efetua		Pagamento	Recibo			Proc. pagto
pagamento
Hora de emitir		--------------	Extrato Periódico	Emitir ext.
extrato								periódicos
Hora de emitir		--------------	Relação de		Emitir relação
relação de				Inadimplentes		inadimplente
inadimplentes	
Hora de emitir 	--------------	 Carta de 		Emitir cartas de
cartas de				Cobrança		cobrança
cobrança	
Hora de emitir		--------------	Boletos de Cobrança	Emitir boletos
boletos de							de cobrança
cobrança
Hora de enviar		-------------	Títulos para Protesto	Enviar títulos para
títulos para							protesto
protesto
Proc. pagto		Emitir ext. periódicos		Emitir relação inadimplente
Emitir cartas de cobrança	Emitir boletos de cobrança Enviar títulos para protesto
Módulo 13 - Funções Macro
Introdução
	As funções macro são agrupamentos de funções essenciais, apropriadas para a elaboração de modelos funcionais quando o sistema possui um grande número de funções essenciais.
Objetivos
	Elaborar modelos funcionais de sistemas que apresentam mais de nove funções essenciais e aprender a usar funções macro para agrupar funções essenciais.
Conteúdo do módulo
Função macro
Depósito de dados
Numerando as funções
Diagrama de fluxos de dados das funções macro
Funções macro
	Uma função macro é uma função que representa um agrupamento de funções essenciais.
	As funções essenciais agrupadas em uma função macro normalmente apresentam as seguintes características:
	São afins
	Relacionam-se a um objetivo comum
	Tratam os mesmo dados
Exemplos
Exemplo – I
	Considere a lista de funções essenciais do sistema das Linhas Ocupadas :
	Considere as seguintes funções:
· Registrar assinatura de contrato
· Cancelar contrato
· Terminar contrato
Estas funções possuem as seguintes características:
· São afins
· Relacionam-se a um objetivo comum
· Tratam os mesmos dados
Portanto, podemos agrupar estas funções essenciais numa função macro:
Controlar contratos
Exemplo – II
	Considere a lista de funções essenciais do sistema das Linhas Ocupadas :
	Da mesma maneira, podemos reunir numa função macro Cobrar mensalidades as funções:
· Processar pagamento
· Emitir cartas de cobrança
· Desligar linha por não pagamento
Numerando as funções
	As funções macro e as respectivas funções essenciais podem ser identificadas com um número, conforme o exemplo abaixo:
1. Controlar contratos
1.1 Registrar assinatura de contrato
1.2 Cancelar contrato
1.3 Terminar contrato
2. Cobrar mensalidades
2.1 Processar pagamento
2.2 Emitir cartas de cobrança
2.3 Desligar linha por não pagamento
Outras funções macro podem ser:
3. Controlar corretores
3.1 Admitir corretor
3.2 Pagar comissão aos corretores
4. Controlar linhas
4.1. Cadastrar linha
4.2. Processar solicitação de linha
4.3. Retirar linha
4.4. Atualizar tabela de preços
Depósito de dados
	Da mesma forma, a relação entre as funções macro e os depósitos de dados é um resumo das relações das funções essenciais que as compõem com esses depósitos.
Função essencial		Armazena dados em		Usa dados em
Cadastrar linha			Linhas				Tabela de preços
Processar solicitação						Tabela de preço
de linha
Registrar assinatura de	Contratos		Contratos
Contrato
Processar pagamento		Contratos		Contratos
Pagar comissões aos					Corretores
Corretores						Contratos
Atualizar tabela de		Tabela de preços
Preços
Retirar linha			Linhas
Admitir corretor		Corretor
Cancelar contrato		Contratos
Emitir carta de 						Contratos
Cobrança
Desligar linha por não	Linhas				Contratos
pagamento
Terminar contrato		Contratos		Contratos
Função macro	Armazena dados em		Usa dados em
Controlar linha		Linhas				Linhas
			Contratos			Tabela de preços
			Tabela de preços
Diagrama de fluxos de dados das funções macro
	Quando o número de funções essenciais é maior do que dez, em vez de fazer um DFD com todas as funções essenciais, podemos fazer um DFD com as funções macro.
Diagrama de fluxos de dados de uma função macro
	Agora, podemos desenhar um DFD para cada uma das funções macro. Veja, por exemplo, como fica o DFD da função Controlar contratos.
Módulo 14 - Novos fluxos de dados
Introdução
	Até aqui, nós conhecemos três níveis de diagramas de fluxo de dados:
· O diagrama de contexto
· O diagrama de funções macro
· O diagrama de funções essenciais de cada função macro
Cada nível mostra uma decomposição do nível anterior. O DFD de decomposição representa um quarto nível de decomposição.
Objetivos
	Conhecer o DFD de decomposição, elaborar o diagrama de decomposição das funções essenciais e realimentar os diagramas de níveis superiores.
Conteúdo do módulo
Usando a decomposição sucessiva
Detalhando uma função essencial
Decompondo a função
Fluxos de dados
Usando a decomposição sucessiva
	Veja a sequência de diagramas que elaboramos para o sistema das linhas ocupadas:
1) Diagrama de contexto
· Clique no Sistema das Linhas Ocupadas
2) Diagrama de funções macro
· Clique nas Funções (1, 2, 3, 4 e 5)
3) Diagrama de funções essenciais das funções macro:
Diagrama de funções macro
		Dados da linha
Proprietario						DataFlow 1 Proprietário
		 Repasse		Sistema das
					 Linhas
		Solicitação de linha	 Ocupadas
		 Contrato
Proprietario	Contrato assinado				Pagamento aos Proprietario
		Recibos de mensalidade			 corretores
		 Pagamento
Detalhando uma função essencial
	Vamos considerar a função essencial
4.2. Processar solicitação de linha
	Linhas
	4.2		Solicitação
			 de linha
 Processar					Locatário
 solicitação de linha	Contrato
O que esta função faz?
· Recebe e verifica a validade dos dados da solicitação de linha recebida do locatário. Se os dados recebidos estiverem inválidos, uma mensagem de Solicitação inválida será enviada ao locatário.
· Se a solicitação de linha for válida, o depósito de dados das linhas é consultado para ver se a linha existe e está disponível. Se não, uma mensagem de Linha não disponível deve ser enviada ao locatário.
· Se a linha estiver disponível, o contrato pode ser emitido e enviado ao locatário.
· A linha deve ser marcada como reservada. Um aviso deve ser emitido e enviado ao proprietário, para que ele saiba que um contrato está sendo negociado.
Decompondo a função
	Vamos repetir passo a passo:
Passo 1: Recebe e verifica a validade dos dados da solicitação de linha recebida do locatário. Se os dados recebidos estiverem inválidos, uma mensagem de Solicitação inválida é enviada ao locatário.
Passo 2: Se a solicitação de linha for válida, o depósito de dados das Linhas é consultado para ver se a linha existe e está disponível. Se não, uma mensagem de Linha não disponível deve ser enviada ao locatário.
Passo 3: Se a linha estiver disponível, o contrato pode ser emitido e enviado ao locatário.
Passo 4: A linha deve ser marcada como reservada.
Passo 5: Um aviso deve ser emitido e enviado ao proprietário, para que ele saiba que um contrato está sendo negociado.
Novos fluxos de dados
	Quando elaboramos o DFD de decomposição, novos fluxos de dados correspondentes a estímulos e respostas podem surgir.
	Compare o diagrama da função com o diagrama que mostra a sua decomposição:
4.2. Processar solicitação de linha ...
Linhas
	4.2		Solicitação
			 de linha
 Processar					Locatário
 solicitação de linha	Contrato
Fluxos de dados
	Os novos fluxos de dados são os seguintes:
Solicitação inválida
Linha não disponível
Aviso de contrato em negociação
Características diferentes
	Os fluxos de dados novos que aparecem durante a decomposição têm características diferentes:
	Alguns representam avisos de ocorrência de erros ou de exceções, por exemplo:
· Solicitação inválida
· Linha não disponível
Outros são fluxos novos, esquecidos ou não descobertos durante a análise inicial, como por exemplo:
· Aviso de contrato em negociação
Realimentando os níveis superiores
	Os fluxos de dados que NÃO representam erros ou exceções devem ser representados nos diagramas de níveis superiores.
	Assim, o fluxo Aviso de contrato em negociação, que não representa um erro ou uma exceção, deve ser incluído nos níveis superiores no diagrama dafunção macro.
Diagrama de contexto
	No diagrama de contexto:
		Dados da linha
Proprietario						DataFlow 1 Proprietário
		 Repasse		Sistema das
					 Linhas
		Solicitação de linha	 Ocupadas
		 Contrato
Proprietario	Contrato assinado				Pagamento aos Proprietario
		Recibos de mensalidade			 corretores
		 Pagamento
	Comparados com os demais diagramas, os diagramas de decomposição apresentam características especiais. A tabela abaixo indica estas diferenças:
Diagramas de decomposição		Outros diagramas
Incluem fluxos de dados			Não incluem fluxos de dados 
correspondentes a erros e exceções		correspondentes a erros e exceções
Funções se comunicam através de		Funções só se comunicam através de
fluxos de dados				depósitos de dados.
Módulo 15 – Diagramas
Introdução
	Neste módulo vamos conhecer uma série de perguntas que devemos fazer em relação aos nossos modelos. Estas perguntas constituem uma lista de verificações. Se os modelos passarem por estas questões, podemos dizer que eles têm a qualidade mínima necessária.
Objetivos
	Discutir alguns critérios de qualidade para os modelos de contexto e funcional. Mostrar como podemos verificar a qualidade destes modelos.
Conteúdo do módulo
Lista de eventos
Depósito de dados
Diagrama de contexto
Lista de funções essenciais
Agrupamento de funções
Diagrama de funções macro
Diagrama de decomposição
Diagrama de funções essenciais
Diagrama de contexto
	Para verificar a qualidade de um diagrama de contexto, faça as seguintes perguntas:
1) As entidades externas representam realmente a origem e o destino dos dados recebidos e gerados pelo sistema?
· Se alguma entidade externa for uma mera repassadora dos dados, substitua-a pela verdadeira origem ou destino destes dados.
2) Existem fluxos de dados entre entidades externas?
· Caso existam, elimine-os.
Fluxos de dados
3) Os nomes dos fluxos de dados representam claramente o seu conteúdo?
· Se for o caso, dê novos nomes a eles.
4) Os nomes dos fluxos de dados são substantivos?
· Verbos são nomes de funções, não de fluxos de dados.
5) Existem fluxo de dados associados a erros exceções no diagrama de contexto?
· Diagramas de contexto não devem presentar fluxos de dados relativos a erros e exceções. Elimine-os.
Listas de eventos
	Para verificar a qualidade da lista de eventos, pergunte:
1) Os nomes dos eventos externos estão no formato correto?
· Eventos externos indicam fatos ou acontecimentos ocorridos fora do sistema.
2) Os nomes dos eventos temporais começam com a expressão É hora de ...?
· Se não estão, reveja os nomes dados.
3) Os nomes dos estímulos e respostas são substantivos e indicam os dados recebidos ou gerados pelo sistema?
· Se não, dê novos nomes a eles.
Eventos
4) Todos os eventos externos possuem um estímulo correspondente?
· Se não, identifique o estímulo correspondente.
5) Algum evento temporal está vinculado a um estímulo?
· Eventos temporais não têm estímulo.
6) Todos os estímulos e todas as respostas aparecem no diagrama de contexto como fluxos de dados?
· Compatibilize a lista de eventos com o diagrama de contexto.
Lista de funções essenciais
	A lista de funções essenciais deve ter sua qualidade verificada de acordo com a seguinte relação de perguntas:
1) As funções essenciais representam a resposta completa que o sistema dá a ocorrência do evento?
· Dê a cada função um nome adequado, representando o que o sistema faz quanto o evento ocorre.
2) Os nomes das funções essenciais iniciam por um verbo de ação no infinitivo?
· As funções indicam ações executadas pelo sistema. Se for o caso, renomeie as funções.
Lembre-se de que a lista de funções essenciais é baseada na lista de eventos.
Portanto, as perguntas relativas à lista de eventos também se aplicam à lista das funções essenciais.
Depósitos de dados
	Para verificar a lista de depósitos de dados, pergunte:
1) Cada depósito de dados representa um conjunto de informações que devem ser armazenadas entre a execução de funções essenciais?
· Procure nomes que representam conjuntos de informações afins.
2) Os nomes dos depósitos são substantivos que indicam a natureza dos dados armazenados?
· Somente os nomes das funções iniciam por verbos.
3) Os depósitos estão vinculados às funções que armazenam dados neles?
· Verifique.
Inspecionando os Depósitos
X Verifique
V Veja se há algo faltando
V E complete
4) Os depósitos de dados estão vinculados às funções que fazem uso dos dados neles contidos?
· Verifique e complete.
5) Cada depósito de dados tem pelo menos uma função que armazena dados nele?
· Deve existir pelo menos uma função que armazena dados em cada depósito.
6) Cada depósito de dados tem pelo menos uma função que usa os dados nele armazenados?
· Para que serve um depósito de dados se nenhuma função faz uso dos dados nele contidos?
Agrupamento de funções
	A lista de funções a seguir pode ser usada para verificar o agrupamento das funções essenciais em funções macro.
1) As funções agrupadas em uma mesma função macro são de fato afins e têm um objetivo comum?
· Se não, reveja o agrupamento.
2) As funções agrupadas em uma mesma função macro lidam com os mesmos conjuntos de dados?
· Se for o caso, reveja o agrupamento.
3) Os nomes das funções macro obedecem ao padrão de iniciar por um verbo no infinitivo?
· Reveja o nome da função.
4) As funções macro contêm no máximo nove funções essenciais?
· Se necessário, divida em mais funções macro.
5) Todas as funções essenciais estão incluídas no agrupamento realizado?
· Complete o agrupamento feito.
Diagrama de funções macro
	As perguntas seguintes têm como objetivo verificar a correção do diagrama de funções macro:
1) Todas as funções macro constantes do agrupamento realizado estão representadas no diagrama?
· Se necessário, acrescente.
2) Todos os estímulos e respostas estão representados no diagrama de funções macro?
· Se não estão, acrescente.
Funções macro
3) A ligação entre as funções macro se dá exclusivamente através de depósitos de dados?
· Verifique se não está faltando algum depósito de dados.
4) Os fluxos de dados de entrada e de saída são os mesmos que constam do diagrama de contexto?
· Compatibilize os dois diagrama.
5) Foram excluídos do diagrama todos os fluxos de dados referentes a erros e exceções?
· Se existirem fluxos de erros e exceções, exclua-os.
Diagrama de funções essenciais
	Veja agora as perguntas que você deve usar para verificar a qualidade dos diagramas de funções essenciais:
1) Existe um diagrama para cada função macro?
· Se não, desenhe os diagramas que faltam.
2) Todas as funções essenciais subordinadas à função macro estão representadas no diagrama?
· Se necessário, acrescente.
3) Todos os estímulos e respostas das funções essenciais estão representados no diagrama?
· Se não estão, acrescente.
Funções essenciais
4) A ligação entre as funções essenciais se dá exclusivamente através de depósitos de dados?
· Verifique se não está faltando algum depósito de dados.
5) Os fluxos de dados de entrada e de saída são os mesmos que constam do diagrama de funções macro?
· Compatibilize os diagramas.
6) Foram excluídos do diagrama todos os fluxos de dados referentes a erros e exceções?
· Se existirem fluxos de erros e exceções, exclua-os.
Diagrama de decomposição
	Finalmente, para verificar os diagramas de decomposição, pergunte:
1) Foram incluídas funções que validam e verificam os dados de entrada, eventualmente gerando respostas que indicam a ocorrência de um erro?
· Os diagramas de decomposição devem incluir funções de verificação e validação dos dados.
2) Foram incluídas funções para gerar os fluxos de dados relativos a respostas?
· Inclua estas funções, se necessário.
3) Foram incluídas funções que atualizam os depósitos de dados?
· Se necessário, acrescente estas funções.
4) Todos os depósitos de dados acessados pela função essencial que está sendo decomposta constam do diagrama de decomposição correspondente?
· Se necessário, inclua os depósitos e as funções necessárias para atualizá-los ou obter dados deles.
5) Foram compatibilizados os diagramasde decomposição com os diagramas de níveis superiores?
· Compatibilize.

Continue navegando