ENGENHARIA DE SOFTWARE DESENVOLVIMENTO EM CAMADAS



Documentos relacionados
? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Persistência e Banco de Dados em Jogos Digitais

Fundamentos de Banco de Dados

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Entendendo como funciona o NAT

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Dadas a base e a altura de um triangulo, determinar sua área.

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Engenharia de Software

Conceitos de Banco de Dados

SISTEMAS DISTRIBUÍDOS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Esclarecimento: As versões dos navegadores a serem utilizadas pelo PSIM estão descrito no item do projeto básico.

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Gerenciamento de software como ativo de automação industrial

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

UFG - Instituto de Informática

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Curso de Linux Básico

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Engenharia de Requisitos Estudo de Caso

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Roteiro 2 Conceitos Gerais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Manual de Instalação da leitora de SmartCard Teo by Xiring

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Documento de Arquitetura

Orientação a Objetos

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

SISTEMA GERENCIADOR DE BANCO DE DADOS

Ao introduzir o sistema ERP, o empresário reconhece imediatamente os benefícios e ferramentas que podem

Professor: Curso: Disciplina:

3 SCS: Sistema de Componentes de Software

Levantamento de Requisitos

desenvolvimento de SI

Planejando o aplicativo

Sistemas Operacionais Gerência de Dispositivos

MVC e Camadas - Fragmental Bliki

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

UML Aspectos de projetos em Diagramas de classes

Pag: 1/20. SGI Manual. Controle de Padrões

Engenharia de Sistemas Computacionais

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Quando se fala em ponto eletrônico, a primeira coisa que vem à sua cabeça ainda é dor?

Sistemas de Bases de Dados

NOVIDADES COMPLY VERSÃO 4.00

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira

Governança de TI. ITIL v.2&3. parte 1

1. Domínio dos Atributos

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

:: Telefonia pela Internet

Gerenciamento de Memória

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Integração ADMRH com AGROSYS

Aula 02 Conceitos básicos elipse. INFORMÁTICA INDUSTRIAL II ENG1023 Profª. Letícia Chaves Fonseca

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

ESTUDO DE CASO WINDOWS VISTA

On Scalability of Software-Defined Networking

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Figura 1 - Arquitetura multi-camadas do SIE

INTRODUÇÃO AO SISTEMA

SOLUÇÕES DA ELIPSE CONFEREM AGILIDADE À OPERAÇÃO E TOMADA DE DECISÕES NO COD DA ELEKTRO

Prof. Marcelo Machado Cunha

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Arquitetura de Banco de Dados

Linguagens de. Aula 01. Profa Cristiane Koehler

1

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

FERRAMENTAS E SOLUÇÕES DE APOIO À GESTÃO E MANUTENÇÃO DE ATIVOS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Sistemas Distribuídos

Central Cliente Questor (CCQ) UTILIZANDO A CCQ - CENTRAL CLIENTE QUESTOR

Sistemas Operacionais

Modelagemde Software Orientadaa Objetos com UML

ENG1000 Introdução à Engenharia

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Transcrição:

ENGENHARIA DE SOFTWARE DESENVOLVIMENTO EM CAMADAS Uma estrutura para um projeto arquitetural de software pode ser elaborada usando camadas e partições. Uma camada é um subsistema que adiciona valor a subsistemas de menor nível de abstração. Já uma partição é um subsistema "paralelo" a outros subsistemas. Empregando a notação de pacotes da UML podemos representar o particionamento de um software em camadas e partições. 1 Arquiteturas em n camadas Uma Arquitetura Centralizada foi o padrão dominante das aplicações até década de 80. A arquitetura de software em camadas pode de ser do tipo: Arquitetura em 2 camadas Arquitetura em 3 camadas Arquitetura distribuída em n camadas 1 - Desenvolvimento em 2 Camadas Os sistemas cliente/servidor tradicionais são bem caracterizados por uma arquitetura de duas camadas. Neste caso as regras de negócios são implementadas: junto da interface do usuário, junto do banco de dados 1

