Vous êtes sur la page 1sur 52

MDS I Tema 2: Anlise Estruturada

Prof. Dr. Diego Fras Sistemas de Informao UNEB

Sumrio
Sumrio

Introduo Anlise Estruturada


Princpios Bsicos As Ferramentas da Anlise Estruturada
Diagrama de Fluxo de Dados
Processos Fluxos de dados Depsitos de dados Terminadores

Bibliografia

Dicionrios de Dados Descrio de Procedimentos

Introduo
Como vimos ao estudarmos os Fundamentos da Anlise de Sistemas, um dos primeiros paradigmas da Anlise e o Projeto de software foi o Estruturado. A Anlise Estruturada permite que o engenheiro de software (normalmente chamado de Analista de Sistemas neste papel): aprimore o escopo do software e construa modelos lgicos (e portanto, independentes de aspectos de implementao) do sistema. ponto de partida: resultados da atividade de Levantamento (Especificao de Requisitos)

Introduo
Tipos de Sistemas
Podemos definir trs classes de sistemas de acordo com essa importncia relativa de cada modelo.
Sistemas centrados em dados, como os sistemas de bancos de dados. Sistemas centrados em funes, como os sistemas cientficos. Sistemas centrados em controle, como os sistemas de tempo-real.

Introduo
Tipos de Sistemas
dados 100 Software bancrio

Software cientfico e dataminning 0

Software temporeal e jogos eventos

funes

100

100

Introduo
Na fase de Anlise se consideram vrias vises complementares do problema: focalizando-se dados, funes e eventos. De acordo com as vises os modelos podem ser classificados em:
Modelos de Dados, Modelos Funcionais e Modelos de Controle.

O modelo lgico resultante, chama-se Modelo da Anlise e gerado utilizando tcnicas de modelagem

Introduo
Modelo de Anlise
Modelo de Dados - DER

Modelo Funcional - DFD

Modelo de Controle - DTE

Modelagem Funcional
A tcnica mais difundida para esta finalidade a utilizao de Diagramas de Fluxo de Dados - DFDs, proposta por Gane, Sarson e De Marco, a incios dos 80. O Modelo Funcional composto por: DFD's Dicionrio de Dados Especificaes de Processos ou Mini-especificaes

Modelagem Funcional
DFDs
Ferramenta de modelagem utilizada para descrever a transformao de entradas em sadas: Modelo Funcional Representa um sistema como uma rede de processos interligados entre si por fluxos de dados e depsitos de dados. O DFD complementado pelo Diagrama de Entidades de Relacionamento (DER) para o Modelo de Dados e pelo Diagrama de Transio de Estados (DTE) para o Modelo de Controle.

Modelagem Funcional
DFD
principalmente importante em sistemas centrados em funes ou que, mesmo centrados em dados ou controle, tenham complexidade funcional significativa. Seus componentes so: Processos, Fluxos de Dados, Depsitos de Dados e Entidades Externas ou Terminadores.

Modelagem Funcional
Na elaborao de um DFD, utilizamos quatro smbolos que nos permitiro, representar e apresentar ao usurio todo o processo, sem assumir nenhum compromisso com implementaes.

Modelagem Funcional
O Processo
Tambm chamado de funo, ou transformao, o processo representa as transformaes realizadas sobre os dados em um sistema e correspondem a funes ou procedimentos que um sistema tem que prover. representado graficamente por crculos ou retngulos com cantos arredondados e deve ter um nome composto por um verbo e um objeto.

Modelagem Funcional
O Fluxo de Dados
Representa uma coleo de itens de dados em movimento. representado graficamente atravs de uma seta entrando ou saindo de um processo, com a ponta indicando o sentido do fluxo. Deve ter associado um nome o mais significativo possvel, de modo a facilitar a validao do diagrama com os usurios. Esse nome deve ser um substantivo que facilite a identificao da coleo de dados transportada.

