FERRAMENTA CASE (GERADOR DE CÓDIGO.NET)

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

Download "FERRAMENTA CASE (GERADOR DE CÓDIGO.NET)"

Transcrição

1 Title: FERRAMENTA CASE (GERADOR DE CÓDIGO.NET) Anderson Michereff Oliveira < > Luiz Gustavo Mählmann < - Orientador Universidade Luterana do Brasil (ULBRA) Curso de Sistemas de Informação Câmpus Canoas Av. Farropilha, Bairro São José CEP Canoas RS RESUMO 29 de Novembro de 2010 Este trabalho tem como objetivo apresentar o projeto de uma ferramenta de software capaz de gerar códigos fontes (classes) na linguagem C#.NET, tendo como objetivo principal automatizar a criação da camada de negócio de uma aplicação arquitetada em três camadas (ex. MVC), bem como gerenciar as regras de negócios implementadas nas entidades (classes) mapeadas (objeto-relacional), baseando-se em templates pré-definidos para geração das classes, onde suas estruturas são constituídas por tags conhecidas pela ferramenta, assim possibilitando a importação e geração do código fonte. Palavras-chave: Ferramenta Case, Geração de Código; MVC; ORM. ABSTRACT Tool Case (Code Generator. NET) This paper aims to present the design of a software tool capable of generating source code (classes) in C #. NET, with the main objective to automate the creation of the business layer of an application architected in three tiers (exp. MVC) as well as manage the business rules implemented in the entities (classes) map (object-relational), based on predefined templates to generate the classes, where its structures are composed of tags known to the tool, thus allowing the importation and generation source. Key-words: MVC; ORM; Tool Case, Code. 1 INTRODUÇÃO Este trabalho trata-se do projeto de uma ferramenta case para a geração de código fonte na linguagem C#.NET. Sua finalidade principal é a criação, manipulação e geração da camada de negócio das aplicações com layouts e padrões pré-definidos por templates, tendo como missão diminuir o esforço no desenvolvimento de aplicações, a ferramenta possui como uma de suas principais característica o mapeamento objeto relacional (ORM - mapear tabelas do banco de dados em classes) (AMBLER, 2003), para isso é utilizado uma estrutura de banco de dados do tipo SQL Server já existente pela aplicação a ser recriada. Atualmente em projetos de software três camadas (MVC), grande parte do tempo gasto para o desenvolvimento da aplicação é com a criação manual da camada de negócio, isso inclui a projeção da arquitetura interna das classes, bem como a programação das regras de negócios encapsuladas nas mesmas. Para alcançar o objetivo principal, será necessário projetar a automatização do processo de criação da camada de negócio, assim criando uma estrutura de dados capaz de armazenar e manipular o mapeamento do Modelo ER da base de dados que será importada. Para isso serão criadas telas de cadastros e manipulação de objetos (classes), cadastros e manipulação de regras de negócio (procedimentos), cadastros de templates arquiteturais para as classes a serem geradas, geração e importação de objetos. Uma das características diferenciais que a ferramenta irá oferecer está a geração de classes baseadas em templates definidos pelo usuário utilizando tags pré-definidas pela ferramenta, o que irá permitir a flexibilidade de geração de classes em variadas arquiteturas. 1.1 Motivação Este trabalho surgiu diante das necessidades de flexibilidade e custo das atuais ferramentas CASE hoje encontradas no mercado deste segmento. Com o crescimento do mercado de desenvolvimento de software, as empresas do setor têm demonstrado um grande interesse em alternativas que sirvam como diferencial competitivo, e é aí que entra a utilização de uma Ferramenta CASE, oferecendo recursos que podem minimizar o tempo de desenvolvimento de um software, mantendo o alto nível de qualidade.

2 Algumas empresas não se sentem confortáveis em utilizar uma Ferramenta Case, devido o possível grande impacto que ela pode gerar em suas rotinas de desenvolvimento de software, pois, por serem um conjunto integrado de ferramentas que podem atuar em todas as fases de desenvolvimento de software, tem um impacto considerável, exigindo novas metodologias. Porém, ainda existe outro lado, ou seja, as vantagens em se utilizar uma Ferramenta Case, que é o aumento da produtividade, melhor qualidade, diminuição dos custos, melhor gerenciamento e a grande facilidade de manutenção. Para as empresas que adotam uma Ferramenta Case, os principais objetivos são os resultados que podem ser mensuráveis até com certa facilidade, mas com muita disciplina. Para tanto, é necessário um eficiente estudo de viabilidade para implementação de uma Ferramenta Case. Diante deste cenário, em que empresas ainda relutam em adotar uma Ferramenta Case como solução em desenvolvimento de Sistemas, mesmo com o mercado exigindo novas técnicas em automação, as Ferramentas CASE se mostram como alternativa para empresas, desenvolvedores e, até mesmo, estudantes, impondo seus diferenciais em relação a outros tipos de ferramentas de desenvolvimento existentes no mercado. 1.2 Objetivo O objetivo deste trabalho é desenvolver uma ferramenta geradora de código fonte compacta, otimizada e flexível, que viabilize especificamente a geração da camada de negócio das aplicações, onde serão encapsuladas as regras pertinentes a mesma, tendo como base para espelhamento da estrutura de classes um modelo de dados SQL Server já existente. Diante da evolução do editor Visual Studio e do framework.net, há pontos em que o próprio editor na atualidade já viabiliza, como por exemplo a facilidade da construção de variados tipos de interfaces funcionais com reutilização de códigos e construção de objetos reutilizáveis, fazendo uso do conceito de herança entre os mesmos. O código fonte gerado na linguagem C#.NET terá sua estrutura determinada através de templates pré configurados contendo tags conhecidas pela ferramenta geradora, assim proporcionando flexibilidade de estruturação para qualquer padrão. Em função de estar sendo utilizado uma linguagem de saída orientada a objetos e o conceito da arquitetura MVC, o foco desta camada será a real implementação das regras de negócio a qual a aplicação deverá respeitar. 2 Referencial Teórico Este capítulo apresenta um breve referencial teórico sobre os temas envolvidos neste trabalho, desde as vantagens e desvantagens da utilização de uma Ferramenta Case até as metodologias envolvidas para o desenvolvimento da ferramenta em questão. Ferramentas CASE (do inglês Computer-Aided Software Engineering) é uma classificação que abrange todas ferramentas baseada em computadores que auxiliam atividades de engenharia de software, desde análise de requisitos e modelagem até programação e testes. Podem ser consideradas como ferramentas automatizadas que tem como objetivo auxiliar o desenvolvedor de sistemas em uma ou várias etapas do ciclo de desenvolvimento de software (WEINRICH, 1999). Vantagens do uso de ferramentas CASE: Qualidade no produto final; Produtividade; Agilizar o tempo para tomada de decisão; Menor quantidade de códigos de programação; Melhoria e redução de custos na manutenção; Agilidade no retrabalho do software. Desvantagens do uso de ferramentas CASE: Incompatibilidade entre ferramentas; Treinamento para utilização.

