Conceitos de Orientação a Objetos Padrões e Arquiteturas de Software Reusabilidade e Extensibilidade Frameworks Orientados a Objetos Padrões de Projeto Metapadrões Categorias de Frameworks Projeto de Frameworks Categorias de Padrões Padrões de Arquitetura Reusabilidade e Extensibilidade Extensibilidade é a facilidade com que um sistema de software pode ser alterada para acomodar as modificações de sua especificação Reusabilidade é a habilidade de um sistema ser reutilizado, totalmente ou parcialmente, para a construção de um sistema novo. Reusabilidade é a prática de incorporar componentes de software já existentes em um sistema de software. Reusabilidade e Extensibilidade Antes, a idéia de reusabilidade estava associada apenas com reutilização de código ou invocação de rotinas de bibliotecas. Maiores benefícios podem ser obtidos quando a reusabilidade é aplicada também a fase de análise e projeto do desenvolvimento de SW. Reutilização de projeto é fundamental para uma obtenção efetiva de reaproveitamento de software. Frameworks Orientados a Objetos Frameworks Orientados a Objetos Padrões de projeto Padrões de projeto Padrões de projeto Metapadrões Categorias de frameworks Projeto de frameworks Identificar objetos/classes Identificar pontos adaptáveis (Re)Projetar o framework Adaptar o framework Não Pontos satisfazem? Sim Metapadrões e padrões Categorias de padrões Padrões de arquitetura