Você está na página 1de 60

Anlise Estruturada Moderna

(Apontamentos baseados na metodologia de Yourdon)











1. INTRODUO....................................................................................................................................... 4
2. A NATUREZA DOS SISTEMAS.......................................................................................................... 5
2.1. CONCEITOS BSICOS ........................................................................................................................ 5
2.2. TIPOS DE SISTEMAS.......................................................................................................................... 5
2.3. SISTEMAS FEITOS PELO HOMEM....................................................................................................... 6
2.4. SISTEMAS DE INFORMAO ............................................................................................................. 6
2.5. CLASSIFICAO QUANTO FORMA DE PROCESSAMENTO................................................................. 7
Sistemas Batch.......................................................................................................................................... 7
Sistemas On-Line ...................................................................................................................................... 7
Sistemas em Tempo Real........................................................................................................................... 7
Sistemas Baseados em Conhecimento....................................................................................................... 7
Sistemas Especialistas .............................................................................................................................. 7
2.6. CLASSIFICAO QUANTO AO NVEL ORGANIZACIONAL.................................................................... 8
Sistemas de Processamento de Transaces............................................................................................. 8
Sistemas de Planeamento e Controlo Operacional................................................................................... 9
Sistemas de Apoio Deciso .................................................................................................................... 9
Sistemas de Planeamento Estratgico .................................................................................................... 10
2.7. PRINCPIOS GERAIS DOS SISTEMAS ................................................................................................ 10
3. PARTICIPANTES NO DESENVOLVIMENTO DE SISTEMAS................................................... 11
3.1. UTILIZADORES ............................................................................................................................... 11
Classificao por Tipo de Funo.......................................................................................................... 11
Classificao por Nvel de Experincia.................................................................................................. 12
3.2. GESTOR DE PROJECTO.................................................................................................................... 12
3.3. AUDITORES, CONTROLO DE QUALIDADE E NORMALIZAO.......................................................... 12
3.4. ANALISTA DE SISTEMAS................................................................................................................. 13
3.5. PROJECTISTA DE SISTEMAS ............................................................................................................ 13
3.6. PROGRAMADOR.............................................................................................................................. 14
3.7. OPERADOR..................................................................................................................................... 14
4. PRINCIPAIS PROBLEMAS NO DESENVOLVIMENTO DE SISTEMAS .................................. 15
4.1. PRODUTIVIDADE ............................................................................................................................ 15
Demanda reprimida................................................................................................................................ 15
Tempo de desenvolvimento ..................................................................................................................... 15
4.2. CONFIABILIDADE ........................................................................................................................... 17
4.3. MANUTENIBILIDADE ...................................................................................................................... 18
4.4. QUALIDADE ................................................................................................................................... 18
4.5. PORTABILIDADE............................................................................................................................. 19
4.6. SEGURANA................................................................................................................................... 19
4.7. PRINCIPAIS CAUSAS........................................................................................................................ 19
5. CICLO DE VIDA DO PROJECTO DE DESENVOLVIMENTO................................................... 20
5.1. CONCEITO DE CICLO DE VIDA DE UM PROJECTO............................................................................ 20
5.2. OBJECTIVOS ................................................................................................................................... 20
5.3. CICLO DE VIDA CLSSICO.............................................................................................................. 21
5.4. CICLO DE VIDA SEMI-ESTRUTURADO ............................................................................................ 23
5.5. CICLO DE VIDA ESTRUTURADO...................................................................................................... 24
Levantamento.......................................................................................................................................... 24
Anlise .................................................................................................................................................... 25
Projecto................................................................................................................................................... 25
Implementao........................................................................................................................................ 25
Gerao de Testes de Aceitao............................................................................................................. 26
Controlo de Qualidade ........................................................................................................................... 26
1
Descrio dos Procedimentos................................................................................................................. 26
Converso das Bases de Dados .............................................................................................................. 26
Instalao ............................................................................................................................................... 26
5.6. ABORDAGEM RADICAL VERSUS CONSERVADORA.......................................................................... 26
5.7. CICLO DE VIDA DA PROTOTIPAGEM............................................................................................... 27
6. MODIFICAES NA ANLISE DE SISTEMAS............................................................................ 29
6.1. A PASSAGEM PARA A ANLISE ESTRUTURADA .............................................................................. 29
6.2. MODIFICAES NA ANLISE ESTRUTURADA ................................................................................. 30
6.3. SURGIMENTO DAS FERRAMENTAS AUTOMATIZADAS DE ANLISE................................................. 31
6.4. USO DA PROTOTIPAGEM................................................................................................................. 31
7. DIAGRAMA DE FLUXO DE DADOS............................................................................................... 32
7.1. COMPONENTES DE UM DFD........................................................................................................... 32
Processos ................................................................................................................................................ 32
Fluxos de Dados ..................................................................................................................................... 32
Depsitos de Dados ................................................................................................................................ 33
Entidades Externas ................................................................................................................................. 34
7.2. DIRECTRIZES PARA ELABORAO DE DFD.................................................................................... 35
Escolher Nomes Significativos................................................................................................................ 35
Devem-se numerar os Processos ............................................................................................................ 35
Evitar DFD Complexos........................................................................................................................... 35
Refazer tantas vezes quantas forem necessrias..................................................................................... 35
Criar diagramas esteticamente agradveis ............................................................................................ 36
Certificar-se de que o DFD seja logicamente consistente...................................................................... 36
Posio dos elementos ............................................................................................................................ 36
Duplicao de elementos ........................................................................................................................ 36
7.3. DFD COM NVEIS........................................................................................................................... 37
Diagrama de Contexto............................................................................................................................ 37
Diagrama Nvel 0.................................................................................................................................... 37
Diagrama de Nveis Intermdios ............................................................................................................ 38
8. DICIONRIO DE DADOS.................................................................................................................. 39
8.1. NOTAO....................................................................................................................................... 39
8.2. DEFINIES.................................................................................................................................... 40
8.3. ELEMENTOS OPCIONAIS.................................................................................................................. 40
8.4. ITERAO ...................................................................................................................................... 40
8.5. SELECO...................................................................................................................................... 41
8.6. SINNIMO ...................................................................................................................................... 41
8.7. DEFINIO DE DEPSITOS.............................................................................................................. 41
9. DIAGRAMA DE ENTIDADES-RELACIONAMENTOS................................................................ 42
9.1. ENTIDADES .................................................................................................................................... 42
9.2. RELACIONAMENTOS....................................................................................................................... 42
Tipos de Relacionamentos ...................................................................................................................... 42
Classificaes adicionais........................................................................................................................ 43
Cardinalidade ......................................................................................................................................... 43
Casos especiais de relacionamentos....................................................................................................... 43
10. DIAGRAMA DE TRANSIES DE ESTADO............................................................................ 44
10.1. NOTAO....................................................................................................................................... 44
Estado ..................................................................................................................................................... 44
Mudanas de Estado............................................................................................................................... 44
Condies e Aces ................................................................................................................................ 45
10.2. DIAGRAMAS SUBDIVIDIDOS............................................................................................................ 46
2
10.3. CONSTRUINDO UM DTE................................................................................................................. 47
11. ESPECIFICAES DE PROCESSOS.......................................................................................... 48
11.1. LINGUAGEM ESTRUTURADA .......................................................................................................... 48
11.2. PR/PS ......................................................................................................................................... 52
Pr-Condies ........................................................................................................................................ 52
Ps-Condies ........................................................................................................................................ 53
11.3. TABELA DE DECISO...................................................................................................................... 54
Estrutura de uma Tabela de Deciso...................................................................................................... 54
Criar uma Tabela de Deciso................................................................................................................. 54
11.4. RVORE DE DECISO..................................................................................................................... 55
Criar uma rvore de Deciso................................................................................................................. 55
12. O MODELO ESSENCIAL.............................................................................................................. 56
12.1. A ABORDAGEM CLSSICA .............................................................................................................. 56
Os quatro modelos .................................................................................................................................. 56
Porque a abordagem clssica no funcionava ....................................................................................... 56
12.2. O QUE O MODELO ESSENCIAL ..................................................................................................... 56
12.3. DIFICULDADES NA CONSTRUO DO MODELO ESSENCIAL............................................................. 57
12.4. COMPONENTES DO MODELO ESSENCIAL........................................................................................ 57
12.5. O MODELO AMBIENTAL................................................................................................................. 58
12.6. O MODELO COMPORTAMENTAL PRELIMINAR................................................................................ 58
A Abordagem Clssica (Top-Down) ....................................................................................................... 58
Particionamento por eventos .................................................................................................................. 58
12.7. O MODELO COMPORTAMENTAL FINAL.......................................................................................... 59
Nivelamento ............................................................................................................................................ 59
Complementar Dicionrio de Dados ...................................................................................................... 59
Complementar as Especificaes de Processos...................................................................................... 59
Complementar o Modelo de Dados ........................................................................................................ 59