3 2.1 Geradores de Código Fonte Um gerador de código é um ferramenta desenvolvida para gerar automaticamente código fonte de alto nível em linguagens de programação como.net, C++, C#, Java e outros. Com a evolução das tecnologias e paradigmas de desenvolvimento, foi surgindo a necessidade de automatização de fases de desenvolvimento de sistemas, uma delas é o mapeamento objeto-relacional ou ORM (AMBLER, 2003), onde é possível criar, a partir de um banco de dados relacional, objetos de acesso à base de dados, onde tabela são representados como classes correspondentes, restando à equipe de desenvolvimento implementar regras de negócio e especialização das funcionalidades. Vantagens de um gerador de código fonte (DOLLARD,2004), são: Padronização de Código: códigos gerados através de uma ferramenta case obedecem uma padronização, o que implica diretamente na qualidade de legibilidade, diminuindo a margem de possíveis erros decorrentes de diferentes formas de implementação. Eficiência: códigos gerados dentro de um padrão conhecido e testados aumentarão o índice de eficiência de suas funcionalidades uniformes. Produtividade: sendo capaz de realizar a construção de funcionalidades das aplicações de maneira mais eficiente e segura, garantindo também a diminuição dos custos de projeto. Sendo assim possibilitando que o foco dos desenvolvedores estejam voltados mais para as regras de negócios a serem implementadas nas entidades (classes). Abstração: por possuírem uma interface funcional, abstraem a interação com o modelo de dados, ou seja, no momento que o modelo sofrer qualquer alteração, as entidades pertinentes serão alteradas de acordo com suas entradas ou saídas. 2.2 Modelos Arquiteturais Padrões de projetos são soluções para problemas que alguém um dia teve e resolveu aplicando um modelo que foi documentado e que você pode adaptar integralmente ou de acordo com necessidade de sua solução. Será abordado neste tópico o padrão de modelo MVC, que tem por objetivo básico separar a lógica de negócio da apresentação (MACORATTI.NET, 2010). O paradigma orientado a objetos está intimamente ligado á arquitetura que foi utilizada para construir a ferramenta. A tendência indica que esta arquitetura estará baseada na organização da aplicação em camadas e na observação dos padrões utilizados pelo mercado. A organização em camadas é a chave para a independência entre os componentes, em conseqüência deste fato é que irão ser atingidos os objetivos de eficiência, escalabilidade, reutilização e facilidade de manutenção. O termo camada pode significar uma separação física ou uma camada lógica, no contexto que será aplicado, para produção de software foi considerado camada como uma referência a separação de responsabilidades (CELEPAR, 2010) Aplicações Monolíticas Primeiramente os softwares possuíam uma característica monolítica, ou seja, suas camadas eram encapsuladas em um mesmo módulo, o que acarretava em um extenso código de manutenção. A entrada do usuário, verificação, lógica de negócio e acesso a banco de dados estava presente em um mesmo lugar (MACORATTI.NET, 2010). A Figura 1 ilustra como é definido este tipo de aplicação Aplicações em duas camadas Figura 1 - Arquitetura com uma camada ou monolítica. A necessidade de compartilhar a lógica de acesso a dados entre vários usuários simultâneos fez surgir as aplicações em duas camadas. Nesta estrutura a base de dados foi colocada em uma máquina específica, separada das máquinas que executavam as aplicações. Nesta abordagem tem-se aplicativos instalados em estações clientes contendo toda a lógica da aplicação. Um grande problema neste modelo é o

4 gerenciamento de versões, pois para cada alteração os aplicativos precisam ser atualizados em todas as máquinas clientes (MACORATTI.NET, 2010). A Figura 2 ilustra como é definido este tipo de aplicação Aplicações três camadas Figura 2 - Arquitetura com duas camadas. Neste modelo a lógica de apresentação esta separada em sua própria camada lógica e física. A separação em camadas lógicas torna os sistemas mais flexíveis permitindo que as partes possam ser alteradas de forma independente. As funcionalidades da camada de negócio podem ser divididas em classes e essas classes podem ser agrupadas em pacotes ou componentes reduzindo as dependências entre as classes e pacotes, podem ser reutilizadas por diferentes partes do aplicativo e até por aplicativos diferentes. O modelo de 3 camadas tornou-se a arquitetura padrão para sistemas corporativos com base na Web. O paradigma orientado a objetos ajuda a promover a modularidade pois os objetos encapsulam seus dados (propriedades, métodos e estados) e oferecem funcionalidades através de seus métodos. Projetando-se de forma adequada os objetos podem ter reduzidas as dependências entre si ficando assim fracamente acoplados e serão mais fáceis de manter e evoluir. A Figura 3 ilustra como é definido este tipo de aplicação. 2.3 O Padrão MVC Figura 3 - Arquitetura com três camadas. O modelo de três camadas fisícas ( 3-tier ) divide um aplicativo de modo que a lógica de negócio resida no meio das três camadas físicas. Isto é chamado de camada física intermediária ou camada física de negócios. A maior parte do código escrito reside na camada de apresentação e de negócio. A arquitetura MVC - (Model, View e Controller) fornece uma maneira de dividir a funcionalidade envolvida na manutenção e apresentação dos dados de uma aplicação. A arquitetura MVC não é nova e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada, processamento e saída para o modelo de interação com o usuário. Usando o padrão MVC fica fácil mapear esses conceitos no domínio de aplicações Web multicamadas. O MVC baseia-se em 2 princípios fortes. - O Controller despacha as solicitações ao Model; A View observa o Model. A Figura 4 ilustra como é efetuada a comunicação entre as camadas. Modelo (Model): Esta camada tem a função de consistir e validar as regras de negócio pertinentes à aplicação, ou em específico da entidade que a mesma representa. Muitas aplicações usam um mecanismo de armazenamento persistente (como banco de dados) para armazenar dados. MVC não cita especificamente a camada para acesso aos dados, porque subentende-se que estes métodos estariam encapsulados pelo Model. Visualização (View): "Renderiza" o model em uma forma específica para a interação, geralmente uma interface de usuário. Controle (Controller): Processa e responde a eventos, geralmente ações do usuário, e pode invocar alterações no model. É lá que é feita a validação dos dados e também é onde os valores postos pelos usuários são filtrados.

