revisão de conceitos tópicos avançados em ti prof....

29
Rossano Pablo Pinto - 02/2013 Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/2013 - v0.1

Upload: buinhan

Post on 19-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Rossano Pablo Pinto - 02/2013

Revisão de conceitosTópicos Avançados em TIProf. Rossano Pablo Pinto

Fevereiro/2013 - v0.1

Rossano Pablo Pinto - 02/2013

Orientação a objetos

● Classe● Métodos

– Visibilidade– Tipo de retorno– Tipo dos parâmetros

● Atributos– Tipo– Visibilidade

● Interface● Tipo de retorno● Tipo dos parâmetros

● Visibilidade● public● private● package

Rossano Pablo Pinto - 02/2013

Orientação a objetos

● Exceções● Blocos try / catch

– finally● Throw

● Herança● Simples● Múltipla● Simulando múltipla

em Java (interfaces)

● Polimorfismo● Override● Modificadores

● final, static

● Cast● Upcast● Downcast

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Definição OMG:“Uma parte modular de um sistema que encapsula seu conteúdo e cuja manifestação é substituível em seu ambiente. Um componente define seu comportamento em termos de interfaces providas e requeridas. Dessa forma, um componente serve como um tipo, cuja conformidade é definida por estas interfaces providas e requeridas (que inclui tanto sua semântica estática quanto dinâmica).”

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Definição Szyperski:“Um componente de software é uma unidade de composição com interfaces contratualmente especificadas e apenas dependęncias de contexto explícitas. Um componente de software pode ser instalado independentemente e está sujeita a composição por terceiros.”

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Explorando a definição de Szyperski (Völter):● Uma unidade de composição ● Interfaces contratualmente especificadas● Apenas dependências de contexto explícitas● Pode ser instalado independentemente● Terceiros

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elementos: Componente

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elementos: Componente

Facetas (interface/porta provida)

Receptáculos (interface/porta requerida)(Especificação das dependências explícitas)

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elementos: Portas● Tipos: sinal, operacional, fluxo contínuo

– Faceta– Receptáculo

● Chamadas bloqueantes x não-bloqueantes

Facetas (interface/porta provida)

Receptáculos (interface/porta requerida)(Especificação das dependências explícitas)

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Conexão entre componentes (pode existir um port connection)● Portas equivalentes

A Z

B

CY

Z W

Y

X F

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Conexão entre componentes● Portas equivalentes

A Z

B

CY

ZW

Y

XF

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elemento: Contêiner● Requisitos funcionais x não-funcionais (separation

of concerns)

A Z

B

CY

ZW

Y

XF

Contêiner

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Comentário sobre requisitos● Requisitos funcionais x não-funcionais

– Aplicação do conceito separation of concerns● AOP - Aspect-oriented programming

– Paradigma de programação que possui “crosscutting expressions” que encapsulam cada “concern” em apenas um lugar.

– Exemplo: AspectJ (poderia virar um tema de seminário...)

http://www.eclipse.org/aspectj/doc/released/progguide/index.html

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elementos● Contêiner

– Componente● Porta requerida (receptáculo)● Porta provida (faceta)● Conexão de portas equivalentes (portas de mesmo tipo e

opostas)

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Elementos● Contêiner - proporciona requisitos não-funcionais

– Componente - proporciona requisitos funcionais● Porta requerida (receptáculo) - necessita do serviço● Porta provida (faceta) - oferece o serviço● Conexão de portas equivalentes (portas de mesmo tipo e

opostas)

Rossano Pablo Pinto - 02/2013

Componentes de Software

● Exemplo de Modelo de componentes - stack● CCM (CORBA Component Model)

– Servidor de aplicação CCM; ORB; POA; Contêineres: Entidade, Serviço, Processo, Sessão; Componentes

● EJB– Servidor de Aplicação EJB; RMI; Contêineres: Entidade,

Serviço, Sessão; Componentes● Modelo de componentes “Leve”

– Contêiner único; Componentes

Rossano Pablo Pinto - 02/2013

CCM

● Entidade - elementos persistentes● Serviço - não-persistentes● Processo - Processos de longa duração● Sessão - Processos de curta duração

Rossano Pablo Pinto - 02/2013

EJB

● Entidade - elementos que fazem persistência.● Serviço - estado transiente (não persistente).● Sessão - associados a uma sessão de

interação.

Rossano Pablo Pinto - 02/2013

Modelo de componentes “Leve”

● Não precisa de servidor de aplicação● Apenas um contêiner

Rossano Pablo Pinto - 02/2013

Composição: conexão entre componentes

Rossano Pablo Pinto - 02/2013

Comunicação entre componentes distribuídos

● Sockets● RPC● Sistemas de Middleware

● Middleware de comunicação– CORBA– RMI

● Tecnologias Web● SOAP, HTTP, XML, REST..., etc....

Rossano Pablo Pinto - 02/2013

Reconfiguração dinâmica

● Reconfiguração● estática - com parada● dinâmica - sem parada (non-stop)

– estrutural– não-estrutural (paramétrica/comportamental)

● Autonomia na adaptação● adaptáveis● auto-adaptativos

Rossano Pablo Pinto - 02/2013

Reconfiguração dinâmica

● Sistemas dinâmicos● Comportamento fechado - todas as adaptações são

previstas● Comportamento aberto - novas adaptações não

previstas podem ser feitas– Adaptações não antecipadas

Rossano Pablo Pinto - 02/2013

Camadas de Software

● Aplicação● Framework ● Middleware● Sistema Operacional

Especialização

Rossano Pablo Pinto - 02/2013

Eng. Soft.: Modelos e Metamodelos

Adaptado de Anneke Kleppe, Jos Warner e Wim Bast

Quatro camadas demodelagem da OMG

Rossano Pablo Pinto - 02/2013

Eng. Soft.: Modelos e Metamodelos

● MOF (Meta-object facility)● UML (é especificado via MOF)

∴ Perfil UML– Estereótipo– Valores etiquetados

Rossano Pablo Pinto - 02/2013

Eng. Soft.: Níveis de Maturidade de modelagem

● Segundo Warner et al (MMLs - modeling maturity levels):̶ Nível 0 - sem especificação̶ Nível 1 - Textual̶ Nível 2 - Texto c/ diagramas̶ Nível 3 - Modelos c/ texto̶ Nível 4 - Modelos precisos̶ Nível 5 - Apenas modelos

Rossano Pablo Pinto - 02/2013

Eng. Soft.: Ciclo tradicional

1 - Conceituação e levantamento de requisitos

2 - Análise e descrição funcional

3 - Projeto (design - projeto de baixo nível)

4 - Codificação (coding)

5 - Teste (testing)

6 - Implantação (deployment)

Rossano Pablo Pinto - 02/2013

Eng. Soft.: Metodologias

● Tradicional● Ágeis

– XP, Agile, Scrum, etc...