quinta-feira, 30 de abril de 2009

DFD's, Dicionário de Dados, Especificação de Processos, Estimativas e Métricas!! Prova Engenharia de Software

Oiee... demorei mas cheguei.

Fiz algumas anotações sobre a matéria da prova de hoje, 30/04.

Bom estudo!!

DFD, DICIONARIO DE DADOS e ESPECIFICAÇÃO DE PROCESSOS.

DFD - Diagrama de Fluxo de Dados

Ferramenta para modelar funcionalidades (o q o programa faz: emitir pedido, validar usuário).

Técnica gráfica.

Top-down (do topo para baixo - no topo dfd de nível 0(zero))

Modelar processos.

Pode ser chamado: diagrama de processos, diagrama de bolha, dfd, modelo de processo, diagrama de modelagem funcional.

Técnica gráfica que descreve o fluxo de informação e as transformações que são aplicadas à medida que eles se movimentam da entrada para a saída.

Para construir um DFD de qualquer nível – 4 processos:

Processo: recebe, transforma os dados e envia saída. O nome é um verbo no infinitivo (ar,er, ir.), todo processo a partir do nível 1 deve ser numerado, representação gráfica (bolha ou retângulo com canto arredondado).

Depósito de dados: Retângulo aberto ou paralelo. Sempre que for retângulo aberto deve ser numerado, nome de deposito sempre no plural. É o local onde armazenamos dados (buffer ou banco de dados complexo).

Entidade Externa ou Terminador: Não existe regra (hardware, pessoa), ele alimenta o sistema e na saída vai (NUNCA numerada).


Fluxo de Dados: a seta que transporta os dados entre os vários componentes do DFD.(Todo recebe nome e quando for composto é separado por hífen).

Ligações permitidas: de um processo para outro processo p -> p, de uma entidade para um processo (E -> p), (p -> E), (p -> Deposito), (Deposito -> p).

Fluxo de rejeição (o usuário digitou senha incorreta, cospe para qualquer lugar)

Ligações proibidas: Entidade para Entidade E -> E, Entidade para deposito de dados E -> D, deposito para Entidade D -> E, deposito para outro deposito D -> D. Quando o processo recebe e não gera saída (Poço sem fundo) e quando eu tenho um processo que não recebe nada de entrada e esta realizando saída (Geração Espontânea).

DFD de nível 0 ou diagrama de contexto -> tem uma única bolha de processo

Sempre que explodir uma bolha no nível seguinte tem q gerar no mínimo duas bolhas e as entradas e saídas são as mesmas do nível 0. Quando explodo nível 0 o DFD de nível 1 é onde eu apresento as principais funcionalidades do sistema (é o maior), as demais são detalhes.
Só se explode 1 processo por vez.

Ex: Sistema de vendas

Entra pedido e sai fatura e cobrança (1 única bolha com nome do sistema – de nível 0)

Só pode duplicar deposito e entidade (para evitar cruzamento).

Alguns comentários importantes:

*Nome de processo significativo (se vai cadastrar cliente: Cadastrar Cliente). Evitar: manipular dados, processar informações – todos fazem.

*O DFD deve ser refeito quantas vezes for necessário. Deve ser feito em 1 folha (pequeno)
* Pode ser seta curva, (FERRAMENTA STAR aparenta estar mais limpa).

* Numerar processo não significa seqüência é para identificar pois se for explodir no nível seguinte tem que saber qual é.

* Não usar poço sem fundo e geração espontânea.

*Não levem ao pé da letra (posição dos elementos), normalmente entidade de entrada a esquerda, todos os depósitos e processos no meio e saídas a esquerda.

Fluxo do deposito para o processo -> esta lendo, acessando o processo

Fluxo do processo para o deposito -> Inserir, Alterar e deletar

DICIONARIO DE DADOS

Serve para definir as estruturas do deposito de dados. Ex: clientes = @cpf + Nome + End. Para pedidos = @cod + Descrição (@ é a chave primaria, identificador, único).

Vínculo entre DFD e DER – Tudo que é depósito no DFD vira entidade no DER.