Modelagem Funcional
Entidade Externa
Uma entidade externa deve ser identificada por um nome e representada por um retngulo.

Uma mesma entidade externa pode ser representada mais de uma vez em um mesmo DFD para evitar o cruzamento de linhas de fluxos.

Modelagem Funcional
Entidade Externa
Entidades externas so fontes e-ou destinos de dados do sistema. Representam os elementos do ambiente com os quais o sistema se comunica. Tipicamente, uma entidade externa :
uma pessoa (p.ex. um cliente), um grupo de pessoas (p. ex. um departamento da empresa ou outras instituies) ou um outro sistema que interage com o sistema em questo.

Modelagem Funcional
DFD de um sistema para loja de CD

DFD com Nveis


O nvel de complexidade de um DFD pode ser estabelecido pelo nmero de processos em um diagrama. Se a quantidade de processo exceder uma quantidade razovel, por exemplo 10, devemos decompor o DFD em vrios nveis.

DFD com Nveis


Dois DFDs especiais esto presentes em qualquer modelo funcional:
C - Contexto:
mostra o sistema como uma caixa-preta, trocando informaes (fluxos de dados) com entidades externas ao sistema. Define o escopo de abrangncia do sistema, indicando a fronteira definida pelas entidades externas.

0 (Zero) Geral ou de Sistema:


decomposio do diagrama de contexto, mostrando as grandes funes do sistema e as interfaces entre elas. necessrio assegurar a coerncia entre os diagramas C e 0, isto , assegurar que os fluxos de dados entrando ou saindo do diagrama 0 efetivamente reproduzem as entradas e sadas do diagrama C.

DFD com Nveis


