You are on page 1of 38

WWW.VENDASAPOSTILAS.COM.

BR

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado
_

Introduo
_

Ferramentas: Diagrama de Estrutura


_

Factores Internos de Qualidade


_

Heursticas de Projecto
_

Anlise de Transformao
_

Anlise de Transaco
_

Concluses

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Introduo
_

O objectivo da fase de Projecto , partindo das especificaes geradas Anlise, produzir uma especificao que promova a Qualidade do programa.
_

O objectivo do Projecto Estruturado produzir uma especificao que, quando implementada cumpra os requisitos e promova a boa prtica da programao estruturada (Qualidade do programa). O projecto estruturado procura lidar com a complexidade dos Sistemas usando: 1. Abordagem top-down (organizao hierrquica) 2. Modularidade (segmentao)

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Externos (detectveis pelo utilizador) Factores de Qualidade: Internos (s perceptveis pelos programadores)

Alguns factores externos principais 1) Correco Capacidade de um programa efectuar as tarefas requeridas pelas especificaes. 2) Robustez Capacidade do programa funcionar em condies anormais. Fivel (reliable) = Correcto + Robusto 3) Extensibilidade (ou capacidade de evoluir) Facilidade com que um programa se pode adaptar a alteraes de especificao. 4) Compatibilidade Facilidade com que um programa pode ser combinado com outros

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Outros factores de qualidades


_

Reutilizao Capacidade de um programa poder ser reutilizado total ou parcialmente em outros programas.
_

Eficincia Utilizao criteriosa dos recursos (espaciais e temporais)


_

Portabilidade Facilidade com que um programa pode ser transferido para outras plataformas.
_

Verificabilidade Facilidade em aceitar dados e procedimentos de teste durante a validao e operao.


_

Integridade Capacidade de um programa em proteger os seus vrios componentes contra acessos no autorizados.
_

Facilidade de utilizao Facilidade com que se aprende a preparar entradas, interpretar resultados, recuperar de erros, etc.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Projecto estruturado versus Programao Estruturada


_

O Projecto Estruturado no Programao Estruturada.


_

O Projecto Estruturado produz uma especificao que organiza a implementao usando Programao Estruturada.
_

A principal actividade da fase de projecto estruturado a identificao e alocao de funes bem definidas em mdulos.
_

A programao estruturada, que aparece em meados dos anos 60, prope um conjunto de estruturas padro (funes, instrues de selecco, iterao, etc) para tornar os programas mais compreensveis. Para alm disso, introduz a estratgia de refinamento progressivo (top-down) para ajudar o programador.
_

Pode dizer-se que o Projecto Estruturado comea onde a Programao Estruturada acaba: Implementao de sistemas de mdia e grande dimenso.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Modularidade Os benefcios do Projecto Estruturado resultam da capacidade de dividir hierarquicamente a funo global do sistema em mdulos coerentes, manipulveis e funcionalmente independentes (caixas pretas). Caractersticas de caixa preta - Conhecem-se as entradas e sadas; - Conhece-se explicitamente a funo; - Desconhece-se a implementao da funo.

Alguns critrios para controlo de complexidade usando mdulos


_

Decomposio: O sistema deve ser decomposto numa srie de subsistemas mais simples ligados por uma estrutura simples.
_

Composio: Utilizao de mdulos pr-definidos;


_

Legibilidade: A funo que cada mdulo executa deve ser bvia e entendida sem recorrer a outros mdulos.
_

Continuidade: Pequenas alteraes nas especificaes s devem afectar um mdulo (ou um n pequeno de mdulos);
_

Proteco: O sistema deve estar organizado de tal forma que a ocorrncia condies anormais sejam tratadas localmente.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Vantagens tradicionalmente atribudas ao Projecto Estruturado _ Facilita a implementao e a manuteno; _ Facilita uma implementao paralela; _ Reduz a ocorrncia de erros de programao; _ Atenua os efeitos devidos a (pequenas) alteraes; _ Minimiza os efeitos do emprego de vrios programadores; _ Facilita a estimativa de custo global do sistema; _ um passo em direco reutilizao; _ Facilita a optimizao