mescladas as duas opções. 1.1 Regras junto da interface Esse modelo de implementação é o mais comum quando se trabalha ferramentas RAD - Delphi, Visual Basic, etc. A possibilidade de se ligar um componente visual (TDBEdit) diretamente a um campo de uma tabela em um banco de dados (TTable), propicia um desenvolvimento mais rapido. Essa é uma técnica muito boa para prototipação e desenvolvimento de pequenos sistemas, quando estes não irão requerer muita manutenção, mas é inconveniente quando de trata de sistemas de grande porte. Entre os maiores problemas que essa forma de programar acarreta estão: Dificuldades de manutenção quando trabalhamos com os eventos de componentes visuais é fácil dispersarmos as regras, tais como associarmos consistência de campo ao evento OnExit do TDBEdit em um momento e ao OnValidate do TField em outro momento. Obviamente isso causa dores de cabeça no momento da manutenção, tendo em vista que nem sempre quem realiza a manutenção são as pessoas que geraram a aplicação. Problemas de performance A visão das tabelas de um banco de dados relacional de gerada na aplicação para componentes com TDBGrid e outros é um impacto considerável no banco de dados e na rede como um todo, devido ao grande número de 2

comandos executados e dados retornados. Basta avaliar o log gerado pelo SQL monitor quando se realiza inserções e edições por intermédio destes componentes. Replicação das regras todas as aplicações que atualizam os dados de uma determinada tabela terão que replicar as mesmas regras e restrições que se aplicam a esta tabela. Dificuldade de distribuição sempre que uma regra é alterada o programa tem que ser redistribuído, trazendo problemas de controle de versão e distribuição física do aplicativo e seus complementos. 1.2 Regras junto dos dados Neste modelo de implementação, as regras são definidas dentro do sistema gerenciador de banco de dados usando os recursos nativos dele como triggers, stored procedures, fuction e constraints. Isto caracteriza uma ligação fortemente dependência entre a aplicação ao banco de dados que estiver sendo usado o que acarretará em um forte retrabalho caso a aplicação venha a ser convertida para ser usada com outro sistema gerenciador de banco de dados. Isso pode não ser um problema muito grave tendo em vista que, como a mudança de um sistema gerenciador de banco de dados é uma operação complexa não dever ocorrer frequentemente. No entanto, praticamente toda software house que desenvolve em ambiente cliente/servidor enfrenta esse problema em maior ou menor grau, dependendo da complexidade e da forma de projetar os programas. Ainda temos o fato de que as restrições impostas pelas linguagens nativas dos bancos, são geralmente direcionadas e otimizadas para a manipulação de dados, e não para situações genéricas e algoritmos complexos. Como pontos positivos temos o ganho de performance na manipulação dos dados e a centralização do código que facilita a atualização após a manutenção, e garante a segurança do modelo de dados. 1.3 Parte das regras na interface e parte junto dos dados Este o modelo é o mais encontrado atualmente. Quando bem aplicado é um modelo eficaz e pode atender a várias situações e ambientes. No entanto carrega os estigmas da dificuldade de manutenção, dificuldade de distribuição e falta de portabilidade. 2 - Desenvolvimento em 3 Camadas 3

Quando falamos em desenvolvimento em 3 camadas, estamos nos referindo a um modelo de programação que prevê a divisão do programa em 3 partes bem definidas e distintas: interface, regras de negócio e banco dos dados. Nossa primeira preocupação quando estamos desenvolvendo com essa visão deve ser uma preocupação constante com a expressão bem definidas e distintas. A divisão e não intromissão de uma camada na outra é a pedra fundamental desse modelo. A interface com o usuário Primeira regra na construção da interface deve ser a economia e simplicidade de código. A necessidade de manutenção de um programa é diretamente proporcional à sua complexidade, portanto devemos sempre nos preocupar em desenvolver interfaces simples e estáveis, já que essa é a parte do programa que deve ser distribuída para os usuários. Essa camada também é conhecida como camada cliente. Regras de negócio Essa camada tem a função de servir a camada cliente, executando processos em função de suas requisições. A inteligência do sistema deve se concentrar nessa camada, sendo que todo e qualquer acesso aos dados deve ser feito por essa camada. Banco de dados 4

Dentro da filosofia de desenvolvimento 3 camadas, deve-se utilizar o banco de dados como um repositório, evitando-se a utilização de triggers e stored procedures com o objetivo de evitar a dispersão do código das regras e aumentar a portabilidade. Alguns projetistas chegam a evitar completamente a utilização de constraints no banco, conseguindo um alto grau de portabilidade. 3 Desenvolvimento em N Camadas Um desenvolvimento n-camadas é caracterizado quando uma aplicação fornece serviços de diferentes formas, não se limitando a disponibilizar somente uma interface gráfica ao cliente, ela segue o modelo N Camadas. 5