Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web

Tamanho: px
Começar a partir da página:

Download "Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web"

Transcrição

1 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web Investigação da efetividade de um Framework Corporativo de persistência de dados com base no Framework NHibernate em um ambiente empresarial. Régis da Silva Avansini Prof. Dr. Edson A. Oliveira Junior Orientador Maringá, 2012

2 Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Especialização em Desenvolvimento de Sistemas para Web Régis da Silva Avansini Investigação da efetividade de um Framework Corporativo de persistência de dados com base no Framework NHibernate em um ambiente empresarial. Trabalho submetido à Universidade Estadual de Maringá como requisito para obtenção do título de Especialista em Desenvolvimento de Sistemas para Web. Orientador: Prof. Dr. Edson A. Oliveira Junior Maringá, 2012

3 Investigação da efetividade de um Framework Corporativo de persistência de dados com base no Framework NHibernate em um ambiente empresarial. PARECER DA BANCA EXAMINADORA RÉGIS DA SILVA AVANSINI DATA DA DEFESA: / / Trabalho apresentado nesta data ao Curso de Especialização em Desenvolvimento de Sistemas para Web da Universidade Estadual de Maringá, examinado pela Banca Examinadora composta pelos professores: Prof. Dr. Edson A. Oliveira Junior (Orientador) Prof. Dr. Tania Fatima Calvi Tait (Professor Convidado) Prof. Dr. Renato Balancieri (Professor Convidado) PARECER CONCLUSIVO:

4 DEDICATÓRIA Dedico este trabalho aos meus familiares, amigos e usuários do Framework NHibernate.

5 AGRADECIMENTOS Agradeço a todos os profissionais que me auxiliaram com opiniões distintas sobre as ferramentas comparadas nesta pesquisa e aos amigos de turma da ESPWEB.

6 Avansini, Régis Silva. Investigação da efetividade de um Framework Corporativo de persistência de dados com base no Framework NHibernate em um ambiente empresarial Monografia (Especialização em Desenvolvimento de Sistemas para Web), Universidade Estadual de Maringá. RESUMO O aumento da demanda por soluções de software junto com o pouco prazo de entrega estabelecido pelos seus clientes faz com que as empresas da área de desenvolvimento de softwares busquem soluções para assegurar a entrega de seus produtos garantindo ainda a qualidade do produto final, por isso muitas optam por criarem frameworks corporativos para reutilização de seus próprios códigos fonte. Alguns desses frameworks são concebidos para funções específicas como mapear os objetos de sua aplicação para o modelo entidade relacionamento do banco de dados, contudo já existem soluções disponíveis e gratuitas para realização dessa funcionalidade. Este trabalho visa levantar as principais informações de dois frameworks de persistência de dados, identificando desempenho, manutenção, escalabilidade, curva de aprendizado e opiniões de analistas e programadores para que seja possível comparar qual deve ser adotado em determinados cenários de desenvolvimento. Para realização dos estudos foram escolhidos o NHibernate e o framework corporativo desenvolvido por uma empresa privada, identificando assim o NHibernate como o mais efetivo com base nas comparações realizadas. Palavras-Chave: Framework, C#, NHibernate, Persistência, Mapeamento Objeto-Relacional, Corporativo.

7 Avansini, Régis Silva. Investigação da Efetividade de um Framework Corporativo de Persistência de Dados com Base no Framework NHibernate em um Ambiente Empresarial Monografia (Especialização em Desenvolvimento de Sistemas para Web), Universidade Estadual de Maringá. ABSTRACT The increased demand for software solutions along with the little lead time provided by its customers makes the companies in the area of software development to seek solutions to ensure the delivery of its products while ensuring the quality of the final product, so many choose to create frameworks for corporate reuse their own source code. Some of these frameworks are designed for specific functions such as mapping the objects of your application to the entity relationship model of the database, however there are solutions already available for free to achieve this functionality. This work aims to raise the key information from two data persistence frameworks, identifying performance, maintainability, scalability, learning curve and opinions of analysts and programmers to be able to compare which should be adopted in certain deployment scenarios. For the studies were chosen NHibernate and corporate framework developed by a private company, thus identifying NHibernate as the most effective based on comparisons made. Keywords: Framework, C #, NHibernate, Persistence, Object-Relational Mapping, Corporate.

8 LISTA DE ABREVIATURAS E SIGLAS ADO ActiveX Data Objects. API Application Programming Interface. CLR Common Language Runtime. CRUD Create, Read, Update and Delete. CSLA Component-based, Scalable, Logical Architecture. DBA Data Base Administrator. DB2 Banco de Dados IBM. DLL Dynamics Link Library. DTO Data Transfer Object. GNU General Public License. IIS Internet Information Services. LGPL Lesser GNU Public License. LOG Registro de erros e monitoramento. MVC Model-View-Controller. OO Orientação a Objetos. POCO Plain Old CLR Object. SGBD Sistema Gerenciador de Banco de Dados. SQL Structure Query Language. TI Tecnologia de Informação URL Uniform Resource Locator. VBA Visual Basic. XML Extensible Markup Language.

9 SUMÁRIO 1. INTRODUÇÃO PADRÕES DE PROJETOS E ARQUITETURA DE SOFTWARE FRAMEWORKS Classificação de frameworks Tipos de frameworks Vantagens e desvantagens FRAMEWORK CORPORATIVO Arquitetura do framework corporativo Características do framework corporativo Processo de criação e utilização do framework corporativo Configuração do framework corporativo Mapeamento objeto-relacional FRAMEWORK NHIBERNATE Arquitetura do NHibernate Principais características do NHibernate Processo de criação e utilização do NHibernate Abordagem bottom-up Abordagem top-down Configuração do NHibernate Mapeamento objeto-relacional Mapeamento de tabelas-classes Mapeamento de chave primária Mapeamento muitos-para-um Mapeamento Um-para-Um COMPARAÇÃO DOS FRAMEWORKS CONCLUSÃO E TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS APÊNDICE A QUESTIONÁRIO FRAMEWORKS... 47