5 2.4 Frameworks Figura 4 - Interação entre as três camadas. Um framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. É uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Tipicamente, um framework pode incluir programas de apoio, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes do seu projeto. Em outras palavras, um framework é uma parte de um programa para resolver determinado problema, seja ela uma camada de um padrão de projetos (acesso a dados), controles externos (segurança, logs de ações) ou mesmo ser um ambiente de desenvolvimento como é o caso do.net (MATTSSON, 2000). As vantagens de uso de framework são: Modularização de um projeto, pois cada framework será uma peça do todo. Reutilização: interfaces estáveis presentes nos frameworks aumentam o potencial de reutilização, pela definição de componentes abstratos que podem ser redefinidos para criar novas aplicações. Extensibilidade: um framework possui chamadas explícitas, permitindo a extensão de interfaces estáveis. 2.5 Reflexão (Reflection) Reflexão é uma característica disponível nas linguagens de programação Microsoft.NET assim como na plataforma Java. Esta permite durante a execução, um programa se auto-examinar, e manipular suas propriedades internas. Por exemplo, é possível uma classe Java obter o nome de todos os seus métodos e mostrá-los. A habilidade de examinar e manipular uma classe Java de dentro de si mesma não é vista como uma boa prática, mas em outras linguagens de programação essa característica simplesmente não existe. Por exemplo, não é possível obter informações sobre funções definidas dentro de programas escritos em linguagem VB, C++ ou JScript (MSDN, 2010). A reflexão é útil nas seguintes situações: Quando você precisa acessar atributos nos metadados do seu programa Para analisar e instanciar tipos em um assembly. Para a construção de novos tipos em tempo de execução. Usar classes em System.Management.Instrumentation. Para realizar ligação tardia, acessar métodos em tipos criados em tempo de execução. Consulte o tópico carregamento dinâmico e Usando tipos. 3 FERRAMENTAS CASE EXISTENTES Abaixo são apresentadas breves descrições de duas ferramentas CASE, populares, que são o Genexus produzida pela ARTech (GENEXUS,2010) e o Apyon Studio produzida pela Apyon (APYON,2010). Ambas possuem características muito similares tendo como objetivo automatizar aquilo que se pode automatizar no processo de desenvolvimento de software corporativo.

6 As ferramentas CASE que serão apresentadas são robustas no que diz respeito á produção em alta escala de sistemas corporativos do tipo ERP por exemplo, possuem uma característica em comum que é a geração de código em uma arquitetura pré-definida pela ferramenta, desde a camada de interface até a camada de dados, o que de uma certa forma limita a aplicação resultante, tornando um tanto restrita no que diz respeito ao desenvolvimento de interfaces complexas, que exigem um alto esforço de customizações para facilitar a interação do usuário. Outra característica em comum é o alto custo de aquisição, por conseqüência de sua alta gama de funcionalidades que tem por objetivo automatizar o máximo de esforço exigido pelas equipes de desenvolvimento. 3.1 Genexus É uma ferramenta de desenvolvimento de software criada pela empresa uruguaia ARTech, baseada em conhecimento e orientada ao desenvolvimento de aplicações corporativas, tanto para o ambiente WEB quanto GUI. Podemos dizer que Genexus é a primeira ferramenta inteligente para criar, desenvolver e manter, de forma automática, aplicações multiplataforma de missão crítica, que facilmente se adaptam às mudanças do negócio e às novas possibilidades geradas pela evolução tecnológica. O Genexus trabalha com o conhecimento contido nas visões dos usuários. Ele captura tal conhecimento e o sistematiza em uma base de conhecimento puro, que nos permite gerar aplicações para múltiplas arquiteturas e plataformas, ou seja, o Genexus possui uma gama de possibilidades no que diz respeito a linguagem final da aplicação e ao seu banco de dados. A idéia básica do Genexus é automatizar tudo aquilo que for automatizável. Baseado nos requerimentos dos usuário, realiza o projeto, geração e manutenção automáticas da base de dados e dos programas da aplicação. Com isso, permite ao analista ou desenvolvedor se concentrar no negócio e focar toda sua atenção naquilo que um programa não poderá fazer: entender os problemas do usuário. Além disso, é possível reduzir significativamente os custos de manutenção e os tempos de desenvolvimento dos sistemas (GENEXUS, 2010). A Figura 5 ilustra a interface de gerenciamento da ferramenta Genexus. 3.2 Apyon Studio Figura 5 - Ferramenta Genexus O Apyon Studio é um ambiente inovador de desenvolvimento de software que estende e consolida as funcionalidades e benefícios das tradicionais ferramentas CASE. Além de otimizar a especificação, automatiza a geração automática de aplicativos e permite a migração de sistemas entre diferentes tecnologias. Isso é possível devido à independência tecnológica obtida com a utilização de um repositório central onde toda a inteligência do sistema é armazenada - o Apyon Metamodel. O Apyon Studio foi desenvolvido para suportar ambientes de desenvolvimento de sistemas complexos, que necessitam ser implementados de forma componentizada. As features exclusivas do Apyon Studio e o seu ambiente Wizard

7 tornam transparente a complexidade da arquitetura, aumentando a produtividade e a qualidade dos sistemas desenvolvidos (APYON, 2010). Ao utilizar o Apyon Studio, as especificações de projeto feitas em uma ferramenta CASE são importadas para o Apyon Metamodel, deixando de ser meramente documentacionais, pois formam a base para a geração automática de código-fonte. A seguir, o analista passa a especificar as interfaces de usuário e os componentes de negócio, guiado por Wizards, evitando erros e inconsistências referenciais, aumentando a qualidade final do software. Feitas as especificações, o Apyon Studio permite a geração automática das telas de usuário e das estruturas principais dos componentes de negócio. As telas geradas são completamente funcionais, com os métodos de inclusão, alteração, consulta, exclusão e toda a camada de segurança e acesso. Isso feito, basta enviar os componentes de negócio para serem programados e depois importar o código-fonte para o Apyon Metamodel, consolidando todo o "código genético" do software aplicativo desenvolvido. Devido à alta integração entre fases e ferramentas de desenvolvimento, não há retrabalho e a documentação mantém-se atualizada, pois o analista será conduzido a proceder as modificações dos sistemas na ferramenta CASE e não diretamente no código-fonte como acontece nos processos tradicionais. A Figura 6 ilustra a interface de gerenciamento da ferramenta Apyon Atudio SOLUÇÃO PROPOSTA Figura 6 - Ferramenta Apyon Studio 4.0 Para o desenvolvimento da ferramenta em questão, será efetuado um levantamento de requisitos, onde serão definidos de uma forma macro todas as funcionalidades necessárias para atender as necessidades, após será feito o uso de uma metodologia baseada em UML 2.0, o que permite a estruturação, detalhamento e especificação dos requisitos levantados na fase de análise do projeto. 4.1 Metodologia A metodologia definida para o desenvolvimento deste trabalho envolverá conhecimentos já adquiridos e constituirá a base teórica do projeto. Portanto, será utilizada a linguagem UML 2.0 com seus diagramas específicos, ou seja, Diagramas de Casos de Uso, Diagramas de Seqüência e Diagramas de Classe. Como as bases de dados utilizadas no desenvolvimento deste trabalho são relacionais o emprego de Diagrama ER se faz necessário para a sua devida modelagem. Diagramas de Casos de Uso (BOOCH, 2006) - A finalidade do diagrama de casos de uso é apresentar um tipo de diagrama de contexto, através do qual pode-se compreender rapidamente quais são os atores externos de um sistema e as maneiras principais, segundo as quais ele utiliza.

