Escolar Documentos
Profissional Documentos
Cultura Documentos
Analise
Analise
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
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
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
uma descrio textual concisa do propsito do sistema voltada para aqueles que no esto envolvidos directamente com o desenvolvimento do sistema
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
Cliente
recibo
Relatrio de vendas
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:
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
Identificao dos eventos do ponto de vista do ambiente Examinar cada entidade externa e verificar os efeitos de suas aces 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.
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.
Exemplo
plano dirio trabalho pedido servio/ resposta entrada camio
Motorista
pagamento
fim servio mapa acidentes Sistema gesto transportes mudanas
factura
Departamento de pessoal
pedido seguro
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)
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
pedidos
Guia de remessa
4. Registar cliente
fluxos de dados
factura
factura
Clientes
pagamentos
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
Usado para descrever movimento de informao de um componente do sistema para outro Exemplos:
N vlido
2. Calcular mdia
mdia
Ntelefone
3. Validar Nmero
N invlido
Fluxo de dilogo
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
Gerar
relatrios
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
pedido confirmado
Exemplo:
Pagamento p/ carto de crdito
Produzir guia de remessa guia de remessa
Pagamento p/ dinheiro
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 []
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*
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)
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]
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
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
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
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
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
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
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:
DEA
Relacionamento Representado por um losango Um relacionamento representa um conjunto de conexes entre objectos Pode haver mais de um relacionamento entre dois objectos
DEA
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
Instncias de Cliente C1 C2 C3 C4
instncias de compra
Instncias de Filme F1 F2 F3
DEA
A cardinalidade define os graus mximo e mnimo. O grau mximo de uma associao pode ser:
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
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
Paciente opcional
Um mdico pode no ser mdico de famlia de nenhum Paciente
DEA
Exemplo:
Fornecedor fornece Produto
Produto obrigatrio
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
Ficheiro
Utilizador
Acesso
Atleta
(1..M)
Competio
Participao
DEA
Indicadores de subtipo e supertipo
DEA
Esporte Empregado
Esporte Individual
Esporte em Equipa
assalariado
temporrio
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
Construo do DEA
1. Identificao das entidades.
depsitos de dados; depsitos de dados associados a entidades externas; documentos, formulrios, utilizador.
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.
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]
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
Conta
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*