10 LISTA DE FIGURAS Figura 2.1 Diagrama de classes para o padrão Factory Method (Fonte: Autor)... 4 Figura 2.2 Diagrama de classes para o padrão Adapter (Fonte: Autor)... 5 Figura 2.3 Diagrama de classes para o padrão Observer (Fonte: Autor)... 6 Figura 2.4 Diferentes representações para um mesmo modelo (fonte: [3])... 8 Figura 2.5 Modelo de arquitetura de software em camadas MVC (fonte: Autor)... 9 Figura 3.1 Representação do modelo vertical de frameworks (fonte: [6]) Figura 3.2 Representação do modelo horizontal de frameworks (fonte: [6]) Figura 3.3 Representação dos tipos de frameworks (fonte: autor) Figura 4.1 Camadas básicas de um aplicativo (fonte: [7]) Figura Arquitetura do framework corporativo (fonte: [7]) Figura 4.3 Arquitetura das classes e entidades do framework (fonte: [7]) Figura 4.4 Exemplo de entidade do banco de dados a ser mapeado (fonte: [7]) Figura 4.5 Objeto POCO instanciado da entidade ACTIVITY (fonte: [7]) Figura 4.6 Objeto serializado da entidade ACTIVITY (fonte: [7]) Figura 4.7 Classe POCO da entidade ACTIVITY (fonte: [7]) Figura 5.1 Visão de alto nível da arquitetura do framework NHibernate (fonte: [9]) Figura 5.2 Visão da arquitetura do framework NHibernate (fonte: [9]) Figura 5.3 Visão detalhada da arquitetura do framework NHibernate (fonte: [9]) Figura 5.4 Utilização botton-up do NHibernate (fonte: autor) Figura 5.5 Utilização top-down do NHibernate (fonte: autor) Figura 5.6 Configuração do NHibernate dentro do web.config (fonte: [10]) Figura 5.7 Mapeamento XML da entidade cliente (fonte: autor) Figura 5.8 Classe POCO para mapeamento da Figura 6.7 (fonte: autor) Figura 5.9 Classe POCO mapeada da entidade cliente (fonte: autor) Figura Classe POCO para mapeamento fluente da entidade cliente (fonte: autor) Figura 5.11 Classe de mapeamento para entidade cliente (fonte: autor) Figura 5.12 Atributos e valores, mapeamento muito-para-um XML (fonte: [10]) Figura 5.13 Mapeamento um-para-um em arquivo XML (fonte: [10]) Figura 5.14 Atributos e valores, mapeamento um-para-um XML (fonte: [10]) Figura 6.1 Tempo de adaptação do usuário do NHibernate (fonte: autor) Figura 6.2 Tempo de adaptação do usuário do framework corporativo (fonte: autor) 39

11 LISTA DE TABELAS Tabela 5.1 Configuração de banco de dados para o NHibernate (fonte: autor) Tabela 5.2 Estrutura da entidade cliente (fonte: autor) Tabela 6.1 Comparação das ações de mapeamento dos frameworks (fonte: autor) Tabela 6.2 SGBD s suportador por ambos frameworks... 41

12 1. INTRODUÇÃO Na última década o desenvolvimento de novos aplicativos de software teve um aumento significativo, fazendo com que empresas da área de desenvolvimento de software adotassem metodologias e técnicas para aperfeiçoar o ciclo de vida dos seus produtos. Um dos principais desafios de empresas fornecedoras deste tipo de serviço é atender a demanda de customização de seus produtos no menor período de tempo possível. Contudo, faz-se necessário que tais empresas desenvolvam soluções que possam reutilizar os seus próprios códigos fonte, componentes e interfaces em novos projetos. Para tanto, tais empresas adotam o uso de frameworks próprios (corporativos), optando em despender recursos humanos e tecnológicos nos estágios iniciais de seus projetos para concebê-los atendendo às suas necessidades. Entretanto, tomar a decisão de optar por uma ferramenta corporativa ou adotar um ou vários frameworks comerciais pode não ser uma tarefa trivial. O uso de tecnologia própria pode parecer uma boa estratégia quando usada de forma correta, caso contrário pode acarretar em alto custo de tempo e recurso, o que pode reduzir o retorno de investimento da empresa. Vários aspectos devem ser levados em consideração antes de decidir qual framework adotar, entre eles pode-se destacar: a escalabilidade do framework, o tempo de adaptação da equipe de usuários, o desempenho, o tempo de concepção de novos produtos, a adaptação do aplicativo, o conhecimento compartilhado entre a comunidade de software, a difícil manutenção, o código morto e a falta de capacitação dos profissionais. Outro caminho no processo de reutilização de recursos é adotar frameworks de mercado, desenvolvidos por terceiros. Atualmente, são vários os tipos de frameworks encontrados, alguns com características bem definidas como, por exemplo, persistência de dados. Este trabalho tem como objetivo apresentar um estudo comparativo entre dois frameworks, atualmente adotados por uma empresa com o intuito de identificar qual é o mais efetivo. O primeiro framework foi desenvolvido pela própria empresa. Ele abrange todas as camadas de desenvolvimento de uma nova aplicação, contudo neste trabalho é considerada apenas a persistência de dados. O segundo framework é NHibernate. Tal framework foi criado estritamente para realizar a persistência de dados. 1

13 Para a realização deste trabalho foi necessário levantar informações sobre padrões de projetos de software e arquitetura de software para identificar as necessidades de uma camada de persistência de dados, em seguida foram estudados os modelos de frameworks existentes para identificar em quais se encaixam os frameworks aqui comparados, após isso foram estudados as principais características e arquitetura de ambos os frameworks. Além disso, foi considerada a experiência de profissionais que tenham trabalhado com uma ou ambas as ferramentas, por meio de aplicação de um questionário. Este trabalho está estruturado da seguinte maneira: o capítulo 2 apresenta os principais conceitos sobre padrões de projeto, amplamente conhecidos como Design Patterns e conceitos referentes à organização de aplicações em camadas, especificamente na camada de persistência de dados, tomando como referência o padrão de arquitetura de software MVC (Model View - Controller); o capítulo 3 possui uma definição dos tipos de frameworks encontrados; o capítulo 4 contempla as informações essenciais pertinentes ao framework corporativo; o capítulo 5 engloba o framework NHibernate; o capítulo 6 apresenta os resultados obtidos e a comparação realizada entre ambos os frameworks; e o Capítulo 7 apresenta as conclusões e direções para trabalhos futuros. No apêndice A está o questionário aplicado junto aos profissionais da área. 2

