Você está na página 1de 67

Anlise Estruturada

Academia da Fora Area

Prof. Joo Arajo

Anlise Estruturada (Tradicional)

A anlise estruturada uma bordagem sistemtica para fazer a anlise de um sistema de modo a produzir a uma especificao funcional. A especificao funcional define as funes e estruturas de dados que constituem o sistema. A anlise estruturada usa tcnicas: grficas, simples, modulares, complementares necessrio que o analista saiba comunicar com os clientes e garantir clareza de ideias

Modelos de Anlise

Modelo essencial do sistema

Indica o que o sistema deve fazer e que dados necessita para satisfazer os requisitos do utilizador. Define o sistema num ambiente ideal. Apresenta a soluo de implementao do sistema ideal, definindo os limites de automatizao, as interfaces do utilizador com o sistema e algumas caractersticas operacionais relevantes. Define o sistema num ambiente real.

Modelo de implementao

Vantagens do Modelo Essencial

Ganhar tempo devido construo de menos modelos.

Dar uma viso dinmica integrada de todo o sistema.


Facilitar a identificao das funes que compem o sistema. Facilitar a construo de uma soluo ideal. Derivar uma soluo a partir de uma soluo ideal

Modelo Ambiental

O modelo ambiental descreve o ambiente no qual o sistema se insere, ou seja, descreve o contexto do sistema Componentes do modelo ambiental: Descrio dos objectivos Diagrama de Contexto Lista de Eventos

Descrio dos Objectivos

uma descrio textual concisa do propsito do sistema voltada para aqueles que no esto envolvidos directamente com o desenvolvimento do sistema

Ex.: Altos escales

constituda por uma ou mais sentenas Exemplo:

O propsito da Amazon Bookstore gerir electronicamente todos os detalhes dos pedidos de livros, envio, cobrana

Diagrama de Contexto

Componentes:

Entidades externas (ou terminators) Ficheiros ou bases de dados compartilhados entre o sistema e o ambiente A interface entre o sistema e o ambiente Dados que o sistema recebe do ambiente Dados que o sistema manda para o ambiente Um processo que representa o sistema

Diagrama de Contexto (Exemplo)


pagamento pedido de livro

Cliente

recibo

Relatrio de vendas

Amazon BookstoreSistema de gesto livraria eletrnica

Guia de remessa

Crdito
recibo

Direco

Relatrios

Departamento de contabilidade

Lista de Eventos

Mostra todos os estmulos que ocorrem a a partir do ambiente e aos quais o sistema deve responder.
Os eventos classificam-se em:

Orientados a fluxo: quando transportam dados;

Temporais: quando acontecem periodicamente; como se o sistema tivesse um relgio interno. Ex.: Recibos devem ser gerados s 16:00 horas
Condicionais: quando acontecem devido verificao de uma condio pelo sistema. Ex: Se o stock for baixo emitir nota de compra ao fornecedor De controlo assncrono, imprevisveis

Ex.: interrupes Mais utilizado em sistemas de tempo real Sinalizar o sistema quando uma aco imediata necessria

Construo de uma lista de eventos:

Identificao dos eventos do ponto de vista do ambiente Examinar cada entidade externa e verificar os efeitos de suas aces no sistema

Incluir situaes de excepo


A lista de eventos pode ser construda antes ou depois do diagrama de contexto, mas prefervel que seja construda antes.

Lista de Eventos vs. Diagrama de Contexto

Eventos por fluxo: originam pelo menos um fluxo de entrada no sistema

podem ou no originar fluxos de sada Eventos temporais e condicionais no originam fluxos de entrada no sistema podem ou no originar fluxos de sada Eventos de controlo no originam fluxos de dados de entrada no sistema podem ou no originar fluxos de sada