Para fazer o dicionário de dados no projeto: Nome do campo I Tipo I Tamanho
() (é opcional), {} (caractere válido, repetição), [I] (opção ou), * (comentário), = (é composto) +( (e)concatenação)

ESPECIFICAÇÃO DOS PROCESSOS

É Dizer o que o processo faz, passo a passo (fluxograma). Ex: Validar usuário – Este processo vai validar o usuário.

Texto Narrativo -> é uma ferramenta para especificar processos de forma narrativa (língua portuguesa). Sempre que na aplicação envolver cálculo, usar o texto narrativo não é muito adequado, pois não facilita a interpretação.

Português Estruturado -> Eu estruturo em pseudocódigo VCA < 1000, cat = X...

Tabela de Decisão -> Uma tabela para cada processo. No canto superior as condições e logo abaixo as ações.

PERGUNTA DE PROVA: Para o conjunto de condições tenho que tomar uma ação. EX: Se é maior que 21 anos faz exame prático. O numero de coluna ou norma é decidido pelo numero de condições (2 elevado a N).

Árvore de Decisão -> A única diferença da tabela é que é feita na horizontal. Não é tão segura.


ESTIMATIVAS E MÉTRICAS

Gerenciamento de projetos -> Liderar, gerenciar um projeto.

ESTIMAR -> Não é um valor exato é um valor aproximado. Eu só consigo estimar aquilo que conheço (Regras de negócio), consigo verificar a complexidade do projeto.

O ideal é você ter uma bagagem (programar, analisar, etc...) porque quanto mais experiência mais condições ele terá de realizar as diversas variáveis.

Variáveis como custos, pessoas, fases, tudo é feito pelo Gerente de Projetos.

IMPORTANTE-> Conceito de modularidade (todos os sistemas são modulares), são divididos em parte, em módulos. Coesão é o grau de integridade de uma classe e acoplamento é a interdependência (orientação objeto).

Ex: para pagar um professor o contas a pagar precisa dos dados do RH.

Medidas:

Qualidade do software
Produtividade das pessoas
Por que medir? Para propor novas ferramentas, reutilizar conhecimentos adquiridos em outros projetos.

Medidas diretas e indiretas:

Estimativas: linhas de códigos e número de pessoas.

Métricas orientadas à função - indiretas

Pontos por função:

FP = contagem total x [0,65 + 0,01 x SOMA (Fi)]

COMENTÁRIOS: Software é caro, erros de estimativas(não é um valor exato), verificar se o projeto esta aceitável (margem de erro).


PROVA

Estimativa para Projeto de Software

O número de linhas de códigos será fornecido (dependo da linguagem que esta sendo feito).

Encontrar o valor esperado:

E = (V ótimo + 4Vprovavel + V péssimo)/6

Custo Esperado x $ linha e Meses Esperado / pessoa mês

Estimativa número de pessoas:

É dividida em fases, valor x número de pessoas.


EXERCÌCIOS (Prova)

Faça uma analogia (comparação) verificando as estimativas LOC e Pessoas e diga se o projeto é viável (se esta dentro dos riscos aceitáveis).

Sempre em regra de 3 simples (o maior sempre esta para 100)

LOC
Custo: $ 656,680
Esforço: + ou – 145 Pessoas / Mês

Pessoas
Custo: $ 708, 075
Esforço: + ou – 153 pm

Analogia Custo

708 075 ------ 100%
656680 ------ 92,74

708075. x = 656680 x 100

X = 65668000
-------------
708075

X = 92,74%

Como eu quero saber a diferença percentual
100 – 92,74 = 7,26%

Analogia Esforço

153 ------ 100%
145 ------ x

153 x = 145 x 100
X = 145000
-------------
153

X = 94.77%

Como eu quero saber a diferença percentual
100 – 94.77 = 5.23%

Conclusão: < 20% projeto é viável (dentro de riscos aceitáveis)


Faça a estimativa de Custos e Esforço para o projeto abaixo citado. Considerar ambos os casos. LOC’s e Pessoas_Mês. Concluir fazendo uma analogia entre os valores estimados para custo e esforço.

Renata Andrade

Nenhum comentário:

Postar um comentário