14 2. PADRÕES DE PROJETOS E ARQUITETURA DE SOFTWARE Independente da linguagem de programação utilizada, ou da empresa ou ainda da aplicação que esteja sendo criada, a manutenção está presente. Com o tempo o software irá crescer e mudar para não se tornar obsoleto. Por exemplo, a alteração do SGBD (Sistema Gerenciador de Banco de Dados), nem sempre é possível, pois ele está diretamente relacionado com a forma em que a aplicação foi construída [2], ou seja, um padrão está diretamente relacionado com a abstração dos detalhes encontrados na criação de um novo aplicativo de software [3]. Os padrões de projetos de software ou Design Patterns fornecem uma estrutura de projeto OO (Orientado a Objetos) capaz de solucionar problemas comuns ao processo de desenvolvimento, visando reutilizar as soluções já encontradas e melhorar a manutenção [2]. Segundo Christopher Alexander [1], Cada padrão descreve um problema que ocorre repetidas vezes em nosso ambiente e o núcleo da solução para tal problema, de tal forma que possamos usar essa solução de diferentes formas sem nunca fazê-la da mesma maneira duas vezes. Os padrões de projetos estão entre os mais importantes avanços da engenharia de software nos anos de 1990, uma simples abstração do que é flexível dentro de uma aplicação, e/ou seu remanejamento dentro do projeto para que possa sofrer alterações no decorrer do processo de forma organizada já se caracteriza como um padrão de projeto de software. O padrão comportamental Strategy, por exemplo, define um conjunto de classes, encapsula cada uma delas e as torna intercambiáveis. Alguns cuidados devem ser levados em consideração na utilização de padrões de projetos. Deve-se evitar tornar flexível o que não precisa ser flexível. Muitas partes do código escrito não se relacionam com o problema que será resolvido, o número de classes tende a aumentar e o relacionamento entre elas ficará mais complexo [3]. Os padrões de projetos são organizados em três grandes categorias, que são: padrões de criação, padrões estruturais e padrões comportamentais [3]. Os padrões de criação dizem respeito a como se instanciar objetos. Gamma [3] define cinco padrões de criação: Factory Method, Abstract Factory, Builder, Prototype e Singleton. 3

15 Esses padrões têm como objetivo ajudar o sistema a tornar-se independente da forma como os objetos são criados, encapsulando o conhecimento sobre quais classes o sistema faz uso [3]. O padrão Factory Method, por exemplo, fornece uma interface para criar grupos de objetos que se relacionam sem especificar suas classes concretas. Para isso, é definida uma interface para criar um objeto, deixando a responsabilidade de quais classes instanciar para as classes menos ancestrais. A Figura 2.1 apresenta um diagrama de classes para o padrão Factory Method. Figura 2.1 Diagrama de classes para o padrão Factory Method (Fonte: Autor) Pode-se observar na Figura 2.1 que é um padrão de projeto que visa encapsular a criação de um objeto em um método [3] reduzindo o acoplamento da aplicação, portanto é um padrão de projeto que pode e deve ser utilizado em conjunto com outros padrões de criação, comportamentais ou estruturais. Os padrões estruturais correspondem à forma com que as classes e objetos se associam para construir estruturas ainda maiores e descrevem a forma em que os objetos são compostos para se obter novas funcionalidades. São sete os padrões estruturais definidos por Gamma [3]: Adapter, Bridge, Decorator, Proxy, Façade, Composite, Flyweight. O padrão Adapter, também conhecido como Wrapper tem como objetivo adaptar o uso de uma interface. Sua função é auxiliar no casting de uma interface de uma classe para outra interface que contenha um comportamento mais apropriado para atender a um requisito especifico [3]. Esse padrão nos permite reescrever alguns requisitos ou métodos pertencentes 4

16 à uma classe adaptada tornando a aplicação mais versátil. Além disso, não se faz necessário utilizar outros objetos para se obter o tipo da classe desejada. A Figura 2.2 apresenta um diagrama de classes para o padrão Adapter. Figura 2.2 Diagrama de classes para o padrão Adapter (Fonte: Autor) Para utilizar um padrão estrutural como o Adapter é necessária a utilização de um padrão de criação. O diagrama de classes da Figura 2.2 é uma evolução do padrão Factory Method representado pela Figura 2.1 fazendo uso do Adapter. Padrões comportamentais definem como os elementos interagem entre si além do comportamento de cada um na aplicação, classes e objetos. Eles lidam com algoritmos e a distribuição de responsabilidade entre as classes e objetos, descrevendo um padrão de comunicação entre os objetos relacionados. Os padrões comportamentais descritos por Gamma [3] são: Chain of Responsability, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor. O padrão Observer, define uma relação de dependência um para muitos entre os objetos que se relacionam, assim quando um objeto muda de estado todos os seus dependentes serão notificados e atualizados também [3]. Esse padrão é facilmente identificado na camada 5

17 de controle do modelo de arquitetura em camadas de software MVC. A Figura 2.3 apresenta o diagrama de classes para o padrão Observer. Figura 2.3 Diagrama de classes para o padrão Observer (Fonte: Autor) Essas notificações demonstradas na Figura 2.3 poderiam ser feitas de forma manual, contudo deixaria a aplicação com alto acoplamento e de difícil manutenção. Com a utilização do Observer é possível reduzir o uso do relacionamento bidirecional entre as classes abstratas e interfaces, obtendo baixo acoplamento e alta coesão. Através do uso dos padrões vistos acima pode-se construir uma arquitetura mais complexa, a arquitetura de software tem como objetivo estudar o sistema, analisando seus componentes, as propriedades externamente visíveis e a forma como eles se relacionam de acordo com sua natureza [4]. Um componente de um aplicativo de software nada, mas é do que a abstração das classes, objetos, processos, rotinas, bibliotecas, base de dados e quaisquer outras informações pertinentes ao que irá compor o software [4]. Na arquitetura de software devemos de certa maneira encapsular informações desses componentes quando essas não forem relevantes para determinar como eles irão interagir. Detalhes privados aos componentes não fazem parte da arquitetura em si [4]. 6