8 Diagrama de Sequência (BOOCH, 2006) - é o diagrama de interação que enfatiza a ordem temporal das trocas de mensagens. Um objeto é mostrado como uma caixa na parte superior de uma linha tracejada vertical chamada de linha de vida que representa a vida do objeto durante a interação, cada mensagem é representada por uma flecha entre as linhas de vida de dois objetos. A ordem na qual estas mensagens ocorrem é mostrada da parte superior a parte inferior. Diagrama de Classe (BOOCH, RUMBAUGH, JACOBSON, 2006) - Neste diagrama apresenta se as classes e as relações entre ocorrências e classes. O diagrama de classes mostra atributos e operações de uma classe e as restrições na maneira com que os objetos são conectados. Diagrama ER (CHEN, 1990) - Obrigatoriamente, o sistema necessitará de um banco de dados para organizar informações e dados. Será utilizado um banco de dados relacional e sua modelagem ER que demonstra os relacionamentos das tabelas que compõe o banco. A ordem cronológica das fases do projeto dar-se-á através das seguintes fases: análise, projeto e desenvolvimento onde será utilizado a UML como ferramenta de transição de conhecimento. 4.2 Descrição dos Requisitos Conceituais Cadastro de Projetos: Este cadastro tem como objetivo manter os dados referentes ao cadastro de projetos onde as entidades estarão vinculadas, sendo necessário os seguintes atributos: descrição do projeto, ativo ou inativo, tipo business e ou provider e dados para conexão da base de dados onde se encontra o modelo existente que são: servidor, banco de dados, usuário e senha. Importação de Entidades e Tabelas: Esta importação tem como objetivo importar as tabelas do banco de dados, as quais representarão as entidades do modelo (Objeto-Relacional), sendo necessário os seguintes atributos: descrição da tabela, gerar provider (S/N), descrição da coluna, tipo da coluna, tamanho da coluna, nulo (S/N), seqüencial (S/N) e identação (S/N). Cadastro de Templates: Este cadastro tem como objetivo manter os dados referentes aos templates (arquivos.tmp), utilizados para gerar o código fonte dos objetos, sendo necessário os seguintes atributos: descrição do template e tipo de template business e\ou provider. Cadastro de Usuários da ferramenta: Este cadastro tem como objetivo manter os dados referentes aos usuários que utilizarão a ferramenta, o mesmo deverá manter permissões a nível de projeto e tipo de projeto, sendo necessário os seguintes atributos: nome do usuário, ativo (S/N), administrador (S/N), login, senha e projetos vinculados (permissões). Cadastro de Tipos de Dados: Este cadastro tem como objetivo manter os dados referentes aos tipos utilizados pela linguagem destino nas propriedades dos objetos, sendo necessários os seguintes atributos: descrição do tipo, permite nulo (S/N), permite array (S/N), tipo DB (meta-dado equivalente ao tipo do database) e declaração do metadado em C#. Gerenciador de Entidades: Este gerenciador deverá expor para o usuário a possibilidade de manipular os objetos do projeto tanto quanto sua regras de negócio, possibilitando que o mesmo exclua, insira e altere suas estruturas. Importador de Código: A importação deverá respeitar as Tags pré-definidas nos fontes anteriormente gerados, ou seja, o conteúdo inserido durante a fase de codificação das regras de negócio terá de ser importado para base de dados antes de qualquer geração executada pela ferramenta, o que garantirá que em uma posterior geração seja alterado apenas as estruturas dos métodos do objeto e preservado o código produzido pelo desenvolvedor. Gerador de Código: A geração de fontes deverá se orientar através das seguintes Tags que deverão formar os identificadores variáveis nos arquivos.tmp.

9 4.2.1 Levantamento de Dados Embora a maioria das ferramentas CASE que existem no mercado sejam robustas, com a evolução do framework.net e do editor Visual Studio, a criação de interfaces em projetos.net se tornou uma tarefa de baixa complexidade em conseqüência das facilidades oferecidas pelo conceito de orientação à objetos e da tecnologia. Devido a necessidade cada vez maior da criação de aplicações de interfaces com requisitos de performance variada de projeto para projeto, o que dificulta a padronização na geração das mesmas, surgiu então a necessidade de criar um protótipo capaz de gerenciar e gerar códigos na linguagem C#, mais especificamente da camada de negócio da aplicação. Para o levantamento de dados da ferramenta foram observadas as seguintes questões: Como será feito o controle de projetos? Haverá um cadastro de projetos, onde os mesmos possuirão informações para conexão das bases de dados o qual foi originado o seu mapeamento relacional. Como se dará o mapeamento objeto relacional (ORM) das classes? Tendo posse dos dados de conexão da base SQL Server de origem, a ferramenta oferecerá uma interface no qual estará exposta a lista de tabelas, juntamente com seus atributos, onde o usuário irá poder selecionar quais entidades serão mapeadas pela ferramenta. De que forma o usuário irá gerenciar as regras de negócio da aplicação de destino? As regras de negócio da aplicação destino, serão estruturadas através de uma interface onde a ferramenta considera a validação conforme os eventos de antes de depois das ações de manipulação dos dados na base de dados (Insert, Update e Delete), em um linguagem técnica, as mesmas serão consideradas como procedimentos, tendo como parâmetros de entrada de dados os atributos pertinentes a classe na qual estão inseridos e contando ainda com a possibilidade de adição de parâmetros customizados. Como o código gerado será adaptado a uma arquitetura já existente? Por possuir a característica de geração de código configurável, a ferramenta efetuará a geração de código baseando-se em templates pré-definidos. Estes templates serão montados com códigos estáticos e dinâmicos, os códigos dinâmicos serão configurados através de Tags conhecidas pela ferramenta e os códigos estáticos consistirá na linguagem C#.NET o qual definirá a estrutura do código de saída. Como será mantida a integridade de código criado nas regras de negócio no caso de regeração das classes? A ferramenta possuirá um sistema de importação e geração de código, sendo que para distinguir quais códigos deverão ser mantidos em uma futura re-geração, os mesmos farão o uso de Tags de contexto delimitando início em fim do bloco de código. Os projetos poderão ser manipulados por todos os usuários? Não, a ferramenta possuirá um cadastro e um controle de permissões de usuários, o qual cada um terá de ser relacionado como participante do projeto para possui acesso a sua estrutura na ferramenta Análise dos Dados Tendo como base os requisitos levantados, o fluxo de dados da ferramenta iniciará com a criação do projeto e importação das entidades escolhidas pelo usuário, em seguida serão criadas as regras de negócios pertinentes à entidade, tendo as ordens de suas execuções conforme suas prioridades para a entidade, dentro disso serão configurados seus parâmetros de entradas, métodos e funções de acordo com suas utilidades pela regra de negócio. No que diz respeito à usabilidade, será projetado um menu horizontal dividido por funcionalidade, onde mesmo terá seus acessos limitados pelo perfil do usuário logado na ferramenta. As interfaces de manipulação de objetos, como por exemplo, o gerenciamento das entidades, importação e exportação de