Desvantagens do Projecto Estruturado (Decorrentes da abordagem ser guiada por funes) _ No toma em conta a natureza evolutiva dos sistemas; _ A caracterizao de um sistema com uma nica funo global pode ser questionvel; _ A estrutura dos dados negligenciada;

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Ferramentas de Projecto Estruturado: Diagrama de Estrutura


_

O Diagrama de Estrutura revela a estrutura modular de um sistema, a hierarquia e as interfaces de dados e controlo entre mdulos. Mostra: - apenas as tomadas de deciso de alto nvel; - que os mdulos hierarquicamente superiores so chamados primeiro do que os mdulos dos nveis inferiores da hierarquia. No mostra: - a ordem pela qual os mdulo devem ser executados; - os detalhes da estrutura de controlo O DE decompe um sistema num nico diagrama;

Vantagens tradicionalmente atribudas ao Diagrama de Estrutura _ uma ferramenta grfica; _ adequado ao desenvolvimento paralelo; _ um bom auxiliar de documentao do sistema.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Componentes do Diagrama de Estrutura


_

Mdulo Coleco de elementos de processamento (instrues) com os seguintes atributos bsicos: Entradas e sadas, funo, lgica e dados internos

<Nome de Mdulo>

<Nome de Macro>

<Nome de Mdulo pr-definido>

<Nome de Macro pr-definida>

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Comunicao entre Mdulos

O mdulo A chama o mdulo B.

As setas esto orientadas de cima para baixo para salientar que o DE uma tcnica de projecto topdown .

Obter detalhes de Cliente


No da conta do cliente

Dados Informao de Controlo

Nome do cliente

No da conta OK

Encontrar nome de cliente

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Anotaes Procedimentais

Chamadas condicionais

Chamadas repetidas
B C

A
1

O mdulo A chama o mdulo C uma nica vez.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Smbolos especiais
A

Activao paralela de B a partir de A

A uma macro

Sistema operativo

Mdulo apenas com dados


<Dados>

Conector
C

A A Comentrio acerca de A

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Mais sobre ligaes Os 3 DE seguintes so equivalentes.

Ligao patolgica

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Mtodos para especificao de mdulos Em geral, os mtodos usados para especificar os processos dos DFDs podem ser usados aqui. Mtodos mais usados: - Especificao de Interface do Mdulo; - Pseudocdigo

Especificao de Interface do Mdulo


_

Definem-se as entradas, as sadas e a funo que o mdulo deve efectuar.


_

Pede-se o que se pretende sem ter que dizer como implementar.


Mdulo: Funo Entradas: Sadas: Calcular Total de Saldos. Obtm a soma dos saldos (crditos dbitos) de um grupos de clientes. Arquivo de contas; tamanho do arquivo. Valor total dos saldos.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Factores Internos de Qualidade

Modularidade Lingustica

Interfaces explcitas e no menor nmero possvel

Acoplamento

Coeso

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Modularidade Lingustica Os mdulos devem corresponder a unidades sintticas da linguagem usada. (Previne o seguinte tipo de especificao: O mdulo X vai da linha 47 102 e da 507 634). Este factor segue de factores como a Decomposio e Composio. Este factor acaba com a esperana de se ter uma boa poltica de projecto independente do tipo de linguagem utilizada.

Interfaces explcitas Sempre que os mdulos A e B comuniquem, isto deve ser evidente da especificao de A, ou de B, ou de ambos.

Interfaces reduzidas Cada mdulo deve comunicar com o menor nmero possvel de outros mdulos. Acoplamento (ou Interfaces pequenas) Se os objectos A e B tiverem que comunicar ento devem trocar entre si a menor informao possvel. Segue de (praticamente) todos os factores externos de qualidade.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Tipos de Acoplamento