3
1. Introduo

A anlise [de sistemas] frustrante, repleta de relacionamentos entre pessoas, indefinida
e difcil. Resumindo, fascinante. Depois que voc fisgado, os velhos e fceis prazeres da
construo de sistemas nunca mais sero suficientes para satisfaz-lo
Tom DeMarco, 1978, Structured Analysis and Systems Specification


Um analista de sistemas, alm de saber construir modelos, deve ser conhecedor ou
aprofundar-se no que est a modelar, seja um sistema de matrcula, vendas, controlo de
stock, bancrio, etc. Durante a modelao o analista muitas vezes torna-se um especialista
na rea.
4
2. A natureza dos Sistemas
Muitos dos sistemas baseados em computador so substituies ou implementaces de
sistemas no-computadorizados.
Um sistema computadorizado normalmente faz parte de um sistema maior
(computadorizado ou no) e interage com outros sistemas.
Existem princpios, filosofias e teorias que se aplicam a todos os tipos de sistemas. Um
bom exemplo, a lei da especializao de organismos (Biologia). Quanto mais bem
adaptados s condies de um ambiente, mais difcil ser a adaptao a outro ambiente.
Esta lei tambm vale para sistemas computadorizados.
2.1. Conceitos bsicos
Sistema:
Um grupo de itens que interagem entre si ou que sejam interdependentes, formando um
todo unificado, orientado para atender objectivos especficos.
Um conjunto organizado de doutrinas, ideias ou princpios, habitualmente previstos
para explicar a organizao ou o funcionamento de um conjunto sistemtico.
Exemplos:
Sistema gravitacional
Sistema digestivo
Sistema rodovirio
Sistema bancrio
2.2. Tipos de Sistemas
Sistemas Naturais
Sistemas Fsicos
Sistemas estelares: galxias, sistemas solares, etc.
Sistemas geolgicos: rios, cadeias de montanhas, etc.
Sistemas moleculares: organizaes complexas de tomos.
Sistemas Vivos
5
Animais
Vegetais
Espcie humana
Sistemas feitos pelo Homem
Sistemas sociais: organizaes de leis, doutrinas, costumes, etc.
Sistemas de transporte: redes rodovirias, canais, linhas areas, petroleiros, etc.
Sistemas de comunicaes: telefone, sinais de fumaa, etc.
Sistemas financeiros: contabilidade, inventrios, controlo de stocks, entre outros.
2.3. Sistemas feitos pelo Homem
O analista de sistemas deve modelar o comportamento bsico para depois seleccionar o que
deve ser executado pelo computador. Para isso, ele leva em conta variveis como:
Custo
Conforto
Segurana
Manutenibilidade
Poltica
2.4. Sistemas de Informao
Um sistema de informao um conjunto de elementos inter-relacionados, processos,
dados e tecnologia, cuja finalidade alimentar os centros de deciso com as informaes
necessrias escolha de directrizes de aco que permitam o atingimento dos objectivos da
organizao.
Dados:
So sequncias ordenadas de smbolos dos quais se pode extrair informao. Porm, no
contm nenhum significado quando analisados isoladamente.
Informao:
So dados tratados, analisados ou processados, capazes de transmitir algum conhecimento
ao receptor.
6
Componentes de um Sistema de informao:
Hardware
Software
Pessoas
Dados
Procedimentos
2.5. Classificao quanto forma de processamento
Sistemas Batch
O utilizador normalmente no interage com o computador por terminal e as informaes
so processadas em lotes, de forma sequencial.
Sistemas On-Line
O utilizador interage com o computador por terminal, os dados de entrada so fornecidos
directamente do local onde eles foram criados e os resultados do processamento so
dirigidos directamente para onde sejam necessrios.
Sistemas em Tempo Real
Controla um ambiente pelo recebimento de dados, seu processamento e apresentao dos
resultados com rapidez suficiente para afectar o ambiente naquele momento.
Sistemas Baseados em Conhecimento
Estes sistemas esto associados ao campo da inteligncia artificial. Contm grande
quantidade de conhecimentos variados para utilizao em determinadas tarefas.
Sistemas Especialistas
So uma espcie de sistemas baseados em conhecimento. Tm embutidos o conhecimento e
a capacidade que os tornam capazes de funcionar como um especialista.
7
2.6. Classificao quanto ao nvel organizacional