18 Para arquitetar um software de maneira correta devemos considerar um maior escopo de requisitos que compõem a aplicação, como por exemplo: confiabilidade, escalabilidade, manutenção, segurança, custo de produção do produto além de tempo de vida do software. Assim, a arquitetura deve representar a aplicação como um todo [4]. Padrões de arquitetura de software mais complexos como MVC, por exemplo, têm como objetivo principal definir uma arquitetura para que os componentes de um aplicativo se comuniquem entre si. Para isso, esse padrão define três camadas básicas para organizar seus componentes, são elas: Modelo, visão e controlador, fazendo com que eles fiquem menos acoplados, facilitando nas futuras alterações que a aplicação possa vir a sofrer [3]. A camada modelo é onde se encontram os principais requisitos da aplicação, ou seja, é responsável por tudo que a aplicação irá realizar, se preocupando com a manipulação, armazenamento e geração dos dados, de certa forma é um encapsulamento das informações e comportamento independente de como será apresentado na camada de visão, contém toda a regra de negócio a ser aplicada antes de realizar o mapeamento para persistir os dados. A camada de visão não se relaciona diretamente com a camada modelo. Não importa como os dados foram obtidos e nem de que forma foram ou muito menos de onde eles vêm. Essa camada se preocupa apenas em exibir a informação para o usuário, na camada de visão encontra-se o front-end da aplicação variando de acordo com a aplicação, ou seja, telas desenvolvidas em Forms, Silverlight, páginas html, etc. A camada de controle é responsável em determinar o fluxo da apresentação dos dados. Ela funciona como uma camada intermediária entre a camada modelo e visão, controla e mapeia as ações entre ambas. Nesta camada encontram-se classes responsáveis em transferir os objetos entre as camadas, são as chamadas classes DTO (Data Transfer Object). O MVC garante o baixo acoplamento entre as camadas, fazendo uso dos padrões de projeto definido por Gamma [3]. A Figura 2.4 demonstra um elemento da camada modelo sendo representado por três elementos distintos da camada visão. 7

19 Figura 2.4 Diferentes representações para um mesmo modelo (fonte: [3]) O objetivo do MVC é aumentar a flexibilidade e a reutilização da aplicação, a camada de visão deve garantir que reflita a situação atual da camada modelo, ou seja, do objeto que representa. Assim, sempre que esse objeto sofrer alguma alteração ele irá notificar todas as interfaces da camada de visão que dependem dele [3]. O MVC é aplicável a uma arquitetura maior. Ele deve ser capaz de desassociar os objetos da camada de visão para que mudanças para uma determinada visão não afetem outra. Isso pode ser obtido ao utilizar o padrão de projeto Observer. Outro aspecto do MVC é que se podem ter pontos de vista idênticos para determinadas classes da camada de visão. Comportamentos idênticos que podem ser reutilizados, por exemplo, conjunto de controle de ações de um formulário pode ser único para vários formulários. Para isso, faz-se uso do padrão de projeto Composite. Uma visão usa uma instância de uma subclasse controladora para programar uma estratégia de resposta particular. Se desejar programar uma estratégia diferente basta substituir a instância com um tipo diferente de controlador. É ainda possível alterar o controlador de uma visão em tempo de execução para permitir à visão mudar a maneira como ele responde à entrada de ações do usuário. Tal relação entre a camada de visão e a camada controladora é um exemplo do padrão de projeto Strategy. O MVC ainda utiliza os padrões de projeto Factory Method e Decorator para especificar uma classe controladora padrão e para adicionar atributos para a visão respectivamente, mas as principais relações da arquitetura MVC são os padrões de projeto Observer, Composite e Strategy [3]. As principais do MVC é que ele permite: aumentar o número de clientes que consomem os recursos da camada de modelo adicionando apenas novas visões e controladores, tornar a aplicação escalável e facilitar a manutenção e testes, além de permitir 8

20 o desenvolvimento em paralelo das camadas que compõem o aplicativo [3]. As principais desvantagens desse modelo é que ele necessita de um maior tempo para analisar e modelar o sistema como um todo. Além disso, requer recursos humanos especializados, não sendo aconselhado para aplicações de pequeno porte [3]. Atualmente, existem algumas variações do MVC, devido à influência de novas tecnologias e também devido as necessidades que surgem no desenvolvimento de algumas aplicações. Mas, tradicionalmente esse modelo possui o relacionamento e comportamento entre as camadas como mostrado na Figura 2.5 [3]. Figura 2.5 Modelo de arquitetura de software em camadas MVC (fonte: Autor) 9

21 3. FRAMEWORKS O uso desse conceito surgiu há alguns anos e vem agregando adeptos com o passar do tempo. Com isso, o uso de frameworks tem se tornado cada vez mais comum no ambiente de desenvolvimento. Os frameworks não se relacionam a um domínio ou problema específico de uma determinada aplicação. O seu objetivo é compor um conjunto de funções interdependentes que visam representar uma solução parcial para um determinado problema. Portando, ele deve servir de ponto de partida para criar a aplicação, a estrutura de classes, interfaces e objetos que o compõem devem ser utilizadas (estendidas, implementadas e instanciadas) de acordo com o problema especifico [5]. Entre as principais vantagens na utilização de frameworks, podemos citar: ganho na produtividade, diminuição de erros no aplicativo, tempo de desenvolvimento da aplicação reduzido além de tornar a aplicação mais homogênea. A arquitetura de um framework por mais simples que seja tem relação com padrões de projeto de software. São conceitos bem interligados, contudo não são obrigatoriamente dependentes. O objetivo de um framework é separar as partes da aplicação que podem sofrer alteração das que permaneceram estáticas [5]. As classes não sofrem alterações, independentemente das aplicações que estejam utilizando o framework, podendo apenas ter suas classes estendidas. São várias as áreas relacionadas à tecnologia que utilizam de frameworks. Nos dias de hoje é possível encontrar frameworks próprios para interface gráfica, incorporação de arquitetura de software como MVC, construção de scripts, mapeamento objeto-relacional entre outros. Normalmente frameworks são criados para atender um determinado conjunto de problemas, sendo assim empresas da área de tecnologia tendem a criar frameworks corporativos ao identificar uma mesma solução para problemas que tendem a surgir durante a construção de suas aplicações. Durante o ciclo de vida dos softwares desenvolvidos é notada a presença de classes comuns em diferentes projetos, e um conjunto dessas classes tende a ser o ponto inicial da criação de um framework. 10