10 classes, serão estruturados através de uma treeview, o que facilitará a percepção e visualização das estruturas definidas na ferramenta pelos usuários. Os templates da ferramenta deverão ser dinâmicos, ou seja, serão divididos por funções, por exemplo: procedimentos, funções, includes, etc... Para isto será ser disponibilizado um cadastro, onde o usuário irá informar para ferramenta o caminho físico, na qual futuramente será utilizado pela rotina de exportação. Para orientar os usuários quanto à montagem dos templates, deverá constar na documentação as Tags interpretadas pela ferramenta com exemplos práticos de suas aplicações. 4.3 Projeto Conceitual O projeto conceitual da ferramenta consiste em especificar em uma visão macro da arquitetura definida para a implementação da ferramenta, de forma que a mesma possa atender o objetivo de viabilizar a automatização na geração de código fonte a partir de uma determinada estrutura de banco de dados. Para expor o projeto será feito uso do Diagrama E-R e da UML, onde serão utilizados os diagramas de Caso de Uso, Classe, Seqüência e Atividades Requisitos Funcionais A ferramenta é constituída de requisitos funcionais que estão divididos em cadastros gerais e manipulação de fontes. Os cadastros da ferramenta são responsáveis por abranger tanto os dados essênciais para as gerações dos códigos-fontes, quanto para a questão de segurança dos projetos. No que diz respeito à segurança dos dados trabalhados dentro da ferramenta, estão sendo previstos duas classificações perfis de usuários que são: Administrador: possui acesso total a todos os recursos e projetos. Operador: possui acesso restrito a algumas funcionalidades de cadastros por default, tendo acesso apenas a projetos mediante autorização do perfil Administrador. A figura 7 representa o diagrama de casos de uso dos usuários interagindo com a ferramenta. uc Ações Cadastros Manipulação de Fontes Manter Usuários Manter Componente (from Cadastros) «extend» Manter Tipos Administrador Manter Componentes «extend» Manter Regras (from Cadastros) (from Actors) «extend» Manter Templates Manter Campos de Regras (from Cadastros) Manter Projetos Operador Geração e Importação «extend» Opcões (from Actors) (from Cadastros) Geração (from Business Rules) Manter Tabelas Importação (from Cadastros) (from Business Rules) Figura 7 - Diagrama de Casos de Uso.

11 Abaixo é descrito uma breve definição de cada caso de uso exibido na figura 7: Manter Componentes: Este caso de uso tem como objetivo manter o gerenciamento dos componentes e regras de negócios para cada tipo de projeto através de uma treeview. Geração e Importação: Este caso de uso tem como objetivo manter a geração e importação dos códigos-fontes constituídos a partir da ferramenta para cada tipo de projeto através de uma treeview. Manter Campos de Regras: Este caso de uso tem como objetivo manter os dados referentes aos campos das regras de negócios vinculadas aos componentes dos projetos. Manter Componentes: Este caso de uso tem como objetivo manter os dados referentes aos componentes de projetos. Manter Regras: Este caso de uso tem como objetivo manter os dados referentes às regras de negócios vinculadas aos componentes dos projetos. Opcões: Este caso de uso tem como objetivo manter os dados referentes às configurações utilizadas para gerar ou importar dados para a ferramenta. Manter Projetos: Este caso de uso tem como objetivo manter os dados referentes ao cadastro de projetos aos quais as entidades estarão vinculadas. Manter Tabelas: Este caso de uso tem o objetivo de importar as tabelas do banco de dados, as quais representarão as entidades do modelo. Manter Templates: Este caso de uso tem como objetivo manter os dados referentes aos templates utilizados para gerar o código fonte dos objetos. Manter Tipos: Este caso de uso tem como objetivo manter os dados referentes aos tipos utilizados nas propriedades dos objetos. Manter Usuários: Este caso de uso tem como objetivo manter os dados referentes aos usuários que utilizarão a ferramenta, o mesmo deverá manter permissões em nível de projetos e tipos de projetos Modelagem ER O diagrama E-R da ferramenta exibe a modelagem de banco de dados aplicada para manter a massa de dados utilizada para a manipulação de dados de cadastros, configurações e componentes, juntamente com os conteúdos absorvidos no momento da importação de códigos inseridos nas classes geradas previamente pela ferramenta. A figura 8 representa o diagrama de ER da ferramenta, expondo suas entidades, atributos e seus relacionamentos.

12 Figura 8 - Diagrama ER Arquitetura A ferramenta possui uma arquitetura 3 camadas, tendo como padrão o MVC (Model View Controller), para isso a aplicação foi dividida em 3 projetos distintos. Cada projeto possui suas características próprias conforme a definição do padrão aplicado: Tool: Este projeto representa a camada de interface da aplicação (View do padrão MVC), é responsável por tratar apenas das interfaces da ferramenta, esta camada tem como característica principal a implementação literal dos Casos de Uso definidos no projeto de usabilidade. Tool.Entity: Este projeto representa a camada de modelo (Model do padrão MVC), é responsável por tratar acesso à dados por intermédio das entidades referentes ao modelo de dados (ORM), sua principal função na arquitetura é a persistência e reflexão (reflection) dos dados contidos na base de dados, onde cada classe se refere a uma tabela do banco de dados. A figura 9 representa o diagrama de classes da ferramenta (camada modelo), expondo suas classes, atributos e seus relacionamentos. Tool.Business: Este projeto representa a camada de negócio da aplicação (Controller do padrão MVC), esta camada tem a função de encapsular todas as regras de negócio pertinentes à entidade em questão. Por ser a camada intermediária entre a interface e o modelo de dados, tem um papel fundamental dentro da arquitetura, pois nela são tratados toda e qualquer regra antes ou após as operações de CRUD (Create, Read, Update e Delete). Também nesta camada estão localizadas as consultas (select s), o qual provém grupos de dados retornados da base de dados conforme parâmetros previamente definidos.

13 Tool.Gen: Este projeto é responsável pela geração e importação de dados contidos nas classes geradas pela ferramenta, é neste projeto que está contido toda a lógica de criação e manipulação de fontes, baseando-se nas configurações e padrões dos templates definidos pelo operador da ferramenta. Figura 9 - Diagrama de Classes (Camada de Modelo). Como exemplo de relação entre camadas, foi utilizado a funcionalidade de Cadastro de Projetos, onde a camada de Interface (classe frmprojeto) implementa o caso de uso Manter Projetos e instancia a camada de Business (classe ProjetosBUS), passando o conjunto de dados a serem persistidos para entidade Projetos, após podendo ser executado um de seus métodos de CRUD (Create, Read, Update e Delete). A figura 10 representa a interação entre as camadas.

