arquitetura de componentes de software prof. antonio alberto p. santana

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

Upload: yasmin-bonito

Post on 07-Apr-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

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