Buscar

691748_program_modular_12_2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Modular
Importância da Modularidade
• Os fatores externos de qualidade extensibilidade e 
reusabilidade dependem significativamente de um fator 
interno: modularidade. 
• Por isso é extremamente importante entender o que é 
modularidade e como pode ser alcançada.
Critérios para Modularidade
O que é modularidade?
• Programação modular denota a construção de programas 
pela composição de partes pequenas para formar partes 
maiores. As partes são chamadas módulos.
• A programação com módulos também pode ser chamada 
'programming in the large', contrastando com 
'programming in the small'.
• Esta técnica de programação é baseada no princípio 
filosófico 'Dividir para conquistar', o qual sugere que um 
problema complexo seja dividido em subproblemas que 
possam ser resolvidos separadamente.
• Mas programação modular não implica necessariamente 
em modularidade de software: é essencial saber como 
usar programação modular de forma a se obter 
modularidade.
 Assim como qualidade de software, modularidade é 
caracterizada por um conjunto de critérios: 
• decomposição modular 
• composição modular 
• entendimento modular 
• continuidade modular 
• proteção modular 
Estes aspectos devem ser favorecidos pelo estilo de 
modularização a ser utilizado. 
Decomposição
• Dividir um problema em vários subproblemas a serem 
resolvidos separadamente (por pessoas diferentes)
• O processo é repetitivo
• Estrutura de conexão deve ser simples
• Reduz complexidade da descrição de grandes sistemas
• Projeto top-down, módulo de inicialização 
Hierarquia top-down
Composição
• Produzir módulos que possam ser facilmente 
 conectados a outros para formar um sistema
• Impacto sobre reusabilidade (qualidade) 
• Mercado de componentes de software 
• Bibliotecas de subprogramas, shells do Unix, pré-
processadores 
Entendimento Modular
• Produzir módulos que possam ser entendidos com o 
 auxílio de poucos (ou nenhum) módulos relacionados 
• Impacto sobre extensibilidade e reusabilidade
Continuidade Modular
• Produzir módulos que quando alterados não impliquem 
na alteração da arquitetura ou de outros módulos do 
sistema
• Propagação de mudanças
• Impacto sobre extensibilidade
• Constantes - representação de dados. 
• Na mudança de valor, a única coisa a atualizar é a 
definição constante. Esta regra pequena, mas importante 
é uma sábia precaução para a continuidade
Continuidade
Proteção Modular
• Produzir módulos que não propaguem uma situação 
anormal de tempo de execução para muitos módulos
• Erros causados em um módulo não vão ser 
detectados em outros módulos.
• Extensibilidade
• Validar dados nos módulos onde eles são lidos, 
tratamento de exceções em C++, Java e C#.
Regras para Modularidade
• Mapeamento direto.
• Poucas interfaces.
• Pequenas interfaces (acoplamento fraco).
• Interfaces explícitas.
• Ocultação de informações
Mapeamento direto
• Módulos devem corresponder a unidades sintáticas 
da linguagem
• Impacto sobre decomposição, composição e proteção
• É possível modularizar usando linguagens sem módulos?
• A estrutura modular desenvolvida no processo de 
construção de um sistema de software deve continuar a 
ser compatível com qualquer estrutura modular 
desenvolvida no processo de de modelar o domínio do 
problema.
Poucas Interfaces
• Um módulo deve se comunicar com tão poucos 
módulos quanto possível.
• Impacto sobre continuidade, proteção, composição,
entendimento e decomposição.
• Evitar módulos mutuamente recursivos 
Interfaces Pequenas
• Se dois módulos se comunicam, eles devem trocar tão 
pouca informação quanto possível
• Impacto sobre continuidade e proteção
Interfaces Explícitas
• Se dois módulos se comunicam, isto deve ser indicado 
nos módulos, ou pelo menos em um deles
• Impacto sobre decomposição, composição, entendimento
e continuidade.
Informações Escondidas
• Módulos só devem permitir o acesso a certas informações
se elas são essenciais para a utilização dos módulos 
• Módulos clientes, módulos servidores e interfaces
• O que? versus Como?
• Impacto sobre continuidade, entendimento, composição,
e decomposição
A razão fundamental por trás da ocultação de 
informações é o critério de continuidade .
Uma mudança de módulo, só se aplicam a seus 
elementos secretos, deixando os públicos intocados,
Então outros módulos que o usam, não serão afetados.

Continue navegando