Sistemas de Processamento de Transaces
Nvel operacional
Apoia operaes rotineiras da empresa
Regista transaces
Origem dos dados: operaes internas
Grau de agregao dos dados: dados analticos, reais e precisos
Volumes manipulados: grandes
Sadas: relatrios analticos, alguns sintticos
Frequncia: peridica
Exemplos: facturao, stock, contabilidade, etc.
8
Sistemas de Planeamento e Controlo Operacional
Nvel tctico (superviso)
Apoia o planeamento e controlo operacional
Colecta informaes sobre o realizado e compara com o previsto
Origem dos dados: operaes internas
Grau de agregao dos dados: mdio
Volumes manipulados: mdios
Sadas: relatrios consolidados
Frequncia: peridica
Exemplos: custos, planeamento e controlo de produo, planeamento e controlo de
projectos
Sistemas de Apoio Deciso
Nvel tctico (mdia gesto)
Apoia processos decisrios
Trabalha com anlise matemtica e estatstica dos dados
Origem dos dados: operaes internas e fontes externas
Grau de agregao dos dados: alto
Volumes manipulados: pequenos
Sadas: grficos e tabelas
Frequncia: a pedido (ad hoc)
Exemplos: anlise de investimentos, anlise estatstica, simulao de cenrios.
9
Sistemas de Planeamento Estratgico
Nvel estratgico (alta gesto)
Apoia a anlise de factores crticos de sucesso da empresa: desempenho, mercado e
concorrncia
Trabalha com projeces a longo prazo e tendncias do mercado
Origem dos dados: operaes internas e, sobretudo, fontes externas
Grau de agregao dos dados: alto
Volumes manipulados: pequenos
Sadas: grficos e tabelas sofisticados
Frequncia: a pedido (ad hoc)
Exemplo: sistemas de informao executiva
2.7. Princpios Gerais dos Sistemas
Quanto mais especializado um sistema, menos capaz de se adaptar a circunstncias
diferentes.
Quanto maior for um sistema, maior o nmero dos seus recursos que sero destinados
manuteno diria.
Os sistemas fazem sempre parte de sistemas maiores e podem sempre ser divididos em
sistemas menores.
Os sistemas crescem.
10
3. Participantes no Desenvolvimento de Sistemas
Cada projecto possui um elenco diferente de pessoas envolvidas. Um analista de sistemas
precisa ter aptides interpessoais (alm do conhecimento da tecnologia e,
preferencialmente, tambm do negcio), ou seja, deve falar com outras pessoas usando uma
linguagem diferente.
3.1. Utilizadores
a pessoa ou grupo de pessoas para quem o sistema construdo. Para que o
desenvolvimento do sistema seja bem sucedido, necessrio que o analista estabelea um
contacto directo com o utilizador.
O analista de sistemas deve fazer reunies regulares com os utilizadores (tambm
chamados de clientes ou proprietrios). O ideal seria ter utilizadores dedicados
integralmente ao projecto. Alguns defendem que os prprios utilizadores deveriam fazer o
projecto.
Classificao por Tipo de Funo
Operativos
Tm viso local, isto , no conhecem o processo de forma global
Responsveis por executar as funes do sistema
Tm uma viso fsica do sistema, ou seja, imaginam o funcionamento do sistema
considerando a tecnologia de implementao
Supervisores
Podem ou no ter uma viso local
Geralmente conhecem as operaes pois muitos j foram Utilizadores Operativos.
Alm disso, tm que supervisionar os Utilizadores Operativos
Orientado por consideraes oramentais (reduzir o quadro de funcionrios ou
aproveit-los melhor)
Normalmente agem como intermedirios em relao aos nveis mais elevados
Executivos
No tm experincia operativa
Tm a iniciativa do projecto
11
Possuem uma viso global
Tm preocupaes estratgicas
Capazes de lidar com modelos abstractos
Classificao por Nvel de Experincia
Amador
Nunca trabalhou com um computador
Tem dificuldade para entender os modelos produzidos pelos analistas
Receia ser substitudo pelo sistema ou ter sua importncia minimizada
Novato arrogante
Participou de alguns projectos
Possui ou trabalha com computadores
Por conhecer algumas ferramentas, gosta de opinar sobre as tecnologias a serem
usadas para implementar o sistema
Experiente
Conhecem a anlise de sistemas
Tm experincia de outros projectos
Discutem sobre as tcnicas de modelao sendo utilizadas
3.2. Gestor de Projecto
As principais funes de um gestor de projecto so:
Gerir e alocar recursos de toda a equipa tcnica
Prestar contas junto da administrao superior
Encaminhar problemas identificados no decorrer do projecto
3.3. Auditores, Controlo de Qualidade e Normalizao
Responsveis por garantir que o sistema seja desenvolvido de acordo com os vrios padres
internos e externos da organizao, especialmente aqueles focados na segurana e no
controlo de qualidade do produto final.
12
Alguns problemas que devem ser considerados:
Normalmente no se envolvem no projecto at que ele tenha sido concludo. Neste
ponto, modificar o sistema muito mais difcil
s vezes no esto habituados notao utilizada
Geralmente, esto mais interessados na forma do que na substncia
3.4. Analista de Sistemas
O analista desempenha as seguintes funes:
Arquelogo e escriba: deve trazer luz os detalhes e documentar as actividades cujos
detalhes passam de gerao em gerao de utilizadores.
Inovador: no se limitar apenas a implementar as funes actuais do sistema mas
ajudar a encontrar produtos e mercados novos.
Mediador: como os utilizadores dificilmente chegam a um consenso, o analista deve
usar a arte da diplomacia e da negociao. O sistema deve ser feito da forma como os
utilizadores solicitaram.
Lder de projecto: Como o analista entrou antes no projecto, frequentemente tambm
o projectista e normalmente uma pessoa mais experiente, existe uma tendncia
natural de que ele assuma o papel de gestor de projecto.
Um analista deve ter:
Habilidade com pessoas
Conhecimento de aplicaes (ajuda a compreender a empresa do utilizador)
Habilidade em tecnologia
Mente lgica e organizada (visualizar o sistema sob diferentes perspectivas)
3.5. Projectista de Sistemas
Tem a funo de transformar os requisitos dos utilizadores, modelados pelos analistas de
sistemas, num projecto implementvel em computador.
Normalmente o analista e o projectista so a mesma pessoa, ou membros do mesmo grupo
de pessoas.
O analista de sistemas deve fornecer informaes suficientemente detalhadas para que o
projectista elabore um projecto tecnologicamente bom.
13
O projectista deve fornecer informaes suficientes para que o analista possa dizer se os
requisitos dos utilizadores podem ser completamente atendidos ou devem ser modificados.
3.6. Programador
Responsvel por codificar e testar (usando uma linguagem de programao) os mdulos do
sistemas modelados pelos projectistas.
Num cenrio ideal, o programador no deveria ter contacto com o analista j que se baseia
apenas no trabalho feito pelo projectista.
H programadores que so responsveis apenas por dar manuteno em um sistema.
Segundo Nicholas Zvegintzov:
At ao presente momento, o principal profissional da computaco era algum que
podia aprender o suficiente sobre as necessidades das empresas para express-las na
linguagem dos computadores. No futuro, quando a nossa sociedade se tornar
irreversivelmente computadorizada, o principal profissional ser algum que possa
aprender o suficiente sobre sistemas computadorizados para express-los em
linguagem humana. Sem essa pessoa, teremos perdido o controlo da nossa sociedade.
Esse algum o engenheiro s avessas. Os mantenedores de software so os
engenheiros s avessas da sociedade.
3.7. Operador
Pessoa encarregada de operar os computadores, da rede, da segurana do hardware e das
bases de dados, da execuo dos programas e da sada das impressoras.
14
4. Principais Problemas no Desenvolvimento de Sistemas
Para desenvolver sistemas teis, de alta qualidade e que realmente satisfaam as
necessidades dos utilizadores, necessrio considerar os seguintes aspectos:
Produtividade;
Confiabilidade;
Manutenibilidade.
4.1. Produtividade
Os dois aspectos mais importantes deste problema so:
A demanda reprimida (backlog) por novos sistemas
O tempo necessrio para construir um novo sistema
Demanda reprimida
O backlog dos sistemas pode ser dividido em trs categorias:
Visvel:
Solicitados oficialmente pelos utilizadores e que foram aceites e tiveram suas verbas
aproveitadas pela gesto.
Ainda no foram iniciados por falta de recursos humanos (analistas, programadores,
etc.)
Invisvel:
Sistemas que os utilizadores sabem que precisam, mas no se do ao trabalho de
solicitar oficialmente porque ainda esto a aguardar outros projectos
Desconhecido:
Sistemas que os utilizadores ainda no sabem que precisam mas que emergiro logo
que sejam concludos outros sistemas dos backlogs visvel e invisvel.
Num estudo realizado em 1982, descobriu-se que a demanda do backlog invisvel era 5,35
vezes maior que o visvel.
Tempo de desenvolvimento
H uma preocupao no apenas com o backlog global mas com a perda de oportunidades
de negcios devido incapacidade de desenvolver os sistemas de apoio necessrios.
15
Muitos projectos nem so terminados. Dentre os principais motivos, pode-se citar:
Problemas tcnicos
Problemas de gesto
Inexperincia da equipa
Falta de tempo para anlise e projecto
Escasso envolvimento por parte da gesto ou utilizadores
O tempo necessrio para criar um sistema pode ser reduzido atravs de algumas tcnicas:
Contratao de mais programadores e analistas de sistemas
Contratao de programadores e analistas de sistemas mais talentosos, oferecendo-lhes
melhores condies de trabalho
Deixar que os utilizadores desenvolvam seus prprios sistemas
Melhores linguagens de programao
Atacar o problema da manuteno
Controlos de Engenharia de Software
Ferramentas automatizadas de desenvolvimento (CASE)
Razes para os analistas terem conscincia dos problemas de produtividade:
A produtividade e a qualidade do trabalho dos programadores est directamente ligada
ao servio feito pelo analista
Algumas das tcnicas de aumento de produtividade tm importncia directa para os
analistas
A produtividade da anlise um problema politicamente sensvel
Utilizadores e gestor tm ansiedade pelo incio da programao
Utilizadores no entendem a importncia da especificao
16
4.2. Confiabilidade
Os erros em sistemas podem passar despercebidos (uma impresso de um nmero no
formatada correctamente) ou causar graves acidentes (problema em sistema de trfego
areo).
Os erros em software so difceis de serem extintos porque:
difcil descobrir como solucionar o erro
Deve-se encontrar todos os pontos de correco
Alta probabilidade de introduzir novos erros (efeitos colaterais)
Nem sempre so reportados pelos utilizadores
Dificuldade de reproduzir o erro
A figura abaixo mostra o nmero de erros encontrados em funo do tempo decorrido.

Figura 1 Erros descobertos em funo do tempo
Sobre a curva acima importante notar:
Inicialmente o n de erros encontrados pequeno (utilizadores sem segurana para
apontar erros), como indica T1.
medida que os utilizadores se familiarizam com sistema os erros so percebidos e
reportados (entre T1 e T2).
Aps um tempo (aps T2) o n de erros encontrados comea a diminuir (sistema
comea a tornar-se mais estvel).
17
O nmero de erros volta a crescer devido a correces ou modificaes que introduzem
novos erros (aps T3).
A curva nunca atinge zero.
4.3. Manutenibilidade
A correco de erros apenas um dos aspectos da manuteno de sistemas. A manuteno
tambm est vinculada a factores como:
Modificaes no hardware
Novos dispositivos
Necessidade de melhorar o desempenho
Garantir maior confiabilidade
Alteraes dos requisitos
A manuteno de um sistema deve ser sempre acompanhada de modificaes na
especificao do sistema. Entretanto, isso nem sempre ocorre devido a factores como:
Analista alocado a outro projecto
Urgncia na implantao das modificaes
Inexistncia de uma poltica que valorize a manuteno da especificao
4.4. Qualidade
A qualidade de um sistema pode ser mensurada considerando a eficcia e a eficincia
obtidas:
Eficcia = Resultados Obtidos / Resultados Pretendidos
Eficincia = Resultados Obtidos / Recurso Consumido
Problemas que denotam falta de qualidade em sistemas:
No contribuem para os objectivos da empresa;
No atendem s necessidades dos utilizadores;
No so confiveis;
So ineficientes;
18
Tm manuteno constante, difcil e onerosa.
4.5. Portabilidade
Consiste em escrever sistemas que podem ser transferidos para outras plataformas.
Apesar de no ser um problema da alada do analista, ele deve especificar que h essa
necessidade.
A portabilidade geralmente provoca ineficincia j que recursos disponveis de determinada
plataforma no so aproveitados.
4.6. Segurana
medida que os sistemas de informao crescem em nmero e importncia, o risco de
violaes aumenta.
A segurana de sistemas de informao consiste basicamente em:
Impedir o acesso de pessoas no autorizadas;
Conceder acesso a certas funcionalidades apenas a algumas pessoas.
4.7. Principais causas
Ausncia de Planeamento de Sistemas;
Ausncia de Administrao de Dados;
No utilizao de Mtodos e Tcnicas Formais de Desenvolvimento;
No utilizao de Tcnicas e Ferramentas;
Adopo de Metodologias no ambientadas realidade da empresa;
Falta de definio precisa dos objectivos e requisitos do sistema;
Dificuldade de comunicao e/ou falta de entrosamento entre as pessoas envolvidas no
processo;
Dificuldade de comunicao entre Utilizadores e Desenvolvedores (linguagem);
Rivalidade entre utilizadores;
Falta de preciso e clareza na especificao dos sistemas.
19
5. Ciclo de Vida do Projecto de Desenvolvimento
Um ciclo de vida de projecto bem definido oferece mecanismos para planejar e acompanhar
actividades de forma mais precisa, possibilitando a deteco de problemas de forma mais
rpida.
5.1. Conceito de Ciclo de Vida de um Projecto
Nas pequenas organizaes os projectos so caracterizados por:
Serem iniciados aps um entendimento verbal entre os utilizadores e a equipa de
projecto;
O trabalho de desenvolvimento feito sem muito estardalhao.
J nas grandes organizaes os projectos tm as seguintes caractersticas:
Tudo feito de maneira mais formal;
As comunicaes entre os utilizadores, a gesto e a equipa de projecto so
documentadas;
Todos esto cientes da existncia de vrias fases;
Normalmente o gestor responsvel por definir as fases e as actividades do projecto.
Algumas organizaes (pequenas ou grandes) definem para todos os projectos um nico
ciclo de vida, tambm conhecido como plano de projecto ou metodologia de
desenvolvimento de sistemas.
Outras organizaes adoptam um ciclo de vida existente (criado por outra organizao) e
adaptam s suas necessidades.
5.2. Objectivos
Definir as actividades a serem executadas num projecto de desenvolvimento de
sistemas.
Facilita a adaptao de pessoas novas;
Participantes tm uma viso do que esto a fazer no projecto e qual a importncia.
Manter consistncia entre projectos de uma mesma organizao.
Facilita a superviso do projecto pelos nveis mais altos de gesto
Introduz pontos de verificao para o controlo de gesto de decises
20
Permite identificar se o projecto est atrasado e como corrigir o problema
5.3. Ciclo de Vida Clssico
O ciclo de vida de um projecto clssico ou convencional mostrado na figura abaixo:

Pontos de divergncia que normalmente existem nas organizaes mas que no
descaracterizam o ciclo de vida clssico:
Levantamento e Anlise so fundidas (tudo que o utilizador solicita considerado
vivel);
Pode no haver o Estudo de Hardware se o sistema no deve causar srios impactos e
h disponibilidade;
21
Projecto preliminar e Projecto detalhado so reunidos numa nica fase (Projecto);
As fases de teste podem ser reunidas e at feitas junto com a codificao.
As duas caractersticas (e fraquezas) que definem um ciclo de vida clssico so:
Implementao Bottom-Up
Nada est terminado at que esteja totalmente pronto
Os erros triviais so encontrados no incio do perodo de teste e os erros mais srios
so encontrados no final.
A depurao tende a ser extremamente difcil durante os estdios finais dos testes
do sistema;
A necessidade de tempo para testes normalmente aumenta exponencialmente
durante os estdios finais do projecto.
Progresso Sequencial
As fases so seguidas de forma sequencial;
As especificaes produzidas em cada fase so "congeladas";
Apesar de ser uma tendncia humana (terminar uma fase para comear a seguinte),
no representa a realidade dos projectos por vrias razes:
Os requisitos mudam;
Erros so encontrados na especificao e devem ser corrigidos.
22
5.4. Ciclo de Vida Semi-Estruturado

O ciclo de vida semi-estruturado (mostrado na figura acima) tem as seguintes
caractersticas:
Implementao Top-Down usada no lugar da Botton-Up
O utilizador pode testar o sistema antes que esteja todo pronto
Utilizao do projecto estruturado no lugar do clssico (como mostra a figura abaixo).
Projectistas precisam transformar um documento narrativo (monoltico, ambguo e
redundante) em um modelo contendo:
Diagramas de Fluxo de Dados
Dicionrio de Dados
Diagramas de Entidades-Relacionamentos
Especificaes de Processos.
23

5.5. Ciclo de Vida Estruturado
A seguir encontram-se as descries das 9 (nove) actividades do Ciclo de Vida Estruturado:
Levantamento
Tambm conhecida como estudo de viabilidade ou estudo inicial das actividades.
Normalmente iniciado quando o utilizador solicita que algo seja automatizado.
uma importante pea na tomada de deciso e no planeamento do sistema.
Principais objectivos:
Identificar os utilizadores responsveis e desenvolver um "escopo" inicial do
sistema:
Diagrama de Contexto
Diagrama(s) de Fluxo de Dados
24
Identificar as actuais deficincias no ambiente do utilizador.
Estabelecer metas e objectivos para um novo sistema
Determinar se possvel automatizar o sistema e se assim for, sugerir alguns esquemas
aceitveis (custo, benefcio e cronograma).
Preparar uma previso do projecto que ser usada para conduzir o restante do projecto
Anlise
Gerar uma especificao estruturada do projecto do sistema a partir do critrio do
utilizador e da previso do projecto.
Isso envolve a modelao do ambiente do utilizador usando as seguintes tcnicas:
Diagramas de Fluxo de Dados (DFD).
Diagramas de Entidades-Relacionamentos(DER).
Diagramas de Transies de Estado.
Envolve o desenvolvimento de um modelo ambiental e um comportamental.
Projecto
Alocao de partes da especificao (modelo essencial) aos processadores apropriados
(pessoas ou mquinas).
Desenvolvimento de uma hierarquia de mdulos de programas e interfaces entre esses
mdulos.
Transformao do modelo de dados num projecto de bases de dados (dependente da
tecnologia adoptada).
Deve ser desenvolvido o modelo de implementao do utilizador (fronteira homem-
mquina e interface homem-mquina).
Implementao
Codificao e integrao dos mdulos.
Programao Estruturada e Implementao Top-Down.
O sistema vai ficando completo progressivamente.
25
Gerao de Testes de Aceitao
Criar os testes de aceitao a partir da especificao estruturada.
Pode ser feita paralelamente ao projecto e implementao.
Controlo de Qualidade
Tambm chamada de teste final ou teste de aceitao.
Exige como entrada os testes de aceitao e um sistema integrado.
Descrio dos Procedimentos
Descrio formal das partes manuais do novo sistema.
Descrio de como ser a interaco com o utilizador (parte automatizada).
Converso das Bases de Dados
Desenvolver programas para converter os dados existentes para a nova base de dados.
Instalao
Passagem imediata versus gradual.
Formao dos utilizadores.
5.6. Abordagem Radical versus Conservadora
Abordagem Radical do ciclo de vida:
As actividades do projecto so executadas em paralelo (a codificao comea no
primeiro dia).
Abordagem Conservadora do ciclo de vida:
Uma actvidade s iniciada quando a anterior foi concluda.
Ambas as abordagens so perigosas pois so os extremos.
Podem ser adoptadas abordagens intermedirias:
Iniciar uma fase quando 75% ou 50% da anterior estiver concluda.
Executar duas actividades em paralelo (levantamento e anlise).
26
Para cada projecto, uma abordagem diferente pode ser usada, baseada nos seguintes
factores:
Quo inconstantes so os utilizadores?
Utilizadores inconstantes ou inexperientes requerem uma abordagem mais
radical.
Utilizadores veteranos adequam-se mais a uma abordagem mais conservadora.
Presso para produzir resultados imediatos e palpveis.
Presso sobre o gestor do projecto para produzir um cronograma, um oramento e
uma avaliao de pessoas e outros recursos:
Mais radical (precoces) => maior erro.
Mais conservadora => menor erro.
Perigo em cometer um erro tcnico (implementao invivel).
5.7. Ciclo de Vida da Prototipagem
Na prototipagem cada necessidade levantada simulada no prottipo, que expandido
e refinado gradualmente.
Tambm conhecido como desenvolvimento heurstico.
uma alternativa atraente para lidar com a incerteza, a ambiguidade e a inconstncia
dos projectos.
No final da modelao o prottipo ser desprezado e substitudo por um programa real
pois ele apenas um modelo.
Os prototipadores normalmente utilizam os seguintes tipos de ferramentas:
Dicionrio de dados integrado.
Gerador de ecrs.
Gerador de relatrios no-procedural.
Linguagem de programao de quarta gerao.
Linguagem de consultas no-procedural.
Recursos poderosos de gesto de bases de dados.
27
Projectos que so bons candidatos para a abordagem de prototipagem tm as seguintes
caractersticas:
O utilizador incapaz ou no deseja examinar modelos abstractos de papel como
DFD's.
O utilizador incapaz de exprimir os seus requisitos, podendo identific-los atravs
de tentativas e erros ("Eu no sei o que quero, mas eu saberei, se o vir").
O sistema est previsto para ser on-line (a maioria das ferramentas de apoio so
orientadas para a abordagem on-line).
No exige a especificao de grandes quantidades de detalhamento algortmico.
O utilizador est mais interessado no formato e na diagramaco da entrada e da
sada.
A abordagem da prototipagem pode ser combinada com a anlise estruturada como uma
forma de auxiliar a descoberta/especificao dos requisitos.
A abordagem Top-Down pode funcionar como uma forma de prototipagem, na qual
cada verso contm mais funcionalidades e est mais prxima do desejo do utilizador.
O risco em adoptar o prottipo como um sistema de produo grande e pode ser
desastroso porque:
No foi preparado para manipular eficientemente grandes volumes de transaces.
Carece de detalhes operativos como:
Recuperao de erros.
Auditoria.
Backup/Recuperao.
Documentao do utilizador.
Procedimento de converso.
O projecto pode terminar (quando o prottipo for substitudo pelo sistema) sem que
tenha sido produzida qualquer documentao formal, que deveria ser mantida ao
longo da vida do sistema.
28
6. Modificaes na Anlise de Sistemas
necessrio estar ciente das tcnicas actuais e das modificaes ocorridas com o passar
do tempo.
H basicamente trs motivos para conhecer a evoluo da anlise de sistemas:
Ajuda a perceber a evoluo de uma empresa
Mudar de emprego
Sugerir a evoluo
Ocupar cargos de liderana para alavancar as mudanas
importante conhecer a abordagem anteriormente adoptada pela organizao e se
h algum tipo de transio em andamento
A noo de transio importante pois a anlise de sistemas dinmica:
Novas tcnicas
Modificaes em ciclos de vida
6.1. A passagem para a Anlise Estruturada
At o final da dcada de 70, os requisitos dos utilizadores eram documentados atravs
de uma narrativa no idioma adequado.
Os primeiros autores sobre Anlise Estruturada mostraram que esta forma de
especificao padecia de grandes problemas.
Monolticos: Era necessrio ler todo o documento para entender. Isso dificultava a
compreenso se fosse necessrio estudar apenas uma parte.
Redundantes: A dificuldade de actualizar e rever o documento conduz
inconsistncia.
Ambguos: utilizadores, analistas, projectistas e programadores tm interpretaes
diferentes do documento.
Manuteno impossvel: A especificao estava obsoleta antes mesmo do final do
projecto.
Como consequncia, no se tem ideia do que muitos sistemas desenvolvidos nas
dcadas de 60 e 70 fazem porque os analistas e programadores que os desenvolveram
no esto mais presentes.
29
Apesar das tcnicas de Programao Estruturada e Projecto Estruturado terem sido
adoptadas, era necessrio que houvesse uma evoluo na forma de especificar os
Requisitos do Utilizador.
"Poderia chegar-se a um desastre com mais rapidez do que nunca".
A especificao dos requisitos deveria ser:
Grfica
Particionada
Sem redundncia
6.2. Modificaes na Anlise Estruturada
Alguns anos de experincia prtica indicaram que eram necessrias algumas alteraes,
cujas principais so:
Evitar a construo de modelos "fsicos" e "lgicos" do sistema actual.
Politicamente perigosa (muito tempo gasto com algo que vai ser descontinuado)
A distino vaga entre os modelos lgico e fsico (dependente da tecnologia)
Modelo lgico => Modelo essencial (essncia do sistema)
Modelo fsico => Modelo de implementao (considera aspectos tecnolgicos)
Carncia de tcnicas de modelao para construir sistemas de tempo-real
Introduo dos Diagramas de Transio de Estado (DTE)
Necessidade de modelar as estruturas de dados do sistemas
Introduo dos Diagramas de Entidades-Relacionamentos
Melhor integrao entre as tcnicas (DFD, DER, DTE e DD)
Utilizao da subdiviso (particionamento) por eventos no lugar do Diagrama de
Contexto
30
6.3. Surgimento das Ferramentas Automatizadas de Anlise
Trabalho artstico de criar os diagramas
O grande problema fazer a manuteno dos diagramas
Muitas modificaes durante a anlise
Grande quantidade de diagramas
Dificultou a aceitao da Anlise Estruturada Trabalho artstico de criar os diagramas
Analista preferia deixar o diagrama desactualizado
Analista no subdividia o modelo do sistema em modelos de nvel mais baixo
Os Projectistas e Programadores no mantinham os diagramas actualizados durante
a implementao
No havia verificao automtica de consistncia nos diagramas (era necessrio fazer
inspeces visuais)
Custo elevado das ferramentas e dos terminais grficos
6.4. Uso da Prototipagem
Surgimento de ferramentas de Prototipagem
A Anlise Estruturada levava muito tempo:
Modelao do sistema novo s comea aps a do sistema actual
Como os Diagramas no geravam cdigo, suspeitava-se que o tempo gasto na
implementao seria igual
Os primeiros projectos levavam mais tempo pois os Analistas no estavam
acostumados com as tcnicas
muita da programao seria o mesmo se no fosse feita anlise
A prototipagem concentra-se na definio da interface homem-mquina
Evita os detalhes que so capturados atravs da Anlise e do Projecto
31
7. Diagrama de Fluxo de Dados
Principal tcnica de modelao funcional
Modela o sistema como uma rede de processos funcionais, interligados por dutos e
tanques de armazenamento
Pode ser usado para descrever processos computadorizados e no computadorizados
Tambm chamado de DFD (abreviatura), Diagrama de Bolhas, Modelo de Processo,
Diagrama de Fluxo de Trabalho e Modelo Funcional
Um DFD composto de Processos, Fluxos de Dados, Depsitos de Dados e Entidades
Externas
7.1. Componentes de um DFD
Processos
Tambm conhecido como bolha, funo ou transformao
Representam transformaes de fluxo(s) de dados de entrada em fluxo(s) de dados
de sada
O nome do processo deve descrever o que ele faz
Geralmente provoca mudanas de estrutura, contedo ou estado
Representaes grficas possveis:

Fluxos de Dados
Representam caminhos por onde passam os dados
So representados atravs de setas que indicam o destino do dado
Tm nomes que devem constar no dicionrio de dados
Um mesmo fragmento de dados pode ter significados diferentes em pontos distintos
de um DFD (CPF-Vlido e CPF-Invlido)
Um fluxo apenas no modifica os dados durante o transporte
32
Transportam dados entre os elementos do DFD
Processo Processo
Entidade Externa Processo
Depsito de Dados Processo
Tipos de fluxos
Fluxo externo: entre Entidade Externa e Processo
Fluxo interno: entre dois Processos
Fluxo de acesso memria: entre Processo e Depsito
Fluxo de erro ou rejeio: para fora de um Processo
Nomenclatura:
Cada fluxo deve ter um nico nome
O nome deve identificar os dados transportados pelo fluxo
Exemplos: Dados-Factura, Recibo-Pagamento, Dados-Cliente
Depsitos de Dados
Representa uma coleco de pacotes de dados em repouso
Nem sempre um depsito de dados um arquivo ou SGBD. Pode representar
microfilmes, pastas de arquivos em papel e diversas outras formas no
computadorizadas
Representaes grficas de um depsito de dados:

Quando um pacote de dados recuperado (ou inserido) por completo do depsito de
dados, pode-se omitir o rtulo do fluxo
Nomenclatura:
Deve estar no plural
Pode receber o nome do fluxo de dados (no plural)
33
Entidades Externas
Tambm chamados de Terminadores
So as fontes/destinatrios das informaes que entram/saem do sistema
Os procedimentos executados pelas entidades externas no so especificados no
modelo por no fazerem parte do sistema
Normalmente uma pessoa, um grupo de pessoas, uma organizao externa, um
sector dentro de uma empresa
Pode representar um outro sistema
Representao grfica de uma Entidade Externa:

Nomenclatura:
No plural quando se referir a um grupo de pessoas (Clientes)
Deve conter o nome do sector ou organizao externa (Directoria de Negcios)
Deve ser includa a palavra sistema quando se tratar de um sistema (Sistema de
Contabilidade)

34
7.2. Directrizes para elaborao de DFD
Existem algumas directrizes que auxiliam a criar DFD's com sucesso, ou seja, evitam a
criao de:
DFD's incorrectos (incompletos ou logicamente inconsistentes)
DFD's agradveis (facilmente examinados pelo utilizador)
Escolher Nomes Significativos
Evitar nomes para processos como: Fazer servio, Manipular entrada, Cuidar dos
clientes e Processar dados
Devem-se numerar os Processos
A numerao tem basicamente duas utilidades:
Permitir localizar os processos no diagrama facilmente
Facilita a identificao, a partir dos diagramas mais detalhados, do processo que foi
explodido
No importa a maneira desde que seja consistente
A numerao no indica sequncia pois o DFD uma rede de processos assncronos
que se intercomunicam
Evitar DFD Complexos
Evitar colocar elementos demais no digrama
Deve caber facilmente numa pgina
O DFD deve modelar correctamente as funes que um sistema deve executar e as
interaces entre elas.
Deve ser lido e entendido facilmente pelos utilizadores
Refazer tantas vezes quantas forem necessrias
Um DFD deve ser refeito at que:
Esteja tecnicamente correcto
Aceitvel pelo utilizador
O Analista no tenha vergonha de apresent-lo directoria.
35
Criar diagramas esteticamente agradveis
Manter consistentes o tamanho e a forma das bolhas
Fluxo de dados cursos versus rectos (questo de gosto)
Diagramas desenhados mo versus gerados por mquina
Os desenhados mo passam a sensao de que ainda podem ser modificados
Os gerados por mquina so mais limpos
Certificar-se de que o DFD seja logicamente consistente
Evitar "poos sem fundo" (processos que s recebem entradas)
Evitar processos com gerao espontnea (processos que no recebem entrada mas
produzem sadas)
Cuidado com fluxos e processos sem rtulos
Cuidado com depsitos que tenham somente leitura ou escrita
Posio dos elementos
O processo origem deve ficar esquerda ou acima do processo destino
As entidades externas devem ser desenhadas nas bordas do desenho:
As de entrada, esquerda ou acima
As de sada, direita ou abaixo
Os depsitos de dados devem ser distribudos no meio do desenho, entre os processos
Duplicao de elementos
Pode-se duplicar Entidades e Depsitos para evitar cruzamento de fluxos e melhorar a
organizao do diagrama
Um mesmo fluxo de dados pode aparecer mais de uma vez no mesmo DFD
No faz sentido duplicar processos
36
7.3. DFD com Nveis
O DFD de sistemas no triviais muito complexo
Para evitar que tudo seja definido num nico diagrama (difcil de ser entendido e
mantido), criam-se DFD's que detalham um processo de um nvel mais alto
Diagrama de Contexto
o DFD de nvel mais alto
D a viso das principais funes do sistema
Contm um processo (representa o sistema), os fluxos externos e as entidades externas

Diagrama Nvel 0
o primeiro detalhamento do diagrama de contexto
Contm as macro-funes do sistema
37

Diagrama de Nveis Intermdios
So os diagramas que mostram a decomposio (detalhamento ou exploso) de cada
processo de nvel mais alto
A quantidade de nveis depende de factores como complexidade e porte do sistema
Em geral, a decomposio deve terminar quando for possvel especificar o processo
numa pgina


38
8. Dicionrio de Dados
necessrio descrever a composio dos dados de alguma forma.
A forma narrativa longa e sujeita a erros
necessrio usar uma notao compacta e concisa
Elementos de dados so dados que no necessitam de decomposio
Estrutura de dados so composies de elementos de dados e/ou de outras estruturas
de dados
A definio no DD feita de forma Top Down
O dicionrio de dados define os elementos de dados descrevendo:
O significado de fluxos e depsitos
A composio de pacotes agregados de dados que se movimentam pelos fluxos (Ex:
Endereo pode ser divido em itens elementares como cidade, estado, etc.)
A composio dos pacotes de dados nos depsitos
Os valores e unidades relevantes de partes elementares de informaes dos fluxos e
depsitos
Os detalhes dos relacionamentos entre os depsitos realados num DER
8.1. Notao
H vrios esquemas de notao. Porm, o mais comum o seguinte:
= composto de
+ E (concatenao)
( ) Opcional
{ } Iterao
[ ] Escolha de uma das opes alternativas
* Delimitador de comentrio
@ Identificador (campo chave) de um depsito
| Separa opes alternativas na construo [ ]
39
Exemplo: definio de um nome (estrutura de dados)
nome = * Nome completo do cliente *
ttulo-cortesia + primeiro-nome + (nome-intermdio) +
ltimo-nome
ttulo-cortesia = [Sr.|Srta.|Sra.|Sras.|Dr.|Professor]
primeiro-nome = {carcter-vlido}
nome-intermdio = {carcter-vlido}
ltimo-nome = {carcter-vlido}
carcter-vlido = [A-Z|a-z|0-9|'| ]
8.2. Definies
Uma definio de um item de dados apresentada com o smbolo "=", que deve ser lido
como " definido como", ou " composto de", ou simplesmente "significa"
A notao A = B + C, significa A composto de B e C
O significado do dado no contexto da aplicao deve ser colocado na forma de
comentrio
8.3. Elementos opcionais
Um elemento de dados opcional quando a sua presena no elemento de dados
composto no obrigatria
Exemplo: um cliente deve ter um endereo e pode informar um endereo de remessa
Cliente = Endereo + (Endereo-Remessa)
8.4. Iterao
Usado para indicar a ocorrncia repetida de um componente de um elemento de dados
Exemplo 1: um pedido que composto de um nome do cliente, um endereo de remessa e
zero ou mais itens
Pedido = Nome-do-Cliente + Endereo-Remessa + {Item}
Exemplo 2: um pedido que composto de um nome do cliente, um endereo de remessa e
de 1 a 10 itens
Pedido = Nome-do-Cliente + Endereo-Remessa + 1{Item}10
Exemplo 3: um pedido que composto de um nome do cliente, um endereo de remessa e
pelo menos um item
40
Pedido = Nome-do-Cliente + Endereo-Remessa + 1{Item}
Exemplo 4: um pedido que composto de um nome do cliente, um endereo de remessa e
no mximo 10 itens
Pedido = Nome-do-Cliente + Endereo-Remessa + {Item}10
8.5. Seleco
Indica que deve ser seleccionada uma das opes apresentadas
Exemplo: definindo o estado civil
Estado-Civil = [Solteiro | Casado | Divorciado | Separado | Outro]
8.6. Sinnimo
necessrio quando os utilizadores usam termos diferentes para um mesmo dado
Exemplo:
Nmero-do-Item = 1{Dgito}5
Nmero-da-Pea = * Sinnimo de Nmero do Item *
Dgito = [0 | 1 | 2 | 3]
8.7. Definio de Depsitos
A definio deve vir entre {} para indicar a existncia de 0 a n ocorrncias
Coloca-se o caractere @ antes do item de dado que identifica uma ocorrncia
(instncia) do depsito
Exemplo: definindo depsitos de Clientes e Funcionrios
Clientes = { @CPF-CNPJ + Nome + Data-cadastro + Endereo }
Funcionrios = { @Matrcula + Nome + Data-contratao + Endereo +
{@Telefone + Descrio} + {@RG-Dependente + Nome} }

41
9. Diagrama de Entidades-Relacionamentos
O DER serve para modelar os dados de um sistema
Um DER interessante quando se deseja:
Especificar os dados que so necessrios
Mostrar a quem pertencem os dados
Identificar os relacionamentos entre os dados
Diferena entre Administrador de Dados (AD) e Administrador de Bases de Dados
(ABD)
9.1. Entidades
Uma Entidade representa uma coleco de objectos ou eventos cujos membros
individuais (exemplares ou instncias) tm as seguintes caractersticas:
Cada um s pode ser identificado de uma nica forma
Cada um exerce um papel fundamental no sistema de informao.
Cada um pode ser descrito por um ou mais elementos de dados
O nome da entidade deve estar no singular
Devem ser descritas no Dicionrio de Dados
Exemplos: Cliente, Automvel, Disciplina e Contratao de Funcionrio
9.2. Relacionamentos
Representam as associaes entre entidades
Um relacionamento est sujeito existncia das entidades que associa
Devem ser descritas no Dicionrio de Dados
Tipos de Relacionamentos
Podem ser classificados em: Obrigatrios, Opcionais, Mltiplos e Unitrios
42

Classificaes adicionais
Entidades fracas ou dependentes: As entidades fracas dependem da existncia de uma
ocorrncia da entidade principal. Exemplo: Cliente e Dependente
Subtipos e Supertipos: Os Subtipos possuem, alm dos seus atributos especficos, os
atributos de seu Supertipo. Exemplo: Cliente, Cliente Pessoa Fsica e Cliente Pessoa
Jurdica.
Entidades Associativas: So fruto de relacionamentos M para N, ou 1 para N, com
informaes prprias. So identificados atravs das chaves das Entidades que relaciona.
Exemplo: Produto - Venda - Cliente
Cardinalidade
Representam o nmero de ocorrncias de cada entidade associadas num relacionamento
Podem ser 1:1 (um para um), 1:N (um para N) e M:N (M para N)
Casos especiais de relacionamentos
Relacionamentos entre vrias Entidades
Auto-Relacionamento
Racionamento em paralelo
43
10. Diagrama de Transies de Estado
Modela o comportamento dependente do tempo
Empregado em sistemas de tempo real
Interagem com fontes de dados externas de alta velocidade
Devem produzir respostas e dados de sada rapidamente para interagir com
ambiente externo
Exemplos: Sistemas de controlo de processos, Sistemas de controlo militares,
Sistemas de navegao em automveis, etc.
10.1. Notao
Os principais componentes de um DTE so os rectngulos que representam os estados
e as setas que representam as alteraes de estado
Estado
Um estado uma situao em que o sistema se encontra e que pode durar por um
determinado perodo de tempo
representado por um rectngulo
Exemplos: A aguardar o prximo comando; A executar transaco; A esperar a
digitao da senha; A acelerar o motor; etc.
Em geral os estados apresentam situaes em que o sistema est aguardando pela
ocorrncia de um evento ou est fazendo algo
Mudanas de Estado
So as transies de um estado para outro
Indicam, para cada estado, os seus possveis estados subsequentes
Geralmente apontam os estados iniciais e finais
O estado inicial normalmente desenhado na parte de cima do diagrama. identificado
atravs de uma seta que chega a ele sem partir de outro estado
Um estado final normalmente desenhado na parte de baixo do diagrama e no possui
setas que partem dele
Um DTE pode ter vrios estados finais
44
Condies e Aces
Num DTE tambm possvel incluir as condies que causam uma mudana de estado
e as aces que o sistema empreende quando muda de estado
So exibidas junto seta que indica a mudana de estado (a condio acima e a aco
abaixo, separadas por uma linha)
Exemplo de diagrama de transies de estados (browser web)

45
10.2. Diagramas subdivididos
Em sistemas complexos difcil (ou at impossvel) representar todos os estados num
nico DTE.
permitido criar um DTE de alto nvel e detalhar cada estado num outro DTE (mais
detalhado)
No DTE mais detalhado h um estado inicial e um ou mais estados finais
Exemplo:

46
10.3. Construindo um DTE
Para construir um DTE pode-se utilizar as seguintes abordagens:
Abordagem 1:
Identificar todos os possveis estados do sistema
Descobrir as transies significativas entre os estados
Abordagem 2:
Identificar o estado inicial
Descobrir quais so os estados seguintes e os caminhos possveis
Repetir o passo anterior para cada um dos estados seguintes
Aps elaborar o DTE, verifica-se a sua consistncia atravs dos seguintes testes:
Todos os estados so atingveis?
Todos os estados foram especificados?
Todos os estados no finais tm transio de sada?
Em cada estado, o sistema reage adequadamente a todas as condies possveis?
As condies de excepo esto representadas?
47
11. Especificaes de Processos
Tem como propsito definir o que deve ser feito para transformar as entradas de um
processo em sadas.
H vrias formas de se especificar um processo, dentre as quais pode-se destacar:
Linguagem Estruturada
Condies Pr/Ps
Tabela de Deciso
rvore de Deciso
Os principais problemas da linguagem natural so:
Ambiguidade (condies booleanas)
Riqueza de formas (mais de uma forma de definio)
Impreciso de limites (no especificao de casos especiais)
Qualquer forma de especificar processos vlida desde que:
Seja expressa de uma forma que possa ser verificada pelo utilizador e pelo analista.
Possa ser efectivamente entendida por todos os envolvidos no projecto (utilizadores,
gestores, auditores, etc.)
O analista deve conhecer as tcnicas para que possa seleccionar a mais apropriada para
cada situao
11.1. Linguagem Estruturada
Subconjunto da linguagem normal com algumas restries sobre as sentenas quanto:
Tipo de sentenas que podem ser utilizadas
Formas como podem ser utilizadas
Formas como podem ser reunidas
Equilbrio entre a preciso de uma linguagem de programao formal e a informalidade
e a legibilidade da lngua normalmente utilizada
48
O vocabulrio da Linguagem Estruturada consiste em:
Verbos no imperativo:
RECEBER (fluxo)
ENVIAR (fluxo)
MOVIMENTAR (dados)
ACEDER (depsito de dados)
Palavras reservadas (estruturas de controlo)
Termos definidos no Dicionrio de Dados
Termos locais
Numerais e valores booleanos
Estruturas de controlo
Sequncia: uma ou mais sentenas executadas em sequncia sem interrupo
Seleco: SE e FAA-CASO
Repetio: FAA-ENQUANTO e REPITA
Sintaxe e exemplo do comando de seleco SE
SE <condio>
Sentena A
SENO
Sentena B
FIM-SE
----------------------
SE idade-cliente < 18
categoria = 'Menor'
SENO
categoria = 'Maior'
FIM-SE
49
Sintaxe e exemplo do comando de seleco FAA-CASO
FAA-CASO
CASO <condio>
Sentena A
CASO <condio>
Sentena B
...
CASO-CONTRRIO
Sentena X
FIM-CASO
--------------------------
FAA-CASO
CASO situacao = 1
risco = 'Pequeno'
CASO situacao = 2
risco = 'Moderado'
CASO situacao = 3
risco = 'Alto'
CASO-CONTRRIO
Risco = 'Indefinido'
FIM-CASO
Sintaxe e exemplo do comando de repetio FAA-ENQUANTO
FAA-ENQUANTO <condio>
Aco A
FIM-ENQUANTO
-------------------------------------------
total = 0
FAA-ENQUANTO h mais pedidos
LER prximo pedido de PEDIDOS
total = preo-unitrio * quantidade-item
FIM-ENQUANTO
EXIBIR total
50
Sintaxe e exemplo do comando de repetio REPITA
REPITA
Aco A
AT-QUE <condio>
-------------------------------------------
total = 0
REPITA
LER prximo pedido de PEDIDOS
total = preo-unitrio * quantidade-item
AT-QUE no haja mais pedidos
EXIBIR total
Algumas sugestes
Uma especificao de processo em linguagem estruturada deve caber numa folha de
papel
No usar mais de trs nveis de aninhamento, principalmente em seleces
Evitar confuses sobre os nveis de aninhamento, utilizando indentao
Examinar os documentos com as especificaes, vrias vezes, para garantir que os
utilizadores os entendero
Verificar a consistncia da especificao do processo com o DFD e o DD
51
11.2. Pr/Ps
So um modo prtico de descrever um processo, sem que seja necessrio detalhar o
algoritmo que ser utilizado.
Tem duas partes: pr-condies e ps-condies e til quando:
O utilizador tende a especificar um algoritmo muito especfico e particularizado que
vem sendo utilizado h muito tempo
O analista est seguro de que existem muitos algoritmos que podem ser usados
O analista deseja deixar a definio do algoritmo para o programador, no se
preocupando em defini-lo com o utilizador
Pr-Condies
Definem o que deve ser verdade antes do incio da execuo do processo.
Podem ser consideradas como uma garantia do utilizador.
Normalmente, as pr-condies descrevem o seguinte:
Que entradas devem estar disponveis para que o processo seja activado
"O elemento de dados X ocorre"
Que relacionamentos devem existir entre as entradas ou no interior delas
"Detalhes de pedidos e detalhes de remessas com o mesmo nmero de conta"
"Ocorre um pedido com data de entrega superior a 60 dias"
Que relacionamentos devem existir entre entradas e depsitos de dados
"Existe um pedido-de-cliente com um nmero-de-conta-de-cliente que coincide
com um nmero-de-conta-de-cliente no depsito de clientes"
Que relacionamentos devem existir entre diferentes depsitos ou no interior de um
depsito
"Existe um pedido no depsito de pedidos cujo nmero-de-conta-de-cliente
coincide com o nmero-de-conta-de-cliente no depsito de clientes"
"Existe um pedido no depsito de pedidos com uma data-de-embarque igual
data actual"
52
Ps-Condies
Descrevem o que deve ser verdadeiro quando o processo terminar.
Podem ser consideradas como uma garantia do sistema para o utilizador.
Normalmente, as ps-condies descrevem o seguinte:
As sadas que sero geradas ou produzidas por um processo
"Ser produzida uma factura"
Os relacionamentos que existiro entre os valores de sada e os valores originais de
entrada
"O total-facturado foi calculado como soma dos preos-unitrios-de-item mais
taxa-de-embarque"
Os relacionamentos que existiro entre os valores de sada e os valores num ou mais
depsitos.
"O balano-pendente no depsito inventrio ser aumentado pelo valor-recebido
e o novo inventrio-pendente ser produzido como sada deste processo"
As alteraes que devero ser feitas nos depsitos
"O pedido ser acrescentado ao depsito pedidos"
"O registo cliente ser eliminado do depsito clientes"
Exemplo:
Pr-Condio 1
- O Cliente apresenta-se com um nmero-de-conta coincidente com um nmero
de conta em Contas, cujo cdigo-de-status est ajustado em "vlido"
Ps-Condio 1
- A factura emitida contendo nmero-de-conta e valor-da-venda
Pr-Condio 2
- A pr-condio falha por algum motivo (o nmero-de-conta no
encontrado em Contas ou cdigo-de-estados no igual a vlido
Ps-Condio 2
- emitida uma mensagem de erro
53
11.3. Tabela de Deciso
uma tcnica no-procedural que permite especificar processos que produzem uma
sada ou aco dependendo da avaliao de condies complexas
Utiliza um formato tabular que facilita a visualizao e compreenso do problema
O processo representado normalmente requer IF's aninhados e/ou CASE's
No implica uma implementao especfica (programador tem liberdade de escolha)
Estrutura de uma Tabela de Deciso
Uma tabela de deciso composta por:
Seco de Condies - (Superior esquerdo)
Seco de Aces - (Inferior esquerdo)
Entrada de Condies - (Superior direito)
Entrada de Aces - (Inferior direito)

Condies 1 2 3 4
Idade > 21 S S N N
Sexo M F M F
Aces
Exame fsico simples X
Exame fsico completo X X
Exame prtico X
Exame psicolgico X

Criar uma Tabela de Deciso
Identificar todas as condies ou variveis na especificao
Identificar todos os valores possveis para cada condio ou varivel
54
Calcular o nmero de combinaes possveis
Identificar as aces
Criar uma tabela de decises vazia
Preencher as condies e as aces na parte esquerda da tabela
Especificar as aces adequadas de acordo com as condies especificadas na coluna
Identificar omisses e ambiguidades existentes na especificao do problema e discuti-
las com o utilizador
11.4. rvore de Deciso
til quando nem todas as combinaes de condies so possveis
Permite representar graficamente tomadas de decises complexas
Por ser uma tcnica grfica, torna mais fcil compreender e discutir
Criar uma rvore de Deciso
Identificar as condies
Identificar os valores de cada condio
Determinar o nmero de regras do problema (ramos da rvore)
Identificar as aces
Fazer as simplificaes necessrias (podar a rvore)

55
12. O Modelo Essencial
12.1. A abordagem clssica
Os quatro modelos
Modelo fsico actual
Modelo lgico actual
Novo modelo lgico (80 a 90% igual ao modelo lgico actual)
Novo modelo fsico
Porque a abordagem clssica no funcionava
Algumas suposies equivocadas:
O analista precisava entender o sistema actual. Para isso, utilizava o modelo fsico
actual
O utilizador talvez no queira ou no pode trabalhar como o novo modelo lgico no
incio do projecto
Desconfiana da capacidade do analista
Dificuldade em lidar com modelos abstractos
A transformao do modelo lgico actual num novo modelo lgico no exige muito
trabalho nem desperdcio de trabalho
12.2. O que o Modelo Essencial
Indica o que o sistema deve fazer, mencionando o mnimo possvel sobre como ser
implementado
Tecnologia perfeita
Tudo pode ser obtido a custo zero
No associar processos a pessoas ou sistemas existentes
56
12.3. Dificuldades na construo do Modelo Essencial
Dificuldade de eliminar completamente do modelo essencial todos os detalhes de
implementao
Sequncia arbitrria de actividades num modelo de fluxo de dados
Arquivos desnecessrios (devido tecnologia imperfeita)
Processamento em batch
Backup/Recuperao
Desnecessrias verificaes de erros e validao de erros e processos dentro do sistema
Dados redundantes ou derivados
Desempenho
12.4. Componentes do Modelo Essencial
Composto pelo Modelo Ambiental e pelo Modelo Comportamental
O Modelo Ambiental
Define a fronteira entre o sistema e o resto do mundo
Composto por:
Declarao de Objectivos
Diagrama de Contexto
Lista de Eventos
DD com as definies dos fluxos e depsitos externos (opcionalmente)
DER dos depsitos externos (opcionalmente)
O Modelo Comportamental
Descreve o comportamento do interior do sistema, necessrio para interagir com
sucesso com o ambiente
Composto por DFD, DER, DTE, DD e Especificao de Processos
57
12.5. O Modelo Ambiental
Declarao de Objectivos
Diagrama de Contexto
Lista de Eventos
Eventos Orientados por Fluxos
Eventos Temporais
Exemplos:
Cliente entrega pedido (F)
Cliente cancela pedido (F)
Direco solicita relatrio de vendas (T)
Contabilidade precisa (mensalmente) do relatrio de comisses de vendas (T)
12.6. O Modelo Comportamental Preliminar
Modelar o comportamento interno para que o sistema possa interagir com o ambiente
DFD
DER
Itens Iniciais do DD
A Abordagem Clssica (Top-Down)
Diagrama de Contexto DFD nvel 0 Detalhamento dos processos do nvel 0 at
chegar a processos atmicos
Desta forma, a diviso fica arbitrria
Particionamento por eventos
Envolve 4 etapas:
Desenhar um processo para cada evento da Lista de Eventos
Dar um nome ao processo de acordo com a resposta que o sistema deve dar ao
evento
58
59
Desenhar entradas, sadas e depsitos
Verificar o DFD inicial em relao ao Diagrama de Contexto e Lista de Eventos
12.7. O Modelo Comportamental Final
Nivelamento
Criar nveis superiores de DFD (ascendente)
Directrizes:
Agrupar processos que produzem respostas relacionadas
Agrupar processos que compartilham depsitos, permitindo ocult-los no nvel mais
alto
Manter o nmero de processos em 7 2
Criar nveis inferiores de DFD (descendente)
Quando o processo do DFD preliminar no puder ser especificado numa pgina
Directrizes:
Decomposio funcional
Decomposio pelos fluxos de entrada/sada
Complementar Dicionrio de Dados
Incluir os fluxos e os depsitos encontrados atravs do nivelamento
Complementar as Especificaes de Processos
Provavelmente ainda no haver nenhuma especificao
Deve comear depois da estabilizao do DFD (aps o nivelamento)
Complementar o Modelo de Dados
Pode ser feito em paralelo com o DFD
Pode ser feito por grupos diferentes
Deve incluir os depsitos identificados no nivelamento

Você também pode gostar