Acoplamento de Dados Acoplamento por Imagem Acoplamento por Controlo Acoplamento Comum Acoplamento de Contedo

(Normal)

(Sintoma de m Qualidade)

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Acoplamento de Dados Corresponde comunicao necessria entre mdulos que tm que comunicar.
Obter total de Saldos
No da conta do cliente Saldo de conta

Obter saldo de conta

Regra: Minimizar! Evitar dados migrantes.

Acoplamento por Imagem Ocorre quando se envia no s o dado necessrio mas toda a estrutura de dados onde o dado est contido.
No telefone Registo de Cliente No telefone OK

Validar nmero telefone

Regra: Suprimir dados suprfulos. Evitar empacotamento: uso de estruturas com dados no relacionados com nome vago e sem sentido.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Acoplamento de controlo O mdulo A est acoplado por controlo ao mdulo B se A passa informao destinada a controlar a lgica interna de B.
Produzir relatrio de pagamento de clientes
No de conta Emitir mensagem de erro: Cliente inexistente No de cliente No conta invlido

Encontrar nome de cliente

Regra: trocar, quando muito, flags.

Acoplamento comum Dois mdulos possuem acoplamento comum se acedem mesma rea de dados (tipicamente dados globais acessveis por qualquer mdulo). Problemas: - Dados globais deterioram a legibilidade do programa; - Alterao nos dados implica alterao nos mdulos; - Erro num mdulo que altera dados reflectido nos outros mdulos; Regra: Evitar dados globais.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Acoplamento de Contedo (ou Patolgico) O mdulo A tem acoplamento de contedo relativamente ao mdulo B se A faz referncia ao interior do mdulo B. Viola por completo a noo de modularidade (caixa preta).

Se um mdulo exibir mais do que um tipo de acoplamento, ento considera-se que o mdulo sofre do pior dos acoplamentos presentes
_

Influncia do tipo de acoplamento em critrios e factores externos de qualidade seleccionados. Tipo Dados Imgem Controlo Comum Contedo Extensibilidade boa mdia fraca mdia m Legibilidade boa mdia fraca m m Reutilizao boa mdia fraca m m

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Coeso (fora modular ou funcionalidade) Expressa a natureza das relaes entre os elementos de processamento no interior de um mdulo.
_

Pretende-se mdulos altamente coesos, i.e., cujos elementos estejam forte e genuinamente relacionados uns com os outros.
_

Quanto mais forte for a coeso menor ser o acoplamento.


_

Coeso e acoplamento so dois indicadores da modularidade de um Projecto. Ambos so factores de qualidade internos importantes, sendo que coeso mais importante. A coeso mais importante.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Nveis de Coeso Quando se perguntou a um conjunto de programadores Porque que juntou estas instrues neste mdulo?

Chegou-se seguinte escala no-linear para os nveis de coeso:

Funcional

Coeso forte (Caixa preta) Boa extensibilidade

Sequncial

Comunicacional

Procedimental

Temporal

Lgica

Coeso fraca Extensibilidade virtualmente impossvel

Coincidente

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Coeso coincidente (ou coincidental) o pior nvel de coeso. As instrues esto juntas por acaso; Tipicamente resulta(va) das tentativas de poupar memria.

No de conta

registo ok

mensagem

Chave

Miscelnea de funes

Coeso lgica Verifica-se num mdulo cujos elementos de processamento constituem uma famlia de funes e cuja funo actual seleccionada do exterior.
Dado A Flag entrada/sada Dado A

Mdulo geral de entrada/sada

Criam-se mdulos logicamente coesos quando se tenta poupar algumas linhas de programao.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Coeso temporal O relacionamento mais forte que existem entre as instrues de um mdulo com coeso temporal o facto de serem executados ao mesmo tempo. Exemplos: Mdulos de inicializao ou finalizao.
Inicializar sistema

