ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

53
ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana

Transcript of ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

Page 1: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE

SOFTWARE

Prof. Antonio Alberto P. Santana

Page 2: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

- Arquitetura de componentes de software

- Motivação

- Principais idéias

- Benefícios

- Características dos componentes

- Padrão na modelagem de componentes

- Tipos de componentes

- Categorias de componentes

- Arquitetura em ambiente de produção

- Arquitetura em ambiente de desenvolvimento

- Estrutura da aplicação

- Componentes de software

AGENDA

Page 3: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

XXX

É um ramo da Engenharia de Software que enfatiza a decomposição dos sistemas em componentes funcionais e lógicos, os quais possuem interface bem definidas para viabilizar a comunicação entre si.

Page 4: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

XXX

ARQUITETURA DE COMPONENTES DE SOFTWARE

Cada função da aplicação que teve o seu comportamento descrito através de modelos conceituais poderá ser descrita em termos de funções, classes, estruturas de dados, etc., chamados de componentes de software.

Page 5: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

“Estes componentes que implementam cada função interagem entre si e com os componentes de outras funções da aplicação. Esta estrutura de componentes interconectados entre si que formam o software recebe o nome de arquitetura de componentes de software, ou simplesmente arquitetura de software.” (Leite, 2000).

Page 6: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

Arquitetura lógica - descreve o funcionamento lógico do software em termos de funções, variáveis e classes.

Arquitetura física - descreve o conjunto de arquivos fontes, arquivos de dados, bibliotecas, executáveis e outros que compõem fisicamente o software.

ARQUITETURA DE COMPONENTES DE SOFTWARE

Page 7: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

MOTIVAÇÃO

Reuso: diminui tempo e custo de desenvolvimento;

Evitar falhas: componentes previamente testados são menos suscetíveis a falhas;

Interoperabilidade: capacidade de componentes de diferentes origens compartilharem e trocarem informações.

ARQUITETURA DE COMPONENTES DE SOFTWARE

Page 8: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

PRINCIPAIS IDÉIAS:

Desenvolver software aplicando as idéias da reusabilidade;

Modelar sistemas combinando componentes:- que estejam disponíveis;- que estejam previamente testados;- que estejam seguindo padrões previamente definidos.

Page 9: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

BENEFÍCIOS  Permite ao desenvolvedor compreender melhor o software;

Possibilita que estas partes possam ser reutilizadas no mesmo programa ou por outros programas;

Facilita o gerenciamento quando estiverem em execução.

Page 10: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

CARACTERÍSTICAS DOS COMPONENTES

- É auto-contido;

- Tem funcionalidade bem definida;

- É definido através de interfaces que possibilita composição sem conhecimento da implementação do componente;

- É definido de acordo com um modelo previamente definido.

Page 11: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

COMPONENTES x OBJETOS

Os objetos não incorporam a noção de (Szyperski, 1998):

- Independência;

- Composição.

Page 12: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

PADRÃO NA MODELAGEM DE COMPONENTES

Identificação: deverá ter nomes únicos globais;

Interfaces: deverão ser feita a especificação do componente;

Interoperabilidade: permitir a comunicação e troca de dados entre componentes implementados em ferramentas diferentes.

Page 13: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

TIPOS DE COMPONENTES

Componente lógico ou funcional - é aquele que possui uma utilidade para o funcionamento da aplicação.

Componente físico - é aquele existe para o sistema operacional e para outras ferramentas do sistema, normalmente na forma de arquivos. Eles podem ser armazenados, transferidos de uma lugar para outro, compilados, etc.

Page 14: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DE COMPONENTES DE SOFTWARE

TIPOS DE COMPONENTES

Componente de tempo-de-desenvolvimento - é aquele utilizado durante o desenvolvimento do software.

Componente de tempo-de-execução - é aquele pronto para ser executado pelo sistema ou que está sendo executado.

Existem componentes lógicos e físicos tanto de desenvolvimento quanto de execução.

Page 15: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

CATEGORIAS DE COMPONENTES

Componentes de programa  - são componentes lógicos de tempo-de-desenvolvimento fornecidos pelas linguagens de programação e que utilizamos para construir um programa. Ex.: tipos de dados, variáveis, procedimentos, funções, classes, módulos, pacotes - dependem da linguagem de programação

Page 16: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

CATEGORIAS DE COMPONENTES