Exerccio 1 (1)
Uma empresa de transportes, cujo servio transportar mercadorias no pas, pretende automatizar a sua rea de gesto de veculos. O director da empresa descreve o sistema da forma que se segue. Sempre que se compra um veculo regista-se no sistema (as suas caractersticas so dadas ao sistema pelo departamento de compras). O veculo s entra em servio quando chega uma notificao de seguro da companhia seguradora. Esta notificao contm o nmero de aplice, tipo de seguro com a sua sua descrio, a identificao da seguradora (cdigo, nome, morada e telefone), e ainda os dados referentes ao veculo. Toda esta informao deve ser inserida no sistema. Para fazer os trajectos a empresa tem um conjunto de condutores que podem conduzir qualquer veculo da empresa. Os dados dos condutores (nome, morada e telefone) esto guardados num depsito de dados partilhado com o departamento de pessoal. Sempre que um cliente pede um servio, preenche uma notificao de servio onde indica os seus dados pessoais e o trajecto que deseja (origem e destino). Mais tarde o sistema dever ser capaz de distribuir os servios pelos condutores e veculos.

Exerccio 1 (2)
Sempre que um condutor termina uma entrega, faz uma notificao de fim de servio e informa se ocorreu algum acidente. Em caso de acidente, o condutor faz uma descrio do ocorrido. S depois do regresso do condutor e caso no haja acidente que o veculo fica disponvel para outro servio. Para um melhor atendimento ao cliente, sempre que no se pode realizar um servio, por falta de veculo ou por falta de condutor, coloca-se o pedido em lista de espera. Logo que seja possvel dar resposta a este servio, envia-se um aviso ao cliente. No final do ano, o sistema deve emitir um resumo dos acidentes por veculo onde, para alm dos dados do veculo e do seguro, deve constar cada um dos trajectos feitos pelo veculo com o respectivo condutor e os acidentes registados nesse trajecto.

Exerccio: construo do modelo ambiental


O sistema de gesto de transportes para mudanas tem as seguintes funes: Tratar os pedidos de servio (mudanas) feitos pelos clientes. Controlar as sadas e entradas dos camies. Gerir o trabalho e os dados dos motoristas. Controlar o pagamento do servio. Tratar o pagamento dos motoristas.
Nota: j existe um sistema automatizado para o controlo da reparao dos camies que: contm um depsito de dados com a informao sobre o camio e a data estimada do fim da reparao;

avisa o sistema de gesto de transportes para mudanas quando um camio necessita de reparao e sempre que uma reparao termina.

Exemplo

Lista de eventos:
1. Diariamente emitir lista de servio (temporal) 2. Departamento de compras regista novo veculo (fluxo) 3. Seguradora informa aplice (fluxo) 4. Cliente pede servio (fluxo) 5. Condutor informa fim de servio (fluxo)
6. 7.

Condutor d descrio de acidente (fluxo) ...

Exemplo
plano dirio trabalho pedido servio/ resposta entrada camio

Motorista

Cliente pedido satisfeito

pagamento
fim servio mapa acidentes Sistema gesto transportes mudanas

factura

Departamento de pessoal

novo condutor condutores


data estimada Reparaes

novo veculo Departamento de compras


aplice Seguradora

pedido seguro

Sistema de controlo de manuteno

reparao

Modelo Comportamental

O modelo comportamental descreve as aces que o sistema deve realizar para responder da melhor forma aos eventos definidos no modelo ambiental. Tcnicas utilizadas: Diagrama de Fluxos de Dados (DFD)

Dicionrio de Dados (DD) Diagrama de Entidades e Associaes (ou Relacionamentos) (DEA ou DER) Especificao de Processos (EP) - (DESENHO)

Diagrama de Transio de Estados (DTE)

Diagrama de fluxo de dados (DFD)

Um DFD um modelo que permite representar o sistema como uma rede de processos, salientando as funes que precisam ser implementadas e os fluxos dados manipulados por estas funes. Um DFD contm:

Processos Fluxos de dados Depsitos de dados Entidades externas com que o sistema interage

DFD

O DFD composto por processos, depsitos de dados, fluxos de dados e entidades externas.
entidade externa ou terminador depsito de dados
2. Entregar livros

processo

Clientes

pedido

Detalhes de