14 sd Relacao entre camadas Tool::frmProjetos Camada de Interface Tool.Business::ProjetosBUS Camada de Negócio Tool.Entity::Projetos Camada de Modelo (ORM) Operador Salvar() Adicionar(Projetos) AddProjetos() Atualizar(Projetos) SaveChanges() Excluir() Excluir(Projetos) DeleteObject() SelecionaProjetos() CarregaDrop() :DataTable SelectProjetos() Figura 10 Interação entre camadas. Pelo fato de todas as classes de negócio da camada de Controller, herdarem da classe BaseBLL e a mesma possuir como definição em seu construtor a classe base que constituem as classes Model, ao chamar o construtor da classe ProjetosBUS, poderá ser informado a classe da entidade correspondente, neste caso a classe Projetos. Este tipo de implementação é conhecida dentro do Framework.NET como Generic s, pois isto nos possibilita que a classe ProjetosBUS seja especificamente a classe de negócio da entidade Projetos. A figura 11 representa as camadas da ferramenta. class Projetos Manter Projetos (from Cadastros) Tool::frmProj etos - pidprojetos: Integer + objprov: Provider.Provider (()) - btsair_click(system.object, System.EventArgs) - btsalvar_click(system.object, System.EventArgs) - btnovo_click(system.object, System.EventArgs) - CarregaProjetos() - frmprojetos_load(object, System.EventArgs) - cboprojeto_selectedindexchanged(object, System.EventArgs) - cboprojeto_selectedvaluechanged(object, System.EventArgs) - btexcluir_click(system.object, System.EventArgs) 1 1 Tool.Business::Proj etosbus Global.System.Data.Objects.DataClasses.EntityObject Tool.Entity::Proj etos - _IdProjetos: Integer - _DescrSist: String - _FlgAtivo: String - _FlgTipo: String - _Versao: String - _Servidor: String - _DB: String - _PWD: String - _USR: String «property» + IdProjetos() : Integer + DescrSist() : String + FlgAtivo() : String + FlgTipo() : String + Versao() : String + Servidor() : String + DB() : String + PWD() : String + USR() : String + Parametros() : Global.System.Data.Objects.DataClasses.EntityCollection(Of Parametros) + Tabelas() : Global.System.Data.Objects.DataClasses.EntityCollection(Of Tabelas) + Vinculos() : Global.System.Data.Objects.DataClasses.EntityCollection(Of Vinculos) T:System.Data.Obj ects.dataclasses.entityobj ect Tool.Business::BaseBLL + New() + New(Tool.Entity.Projetos) ~ New(DBEntityContext) + New(DBEntityContext, Tool.Entity.Projetos) ~ AddObjetct() + ListarUM(Integer) : Tool.Entity.Projetos + ListarUM(Integer, DBEntityContext) : Tool.Entity.Projetos + GetProjetoByTipo(Integer, String, DBEntityContext) : Tool.Entity.Projetos + GetProjetoByTipo(Integer, String) : Tool.Entity.Projetos + CarregaDrop() : DataTable + GetProjetosBusiness() + GetTablesByConnProjeto(Tool.Entity.Projetos) : DataTable - _dbentity: DBEntityContext - _entity: T + New() + New(T) ~ New(DBEntityContext) ~ New(DBEntityContext, T) ~ Contextualize(BaseBLL) + Adicionar() + Atualizar() + Excluir() + Salvar() ~ RolesBeforeInsert() ~ RolesAfterInsert() ~ RolesBeforeUpdate() ~ RolesAfterUpdate() ~ RolesBeforeDelete() ~ RolesAfterDelete() ~ AddObjetct() «property» ~ DBEntity() : DBEntityContext + Entity() : T Figura 11 Camadas.

15 A estrutura de tratamento das regras de negócio da ferramenta, está definida na classe base BaseBLL. Para um melhor reaproveitamento de código e padronização, foi criado métodos virtuais, estes métodos serão implementados nas classes que herdarão da classe BaseBLL, ou seja, onde será codificado as regras específicas a cada entidade em questão. Para métodos específicos de persistência, antes e depois, são chamados métodos virtuais referentes a cada operação o qual garantirão que as regras sempre serão executadas ao disparar o CRUD (Create, Read, Update e Delete). A figura 12 ilustra o trecho de código do método de Atualizar da classe BaseBLL Geração e Importação Figura 12 Método de Atualizar da classe BaseBLL. A geração dos fontes tem como regra a configuração dos templates pelo usuário, para isso é utilizado tags específicas que indicam onde serão escritos os conteúdos automatizados nas classes, por exemplo: Para indicar a nomenclatura da classe é utilizada a tag <ClassName>, para incluir o conteúdo do template de propriedades da classe usa-se <! Property>. A figura 13 ilustra como exemplo o template ClassBusiness.tmp. Figura 13 ClassBusiness.tmp como exemplo de Template.