22 De certa forma um framework deve ser algo reutilizável e estável. Contudo, para que seja utilizado de forma correta deve possuir a documentação apropriada para entendimento de seu funcionamento e utilização. Basicamente, um framework deve em sua documentação mostrar a razão para a existência de determinada funcionalidade, deve descrever como utilizar seus recursos além de detalhar o comportamento das classes e objetos relacionados a um determinado recurso. 3.1 Classificação de frameworks Os frameworks podem ser classificados de acordo com o ambiente em que será utilizado, por exemplo, um framework pode ser utilizado em nível de domínio, aplicação ou suporte [6]. Os frameworks de domínio também conhecidos como frameworks verticais encapsulam conhecimento que estejam relacionados a um determinado domínio. Eles tendem a solucionar boa parte da aplicação de acordo com o conhecimento agregado [6]. A Figura 3.1 apresenta o modelo de crescimento vertical de um framework. Figura 3.1 Representação do modelo vertical de frameworks (fonte: [6]) 11

23 Os frameworks de aplicação são o oposto dos frameworks de domínio. O conhecimento agregado é relacionado a vários domínios diferentes. Esse tipo de framework também é conhecido como framework horizontal, pois resolve apenas parte da aplicação. A Figura 3.2 apresenta o modelo de crescimento horizontal de um framework. Figura 3.2 Representação do modelo horizontal de frameworks (fonte: [6]) Por fim, temos os frameworks de suporte, pouco utilizados, pois fornecem serviços relacionados ao sistema e não à aplicação. 3.2 Tipos de frameworks Os frameworks podem ser correlacionados em três tipos de acordo como foram concebidos, são eles: frameworks White-box (caixa branca), Black-box (caixa preta) e Graybox também conhecidos como híbridos [6]. Os frameworks caixa-branca fornecem classes abstratas que deverão ser especializadas de acordo com a necessidade da aplicação. Assim, os desenvolvedores de sistema estendem o framework utilizando o recurso de herança presente na OO, por exemplo, a classe Object da linguagem de programação C#. 12

24 Os frameworks caixa-preta fornecem classes já utilizáveis em que os programadores devem instanciar essas classes diretamente para utilizar os objetos que compõem o framework, por exemplo, Swing (GUI) da linguagem de programação Java. Por fim, tem-se os frameworks híbridos que agregam características dos frameworks caixa-branca e caixa-preta. A grande maioria dos frameworks presentes no mercado se enquadra nesse tipo, tanto os frameworks Open-Source como os frameworks corporativos. A Figura 3.3 apresenta a relação entre os tipos de frameworks. Figura 3.3 Representação dos tipos de frameworks (fonte: autor) 3.3 Vantagens e desvantagens Ao longo das especificações mencionou-se inúmeras vantagens e desvantagens do uso de um framework, sabe-se que o custo final de um aplicativo de software está diretamente relacionado ao tempo despendido para concebê-lo. Dessa forma, erros de identificação de requisitos poderão elevar o custo final do produto. O aspecto mencionado anteriormente também esta relacionado à escolha das ferramentas que serão utilizadas. Por exemplo, a escolha do framework a ser adotado no desenvolvimento ou pela escolha de se desenvolver um próprio framework que realize determinadas funcionalidades comuns a várias aplicações. As principais vantagens do uso de frameworks são: baixo tempo de codificação, e uso de soluções já homologadas, além dos desenvolvedores focarem em desenvolver apenas o que é necessário e principalmente menor probabilidade de erros no código. As principais desvantagens do uso de frameworks são: necessidade de recursos humanos especializados, a não disponibilização de todo código fonte que compõe o framework, mudança de foco no desenvolvimento e a necessidade de desenvolver em uma linguagem especifica [6]. 13

25 4. FRAMEWORK CORPORATIVO Para a realização deste trabalho, foi estudado um framework corporativo criado por uma empresa do setor de desenvolvimento de software. Contudo, o framework em questão abrange todas as camadas de uma aplicação possuindo, assim, uma complexa arquitetura. A fim de refinar a pesquisa será abordado apenas a sua camada de persistência, sendo comparada com o framework NHibernate, próprio para realização de persistência. O framework corporativo atualmente utiliza ferramentas de mercado como base para sua construção, como: framework.net, linguagem de programação C# e IronPython, plataforma web Asp.net e Silverlight rodando sobre o IIS, Internet Information Service. Ele permite soluções para diferentes bancos de dados, utilizando como comunicação ADO.Net (ActiveX Data Objects) para acesso ao banco de dados utilizando conceitos CSLA (Component-based, Scalable, Logical Architecture) e conceitos do Microsoft Entity Framework, esse por sua vez realiza apenas persistência como o NHibernate. O objetivo da empresa ao criar esse framework não foi competir com tecnologias de mercado, como vimos todas as tecnologias de mercado são utilizadas a fim de criar soluções de mais alto nível, garantindo maior produtividade e evitando que o setor de desenvolvimento adote diferentes soluções para diferentes projetos. Os desenvolvedores da empresa podem utilizar a linguagem de programação C# para desenvolvimento e manutenção das aplicações da empresa adotando como base o framework corporativo que fornece vários recursos, inclusive persistência de dados, contudo deverá manter os padrões estabelecidos pela ferramenta. 4.1 Arquitetura do framework corporativo A definição da arquitetura para o framework segue os seguintes requisitos: O desenvolvedor deve ser capaz de programar a regra de negócio da aplicação em C# não procedural, mantendo os conceitos de OO podendo herdar comportamento de classes do próprio framework. O aplicativo deve ser capaz de realizar interoperabilidade com outras tecnologias, ou seja, aplicativos antigos da empresa não devem ser necessariamente reescritos em C#. 14

26 Como vimos anteriormente para o uso de um framework faz-se necessário organizar as aplicações em camadas, esse por sua vez engloba todas as camadas de uma aplicação como mostra a Figura 4.1, contudo detalharemos apenas a camada de persistência. Figura 4.1 Camadas básicas de um aplicativo (fonte: [7]) Para o framework corporativo que iremos estudar, a camada de persistência é uma mescla de duas camadas vistas acima, são elas: Lógica de negócio e Lógica de acesso a dados, a seguir demonstraremos um diagrama que compõe toda a estrutura do framework, lembrando que ele foi concebido a fim de garantir a interoperabilidade entre diferentes tecnologias. Figura Arquitetura do framework corporativo (fonte: [7]) Se observarmos na Figura 4.2, notamos que regras de negócio escritas em C# podem ser carregadas e executas a partir de um objeto VBA (Visual Basic) ou diretamente pelo servidor de aplicação, esse processo já existia anteriormente para regras de negócio escritas 15