Componentes físicos de desenvolvimento - são componentes físicos tempo-de-desenvolvimento que contêm os componentes lógicos. Eles são manipulados pelas ferramentas de desenvolvimento (editores e compiladores) e pelo sistema operacional.

Ex.: arquivos de código fonte, arquivos de código objeto, arquivos de declarações (.h), bibliotecas de componentes de programa (de ligação estática).

Page 17: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

CATEGORIAS DE COMPONENTES

Componentes físicos de tempo-de-execução - São os componentes instalação e execução que compõem o sistema antes que ele seja executado. São os componentes que obtemos ao adquirir o software.

Ex.: arquivos executáveis, arquivos de configuração, arquivos de dados, bibliotecas de ligação dinâmica (DLL).

Page 18: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

CATEGORIAS DE COMPONENTES

Componentes lógicos de tempo-de-execução - São os componentes lógicos que existem quando o sistema está sendo executado ou que são criados a partir da execução de outros componentes. Podem ser de dois tipos:

intraoperáveis - quando são visíveis apenas por componentes do mesmo programa Ex.: variáveis, funções, objetos de programa.

interoperáveis - quando são visíveis por componentes de diferentes programa Ex.: processos, objetos CORBA, objetos COM.

Page 19: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA x COMPONENTESArquitetura da Aplicação

Modelo de Componentes

Estrutura da Aplicação

Repositório de Componentes

Page 20: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

UM MODELO DE ARQUITETURA

Page 21: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DA APLICAÇÃO Ambiente de Produção

sistema de acesso

apresentação

regras de negócio

dados

Page 22: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ARQUITETURA DA APLICAÇÃO Ambiente de Desenvolvimento

sistema de acesso

menus

telas

tabelas

dataviews

views

procedimentos

relatórios

Page 23: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ESTRUTURA DA APLICAÇÃO Fundamentos

Page 24: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ESRUTURA DA APLICAÇÃO Componentes

Page 25: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ESRUTURA DA APLICAÇÃO

Sistema - unidade central de processamento da organização que agrupa várias aplicações, as quais, por sua vez, manipulam dados;

Aplicação ou processador - grupo especializado de componentes de negócio. É constituído por um conjunto de módulos;

Page 26: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ESRUTURA DA APLICAÇÃO

Módulo - o módulo representa um conjunto convenientemente agrupado de processos;

Processo ou tarefa - é um elemento constituído através dos componentes básicos, que permite a realização de operações sobre os objetos do negócio;

Componentes básicos - os componentes básicos são elementos do processo com função especializada junto a ele.

Page 27: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ESRUTURA DA APLICAÇÃO

Os Componentes básicos podem ser de cinco tipos:

Menu - tem a função de permitir a navegação do usuário sobre a aplicação;Tela - permite as operações de consulta, inserção, alteração e exclusão sobre os objetos do negócio;Relatório - viabiliza a consulta impressa de objetos do negócio;Procedimento (ou processo) - permite a realização de operações especiais sobre objetos do negócio, tais como cálculos, consistências, entre outras.Dataview - dataview é o elemento que associa um determinado método a um conjunto de dados.

Page 28: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

CONSTRUÇÃO DA APLICAÇÃO

Page 29: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PADRÃO DE INTERAÇÃO

Page 30: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

TEMPLATES

Page 31: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Menus

- MenuHor - menu horizontal;

- MenuVer1 - menu vertical 1;

- MenuVer2 - menu vertical 2;

- MenuVer3 - menu vertical 3.

Page 32: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Telas - CRUD - tela de atualização - edição e lista;- CRUDTL - tela de atualização - edição e lista na mesma tela;- TabCRUD - tela de atualização - edição e lista, via “orelha”;- Query - tela de consulta - edição e lista;- QueryTL - tela de consulta - edição e lista na mesma tela;- TabQuery - tela de consulta - edição e lista, via “orelha”;- Compl - tela complementar;- Filter - tela de diálogo de filtro;- Special - tela especial.

Page 33: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Relatórios

- ReportPanel - painel de relatório;

- ReportPanelMenu - menu de painel de relatório;

- ReportParm - parâmetros para relatório.

Page 34: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Procedimentos

- ProcPanel - painel de procedimentos;

- ProcParm - parâmetros para procedimento.

Page 35: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Dataviews