Dados -livros

Armazm

1. pedido Receber Pedido invlido pedido

pedidos
Guia de remessa
4. Registar cliente

Detalhes de cliente clientes

fluxos de dados

factura

Detalhes da factura, nome do cliente 3.


Recolher pagamentos

factura

Clientes

pagamentos

Regras para construir DFDs

Escolher nomes significativos para os processo, fluxos, entidades e depsitos Numerar os processos Redesenhar os DFDs tantas vezes quantas forem necessrias Evitar DFDs complexos Certificar-se de que o DFD internamente consistente Evitar processos que tenham entradas e nenhuma sada (e viceversa)

DFD: Processo

Funo, transformao Transforma entradas em sadas Nome: numerao + verbo + objecto Exemplos:

1. Calcular Juros

1. Calcular Juros

DFD: Fluxo (1)

Usado para descrever movimento de informao de um componente do sistema para outro Exemplos:

Valor X Valor Y Valor Z

N vlido

2. Calcular mdia

mdia

Ntelefone

3. Validar Nmero
N invlido

DFD: Fluxo (2)

Fluxo de dilogo

Gerir formulrio Preencher Informao formulrio formulrio preenchido

Fluxo divergente
Gerar relatrios Validar pedidos Detalhes de pedido Gerar fatura

DFD:Depsito de Dados

Ficheiros, bases de dados CDs microfichas, microfilme Um fluxo para um depsito: actualizar, gravar, remover

Registar detalhes clientes cliente

Gerar

relatrios

DFD: Entidades Externas


Esto fora do sistema O analista no est em posio de mudar o contedo das entidades Os fluxos conectando a entidade aos processos representam a interface entre o sistema e o ambiente

Construo de DFD Preliminar


1. Um processo (ou +) um evento da lista de eventos. 2. O nome do processo deve estar de acordo com a resposta que o sistema deve dar ao evento. 3. Definir fluxos de dados de entrada e sada. O processo deve ser capaz de produzir a resposta correcta. 4. Usar os depsitos de dados necessrios para guardar a informao que ser depois usada por outros processos. 5. Verificar a coerncia entre este DFD e o diagrama de contexto.

Construo de DFD Preliminar


Observaes:
1. Um evento pode causar vrias respostas

Definir um processo por resposta (se forem independentes)


Exemplo:
pedido de cliente
Produzir factura factura

Emitir confirmao pedido

pedido confirmado

Construo de DFD Preliminar


2. Vrios eventos podem causar a mesma resposta. Definir um s processo

Exemplo:
Pagamento p/ carto de crdito
Produzir guia de remessa guia de remessa

Pagamento p/ dinheiro

Construo de DFD Preliminar


3. Agrupamento de processos: Formar nveis de maior abstraco. cada agrupamento de processos deve envolver respostas (processos) relacionadas. Isto significa que tais processos se relacionam por funo ou pelos mesmos dados Regra de Miller: 7 2 processos.

Dicionrio de dados

Descreve o significado dos fluxos de dados e dos depsitos de dados Descreve a composio de dados agregados. Ex.: endereo Especificar os valores e unidades relevantes Descrever os relacionamentos entre depsitos de dados (diagramas E/R)

Notao

= composto por + e () opcional {} iterao [] seleccionar uma das vrias alternativas ** comentrio @ chave de um depsito | separa alternativas quando se usa []

Dicionrio de dados - Exemplos:


Nome = ttulo + primeiro-nome + apelido ttulo = [Sr. | Sra.| Prof.| Dr.| Eng.] primeiro-nome = 1{caracter-vlido} apelido = 1{caracter-vlido} caracter-vlido = [A-Z | a-z | | - | ] endereo = * ainda no definido*

Dicionrio de dados (cont.)

Dados elementares mais nenhuma decomposio necessria Ex.: peso, altura Dados opcionais endereo-cliente = (endereo-de-entrega) + (endereo-decobrana) endereo-cliente = [endereo-de-entrega | endereo-de-cobrana | endereo-de-entrega + endereo-de-cobrana] endereo-cliente = endereo-de-entrega + (endereo-decobrana)