27 em Delphi com a diferença de que as mesmas não poderiam ser acessadas diretamente pela aplicação desktop, fazendo com que sempre seja utilizado um objeto escrito em VBA. 4.2 Características do framework corporativo Dentre as principais características do mecanismo de persistência do framework estudado estão: Abstrair do desenvolvedor o mecanismos de persistência. Manter o baixo acoplamento entre o objeto de interação com os dados e a fonte de dados em si. Abstrair o controle de LOG de alteração aos dados. Interagir com os dados através de programação OO, visando assim entre outros benefícios a reutilização. Por exemplo, classes POCO (Plain Old CLR Object) podem ser incorporadas em um projeto comum aos demais projetos podendo assim ser reutilizada ou estendida para se incorporar uma nova regra. Diminuir o máximo possível à necessidade de o programador escrever instruções SQL (Structure Query Language) de consulta ou persistência. Para que todas as características vistas acima funcionem corretamente foi adotada para esse framework a utilização de Entidades para desempenhar a manipulação dos dados (CRUD - Create, Read, Update and Delete), estas entidades recebem as informações através de um serviço e esse é responsável em realizar a persistência dos dados efetivamente. 4.3 Processo de criação e utilização do framework corporativo Esse framework não incorpora todas as funcionalidades de persistência, é comum nos comerciais permitir ao desenvolvedor criar a aplicação e a partir do mapeamento de suas classes obterem as entidades do banco de dados, contudo para esse framework não se aplica, devido ao controle de permissões e acesso além de deixar a cargo dos DBA s (Data Base 16

28 Administrator) a padronização e criação de entidades, sendo assim o framework corporativo não permite aos desenvolvedores utilizar uma abordagem top-down como veremos a seguir. Para que seja possível criar um projeto é necessário que o framework esteja instalado e configurado corretamente, a partir daí basta adicionar as DLL s (Dynamics Link Library) no projeto C#, as principais são: EntidadeBase.dll. EntidadeNegocio.dll. EntidadeServico.dll. 4.4 Configuração do framework corporativo A configuração e instalação desse framework é extremamente complexa, pois envolve a configuração de outros componentes desenvolvidos pela empresa, além disso, ele compartilha de DLL s das entidades de serviço com o aplicativo desktop, o que os tornam interligáveis. Contudo para aplicações web, considerando que esteja tudo configurado e instalado para os demais componentes, basta configurar o web.config para que ele reconheça qual o servidor em que se encontra a aplicação. Por fim a configuração de onde se encontra o banco de dados é realizada através da própria interface gerada de forma automática pela aplicação, atualmente esse framework suporta comunicação apenas com os SGBD s (Sistema Gerenciador de Banco de Dados): Oracle. SQLServer SQLServer DB2. Cachê. 17

29 4.5 Mapeamento objeto-relacional Todo o mapeamento é através de definições de entidades, classes POCO que mapeiam uma entidade já existente no banco de dados, o framework incorpora várias classes para realização das associações básicas de um SGBD, sendo assim faz-se necessário ao desenvolvedor utilizar destas classes para realizar a persistência dos dados, a arquitetura das classes envolvidas é apresentada abaixo. Figura 4.3 Arquitetura das classes e entidades do framework (fonte: [7]) O mapeamento de entidades nada, mas é que relacionar a aplicação com a estrutura do banco de dados para que seja efetuada a persistência das informações providas da própria aplicação. Para agilizar o processo de desenvolvimento incorporado ao próprio framework estão recursos que permitem ao desenvolvedor gerar as classes POCO. Como vimos o mapeamento é realizado através de entidades, mas o framework aqui estudado define como entidade nada, mas do que um objeto de negócio, sendo uma espécie de caixa preta que contêm os dados e as lógicas de negócio, assim sendo, o desenvolvedor não necessita conhecer a origem dos dados e nem como as lógicas de negócios são acionadas. Qualquer tentativa de manipulação dos dados passará através da lógica de negócio, assegurando que as regras de negócio sempre sejam aplicadas, garantindo a integridade do objeto de negócio. 18

30 Através desta arquitetura a entidade não tem conhecimento se está sendo utilizada por uma interface WinForms, Silverlight, Asp.Net ou por uma regra de negócio no servidor da camada de negócio, as principais aplicações de persistência são: Um registro de uma entidade em um banco de dados relacional. O retorno da execução de uma lógica de negócio. O retorno de uma stored procedure que obtém dados de diversas entidades. Tudo que o desenvolvedor precisa fazer é interagir com os objetos referentes às classes do framework, não se preocupando com transações, persistência, validações, etc. A classe EntidadeBase, como o próprio nome sugere é a base para qualquer entidade, nela estão as propriedades que mapeiam os campos das entidades e o mecanismo responsável em realizar de fato a persistência. A seguir tomaremos como exemplo o mapeamento de uma entidade. Figura 4.4 Exemplo de entidade do banco de dados a ser mapeado (fonte: [7]) Figura 4.5 Objeto POCO instanciado da entidade ACTIVITY (fonte: [7]) 19

31 Como vimos às classes responsáveis em realizar a persistência realizam uma chamada a um serviço, para isso é necessário que a mesma classe POCO esteja serializada e mapeada no serviço de entidades do framework, esse processo é automático, a seguir segue a classe apresentada acima serializada utilizada para execução dos serviços. Figura 4.6 Objeto serializado da entidade ACTIVITY (fonte: [7]) Como veremos os relacionamentos de dependência são mapeados através de uma classe denominada EntidadeAssociacao, a mesma realiza o mapeamento um-para-um, muitos-para-um ou muitos-para-muitos, o que define o tipo de mapeamento é a existência de outra classe com vínculo do tipo EntidadeAssociacao. Analisando a Figura 4.7 podemos observar a entidade ACTIVITY mapeada através de uma classe POCO do tipo EntidadeBase, a mesma classe implementa a interface INotifyPropertyChanged, porém isto é opcional. Diferentemente de Java as anotações em uma classe são denominadas como atributos em C#, partindo desse conceito podemos avaliar o primeiro atributo da classe, o atributo 20

