Os princípios para modularidade indicam como sistemas devem ser estruturados para que sejam modulares.É importante também saber que recursos (estruturas e conceitos) linguísticos dão suporte a estes princípios e, por conseqüência, a modularidade.
Usando este recurso linguístico, podemos definir dois tipos diferentes de módulos:
- Tipos Abstratos
- Objetos e Classes
Os recursos linguísticos apresentados acima suportam vários dos princípios para modularidade, oferecendo muitas vantagens, do ponto de vista de reusabilidade e estensibilidade.De fato, alguns destes recursos compartilham idéias centrais com orientação a objetos. No entanto, como veremos nas aulas a seguir, os recursos oferecidos por linguagens orientadas a objetos favorecem ainda mais a reusabilidade e estensibilidade de software. Em particular, objetos são cidadãos de primeira classe (podem ser argumentos ou resultado de operações, etc.) e herança e `dynamic binding' são a chave para se ter sistemas abertos/fechados.
Paulo Borba (phmb@di.ufpe.br) |