GoConqr has a new look! Let us know what you think.

Mind map

Modularização

Wendy-Anna Lopes Portuguese

Map content

Modularização

  • Os primeiros programas consistiam de um único bloco monolítico de código pois a divisão de programas em vários blocos exige um sistema de gerenciamento de memória e consome mais recursos. O programador devia utilizar um pequeno número de variáveis, as quais cumpriam diferentes papéis ao longo do programa, com o intuito de economizar memória
  1. Abstrações

    • Abstração é um processo importante em todas as áreas do conhecimento. Abstração é fundamental para o raciocínio e resolução de problemas em geral porque é impossível representar qualquer fenômeno da realidade em toda a sua riqueza de detalhes. Em outras palavras, devemos sempre nos concentrar nos aspectos essenciais do problema e ignorar os aspectos irrelevantes para a resolução do problema em questão. Caso contrário, a tarefa de representar a realidade se torna impraticável e intratável.
    • Tipos de Abstrações
      • Programas são conjuntos de instruções descrevendo como realizar processos para manipular, alterar e produzir dados. Para se poder criar programas, o conjunto de instruções da LP deve ser capaz de descrever dados e descrever como realizar processos.
      • Abstrações de Processos
        • são abstrações sobre o fluxo de controle do programa.
      • Abstrações de Dados
        • são abstrações sobre as estruturas de dados do programa
  2. Técnicas de Modularização

    • Técnicas de modularização foram desenvolvidas com o propósito principal de dar apoio à programação de sistemas de grande porte, embora também sejam úteis à programação de sistemas de pequeno porte.
    • Subprogramas
      • O primeiro avanço em direção à modularização de programas foi a cria- ção do conceito de subprogramas. Eles permitem segmentar um programa em vários blocos logicamente relacionados. Subprogramas também servem para evitar que trechos de código muito semelhantes tenham de ser completamente reescritos simplesmente por que operam sobre dados diferenciados. Isso pode ser feito através dos mecanismos de parametrização dos subprogramas.
      • Perspectivas do Usuário e do Implementador de Subprogramas
        • É interessante analisar funções e procedimentos segundo as perspectivas do usuário da abstração e do implementador da abstração [WATT, 1990]. Uma função abstrai uma expressão a ser avaliada. Ela produz um valor como resultado. O usuário da função se importa apenas com o resultado, não se interessando com o modo como ele foi obtido. A
      • Parâmetros
        • Parâmetros facilitam o processo de aplicação de dados diferenciados a chamadas distintas de um subprograma. Sem o uso de parâmetros, a utilidade de subprogramas se concentraria na segmentação de código em trechos menores. O reuso de subprogramas seria muito mais difícil pois haveria redução de redigibilidade, legibilidade e confiabilidade.
      • Correspondência entre Parâmetros Formais e Parâmetros Reais
        • Existem duas formas de correspondência entre a lista de parâmetros formais na declaração do subprograma e a lista de parâmetros reais na chamada do subprograma. A
      • Passagem de Parâmetros
        • Passagem de parâmetros é o processo no qual os parâmetros formais assumem seus respectivos valores durante a execução de um subprograma. Também faz parte do processo de passagem de parâmetros a eventual atualização de valores dos parâmetros reais durante a execução do subprograma.
        • Direção da Passagem dos Parâmetros
          • A direção da passagem de parâmetros pode ser unidirecional de entrada, unidirecional de saída e bidirecional de entrada e saída. Na unidirecional 168 de entrada o valor do parâmetro formal assume o valor passado pelo parâmetro real, mas os valores eventualmente atribuídos ao parâmetro formal no subprograma não são repassados ao parâmetro real.
        • Mecanismos de Implementação da Passagem de Parâmetros
          • Existem dois mecanismos para a implementação da passagem de parâmetros. O mecanismo de passagem por cópia envolve a criação de uma cópia do parâmetro real no ambiente local do subprograma. O parâmetro formal designa essa cópia durante a execução do subprograma. O mecanismo de passagem por referência envolve a criação de uma referência ao parâmetro real no ambiente local do subprograma
        • Momento da Passagem de Parâmetros
          • LPs podem definir diferentes momentos nos quais se deve avaliar o parâmetro real para uso no subprograma. No modo normal (eager) a avaliação ocorre no momento da chamada do subprograma. No modo por nome (by name) a avaliação ocorre em todos os momentos em que o parâmetro formal é usado. No modo preguiçoso (lazy) a avaliação ocorre no primeiro momento em que o parâmetro formal é usado.
      • Verificação de Tipos dos Parâmetros
        • Algumas LPs não verificam se o número e tipo dos parâmetros na chamada do subprograma são compatíveis com o número e tipo dos parâme- 178 tros declarados no cabeçalho do subprograma e utilizados no seu corpo. Nessas LPs só se pode verificar se uma determinada operação do subprograma pode ser executada no momento em que ela for realizada. Tal postura retarda a descoberta de erros e tende a produzir programas menos robustos.
    • Tipos de Dados
      • A criação de novos tipos de dados é uma forma de modularização usada para implementar abstrações de dados. Tipos de dados permitem agrupar dados correlacionados em uma mesma entidade computacional. 
      • Tipos de Dados Anônimos
        • Tipos anônimos são definidos exclusivamente durante a criação de variá- veis e definição de parâmetros. O
      • Tipos de Dados Simples
        • A idéia fundamental relacionada a essa técnica de modularização é combinar um grupo de dados relacionados em uma única entidade nomeada, a qual permite manipulá-los como um todo. 
      • Tipos Abstratos de Dados
        • Conceitualmente, tipos abstratos de dados (TADs) são conjuntos de valores que apresentam um comportamento uniforme definido por um grupo de operações (geralmente, um grupo de constantes iniciais e um conjunto de funções e procedimentos). O conjunto de valores é definido indiretamente através da aplicação sucessiva das operações, começando pelas constantes.
    • Pacotes
      • A modularização através de subprogramas e tipos ainda não é totalmente suficiente para atender as demandas existentes na construção de grandes sistemas. Sistemas construídos com uso exclusivo dessas técnicas acabam apresentando baixa granularidade, deixando as entidades do programa espalhadas pelo código, o que dificulta sua identificação.
      • Pacotes em C++
      • Pacotes em JAVA

Information

Description
Terceira parte, modularização.
Views
44
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?