32 DefinicaoEntidade que indica qual é a entidade do banco de dados que será mapeada, em seguida temos o atributo Servico que associa a classe POCO a um serviço criado de forma automática pelo framework, para isso é passado por parâmetro a URL (Uniform Resource Locator) e qual a entidade de serviço será executa, em seguida o nome da classe que não necessita ser o mesmo nome da entidade do banco de dados. Também podemos observar que a classe estende o comportamento de uma EntidadeNegocio que recebe como parâmetro o tipo a ser mapeado, esse por sua vez se faz necessário para acessar informações que não estão no domínio da classe POCO, por exemplo, uma chave estrangeira na classe POCO em si nada mas é do que um valor numérico, sendo assim para acessar os demais campos da entidade ao qual a chave estrangeira referencia basta acessar pelo objeto Fields, que o framework se encarrega de buscar estar informações apenas para consulta sem ser necessário mapear esta classe. São inúmeras as possibilidades através desse mapeamento, as classes POCO s podem ser herdadas e para cada método de acesso aos atributos podem incorporar regras e negócio. Figura 4.7 Classe POCO da entidade ACTIVITY (fonte: [7]) 21

33 A maneira em que o mapeamento é realizado está diretamente associados às necessidades da empresa, regras internas são executadas automaticamente o que dificulta comparar alguns aspectos com outros frameworks, as definições de constraints são automáticas na classe EntidadeNegocio, desta forma o programador não necessita se preocupar com esse tipo de mapeamento herdado do banco de dados. 22

34 5. FRAMEWORK NHIBERNATE O framework NHibernate é semelhante ao framework Hibernate para Java, porém voltado para tecnologia.net. Ele lida diretamente com a persistência simples dos dados, capaz de interagir com diferentes sistemas de gerenciamento de banco de dados. Seu funcionamento visa a simplicidade, dado um XML (Extensible Markup Language) de suas entidades e relacionamentos, o NHibernate gera automaticamente o SQL responsável em armazenar e carregar os objetos, outra vertente é criar classes cujos atributos serão metadados de mapeamento no próprio código fonte, não sendo necessária a utilização de um arquivo XML. Esse framework suporta persistência transparente, ou seja, as classes que representam objetos a serem mapeados não são obrigatoriamente forçadas a seguir um modelo de programação restritiva, isso permite projetar a lógica de negócio usando classes.net simples [8] denominadas POCO (Plain Old CLR Object). 5.1 Arquitetura do NHibernate Por meio de uma visão de alto nível da arquitetura do framework NHibernate pode-se observar a utilização do banco de dados e informações de configuração para que o framework consiga fornecer serviços de persistência de dados e recuperar objetos já persistidos para a aplicação. Figura 5.1 Visão de alto nível da arquitetura do framework NHibernate (fonte: [9]) 23

Curso - Padrões de Projeto Módulo 1: Introdução

Curso - Padrões de Projeto Módulo 1: Introdução Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?

Leia mais

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

Padrões clássicos ou padrões GoF O livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

Leia mais

Programação Orientada a Objetos. Padrões de Criação

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

COMPARAÇÃO ENTRE OS FRAMEWORKS DE DESENVOLVIMENTO DE SOFTWARE ENTITY FRAMEWORK E NHIBERNATE : ESTUDO DE CASO EM UM SISTEMA

COMPARAÇÃO ENTRE OS FRAMEWORKS DE DESENVOLVIMENTO DE SOFTWARE ENTITY FRAMEWORK E NHIBERNATE : ESTUDO DE CASO EM UM SISTEMA 73 COMPARAÇÃO ENTRE OS FRAMEWORKS DE DESENVOLVIMENTO DE SOFTWARE ENTITY FRAMEWORK E NHIBERNATE : ESTUDO DE CASO EM UM SISTEMA Daniel José Angotti Analista de Negócio, Repom S/A djangotti@gmail.com Carlos

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Prof.ª Esp. Talita Pagani

Prof.ª Esp. Talita Pagani Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design

Leia mais

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas MAC0499-Trabalho de Formatura Monografia USP - Universidade de São Paulo Instituto de Matemática e Estatística Bacharelado em Ciência da Computação Técnicas de Reuso de Software aplicados na elaboração

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO Contribuições do MDA para o desenvolvimento de software Anna Carla Mohr Verner Helder Eugenio dos Santos Puia Florianópolis,

Leia mais

ANÁLISE COMPARATIVA ENTRE ENTITY FRAMEWORK E NHIBERNATE. Web DevelopmentUsingNHibernate

ANÁLISE COMPARATIVA ENTRE ENTITY FRAMEWORK E NHIBERNATE. Web DevelopmentUsingNHibernate ANÁLISE COMPARATIVA ENTRE ENTITY FRAMEWORK E NHIBERNATE Web DevelopmentUsingNHibernate Celso de Ávila Ramos¹ Caio de Oliveira AmoêdoPinelli; Eric da Silva Cardoso; Tamara Regina Moreira² ¹Docente no Curso

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Introdução à Padrões de Projeto. Glauber Magalhães Pires

Introdução à Padrões de Projeto. Glauber Magalhães Pires Introdução à Padrões de Projeto Glauber Magalhães Pires Agenda O que são padrões de projeto? Para que servem e por que utilizá-los? Elementos constituintes Como escolher o padrão a ser usado? Como são

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

MVC e Camadas - Fragmental Bliki

MVC e Camadas - Fragmental Bliki 1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

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

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java

MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java MOR: Uma Ferramenta para o Mapeamento Objeto-Relacional em Java Leonardo Gresta Paulino Murta Gustavo Olanda Veronese Cláudia Maria Lima Werner {murta, veronese, werner}@cos.ufrj.br COPPE/UFRJ Programa

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Persistência de Dados em Java com JPA e Toplink

Persistência de Dados em Java com JPA e Toplink Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida

Leia mais

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

Leia mais

a. A plataforma recomendada é Web, com arquitetura Microsoft.Net; b. A linguagem recomendada para codificação de Sistemas de Informações é C#;

a. A plataforma recomendada é Web, com arquitetura Microsoft.Net; b. A linguagem recomendada para codificação de Sistemas de Informações é C#; 1. OBJETIVO O objetivo deste documento é definir as normas e os padrões que deverão ser adotados pelos desenvolvedores da equipe interna e externa (fornecedores) que venham a desenvolver soluções de software

Leia mais

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C#

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C# FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Willian Magalhães 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wmagalhaes@unipar.br

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

Desafios na construção de um Framework de acesso a dados em PHP