16 A importação das classes tem como característica identificação das tags <Custom:<region> [R:<ID>:C#]></Custom:<region>>, nesta tag no momento de geração, a ferramenta substitui a tag <ID>, pelo identificador do registro da regra correspondente no banco de dados, o que permite que a ferramenta associe o fonte à regra em questão. Pelo fato da ferramenta se basear em templates para geração de fontes, possibilita que o código gerado seja totalmente definido pelo usuário. A figura 14 demonstra toda a interação entre as classes no momento da geração e importação dos códigos fontes Usabilidade Figura 14 Rotina de Geração e Importação de Código Fonte A ferramenta foi projetada para oferecer ao usuário uma interface amigável onde o mesmo tenha o mínimo de interação possível para alcançar seu objetivo, pelo fato do objetivo principal ser a automatização na criação de classes, para um melhor gerenciamento e padronização de código, as funcionalidades principais da ferramenta se dividem em Cadastros e Ações, isto envolve a criação e configuração do projeto, mapeamento das entidades, formatação dos componentes e configuração de templates. A figura 14 representa o diagrama de atividades onde são exibidas todas interações e suas dependências para o fornecimento dos dados necessários para utilização da ferramenta.

17 act Atividade Login Manter Tabelas Manter Templates Manter Tipos Possui Projeto? [Não] Manter Projetos [Sim] Ações Cadastros Selecionar Projeto Possui Usuário? Configurar Projeto Manter Usuários [Não] Possui Mapeamento? [Sim] [Não] [Sim] [Não] Vincular Usuários Importar Estrutura DB Configurar Estrutura DB Fim Fim Manter Componentes Geração\Importação Componente Nativo? Possui Entidade? Selecionar Componentes [Não] [Sim] [Sim] Opções (Configuração) Criar/Alterar Componete Gerar Importar Manter Regras Manter Campos de Regras «centralbuffer» Código Fonte Fim Fim 5 EXEMPLO DE USO Figura 14 - Diagrama de Atividades Para realização do caso prático, foram selecionadas 10 classes com diferentes características, estas classes constituem o módulo de cadastro de um sistema de controle patrimonial, o sistema em questão possui uma arquitetura bem definida, onde a camada que trata das regras de negócio é separada da camada de interface e da camada de modelo. No desenvolvimento destas classes foram considerados como esforços relevantes para obtenção de métricas comparativas, o número de propriedades e método que cada classe possuía como especificação, e o tempo que se gastou para a codificação das assinaturas. As classes foram desenvolvidas por um desenvolvedor de perfil pleno que possui como rotina em sua função, desenvolver estes padrões de classes diariamente. Foi realizado um

18 experimento utilizando tanto a forma manual quanto a forma automatizada (ferramenta), sendo que primeiramente realizado o desenvolvimento manual das classes. Ao desenvolver de forma manual, foram levantados alguns pontos relevantes que impactam no tempo de desenvolvimento desta forma, que são os seguintes: Mesmo com os helps disponibilizados pelo editor Visual Studio 2008, houve muitas compilações para se eliminar os defeitos ocasionados pela sintaxe e pela tipagem exigida na linguagem C#. Ocorreram algumas despadronizações nas nomenclaturas de variáveis e métodos criados pelo programador, pois por mais que se tenha documentação referente a este assunto, o risco deste fato acontecer em um código desenvolvido manualmente é alto, principalmente se o desenvolvedor for um novato na equipe. Se o projeto não possuir um ferramenta consistente de modelagem e especificação de classes, o tempo de interação entre o desenvolvedor e o analista de sistemas aumenta por conseqüência da falta de informação referente à criação das classes, conseqüentemente o risco de defeitos por mal interpretação do que se deseja também. Em um segundo momento foi executado a criação das mesmas 10 classes de forma automatizada, ou seja, fazendo uso da ferramenta de geração de código. Nesta fase do experimento, ocorreram fatos importantes para a boa utilização e produtividade da ferramenta, que são eles: Durante a usabilidade da ferramenta pelo usuário, notou-se uma pequena curva de aprendizado, tanto para o que a ferramenta se propõe a fazer, quanto para a sua aplicação. Por ser uma ferramenta que possui como base templates, inicialmente foi gasto um tempo para que o desenvolvedor pudesse configurar os templates para a arquitetura destino das classes, o que na forma manual não possui. Assim como a fase de configuração de templates não existe para a criação manual, a ferramenta apresentou uma vantagem que beneficia o usuário em caso de recriação das classes em outra arquitetura ou alterações na mesma. Sendo que para isto seja possível basta apenas efetuar a manipulação dos templates e executar o processo de geração das mesmas. 5.1 Validação Para efeitos comparativos foi criado um gráfico de linha de tempo, conforme mostra a figura 15, onde é demonstrado a diferença de tempos entre a criação manual e automatizada de cada classe. Este experimento apontou uma produtividade bastante significativa na codificação, obtendo uma média de ganho de 49% em relação ao método manual. No gráfico da figura 15 é apresentado apenas o benefício cronológico, sendo que também há outros benefícios significativos como a padronização e a geração em outra arquitetura, a última coluna do gráfico Total, demonstra a diferença entre o somatório total de horas da implementação manual e da forma automatizada.

19 14:24 12:00 09:36 07:12 04:48 02:24 Manual Automa5zado 00:00 Figura 15 Gráfico de Linha de Tempo 6 CONCLUSÃO Neste trabalho foram identificados alguns pontos relevantes no desenvolvimento de software, primeiro diz respeito ao custo do projeto, onde é demandado um grande percentual de esforço na codificação de aplicativos, como conseqüência de se tratar de um procedimento manual, onde o índice de problemas recorrentes e retrabalho é um indicador de impacto e de desvios em seus cronogramas, assim elevando custos com mão de obra. O segundo seria o custo da aquisição de uma Ferramenta CASE capaz de reduzir os impactos e retrabalhos, porém restringindo a flexibilidade de customização do código gerado por suas limitações e padronizações. Conclui-se então que, é possível desenvolver uma Ferramenta CASE objetiva e compacta, o que torna seu custo mais baixo, atuando exatamente na camada de negócio das aplicações, diminuindo o esforço de mão de obra na fase de codificação, mantendo um padrão configurável e flexível a diferentes arquiteturas.

20 REFERÊNCIAS AMBLER, Scott W. Agile Database Techniques : Effective Strategies for the Agile Software Developer. Wiley, Outubro APYON, Apyon Studio Professional 4.0. Disponível por WWW em: < Consultado em junho de BOOCH, G.; RUMBAUGH, J.;JACOBSON I. UML Guia do Usuário. Campus p. CAZULLINO, Daniel. Code Generation in the.net Framework Using XML Schema. MSDN Library, EUA, CELEPAR, Vidal Martins GPT. Rumo às tecnologias de objetos e de componentes distribuídos. Disponível por WWW em: < Consultado em abril de CHEN, Peter. Modelagem de Dados. A Abordagem Entidade-Relacionamento para Projeto Lógico. São Paulo: McGraw-Hill: p. DOLLARD, K. Code Generation in Microsoft.Net. EUA: Apress, SILVA, A. M. R.; VIDEIRA, C. A. E. UML Metodologias e Ferramentas Case. Lisboa, Maio WEINRICH, Jair. GRAHL Everaldo-Software de apoio a avaliação e seleção de ferramentas case baseado na norma ISO/IEC Artigo SEMINCO FURB-Universidade Regional de Blumenau, MACORATTI.NET, José Carlos Macoratti. Padrões de Projeto : O modelo MVC - Model View Controller. Disponível por WWW em: < Consultado em abril de MATTSSON, Michael. Evolution and Composition Object-Oriented Frameworks. PhD Thesis. University of Karlskrona, MSDN, Reflection (C# Programming Guide). Disponível por WWW em: < Consultado em abril de GENEXUS. Disponível por WWW em: < Consultado em junho de 2010.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA IMPLEMENTAÇÃO DE SOLUÇÃO PARA AUTOMATIZAR O DESENVOLVIMENTO DE SOFTWARE UTILIZANDO A LINGUAGEM C#.NET

Leia mais

Table 1. Dados do trabalho

Table 1. Dados do trabalho Título: Desenvolvimento de geradores de aplicação configuráveis por linguagens de padrões Aluno: Edison Kicho Shimabukuro Junior Orientador: Prof. Dr. Paulo Cesar Masiero Co-Orientadora: Prof a. Dr. Rosana

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

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

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

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

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

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

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

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

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini Banco de Dados Conceitos e Arquitetura de Sistemas de Banco de Dados Profa. Flávia Cristina Bernardini Relembrando... Vantagens da Utilização de SGBD Redundância controlada Consistência dos dados armazenados

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

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

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

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

guia prático 2a Edição Gilleanes T.A. Guedes Novatec

guia prático 2a Edição Gilleanes T.A. Guedes Novatec guia prático 2a Edição Gilleanes T.A. Guedes Novatec Copyright 2007, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

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

SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA)

SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA) SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA) Alessandra Lubbe 1 Alexandre Evangelista 2 Jeandro Perceval 3 José Ramiro Pereira 4 Luiz Gustavo Mahlmann 5 RESUMO

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

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 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

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

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

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Alexandro Deschamps (Ápice) alexandro@apicesoft.com Everaldo Artur Grahl (FURB/DSC) egrahl@furb.br Resumo. Uma das grandes

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

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

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 Rational Quality Manager Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 1 Informações Gerais Informações Gerais sobre o RQM http://www-01.ibm.com/software/awdtools/rqm/ Link para o RQM https://rqmtreina.mvrec.local:9443/jazz/web/console

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Banco de Dados Multimídia

Banco de Dados Multimídia Banco de Dados Multimídia Nomes: Ariane Bazilio Cristiano de Deus Marcos Henrique Sidinei Souza Professor Mauricio Anderson Perecim Conteúdo Banco de Dados Multimídia... 3 Conceitos... 3 Descrição... 3

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

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

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

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

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO

SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO Marcelo Karpinski Brambila 1, Luiz Gustavo Galves Mahlmann 2 1 Acadêmico do Curso de Sistemas de Informação da ULBRA Guaíba < mkbrambila@terra.com.br