Dicionrio de dados (cont.)

Iterao pedido = nome-cliente + endereo-de-entrega + {item} pedido = nome-cliente + endereo-de-entrega + 1{item}10 a = 1{b} a = {b}10 a = 1{b}10 a = {b} Seleco sexo = [m | f ] tipo-do-cliente = [governo | indstria | universidade | outro]

Dicionrio de dados (cont.)

Sinnimos fregus = * sinnimo de cliente* Evitar seu uso Avaliao do DD todos os dados do DFD esto definidos? Todos os elementos do elemento composto foram definidos? H elementos repetidos? H elementos que no existem do DFD?

DFD - Nivelao

Serve para controlar a complexidade do sistema Serve p/ organizar o DFD completo em nveis onde cada nvel d mais detalhe do nvel superior O DFD de nvel mais alto o diagrama de contexto

2 3.1

3.2

1
System 3 3.3

3.4

FAQ sobre Nivelao

Quantos processos por nvel? 7 2 (Regra de Miller) Quantos nveis? Sistemas simples: 2 a 3 nveis Sistemas de mdio porte : 3 a 6 nveis Sistemas de grande porte : 5 a 8 nveis Todas as partes do sistema devem ter o mesmo nvel de detalhe? No: algumas partes do sistema podem ser mais complexas que outras

FAQ sobre Nivelao (cont.)

Como mostrar os diferentes nveis ao utilizador? Depende do tipo de utilizador


Executivos olham pro diagrama de contexto ou DFD de nvel 0 Operadores olham apenas pra parte do sistema que lhe diz respeito

Como saber se os nveis de DFDs esto consistentes entre si? Fluxos de dados de entrada e sada de um nvel devem corresponder aos fluxos de dados de entrada e sada do nvel mais abaixo que descreve aquele processo

FAQ sobre Nivelao

Como mostrar os depsitos de dados nos vrios nveis? Mostrar o depsito no nvel mais alto onde ele serve como interface entre processos Mostrar o depsito outra vez em todo o DFD de nvel mais baixo que est envolvido na interface

1.1 1
Depsito 1 Depsito 1

1.2

2.1 2
Depsito 1

2.2

FAQ sobre Nivelao

Como se faz a nivelao de facto? O desenvolvimento do DFD no necessariamente top-down Abordagem mista: top-down + bottom-up Utilizar a lista de eventos para criar a 1 verso do DFD:

Pode ser utilizada para criar DFDs de nvel mais alto Pode ser utilizada para criar DFDs de nvel mais baixo

FAQ sobre Nivelao


Cada grupo de processos envolve dados relacionados entre si Se um grupo de processos do DFD preliminar se refere a um depsito (e s este grupo) ento pode-se criar um processo de nvel mais alto que esconda este depsito

D1

D2

D2 D3

Diagrama de Entidade-Associao (DEA)

Tambm chamado Diagrama de Entidade-Relacionamento (DER) Utilizado para: Interagir com o utilizador Definir relacionamentos entre depsitos de dados

Cliente

Compra

Livro

DEA

Componentes de um DEA Tipo Objecto (Entidade) Relacionamento (Associao) Indicador de tipo objecto associativo Indicador de supertipo/subtipo Tipo objecto Representado por uma caixa rectangular Representa uma coleco ou conjunto de objectos do mundo real Objectos so instncias do tipo Cada objecto desempenha um papel no sistema e este pode ser:

identificado unicamente ser descrito por um ou mais elementos de dados

DEA

Relacionamento Representado por um losango Um relacionamento representa um conjunto de conexes entre objectos Pode haver mais de um relacionamento entre dois objectos

Trata Mdico Cobra Paciente

DEA

Os relacionamentos podem ser unrios, binrios, ternrios...

Curso

Tem Prec.

Professor

Envolve

Aluno

DEA