O DFD da loja de CD mostrado anteriormente foi extrado de um site da internet (http://www.robsonmartins.com/inform/cdworld.php#4) e representa o Diagrama de Contexto

Modelagem Funcional
Observaes:
Os fluxos de dados podem ser de entrada (em um processo), de sada (de um processo) ou de dilogo (nos dois sentidos). Alm de poderem ser divergentes ou ramificados. Um DFD no modela quando e em que sequncia os fluxos de dados se movimentam pelo sistema. Esses detalhes procedurais devero ser considerados na especificao de processos.

Modelagem Funcional
O Depsito de Dados
O depsito de dados utilizado para modelar um repositrio de uma coleo de pacotes de dados em repouso. representado graficamente por duas linhas paralelas com um nome que represente seu contedo e que normalmente o plural do nome dos pacotes transportados pelos fluxos para dentro e para fora do depsito.
Depsito de dados

Como utilizamos o DFD na etapa de Anlise, ou seja, sem preocupaes com aspectos de implementao, os depsitos de dados podem representar qualquer repositrio identificado em um sistema, eletrnico ou no.

DFD com Nveis


No DFD-0 se estabelecem os processos principais e j podem aparecer repositrios de dados. Por exemplo, para o sistema da loja de CD, temos:

Modelagem Funcional
O depsito de dados em um DFD existe devido natureza assncrona dos processos, ou seja, quando um processo gera um fluxo de dados de sada que ser um fluxo de dados de entrada para um outro processo, este ltimo pode no processlo imediatamente, o que exige o armazenamento dos dados transportados pelo fluxo para futuro processamento. Um fluxo de dados que sai de um depsito chamado de leitura, ou seja, o contedo do depsito no se alterar em funo dele. Um fluxo de dados que entra em um depsito chamado de escrita, ou seja, o contedo do depsito se alterar em funo dele. Em DFDs complexos, para se evitar cruzamentos de setas de fluxos de dados, pode-se desenhar um mesmo depsito de dados mais de uma vez.

Modelagem Funcional
Um fluxo de escrita pode ter 3 significados:
uma incluso, quando um ou mais novos pacotes esto sendo introduzidos no depsito. uma excluso, quando um ou mais pacotes esto sendo eliminados ou removidos do depsito. uma alterao, quando um ou mais pacotes esto sendo modificados ou alterados. Isso pode envolver a alterao de todo um pacote ou apenas de fragmentos dele (que o caso mais comum).

Modelagem Funcional
Quando examinamos fluxos de dados que entram ou saem de um depsito, surge uma dvida:
o fluxo representa um nico pacote, mltiplos pacotes, fragmentos de um pacote, ou fragmentos de vrios pacotes de dados?

Em algumas situaes, essas dvidas podem ser respondidas pelo simples exame do rtulo do fluxo e, para tal, adotamos a seguinte conveno:
se um fluxo no possuir rtulo ou tiver o mesmo rtulo do depsito de dados, ento um pacote inteiro de informao ou mltiplas instncias do pacote inteiro esto trafegando pelo fluxo; se o rtulo de um fluxo nomeado for diferente do rtulo do depsito, ento as informaes que esto trafegando so um ou mais componentes (fragmentos) de um ou mais pacotes, e estaro definidas no dicionrio de dados.

Modelagem Funcional
Observaes: Ao identificarmos algo como uma entidade externa, estamos afirmando que esta entidade est fora dos limites do sistema em questo e, portanto, fora do controle do sistema que est sendo modelado. Assim, qualquer relacionamento existente entre entidades externas no deve ser mostrado em um DFD. Uma vez que os terminadores so externos ao sistema, os fluxos de dados que os interligam aos diversos processos representam a interface entre o sistema e o mundo externo.

DFDs de nvel 1

Observem a conservao do nmero de fluxos

DFDs de nvel 1

Observem a conservao do nmero de fluxos

DFDs de nvel 1

Dicionrio de Dados
O Dicionrio de Dados uma listagem organizada de todos os elementos de dados pertinentes ao sistema, com definies precisas para que os usurios e desenvolvedores possam conhecer o significado de todos os itens de dados manipulados pelo sistema. Descreve o significado, a composio, os valores e as unidades significativas de fluxos de dados, depsitos de dados, atravs de estruturas de dados e de elementos de dados.
Estrutura de Dados: Representam fluxos, depsitos, entidades ou relacionamentos. So compostas de elementos de dados e/ou de outras estruturas. Elemento de Dados: So os elementos das estruturas que no necessitam mais de decomposio.

Dicionrio de Dados
Smbolo = + () [|] n{ }m Significado composto de e estruturas ou elementos de dados opcionais estruturas ou elementos de dados alternativos repetio de estruturas ou elementos de dados, onde n representa o nmero mnimo de repeties e m o nmero mximo. Se n e m no forem especificados, significa que 0 ou mais repeties. delimitadores de comentrios Identificador / atributo determinante

** ___ ou @

Dicionrio de Dados
Exemplificando para uma estrutura de dados nome: nome = ttulo-cortesia + primeiro-nome + (nome intermedirio) + ltimo-nome ttulo-cortesia = [Sr. | Sra. | Srta. | Dr. | Professor] primeiro-nome = 1{caracter vlido} nome-intermedirio = 1{caracter vlido} ltimo-nome = 1{caracter vlido} caracter-vlido = [A-Z | a-z | 0-9 | | ] No exemplo, nome uma estrutura de dados e caracter-vlido um elemento de dados.

Dicionrio de Dados
Os exemplos mostrados a seguir ilustram diversas situaes para a estrutura de dados CLIENTES (neste caso, um depsito de dados de um DFD) e o emprego das notaes. (a) O cliente pode possuir um telefone. CLIENTES = **clientes da livraria** cdigo-cliente + nome-cliente + endereo-cliente + (telefone-cliente) (b) O cliente pode possuir zero ou mais telefones. CLIENTES = **clientes da livraria** cdigo-cliente + nome-cliente + endereo-cliente + {telefone-cliente}

Dicionrio de Dados
Exemplos, cont. (c) O cliente pode possuir at trs telefones. CLIENTES = **clientes da livraria** cdigo-cliente + nome-cliente + endereo-cliente + {telefone-cliente}3 (d) O cliente pode possuir telefone comercial, residencial ou ambos. CLIENTES = **clientes da livraria** cdigo-cliente + nome-cliente + endereo-cliente + [ telefonecomercial | telefone-residencial | telefone-comercial + telefoneresidencial]

Especificao de Processos
Para administrar os problemas oriundos da narrativa, so utilizadas tcnicas de especificao de processos, entre as quais podemos citar:
Portugus Estruturado Tabelas de Deciso rvores de Deciso Combinao das tcnicas acima

Especificao de Processos
Portugus Estruturado O Portugus Estruturado um subconjunto do Portugus, cujas sentenas so organizadas segundo as trs estruturas de controle introduzidas pela Programao Estruturada: seqncia, seleo e repetio. Instrues de Seqncia: grupo de instrues a serem executadas que no tenham repetio e no sejam oriundas de processos de deciso. So escritas na forma imperativa, como no exemplo abaixo. obter ... atribuir ... armazenar ... Instrues de Seleo: quando uma deciso deve ser tomada para que uma ao seja executada, utilizamos uma instruo de seleo. As instrues de seleo so expressas como uma combinao se-entoseno, conforme abaixo. se <condio> ento grupo_ de_aes_1; seno grupo_de_aes_2; fim-se;

Especificao de Processos
Portugus Estruturado Instruo de Seleo Exemplo: se Nmero_de_Dependentes = 0 ento Salrio_Famlia = 0; seno Salrio_Famlia = Salrio_Mnimo / 3; fim-se;

Especificao de Processos
Quando existirem vrias aes dependentes de uma mesma condio, que sejam mutuamente exclusivas, podemos utilizar uma estrutura do tipo caso, conforme abaixo. caso <condio> = valor_1 : grupo_de_aes_1; valor_2 : grupo_de_aes_2; . . . . . . valor_n : grupo_de_aes-N; fim-caso; Exemplo: caso opo = 1 : incluir novo cliente; 2 : excluir cliente existente; 3 : alterar dados de cliente; seno : executar rotina de erro; fim-caso;

Especificao de Processos
Portugus Estruturado Instrues de Repetio: Aplicadas quando devemos executar uma instruo, ou um grupo de instrues, repetidas vezes. A estrutura de repetio pode ser usada de trs formas distintas: 1. para cada X faa grupo_de_aes; fim-para; Exemplo: para cada Aluno faa Mdia = (Prova_1 + Prova_2) / 2; imprima Mdia; fim-para;

Especificao de Processos
Portugus Estruturado - Instrues de Repetio, cont. 2. enquanto <condio for verdadeira> faa grupo_de_aes; fim-enquanto; Exemplo: enquanto existir registro faa ler registro; conferir dados; fim-enquanto; 3. repita grupo_de_aes; at que <condio seja verdadeira>; Exemplo: repita ler registro conferir dados at que todos os registros do arquivo tenham sido processados;

Especificao de Processos
rvore de Deciso rvores de Deciso so excelentes para mostrar a estrutura de deciso de um processo. Os ramos da rvore correspondem a cada uma das possibilidades lgicas. uma excelente ferramenta para esquematizar a estrutura lgica e para obter do usurio a confirmao de que a lgica expressada est correta. De forma clara e objetiva, permite a leitura da combinao das circunstncias que levam a cada ao. Entretanto, se for necessrio descrever a lgica de um processo como um conjunto de instrues, combinando decises e aes intermedirias, a rvore de deciso deve ser preterida em favor do portugus estruturado ou combinada a ele.

Especificao de Processos

Especificao de Processos
Tabelas de Deciso Tabelas de deciso so usadas em aplicaes semelhantes s das rvores de deciso. As rvores de deciso so mais indicadas, quando o nmero de decises for pequeno e nem todas as combinaes de condies forem possveis. As tabelas de deciso aplicam-se melhor a situaes em que o nmero de aes grande e ocorrem muitas combinaes de condies. Tambm devemos utilizar tabelas de deciso se existirem dvidas de que a rvore de deciso no mostra toda a complexidade do problema. Formato bsico

Especificao de Processos
Tabelas de Deciso A construo de uma tabela de deciso envolve os seguintes passos: 1. Levantar as aes do processo; 2. Identificar as condies que determinam estas aes; 3. Identificar os estados possveis de cada condio; 4. Identificar as combinaes dos estados das condies; 5. Construir uma coluna para cada combinao de condies; 6. Preencher cada coluna com as regras das aes correspondentes; 7. Verificar se o entendimento foi correto; 8. Alterar a tabela at obter total concordncia dos usurios; 9. Se possvel, compactar a tabela.

Especificao de Processos
Uma tabela de deciso composta de: Uma rea de condies Uma rea de aes Regras de deciso (colunas) A quantidade de regras de deciso calculada multiplicando as possibilidades de cada condio, por exemplo: Condio 1 - possui 2 possibilidades Condio 2 - possui 2 possibilidades Condio 3 - possui 2 possibilidades Logo, o total de regras de deciso igual 2 x 2 x 2 = 8.

Especificao de Processos
Tabelas de Deciso Em funo do tipo das condies, temos dois tipos de tabelas: Tabela de Entrada Limitada: os valores de uma condio se limitam a dois. Exemplos tpicos deste tipo de tabelas so as tabelas cujas condies so escritas sob a forma de perguntas, de modo que as respostas sejam sim ou no, como mostra o exemplo abaixo.

Especificao de Processos
Tabelas de Deciso Tabela de Entrada Ampliada: Uma condio pode ter mais de dois estados diferentes, como no exemplo abaixo.

Especificao de Processos
Tabelas de Deciso Muitas vezes, grupos de condies levam mesma ao. Para estes casos, podemos utilizar tabelas compactadas, como a do exemplo abaixo.

Descrio Simblica
Fluxo de Dados
Faremos referncia ao Fluxo de Dados identificando os processos, entidades ou depsitos de dados das suas extremidades, anotando uma descrio do seu contedo.
Observe um exemplo de referncia e descrio de Fluxo de Dados:
29 c
Relatrio de Vendas

Analisar Vendas

Gerncia

Referncia do Fluxo de dados 29 - c Descrio do fluxo de dados: Relatrio de Vendas

Processo
Identificao do processo Descrio da funo

Local fsico onde ser desempenhado

Vale ressaltar que a descrio da funo deve ser sempre imperativa, composta por um verbo ativo (verificar, extrair, recuperar, comparar), seguida de uma clusula, simples e objetiva. A identificao do local fsico onde a funo ser executada extremamente til a partir do instante em que a anlise foi concluda e o projeto fsico do sistema est sendo desenvolvido, pois denota o departamento ou programa que o desempenhar

Depsito de Dados
Convencionamos a identificao de um depsito de dados pela colocao de uma letra D maiscula seguida de um nmero, na esquerda do desenho, separada da descrio por uma linha vertical.

D1

Dados de Clientes

Bibliografia
GANE, Chris. Anlise Estruturada de sistemas. Rio de Janeiro: LTC Livros Tcnicos e Cientficos Editora, 1983. POMPILHO, S. Anlise Essencial guia prtico de Anlise de Sistemas. parte II. Rio de Janeiro: Editora Cincia Moderna, 2002. PRESSMAN, Roger S. Engenharia de software. 5a ed. cap. 12. So Paulo: Makron Books, 2002. PRESSMAN, Roger S. Engenharia de software. 3a ed. cap. 7. So Paulo: Makron Books, 1995. YOURDON, Edward. Anlise estruturada moderna. Parte II caps. 8, 9, 19 e 11. Rio de Janeiro: Campus, 1992.

Vous aimerez peut-être aussi