Abrir ficheiros

Iniciar contadores

Inicializar vectores

Coeso Procedimental Os elementos esto envolvidos em actividades possivelmente relacionadas mas cujo controlo flui de umas para as outras. A coeso procedimental mais forte do que a coeso temporal, uma vez que se indica, para alm do tempo execuo comum, a sequncia de execuo. Tipicamente resulta da decomposio de um mdulo em seces.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Coeso comunicacional Um mdulo tem coeso comunicacional se os seus elementos usam a mesma entrada ou a mesma sada.
No de cliente Saldo do emprstimo

Nome de cliente

Obter detalhes de cliente

Coeso sequencial Os elementos do mdulo esto envolvidos em actividades tais que os dados de sada de uma actividade servem de dados de entrada para a actividade seguinte.
Dados

Apaga, copia e verifica disquete

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Coeso funcional Um mdulo funcionalmente coeso contm todos os elementos e apenas aqueles necessrios para realizar uma nica tarefa bem definida.

Exemplos: calcular raiz quadrada; ler registo; determinar salrio lquido de um empregado; calcular o ponto de impacto de um mssil.

Um mdulo no ser funcionalmente coeso se, para descrever a sua funo for necessrio um, ou mais, dos seguintes items: Frase composta; Mais do que uma frase; Palavras que indiciam uma ligao temporal; Falta de um objectivo especfico simples; Verbo ambguo.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Heursticas de Projecto
Regras e heursticas que, em geral, promovem a Qualidade do Projecto Estruturado.

Principais directrizes de Projecto: _ Simplificidade; _ Independncia _ Legibilidade

Principais heursticas de Projecto Estruturado:


_

Decomposio (Factoring)
_

Diviso de Regras
_

Aspectos morfolgicos (formas-padro, Fan-in, Fan-out)


_

Inicializao e Finalizao
_

Tratamento de situaes de erro


_

Restritividade versus Flexibilidade

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Aspectos morfolgicos Formas-padro A maior parte dos Sistemas apresenta uma estrutura que uma variao de uma forma-padro bsica.

Aspectos morfolgicos Tipos de Mdulos

Mdulo Aferente

Mdulo Eferente

Mdulo Transformador

Mdulo Coordenador

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Aspectos morfolgicos Fan-In


_

O fan-in de um mdulo o nmero de mdulos superiores (chamadores) imediatos desse mdulo.

Um alto fan-in adequada.


_

a recompensa de uma decomposio

Mdulos com fan-in elevado devero ter coeso funcional, ou quando muito, comunicacional ou sequencial.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Aspectos morfolgicos Fan-out


_

O fan-out de um mdulo o nmero de mdulos subordinados (chamados) imediatos desse mdulo.

Um alto fan-out deve ser corrigido atravs de decomposio adequada.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Heursticas de Projecto
Decomposio Diviso de Regras Manter elevada. Manter antecedente e consequente juntos. Adoptar uma. Procurar manter a estrutura do programa comparvel estrutura do problema. Manter alto.
_

Formas-padro

Fan-in Fan-out Inicializao e Finalizao

Manter a 7 2 aprox. Iniciar o mais tarde possvel, finalizar o mais cedo possvel.

Tratamento de situaes de erro Devem ser detectadas e relatadas localmente; se possvel ao nvel do mdulo. Restritividade / Flexibilidade A flexibilidade resulta no da implementao de uma funo que possa vir a ser til no futuro, mas antes da escolha das alternativas que permitam implementar essa funo, se necessrio.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Anlise de Transformao
_

A Anlise de Transformao (ou Projecto Centrado em Transformao) uma estratgia top-down para derivar um DE inicial a partir de um DFD.
_

A estratgia consiste em identificar as funes principais do sistema, as entrada de alto-nvel e as sadas primrias, criando depois mdulos capazes de desempenhar as funes identificadas.
_

A Anlise de Transformao engloba os seguintes passos: 1. Construir o DFD; 2. Identificar o Centro de Transformao; 3. Desenhar um DE inicial; 4. Refinar o DE inicial.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Centro de Transformao Parte do DFD que contm as funes principais do sistema, que so independentes da implementao particular das entradas e sadas.

Identificao do Centro de Transformao 1. Inspeco simples do DFD, ou; 2. Pela identificao dos ramos aferentes (entradas) e eferente (sadas) do DFD;

Identificao dos ramos aferentes e eferentes A identificao dos ramos aferentes e eferentes feita de acordo com os seguintes passos: 1. Percorrer cada ramos aferente (entrada), partindo do exterior do DFD em direco ao centro do DFD, e marcar o fluxo que represente a entrada na sua forma mais refinada. 2. Percorrer cada ramo eferente (sada), partindo do exterior do DFD em direco ao centro, e marcar o fluxo que represente a sada na sua forma mais primria 3. Ligar todas as marcas identificadas em 1. e 2. de forma a obter uma curva fechada.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Desenho do Diagrama de Estrutura inicial

1. O mdulo principal deve ser tal que, quando activado, desempenhe a funo global do sistema chamando os seus subordinados. O mdulo principal poder existir, ou no, como processo no DFD.

2. Para cada elemento de dados aferente (entrada) especifica-se um mdulo, subordinado ao mdulo principal, cuja funo fornecer ao chamador o elemento de dados aferente considerado.

3. Para cada elemento de dados eferente (sada) define-se um mdulo subordinado ao mdulo principal.

4. Especifica-se um mdulo de transformao, eventualmente subordinado ao mdulo principal, correspondente ao Centro de Transformao.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Refinamento do Diagrama inicial

O refinamento do DE inicial feito de acordo com:

1) Os factores de Qualidade e as Heursticas de Projecto.

2) O enriquecimento do DE com os detalhes omissos no DFD: 2.1) Mdulos de leitura/escrita (at ao nvel fsico); 2.2) Processamento de erros;
_____

2.3) Adio de informao de controlo necessria, e.g. 2.4) Detalhes de inicializao e finalizao.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Anlise de Transaco (ou Transaccional)


Transaco (Yourdon & Constantine, 1979) Estmulo (elemento de dados, fluxo de controlo, evento, ou mudana de estado) que causa, desencadeia ou inicializa uma aco, ou conjunto de aces. Exemplos de Transaces: - Seleco de uma opo de menu; - Alarme de temperatura; - Sinal de tele-comando;

A Anlise de Transaco indicada no caso em que um DFD divide um fluxo de dados de entrada em vrios fluxos de sada.

Centro de Transaco

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Anlise de Transaco (cont.) Um DFD como o anterior pode ser transformado numa estrutura modular particular em que o Centro de Transaco transformado num mdulo capaz de: - Obter uma transaco; - Analisar a transaco para determinar o seu tipo; - Distribuir as aces dependendo do tipo de transaco;

No limite, o nvel de topo de qualquer sistema pode ser transformado num Centro de Transaco. Em geral, os sistema centrados em transaces apresentam coeso fraca e forte acoplamento.

WWW.VENDASAPOSTILAS.COM.BR

Projecto Estruturado

Referncias

I. T. Hawryszkiewycz, Introduction to Systems Analysis and Design (third edition), Prentice Hall, 1994. M. Page-Jones, The Practical Guide to Structured System Design, Second edition, Prentice-Hall, 1988. Edward Yourdon, Modern Structured Analysis, Prentice Hall International Editions (Englewood Cliffs, 1989) E. Yourdon and Larry L. Constantine, Strutured Design: Fundamentals of a Discipline of Computer Program and Systems Design, Yourdon Press Computing Series, Prentice-Hal (Englewood Cliffs, N.J., 1979).