Leia mais

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br

Leia mais

SOA: Service-oriented architecture

SOA: Service-oriented architecture SOA: Service-oriented architecture Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA? Breve História Uma empresa

Leia mais

Banco de Dados I. Introdução Conceitos

Banco de Dados I. Introdução Conceitos Banco de Dados I Introdução Conceitos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Conceitos Fundamentais de Banco de Dados; Características

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Processo de garantia da qualidade baseado no modelo MPS.BR Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Roteiro introdução objetivos do trabalho fundamentação teórica desenvolvimento da ferramenta

Leia mais

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL Francisco Tiago Avelar, Vitor Conrado F. Gomes, Cesar Tadeu Pozzer Universidade Federal de Santa Maria UFSM Curso de Ciência da Computaçã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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Uma Abordagem usando PU

Uma Abordagem usando PU Uma Abordagem usando PU Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Baseada em: Rational Software Corpotation G. Booch, Ivar Jacobson,

Leia mais

Documentação de um Produto de Software

Documentação de um Produto de Software Documentação de um Produto de Software Versão 3.0 Autora: Profª Ana Paula Gonçalves Serra Revisor: Prof. Fernando Giorno 2005 ÍNDICE DETALHADO PREFÁCIO... 4 1. INTRODUÇÃO AO DOCUMENTO... 6 1.1. TEMA...

Leia mais

Estudo de Caso Sistema de Caixa Automático

Estudo de Caso Sistema de Caixa Automático Estudo de Caso Sistema de Caixa Automático Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Notas de Aula Ulrich Schiel Notas de Aula Ariadne

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

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

Sistemas Gerenciadores de Bancos de Dados

Sistemas Gerenciadores de Bancos de Dados Sistemas Gerenciadores de Bancos de Dados Orivaldo V. Santana Jr A partir de slides elaborados por Ivan G. Costa Filho Fernando Fonseca & Robson Fidalgo 1 Sistemas de Arquivos Sistemas de arquivos Principal

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

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

Padrões de Contagem de Pontos de Função

Padrões de Contagem de Pontos de Função Padrões de Contagem de Pontos de Função Contexto Versão: 1.0.0 Objetivo O propósito deste documento é apresentar os padrões estabelecidos para utilização da técnica de Análise de Pontos de Função no ambiente

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

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

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

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

SISTEMA PARA CONTROLE DE RESERVA DE EQUIPAMENTOS MULTIMEIOS E AMBIENTES DE APRENDIZAGEM

SISTEMA PARA CONTROLE DE RESERVA DE EQUIPAMENTOS MULTIMEIOS E AMBIENTES DE APRENDIZAGEM SISTEMA PARA CONTROLE DE RESERVA DE EQUIPAMENTOS MULTIMEIOS E AMBIENTES DE APRENDIZAGEM Marcelo Karpinski Brambila Acadêmico em Sistemas de Informação Universidade Luterana do Brasil Guaíba mkbrambila@connect-rs.com.br

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

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

DOCUMENTO DE REQUISITOS

DOCUMENTO DE REQUISITOS DOCUMENTO DE REQUISITOS ID documento: Data: / / Versão : Responsável pelo documento: ID Projeto: HISTÓRICO DE REVISÕES Data de criação/ atualização Descrição da(s) Mudança(s) Ocorrida(s) Autor Versão do

Leia mais

Sistema de Automação Comercial de Pedidos

Sistema de Automação Comercial de Pedidos Termo de Abertura Sistema de Automação Comercial de Pedidos Cabana - Versão 1.0 Iteração 1.0- Release 1.0 Versão do Documento: 1.5 Histórico de Revisão Data Versão do Documento Descrição Autor 18/03/2011

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini vanini@ic.unicamp.br MC302A Modelagem de Sistemas com UML Prof. Fernando Vanini vanini@ic.unicamp.br Modelamento de Sistemas e Orientação a Objetos O paradigma de Orientação a Objetos oferece um conjunto de características

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de

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

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS Este anexo apresenta uma visão geral das seguintes plataformas: 1. Plataforma Microsoft.NET - VB.NET e C#; 2. Plataforma JAVA; 3. Plataforma Android, ios e Windows

Leia mais

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA Página: 1/16 CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA Módulo CBDS (Central de Banco de Dados Senior) A quem se destina: Todos que tiverem a necessidade de administrar os dados da base de dados da Senior Sistemas

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

Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br)

Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br) Engenharia de Softwares e Sistema IF682 (2012.1) Bruno Medeiros(bmo@cin.ufpe.br) Algumas definições Engenharia de Software conjunto de tecnologias e práticas usadas para construir software de qualidade

Leia mais

INTERLIMS SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA LABORATÓRIOS DE ANÁLISES DE ÁGUA

INTERLIMS SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA LABORATÓRIOS DE ANÁLISES DE ÁGUA INTERLIMS SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA LABORATÓRIOS DE ANÁLISES DE ÁGUA INTERLIMS SISTEMA DE GERENCIAMENTO DE INFORMAÇÕES PARA LABORATÓRIOS DE ANÁLISES DE ÁGUA O InterLIMS se apresenta

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

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

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

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

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

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

Ano III - Número 16. Versão 4.6.4

Ano III - Número 16. Versão 4.6.4 Versão 4.6.4 Sexta-feira, 08 de fevereiro de 2008 ÍNDICE 3 4 EDITORIAL NOVAS FUNCIONALIDADES 4 12 13 14 15 16 Novo Cronograma 4 5 5 6 7 8 8 9 9 10 10 Edição Rápida do Cronograma Recurso de Arrastar e Soltar

Leia mais

3 OOHDM e SHDM 3.1. OOHDM

3 OOHDM e SHDM 3.1. OOHDM 32 3 OOHDM e SHDM Com a disseminação em massa, desde a década de 80, de ambientes hipertexto e hipermídia, principalmente a Web, foi identificada a necessidade de elaborar métodos que estruturassem de

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

Com relação às áreas de conhecimento de projetos conforme o. PMBoK, julgue os itens subseqüentes.

Com relação às áreas de conhecimento de projetos conforme o. PMBoK, julgue os itens subseqüentes. De acordo com o comando a que cada um dos itens de 1 a 70 se refira, marque, na folha de respostas, para cada item: o campo designado com o código C, caso julgue o item CERTO; ou o campo designado com

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

FACULDADE DE CIÊNCIAS SOCIAIS E APLICADAS DO PARANÁ. Sistema de Gestão Escolar PROJETO FINAL Schola Ratio Versão 8

FACULDADE DE CIÊNCIAS SOCIAIS E APLICADAS DO PARANÁ. Sistema de Gestão Escolar PROJETO FINAL Schola Ratio Versão 8 FACULDADE DE CIÊNCIAS SOCIAIS E APLICADAS DO PARANÁ Sistema de Gestão Escolar PROJETO FINAL Schola Ratio Versão 8 CURITIBA Nov 2012 DJULLES IKEDA OSNIR FERREIRA DA CUNHA Sistema de Gestão Escolar PROJETO

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais