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.

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

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

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

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

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

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

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

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

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

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

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

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

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

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

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos. VERSÃO 5 Outubro/2012 Release Notes Não deixe de atualizar o seu sistema Planejamos a entrega ao longo do exercício de 2012 com mais de 140 melhorias. Mais segurança, agilidade e facilidade de uso, atendendo

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

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

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

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

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

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

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

Manual do sistema SMARsa Web

Manual do sistema SMARsa Web Manual do sistema SMARsa Web Módulo Gestão de atividades RS/OS Requisição de serviço/ordem de serviço 1 Sumário INTRODUÇÃO...3 OBJETIVO...3 Bem-vindo ao sistema SMARsa WEB: Módulo gestão de atividades...4

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

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

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: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Tarciane Andrade. tarcianeandrade@gmail.com

Tarciane Andrade. tarcianeandrade@gmail.com Tarciane Andrade tarcianeandrade@gmail.com Contexto Análise Passando de casos de uso para diagramas de classes 2 Após a etapa de análise de requisitos, temos documentos de requisitos e os casos de uso

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

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

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

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

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

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

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

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

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

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

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

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

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

Manual Geral do OASIS

Manual Geral do OASIS Manual Geral do OASIS SISTEMA DE GESTÃO DE DEMANDA, PROJETO E SERVIÇO DE TECNOLOGIA DA INFORMAÇÃO OASIS Introdução Esse manual tem como objetivo auxiliar aos usuários nos procedimentos de execução do sistema

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9 Channel Visão Geral e Navegação Tutorial Atualizado com a versão 3.9 Copyright 2009 por JExperts Tecnologia Ltda. todos direitos reservados. É proibida a reprodução deste manual sem autorização prévia

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

2 a Lista de Exercícios

2 a Lista de Exercícios Projeto de Sistemas 2011/2 2 a Lista de Exercícios (1) Um importante aspecto do projeto da camada de Lógica de Negócio (LN) diz respeito à organização das classes e distribuição de responsabilidades entre

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC 1 Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC Edilberto Silva 1, André Luiz (1012545), Andreia Pereira da Silva (1012547) Carlos Alberto (1012206), Humberto César de Carvalho

Leia mais

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

OCOMON PRIMEIROS PASSOS

OCOMON PRIMEIROS PASSOS OCOMON PRIMEIROS PASSOS O OCOMON ainda não possui um arquivo de Help para atender a todas questões relacionadas ao sistema. Esse arquivo serve apenas para dar as principais instruções para que você tenha

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto Objetivos do Treinamento Apresentar as principais funcionalidades do Rational Requirements Composer relacionadas

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais