• Nenhum resultado encontrado

Arquitectura de Sistemas de Software

N/A
N/A
Protected

Academic year: 2021

Share "Arquitectura de Sistemas de Software"

Copied!
9
0
0

Texto

(1)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 11

Arquitectura de

Arquitectura de

Sistemas de Software

Sistemas de Software

Ademar Aguiar www.fe.up.pt/~aaguiar [email protected]

Frameworks orientadas por

objectos

(2)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 33

Frameworks Orientadas por Objectos

Q

Definição

• “An object-oriented framework consists of a collection of

cooperating classes, both abstract and concrete, that embody an abstract design for solutions to a family of related problems”

[Gamma et al. 1995].

• Uma framework é um (sub)sistema de software semi-acabado desenhado por forma a ser facilmente instanciado.

• As frameworks fornecem uma solução inicial para um problema cuja solução normalmente requer muito tempo para desenvolver de raíz.

Q

Objectivo das Frameworks

• Elevada produtividade

• Tempos de desenvolvimento mais reduzidos • Menos erros (bugs)

• Conjuntos de aplicações mais homogéneos (Palm SDK, Mac, JDK)

Frameworks: “macro-arquitecturas”

Q

Frameworks e Padrões

• Macro-arquitecturas que interligam diversos padrões e que também incluem normalmente a infraestrutura que suporta a sua integração.

Q

Padrões em Frameworks = Máximo benefício de reutilização

• Frameworks sofisticadas normalmente incorporam bastantes padrões. Exemplo: JFC (event-listeners, model-view-controller). • Padrões e frameworks são conceitos bastante sinérgicos mas não

(3)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 55

Frameworks: “macro-arquitecturas”

Classes Class1 +method1() -method2() Class2 +method1() -method2() Class3 +method1() -method2() Patterns Frameworks Components

Inversão do Controlo de Fluxo

Q

Princípio de Hollywood: “Don’t call us, we call you”

• Comparativamente às bibliotecas de classes, as frameworks caracterizam-se por uma inversão de controlo de fluxo

• É a framework que comanda a resposta do sistema aos eventos externos, invocando operações definidas pelo programador • O main() está na framework e não no código do programador.

Framework

public void run(){ setUp(); try {

runTest(); } finally { protected void runTest() {

Application

public static void main(String[] args) { new MoneyTest().run(); }

(4)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 77

Exemplos populares

Q Model-View-Controller (MVC) Q MacApp Q ET++ Q Interviews Q OpenDoc

Q Microsoft Foundation Classes (MFCs)

Q NEXTSTEP,

Q IBM’s SanFrancisco

Q Several parts of Sun’s Java Foundation Classes (RMI, AWT, Swing)

Q Many implementations of the OMG’s Common Object Request Broker

Architecture (CORBA)

Q Apache’s frameworks (Cocoon, Struts)

Q JUnit

Sistema Operativo Sistema Operativo

Bibliotecas de Procedimentos Bibliotecas de Procedimentos Bibliotecas de Classes Bibliotecas de Classes

Framework Aplicacional Aplicação Framework Aplicacional Diversos componentes Aplicação

(5)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 99

Reutilização de código e desenho

Q

Arquitectura de Interfaces

• Conjunto de interfaces que determina toda a estrutura e comportamento

• Prescreve uma arquitectura para um determinado domínio de problema ou algum aspecto em particular

• “Abstract Design”

Q

Arquitectura de Implementação

• Conjunto de classes concretas que implementam a arquitectura de interfaces

• Fornecem classes imediatamente utilizáveis e classes semi-prontas facilmente configuráveis

Reutilização em larga-escala

Q

As frameworks são uma poderosa ténica de reutilização de

software que permitem reutilização de código e desenho.

Q

Frameworks + componentes + padrões

• Constitui a tecnologia actualmente existente mais capaz de suportar reutilização de software em larga-escala.

Application 1

Application 2 Framework code Framework code

(6)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1111

Tipos de Frameworks

Q

White-Box

• Fornece superclasses abstractas para serem especializadas • Clientes estendem a framework utilizando primeiramente herança • Clientes compõem objectos para aplicar a framework

• Exemplo: Java Object

Q

Black-Box

• Fornece classes imediatamente utilizáveis

• Clientes usam composição de objectos para aplicar a framework • Exemplo: Swing (as partes GUI mais amadurecidas)

Q

Gray-Box

• Alia características White-Box e Black-Box • A maioria das frameworks são deste tipo • Exemplo: Swing

Black-box

frameworks Gray-box frameworks White-box frameworks

Configuração de Frameworks

Q

Hot spots

• As frameworks possuem partes inalteráveis e partes configuráveis pelo utilizador através de mecanismos de herança (white-box) e/ou composição (black-box).

Q

Por Herança

• Utiliza-se a interface de herança

• A framework fornece um conjunto de pontos de extensão através de classes abstractas

Q

Por Utilização/Associações

• Os clientes criam objectos de classes da framework ou de classes de uma sua extensão

(7)

Arquitectura

Arquitecturade de SistemasSistemasde Software, LEIC/MEI, 2003/2004de Software, LEIC/MEI, 2003/2004 1313

Representação de Padrões e

Frameworks em UML

Representação de Padrões em UML

Q

Especificação de Colaborações

• Conjunto de classificadores (classifiers) interrelacionados através de papeis (roles)

• UML 1.3: “Collaboration on a specification level”

Q

Exemplo: Observer

/ Subject applicationData

(8)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1515

Instanciação de Padrões em UML

Q

Utilização de Colaborações

• Os papeis definidos na especificação da colaboração (padrão) são atribuidos a classes que os instanciam

• Através dos padrões consegue-se simplificar os modelos de classes ao ocultar em colaborações estruturas e comportamentos típicos, identificados como padrões

Observer Pattern

File Entry Explorer Window

Subject Observer

Representação de Frameworks em UML

Q

Determinar e divulgar aos clientes apenas papeis livres em

colaborações

• UML: diagramas de classes recorrendo a instâncias de colaborações

Q

Documentar o conjunto de classes estensíveis por herança

• UML: diagramas de classes

Q

Especificar dependências entre classes da framework

• UML: diagramas de classes e especificações de colaborações (padrões)

(9)

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004

Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1717

Exemplo: JUnit framework

<<framework>> JUnit

Test Pattern Q

Vista externa

Referências

Documentos relacionados

Conclui-se que o teor de prolina varia entre as cultivares de mandioca, sendo maior nas cultivares Platina’ e ‘Caravela’, seguidas por ‘BRS Kiriris’, ‘BRS Verdinha’,

Miquéias explicou que Deus valorizava e procurava como características do seu povo a justiça, a misericórdia e um andar humilde diante dEle (conf.. Ao mesmo tempo, Deus

Assegurada a reposição da normalidade das condições de vida da população da área afetada pelo acidente grave ou catástrofe, deverá ser declarada a desativação

Esse conhecimento superior, da consciência, é sabedoria pura e não pode ser patrimônio de nenhuma civilização ou doutrina específica, é de todos e de ninguém

– dificuldade em mensurar a dimensão do problema , em trabalhar a diversidade de manifestações no extenso território nacional e em pautar o assunto nos diferentes espaços públicos

É bastante conhecido, que a melhoria da eficiência na aplicação envolve a escolha adequada do equipamento de aplicação, com ponta de pulverização que produza

Microglanis lundbergi is distinguished from all congeners by the presence of a forked caudal fin with a deep notch between upper and lower lobes (vs. rounded, emarginated, or

Estima-se que a diversidade de espécies na Mata Atlântica e no Brasil seja muito maior e o baixo número de táxons conhecidos se dá por falta de identificação ao