Cardinalidade: o nmero de objectos de cada tipo objecto que participa no relacionamento Pode ser. 1:1 ; 1:N ; N:1 ; M:N

Cliente

Compra

Item

Professor

Ensina

Aluno

DEA
Tipo objecto (ou entidade):
Aluno

Atributo identificador:
nmero_de_matrcula

Atributos descritores:
nome, morada, telefone, data_nascimento, curso, sexo

Instncia de objecto:
nmero_de_inscrio: 11250 nome: Joo da Silva morada: Areeiro telefone: 8887777 data_nascimento: 01/09/80 curso: eng. informtica sexo: m

DEA

Instncia de uma associao uma ocorrncia de uma ligao entre objectos


Cliente compra Filme

Instncias de Cliente C1 C2 C3 C4

instncias de compra

Instncias de Filme F1 F2 F3

4 instncias de Cliente 3 instncias de Filme 3 instncias da associao compra

DEA

A cardinalidade define os graus mximo e mnimo. O grau mximo de uma associao pode ser:

1:1 1:N N:M

O grau mnimo de uma associao pode ser:


0:0 0:1 1:1

DEA

Grau mximo:

O grau mximo define o nmero mximo de vezes que uma instncia da entidade pode ocorrer na associao. Exemplo:
Cliente 1 tem 1 Carta de conduo

Uma instncia de Cliente pode ocorrer no mximo uma vez Uma instncia de Carta de Conduo pode ocorrer no mximo uma vez

DEA
Exemplo 1:
Aluguer

pertence

Cliente

Um Aluguer pertence a no mximo um Cliente Um Cliente pode ter vrios Alugueres

Exemplo 2:
Fornecedor N fornece Produto

Um Fornecedor fornece vrios Produtos Um Produto pode ser fornecido vrios Fornecedores

DEA

O grau mnimo define o nmero mnimo de vezes que uma instncia pode ocorrer na associao.
Se zero diz-se opcional, se um diz-se obrigatria.

Exemplo:
Cliente tem Carta de conduo

Carta de conduo opcional: um dado cliente pode no ter carta Cliente obrigatrio: uma carta de conduo pertence no mnimo a um cliente

DEA
Exemplo:
Mdico mdico famlia Paciente

Mdico opcional Um Paciente pode no ter mdico de famlia

Paciente opcional
Um mdico pode no ser mdico de famlia de nenhum Paciente

DEA
Exemplo:
Fornecedor fornece Produto

Fornecedor obrigatrio Um fornecedor fornece no mnimo um produto

Produto obrigatrio

Todo produto fornecido no mnimo por um fornecedor

DEA
Os graus mximo e mnimo de uma relao complementam-se e servem para especificar a poltica da organizao no que se refere aos dados.
N
Fornecedor fornece M 1

Produto

Cliente

tem 1

Carto

Notao alternativa
Fornecedor

0..N 1..1

fornece

0..M 0..1

Produto

Cliente

tem

Carto

DEA

Entidade associativa uma associao com atributos prprios. Representa uma associao onde desejamos manter alguma informao especfica que no pode ser derivada automaticamente pelo sistema
M

Funcionrio

trabalha

Projecto N

Contm informao sobre a percentagem de tempo que o empregado dedica a um dado projecto.
Funcionrio 1..M 1..N Projecto

Trabalho

DEA

Exemplos de entidades associativas:


(0..M) (0..N)

Ficheiro

Utilizador

Acesso

Atributo especfico : tipo da permisso de acesso


(0..N)

Atleta

(1..M)

Competio

Participao

Atributos especficos : colocao, performance

DEA
Indicadores de subtipo e supertipo

Um subtipo uma especializao do supertipo


Um supertipo uma generalizao do subtipo O supertipo descreve os elementos de dados comuns a todos os subtipos.

Os atributos de um supertipo so herdados pelos subtipos


Cada subtipo descrito pelos atributos herdados do supertipo + atributos especficos Os subtipos descrevem elementos de dados especficos a um subconjunto das instncias. Na notao o supertipo est conectado aos subtipos atravs de uma associao sem nome e uma linha cortada