Desafios na construção de um Framework de acesso a dados em PHP 4 5 Desafios na construção de um Framework de acesso a dados em PHP Dimas Ferreira Vidal O presente artigo procura mostrar os principais desafios no processo de desenvolvimento do framework PHPO2_DB de

Leia mais

Persistência em Software Orientado a Objetos:

Persistência em Software Orientado a Objetos: Persistência em Software Orientado a Objetos: Abordagens Utilizando Frameworks OpenSource Marcelo Santos Daibert Orientador: Marco Antônio Pereira Araújo Co-Orientadora: Alessandreia Marta de Oliveira

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Sistema de Memorandos On-Line. (Projeto Arquitetural)

Sistema de Memorandos On-Line. (Projeto Arquitetural) Universidade Federal de Campina Grande Pb Departamento de Sistemas e Computação Disciplina: Projeto em Computação I 2111185 Professora: Francilene Procópio Garcia, P.Sc Alunos: Arnaldo de Sena Santos;

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

Padrões Arquiteturais no Java EE 7

Padrões Arquiteturais no Java EE 7 Padrões Arquiteturais no Java EE 7 Vagner F. Le Roy Júnior Curso de Pós Graduação em Arquitetura de Software Distribuído Pontifícia Universidade Católica de Minas Gerais Belo Horizonte, MG Brasil vagnerleroy@gmail.com

Leia mais

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA)

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA) Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA) Prof. Alberto Costa Neto DComp/UFS Padrões Arquiteturais Expressam esquemas fundamentais de organização estrutural do software. Provêem

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Persistência. 2004 Fernando Lozano, http://www.lozano.eti.br Persistência Objeto-Relacional com Java Pag. 1

Persistência. 2004 Fernando Lozano, http://www.lozano.eti.br Persistência Objeto-Relacional com Java Pag. 1 Persistência Objeto-Relacional com Java Fernando Lozano http://www.lozano.eti.br Consultor Independente Prof. Faculdades UniABEU Prof. SENAC Editor Adjunto da Revista Java Magazine 2004 Fernando Lozano,

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

ASP.NET 2.0 e PHP. Autor: Glauber de Almeida e Juarez Fernandes

ASP.NET 2.0 e PHP. Autor: Glauber de Almeida e Juarez Fernandes ASP.NET 2.0 e PHP Autor: Glauber de Almeida e Juarez Fernandes Linguagens pesquisadas ASP.NET 2.0 e PHP. 1 - ASP.NET 2.0 ASP.NET não é nem uma linguagem de programação como VBScript, php, nem um servidor

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Dados em Java. Introdução

Dados em Java. Introdução Interface Gráfica e Banco de Dados em Java Introdução Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Licença para uso e

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos. Criando Frameworks Inteligentes com PHP Uma abordagem prática: vantagens, aplicações e procedimentos. Apresentação Equipes ao redor do mundo utilizam diferentes padrões de projeto, de acordo com suas necessidades

Leia mais

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

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 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 Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

19/05/2009. Módulo 1

19/05/2009. Módulo 1 ASP.NET Módulo 1 Objetivo Mostrar os conceitos fundamentais da plataforma Microsoft.Net e suas ferramentas; Apresentar os conceitos fundamentais de aplicações web e seus elementos; Demonstrar de forma

Leia mais

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Introdução ao Delphi. Introdução. Edições do Software. Capítulo 1. InforBRás - Informática Brasileira Ltda. O Que é o Delphi.

Introdução ao Delphi. Introdução. Edições do Software. Capítulo 1. InforBRás - Informática Brasileira Ltda. O Que é o Delphi. Capítulo 1 O Que é o Delphi Diferenças entre Delphi Client/Server do Delphi for Windows Características que compõem o Integrated Development Invironment (IDE) Como o Delphi se encaixa na família Borland

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Programação com Objectos

Programação com Objectos Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é

Leia mais

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 Í N D I C E Capítulo 1 - O Início de Tudo 1 Reunindo todas as informações necessárias 2 Instalando o Visual FoxPro 2 Configurando o Visual FoxPro 7 Capítulo

Leia mais

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE Nelson Ribeiro de Carvalho Júnior 1 RESUMO Atualmente o cenário mundial cuja dependência do software está cada vez mais evidente requer que

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 8 Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais Especialização em web com interfaces ricas Padrões de Projeto - Estruturais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013 A DIRETORIA DE INFORMÁTICA DINFO DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO -UERJ, no uso de suas atribuições legais, estabelece: Art. 1º: Para fins de normatização do Desenvolvimento Tecnológico na UERJ

Leia mais

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO PROVA DE NÍVEL SUPERIOR CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO 1. O ambiente Delphi suporta o desenvolvimento de aplicações orientadas a objetos por meio da linguagem Object

Leia mais

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Histórico de revisões

Histórico de revisões Design Patterns Histórico de revisões Data Versão Descrição Autor 15/1/2014 1.0 Finalização da primeira versão HEngholmJr OBJETIVOS Fornecer uma visão geral sobre Design Patterns visando atingir os requisitos

Leia mais

PRD Tecnologia de Gestão Ltda. Julho/2008

PRD Tecnologia de Gestão Ltda. Julho/2008 O Processo de Desenvolvimento Telescope Julho/2008 Página 1 Sumário Introdução...3 O desenvolvimento de software tradicional...3 O problema da produtividade...3 O problema da portabilidade...6 O problema

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM DE BANCO DE DADOS LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados

Leia mais

PROGRAMAÇÃO MVC E ZEND FRAMEWORK

PROGRAMAÇÃO MVC E ZEND FRAMEWORK PROGRAMAÇÃO MVC E ZEND FRAMEWORK MVC PROGRAMMING AND ZEND FRAMEWORK Rodolfo Vinícius Moimas Dias Centro Universitário Filadélfia de Londrina UniFil Rafael Francovig Cavicchioli Centro Universitário Filadélfia

Leia mais

O que é um framework?

O que é um framework? O que é um framework? Um framework, ou arcabouço, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. (Wikipedia)

Leia mais

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

PLANEJAMENTO DO DESENVOLVIMENTO E INTEGRAÇÕES

PLANEJAMENTO DO DESENVOLVIMENTO E INTEGRAÇÕES Anexo II C Extranet Social PLANEJAMENTO DO DESENVOLVIMENTO E INTEGRAÇÕES Página 1 de 15 Tudo que for diferente do que foi citado nesse documento deverá ser aprovado pela área de tecnologia do SESC. As

Leia mais