-MasterDV - dataview de atualização e consulta de uma tabela;-DetailDV - dataview de uma tabela detalhe;-QueryDV - dataview de consulta a uma ou mais tabelas;-ReferenceDV - dataview de tabela referenciada;-ProcDV - dataview de procedimento (stored procedure e trigger).

Page 36: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Push Button

- PBMenuHor - botão do menu horizontal;

- PBMenuVer - botão dos menus verticais;

- PBActionArea - botão da área de ação;

- PBReport - botão de relatório;

- PBProc - botão de procedimento;

- PBToolArea - botão da área de ferramentas.

Page 37: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Data Field

DataField - campo de dado;

DataField_Table - campo de dado associado a uma tabela.

Page 38: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Combo Box

- ComboBox - boxe que traz uma lista de referência;

- ComboBox_View - boxe que traz uma lista de referência de uma tabela associada.

Page 39: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Radio Button

- RadioButton - botão de rádio;

- RadioButton_Table - botão de rádio associado a uma tabela.

Page 40: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Check Box

- CheckBox - boxe de checagem;

- CheckBox_Table - boxe de checagem associada a uma tabela.

Page 41: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

List Box

- ListBox - boxe de lista associada;

- ListBox_Table - boxe de tabela associada.

Page 42: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Table Window

- TableWindow_CRUD - tabela de atualização;

- TasbleWindow_Query - tabela de consulta.

Page 43: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

Multiline

- Multiline - campo de múltiplas linhas;

- Multiline_Table - campo de múltiplas linhas pertencente a uma tabela.

Page 44: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

GroupBox

- Símbolo de agrupamento.

Page 45: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

COMPONENTES DE SOFTWARE

- Label - identificação do campo.

- Image - imagem;

- dImage - editor de imagem;

- xText - texto;

- dxText - editor de texto;

OUTROS COMPONENTES

Page 46: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

ACESSO AOS DADOS

Page 47: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PRINCIPAIS COMPONENTES DA CAMADA DE REGRAS DE NEGÓCIO

- Stored Procedures- Triggers- Funções- Pacotes- Programas- Subrotinas

Page 48: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PRINCIPAIS COMPONENTES DA CAMADA DE GERENCIAMENTO DE

DADOS- Tabelas- Chaves- Índices- Visões- Papéis- Concessões- Sinônimos- Seqüências- Vínculos de banco de dados (database links)

Page 49: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PRINCIPAIS FERRAMENTAS PARA IMPLEMENTAÇÃO DA APRESENTAÇÃO

- Delphi- Visual Basic- Oracle Forms- Oracle Reports- Crystal Reports- JAVA- C#- PHP- ASP

Page 50: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PRINCIPAIS FERRAMENTAS PARA IMPLEMENTAÇÃO DAS REGRAS DE NEGÓCIO

- PL/SQL – Oracle- TRANSACT-SQL – SQL Server- TRANSACT-SQL - Sybase- COBOL- Linguagem C- PL/1 - JAVA- Smalltalk

Page 51: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

PRINCIPAIS FERRAMENTAS PARA IMPLEMENTAÇÃO DO GERENCIAMENTO DE DADOS

Sistemas Gerenciadores de Banco de Dados:- Oracle- SQL Server- Access- Sybase- Interbase- MySql- DB2- FireBird- PostgreSQL

Page 52: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

BIBLIOGRAFIABATISTA, T. Modelagem / Arquitetura de Software – Página http://www.dimap.ufrn.br/~jair/mes/slides/aula1e2.pdf acessada em 12/04/2008.LEITE, J. Design da Arquitetura de Componentes de Software. Página http://www2.dem.inpe.br/ijar/EngSofDesignArq.html acessada em 25/04/2008.SANTANA, A. Desenvolvimento de aplicações em ambiente cliente/servidor. - Dissertação de mestrado. São Paulo: Universidade Mackenzie, 1997.SOMMERVILLE, I. Engenharia de Software. São Paulo: Pearson Addison Wesley, 2003. SZYPERSKI, C. Component Software – Beyond Object-Oriented Programming – Addison Wesley, 1998.WIKIPEDIA. Engenharia de software baseada em componentes. Página http://pt.wikipedia.org/wiki/Engenharia_de_software_baseada_em_componentes acessada em 12/04/2008.

Page 53: ARQUITETURA DE COMPONENTES DE SOFTWARE Prof. Antonio Alberto P. Santana.

FIM