DEA
Esporte Empregado

Esporte Individual

Esporte em Equipa

assalariado

temporrio

Esporte = nome + local + regras


Esporte Individual = recorde Esporte em Equipa = nmero_de_jogadores

Empregado = nome + endereo

Assalariado = salrio_mensal
Temporrio = salrio_hora

DEA

Figura

Aberta

Fechada

Figura = cor + posio_central Aberta = orientao Fechada = rea Arco = raio + ngulo Linha = pontos_extremos Crculo = dimetro Polgono = nmero_de_lados + vrtices

Arco

Linha Crculo Polgono

Construo do DEA
1. Identificao das entidades.

depsitos de dados; depsitos de dados associados a entidades externas; documentos, formulrios, utilizador.

2. Identificao das associaes:


Verificar a descrio dos depsitos de dados do DFD no DD.

Exemplo:
Fornecedores = {Fornecedor + {cdigo_produto}} Fornecedor = @cdigo_fornecedor + nome + morada + nmero_contribuinte
Produtos = {Produto + 1{cdigo_fornecedor}} Produto = @cdigo_produto + descrio + peso

N
Fornecedor fornece M Produto

Construo do DEA
2.2 Na especificao dos processos.

Exemplo:
process fornecer; ... If cdigo_fornecedor in Fornecedores = cdigo_ fornecedor in Produtos then ... endproc

Construo do DEA
3. Definir os graus mximos e mnimos das associaes. 4. Especificar os atributos identificadores e os atributos descritores de cada entidade.

Verificar a descrio dos depsitos de dados no DD.

5. Completar o dicionrio de dados com as descries das entidades e associaes que ainda no estejam l.

Mdico

trata

Paciente

Mdico = @cdigo_mdico + nome + morada + salrio Paciente = @cdigo_paciente + BI + nome + sexo + (telefone)

Construo do DEA

Observaes importantes: 1. Certificar-se de que todos os atributos se aplicam a todas as instncias de uma entidade.
Modelo = @nmero_modelo + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cnjuge) + sexo + altura + [barba + medida_trax | medida_quadril + medida_busto]

Observa-se que h a necessidade de criar dois subtipos

Construo do DEA
Modelo Modelo = @nmero_modelo + nome + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cnjuge) + altura + tipo-modelo tipo-modelo = [Modelo_feminino | Modelo_masculino] Modelo_feminino = @nmero_modelo + medida_quadril + medida_busto Modelo_masculino = @nmero_modelo + barba + medida_trax

Modelo feminino

Modelo masculino

Construo do DEA
2. Certificar-se de que quando h entidades diferentes que possuem atributos em comum possvel criar um supertipo Empregado_temporrio = @nmero_empregado + nome + morada + cdigo_postal + telefone + salrio_hora + nmero_horas_extra Empregado_assalariado = @nmero_empregado + nome + morada + cdigo_postal + telefone + salrio_mensal + abono_famlia + nmero_filhos
Empregado temporrio Empregado assalariado Empregado

Empregado temporrio

Empregado assalariado

Construo do DEA
3. Quando h grupos repetitivos covm criar uma nova entidade e uma nova associao Um grupo repetitivo um conjunto de atributos cujos valores se repetem para um dado valor do identificador.
Empregado = @nmero_empregado + nome + morada + salrio + {nome_filho + sexo_filho + idade_filho} N

Empregado

tem

Filho

Empregado = @nmero_empregado + nome + morada + salrio Filho = @Id_filho + nome_filho + sexo_filho + idade_filho + nmero_empregado

Construo do DEA

4. Existe outra situao bastante comum.

Conta

Conta = @nmero-conta + saldo + [juro + perodo | limite-credito]

Conta Ordem

Conta a prazo

Conta = @nmero-conta + saldo Conta--ordem= @nmero-conta + limite-crdito Conta-a-prazo= @nmero-conta + juro + perodo Conta__ordem = * mesmos atributos que Conta*

Você também pode gostar