UNIVERSIDADE VEIGA DE ALMEIDA BACHARELADO EM SISTEMAS DE INFORMAÇÃO INTRODUÇÃO A TESTES AUTOMATIZADOS EM RUBY ON RAILS. Thiago Cifani Ayres Escola
|
|
- Adelino Barreiro Botelho
- 8 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE VEIGA DE ALMEIDA BACHARELADO EM SISTEMAS DE INFORMAÇÃO INTRODUÇÃO A TESTES AUTOMATIZADOS EM RUBY ON RAILS Thiago Cifani Ayres Escola Cabo Frio 2011
2 THIAGO CIFANI AYRES ESCOLA INTRODUÇÃO A TESTES AUTOMATIZADOS EM RUBY ON RAILS Trabalho desenvolvido durante a disciplina Monografia e apresentada ao Curso de Sistemas de Informação da Universidade Veiga de Almeida, campus Cabo Frio, como prérequisito para a obtenção do título de Bacharel em Sistemas de Informação. Orientador: Prof. Matheus Bousquet Bandini, M.Sc. Campus Cabo Frio 2011
3 Universidade Veiga de Almeida - UVA Faculdade de Informática Curso de Bacharelado em Sistemas de Informação Reitor: Prof. Dr. Mário Veiga de Almeida Jr. Vice-Reitor: Prof. Tarquínio Prisco Lemos da Silva Coordenador do Curso de Informática: Prof. Edgar Banca Examinadora: Prof. Matheus Bousquet Bandini (Orientador) M.Sc. em Sistemas e Computação IME/RJ Prof. Douglas Ericson Marcelino de Oliveira M.Sc. em Sistemas e Computação IME/RJ Prof. Rodrigo Lessa de Sena Especialista em Computação Gráfica - UVA Universidade Veiga de Almeida Cabo Frio Estrada das Perynas, s/n CEP: Cabo Frio RJ
4 Dedico este trabalho a Arnaldo, Rose, Priscilla e Elaine.
5 AGRADECIMENTOS Agradeço a meus pais, família, amigos e professores. Agradeço todas estas pessoas que se fizeram presentes e ocuparam com excelência o devido papel em minha vida. Agradeço pelo carinho, respeito, dedicação e incentivo para continuar mesmo com todos os atenuantes da vida.
6 LISTA DE FIGURAS Figura 3.1 Modelo MVC Rails Figura 3.2 Código Rails para Localizar Cliente por ID Figura 3.3 Exemplo de uso do Active Record Figura 4.1 Exemplo de Estrutura de Teste Unitário Figura 4.2 Teste Unitário com Asserção Figura 4.3 Teste Unitário com Assert Equals Figura 4.4 Teste Unitário com Assert Not Equal Figura 4.5 Exemplo de Repetição de Código em Teste Unitário Figura 4.6 Exemplo de Método Setup Figura 4.7 Ciclo do TDD Figura 4.8 Exemplo de Describe com RSpec Figura 4.9 Exemplo de Describe com Context e IT Figura 4.10 Exemplo de Saída Formatada do RSpec Figura 4.11 Exemplo de Teste RSpec Pente Figura 4.12 Saída RSpec Teste Pente Figura 4.13 Teste RSpec pente com mensagem personalizada Figura 4.14 Teste RSpec com It para descrever comportamento Figura 4.15 Teste RSpec Let e Specify Figura 4.16 Teste Exemplo cenário com cucumber Figura 5.1 GemFile para Testes Figura 5.2 Comandos Instalação Figura 5.3 Team Feature Figura 5.4 Team Steps Pentes Figura 5.5 Team Steps Figura 5.6 Controlador Team Figura 5.7 team_spec.rb Figura 5.8 Team model... 51
7
8 LISTA DE ABREVIATURAS E SIGLAS API BDD CoC DRY DSL ERB HTML IDE JVM MRI MVC RoR SAAS SSH SVN TDD URL VPS YAML YARV XP Application Programming Interface Behavior Driven Development Convention Over Configuration Don't Repeat Yourself Domain Specific Language Embedded Ruby Hyper Text Markup Language Integrated Development Environment Java Virtual Machine Matz's Ruby Interpreter Model View Controller Ruby on Rails Software as a Service Secure Shell Subversion Test Driven Development Uniform Resource Locator Virtual Private Server YAML Ain t Markup Language Yet another Ruby VM Extreme Programming
9 RESUMO Este trabalho apresenta as formas de desenvolvimento de software baseado em testes automatizados em Ruby on Rails como tecnologia para desenvolvimento de aplicações para a Internet. São demonstrados suas principais características e componentes. Também são exibidos diversos frameworks que facilitam a elaboração de testes e gems relacionadas. Por fim, uma pequena suíte de testes é desenvolvida, de forma a exemplificar a utilização dos recursos apresentados. Através da análise das características da ferramenta e dos resultados obtidos no estudo de caso é respondida a razão do Ruby on Rails ser uma plataforma que cumpre com sucesso sua proposta de simplicidade e agilidade.
10 ABSTRACT This paper presents the ways of developing software-based automated tests in Ruby on Rails as the technology to develop applications for the Internet. Showing us the main characteristics and components. Also displayed are several frameworks that facilitate the development of tests and related gems. Finally, a small tests suite is developed in order to illustrate the use of appeals. By analyzing the characteristics of the tool and the results obtained in the study case, is answered the reason for Ruby on Rails to be a platform that successfully fulfills its proposal of simplicity and agility.
11 SUMÁRIO 1 INTRODUÇÃO CONTEXTUALIZAÇÃO PROBLEMA HIPÓTESE OBJETIVO JUSTIFICATIVA METODOLOGIA DE PESQUISA ORGANIZAÇÃO DO TEXTO HISTÓRICO O COMPUTADOR LINGUAGENS DE PROGRAMAÇÃO MANIFESTO ÁGIL TECNOLOGIAS ENVOLVIDAS RUBY RubyGems RVM RAILS Padrão MVC Suporte a Modelo no Rails Mapeamento Objeto Relacional Active Record Action Pack: Visualização e Controlador Suporte a Visualização Controlador TESTES AUTOMATIZADOS TESTES EM RUBY ON RAILS Setup e TearDown O que pode ser testado em Rails Fixtures... 34
12 4.2 TEST DRIVEN DEVELOPMENT BEHAVIOR DRIVEN DEVELOPMENT Os Princípios do BDD RSPEC Descrevo Comportamentos Exemplos Pentes Before, After, Specify, Let CUCUMBER ESTUDO DE CASO AMBIENTAÇÃO PROERD Origem Propósito OBJETIVO IMPLEMENTAÇÃO Ferramentas Testes com Rspec e Cucumber CONSIDERAÇÕES FINAIS CONCLUSÕES ANEXO A CÓDIGO FONTE TESTES REFERÊNCIAS BIBLIOGRÁFICAS
13 1. INTRODUÇÃO 1.1 Contextualização Atualmente o desenvolvimento de software tem crescido em larga escala no Brasil e no mundo. Com a popularização da internet e dos smartsfones, desenvolver software tornou-se uma forma de adquirir conhecimento e ra. Mas com o grande aumento de profissionais na área, observou-se a necessidade de elaborar padrões de especificação para o desenvolvimento desses aplicativos. Para facilitar o trabalho das equipes na elaboração e implementação do projeto, são tomadas boas práticas para desenvolver software funcional e legível, uma das mais importantes práticas adotadas para essa facilitação são os testes automatizados. 1.2 Problema A grande dificuldade que as empresas de software enfrentam nos dias de hoje é a manutenção do sistema em produção. Sabe-se que necessidades surgem a todo instante, e que para o desenvolvedor, lembrar do código criado a algum tempo não é uma tarefa fácil. O problema dessa deficiência torna a manutenção do código quase inviável. O rodízio de profissionais em equipes também torna a padronização do código algo de difícil administração. Devido a essas dificuldades, foram criados frameworks para facilitar o processo de criação e manutenção do código fonte, otimizando todo o processo e garantido o retorno esperado do mesmo. 1.3 Hipótese O ambiente de testes automatizados em Ruby On Rails, foco do trabalho, é um conjunto de ferramentas integradas que visam tornar o desenvolvimento de aplicações web simples e rápido. Esse ambiente visa cobrir o software com testes que garantem que determinada funcionalidade foi implementada com êxito e executa sua função da melhor forma esperada. Os testes automatizados também visão auxiliar o desenvolvimento através de redução na complexidade do código, o que facilitaria a manutenção futura. Através dos testes, pode ser feita uma leitura de cada método do sistema em questão e enter seu comportamento por completo. A maioria dos testes auxilia o programador a enter a regra de negócio e programá-la da melhor maneira possível. 13
14 1.4 Objetivo O objetivo desta pesquisa é apresentar o ambiente de Testes Automatizados em Ruby on Rails. Seus benefícios e usos serão explicados ao decorrer do trabalho. Será respondido ao longo deste trabalho o que é teste automatizado, TDD e BDD. Serão explicadas as suas principais características, componentes e seu funcionamento. Ao final, será apresentado um projeto construído utilizando Ruby on Rails de forma a validar a proposta dos testes automatizados. 1.5 Justificativa Ao adotar o padrão ágil de desenvolvimento que prioriza um produto de qualidade e um total contato com o cliente, o desenvolvedor se depara com um cenário onde existem mudanças constantes. Essas mudanças podem prejudicar a qualidade do código exponencialmente se não trabalhada de uma forma a facilitar seu entimento. Com testes automatizados, qualquer desenvolvedor que enta teste poderá determinar perfeitamente o comportamento da aplicação e de seus métodos. Com eles também é possível afirmar que quando uma funcionalidade é terminada realmente está terminada. Os testes facilitam a escrita do código, facilita a interação da equipe e torna o sistema mais resistente a falhas e bugs. 1.6 Metodologia de Pesquisa Foram utilizados livros especializados no assunto como fontes de pesquisa, documentos produzidos pela comunidade que desenvolve a plataforma Ruby On Rails, além de sites na internet. 1.7 Organização do Texto O texto está organizado em 6 capítulos. O Capítulo 2 mostra a evolução das tecnologias que culminaram com o surgimento de aplicações na Internet, linguagens de programação e o Manifesto Ágil. O Capítulo 3 apresenta a linguagem de programação Ruby, suas origens e ideais. Introduzirá o framework Ruby On Rails seus componentes e principais características. O Capítulo 4 apresenta 14
15 testes automatizados em Ruby On Rails, TDD, BDD e o uso de dois frameworks muito utilizados na comunidade para determinar o comportamento da aplicação e fazer teste de integração. O capítulo 5 procura demonstrar a utilização dos conceitos apresentados através do desenvolvimento de um sistema baseado na plataforma Ruby On Rails. As considerações finais sobre o projeto de estudo deste texto se encontram no Capítulo 6. 15
16 2. HISTÓRICO 2.1 O Computador Pode-se considerar o computador como uma das grandes descobertas da humanidade. Temse hoje o computador como uma ferramenta essencial no dia a dia de muitas empresas e indústrias. Seu principal papel é o processamento de dados, sabe-se que os dados que são inseridos passam por um processamento e armazenagem, o que permite a análise e compreensão de uma larga escala de informação em poucos segundos. Na década de 40, os computadores eram gigantescos e ocupavam grande espaço físico, eram utilizados principalmente para pesquisas científicas e operações militares. Os computadores dessa década tinham programas específicos para cada área de atuação e eram usados somente por especialistas. Com o passar das décadas e a grande quantidade de informação a serem processadas, as empresas foram motivadas a expandir o uso dos computadores. Com isso, passaram a fabricar computadores com tamanhos reduzidos e com um poder de processamento maior. Existiam terminais de acesso a grandes mainframes, estes, gerenciavam todos os aplicativos e efetuavam o processamento dos dados. Devido à popularização dos computadores nas empresas, notou-se uma grande possibilidade de expandir o mesmo para a utilização doméstica, o que proporcionou um maior contato do usuário leigo e o surgimento de programas personalizados para ater diversas necessidades que surgiriam com o tempo. Atualmente, com o crescimento da demanda por computadores e dispositivos portáteis de acesso a internet e a aplicativos, os smartfones e tecnologias móveis tem tomado uma grande fatia do mercado tecnológico para utilização e resolução de problemas rotineiros. 2.2 Linguagem de Programação Uma linguagem de programação é um conjunto de instruções que são lidas por uma máquina para efetuar algum processamento, ou seja, este conjunto de instruções forma o programa de computador. A linguagem permite que o programador controle o comportamento do programa e as decisões do computador de acordo com uma série de blocos de códigos e estruturas que permitem a tomada de decisões pela máquina. 16
17 O conjunto de instruções que são digitadas no computador compõem o que é chamado de código fonte de um software. O que será compilado e transformado em linguagem de máquina para que o processador venha a enter. A principal motivação para utilizar uma linguagem de programação para a elaboração de um software é a produtividade. A maioria das linguagens de programação eleva o nível da programação utilizando sintaxe e conceitos mais próximos da linguagem humana. As primeiras linguagens de programação surgiram na década de 50, so como principais daquela época, FORTRAN, LISP, COBOL. Na década de 70 as linguagens que começaram a aparecer foram, Pascal, SQL e C, então começou a debater-se sobre a criação de linguagens estruturadas. Programação estruturada é a programação onde é utilizado um fluxo para a execução do código escrito, ao contrário das linguagens que utilizavam o famoso GOTO para levar a diversas partes do código, a programação estruturada segue um bloco de código com várias funções e subrotinas que seguidas estruturalmente processam as informações de acordo com as condições impostas pelo desenvolvedor. Um pouco mais tarde foi criada a programação orientada a objetos. A orientação a objetos visa determinar escopos reduzidos para a construção dos blocos de código, facilitando assim o entimento do programa e sua real função e fluxo de troca de mensagens. Esse paradigma visa à modelagem de objetos do mundo real, agregando a eles comportamentos semelhantes no contexto da aplicação. A comunicação entre os objetos é feita através de mensagens entre os métodos. As linguagens que inspiraram a orientação a objetos foram o C++ e o Perl. Na década de 90 houve o surgimento do Java, Python e C#. A maioria dessas linguagens era direcionada a web, devido à popularização da internet no mundo e a necessidade de aplicações para internet. Uma peculiaridade da era da internet, foi o surgimento de linguagens de script, como PHP, Ruby e JavaScript. 2.3 Manifesto Ágil Com o aumento exponencial do uso de computadores por empresas e indivíduos, a necessidade de produzir software tornou-se algo vital para a humanidade. Várias empresas começaram a ser formadas ao redor do globo, desenvolvo de formas distintas. Com a necessidade de mão de obra e padronização na produção, áreas da computação foram surgindo, tais como a Engenharia de Software. Portanto, foram elaborados alguns modelos para especificar o desenvolvimento de sistemas, dos quais se destaca o modelo cascata ou seqüencial, que visa à construção do software por etapas pré-determinadas. 17
18 Ao longo dos anos, alguns desenvolvedores perceberam que a forma de trabalhar não estava correta, ou seja, as questões de levantamento de requisito antes e codificação depois de preencher papéis de documentação não se encaixavam na realidade do mercado. Esses, mais conhecidos como signatários, elaboraram o manifesto ágil, que determina algumas prioridades na elaboração do software no mundo real. Esse manifesto visa reforçar as boas práticas para desenvolvimento apontando o modelo a ser seguido num projeto. Nesse manifesto temos quatro valores principais: Os indivíduos e suas interações acima de procedimentos e ferramentas O funcionamento do software acima de documentação abrangente A colaboração dos clientes acima da negociação de contratos A capacidade de resposta às mudanças acima de um plano pré-estabelecido O que foi observado com esses valores principais, é que o processo clássico para elaboração de um projeto de software era engessado por partes vitais e seqüenciais, ou seja, se alguma das partes não fosse completada a tempo, o projeto ficava congelado esperando liberação de tal parte. Já o manifesto ágil prega uma interação constante com o cliente para ter feedback das funcionalidades implementadas, o produto so posto em produção antes mesmo de uma extensa documentação, e outros valores que vem melhorando a forma de desenvolver software atualmente. A agilidade nos projetos não implica na velocidade do desenvolvimento e sim nos curtos períodos de tempo que o produto leva para ser entregue, ou seja, têm-se entregas semanais dos produtos, para saber se tal funcionalidade ate a necessidade do cliente. A busca por simplicidade no código e qualidade técnica também são fatores abordados pelo manifesto ágil. A partir dele, alguns dos signatários ganharam notoriedade no meio do mundo do desenvolvimento, dentre eles podemos ressaltar Kent Beck, o criador do XP (BECK, 99). A técnica do XP é utilizada para agilizar o processo de desenvolvimento e reduzir a complexidade do código criado pelo desenvolvedor através de boas práticas, so elas: Testes automatizados Programação em Par Refatoração Com os testes é possível afirmar que o código elaborado realmente faz o que ele se propõe a fazer. A programação em par visa à qualidade do software e o aprizado com duas pessoas 18
19 programando juntas uma funcionalidade. E a refatoração é o ato de sempre melhorar o código uma vez criado. Refatoração ajuda você a fazer código mais legível. Quando estamos refatorando, vemos código que funciona, mas ainda não está totalmente estruturado. Um pouco de tempo gasto com refatoração pode fazer o código ser auto-explicativo. Programar dessa forma é sempre querer mostrar o que aquilo significa pra você. [FOWL 99, p. 48] 19
20 3. TECNOLOGIAS ENVOLVIDAS 3.1 Ruby Antigamente, a forma de diferenciar uma linguagem era fácil: haviam apenas a compilada, como C ou Fortran, ou a interpretada, como BASIC. Sabe-se que linguagens compiladas dão velocidade e acesso de baixo nível em computadores. Já as interpretadas são de alto nível, porém mais lentas. O tempo se passou e alguns designers de linguagem começaram a chamar suas criações de Linguagem de Script. Isso significa que essas linguagens, além de serem interpretadas, podiam ser usadas para substituir arquivos batch e shell scripts, manipulando o comportamento de outros programas e algumas funções do sistema operacional. Dentre as linguagens de Script podemos citar: Python, Perl, TCL e Ruby. [THOM, 04] Ruby é uma linguagem de script com uma tipagem dinâmica, forte e gerenciamento de memória automático. É fácil de aprer. Tarefas diárias são simples de codificar e, uma vez to as criado, é fácil mantê-las e expandí-las. É uma linguagem transparente, porque não existem partes obscuras na escrita do código, por outro lado, esse é muito legível e torna o entimento fácil para o programador. A dificuldade que o programador tem em outras linguagens para expressar o pensamento lógico, não existe em Ruby. Pela facilidade que há em escrever código em Ruby, podemos nos preocupar apenas com as regras de negócio do escopo do software e com alguns padrões de manutenção e melhorias constantes. Com a facilidade na leitura do código digitado, o risco de errar ou escrever código com comportamento duvidoso é quase nula. Ruby é uma linguagem concebida pelo intelecto de um homem através dos pontos positivos de diversas linguagens. Yukihiro Matsumoto, mais conhecido na comunidade como Matz, pegou os pontos principais de diversas linguagens como, ADA, LISP, Smalltalk, Python, Perl, e incorporou no núcleo da linguagem. [FLAN, 08] Pode-se ressaltar que Ruby é fortemente orientada a objetos, ou seja, tudo é um objeto. Outro aspecto importante é que esta linguagem possui uma poderosa capacidade de metaprogramação. Matz se preocupou em fazer uma linguagem que realmente fosse amiga do programador, tornando seu trabalho diário divertido. Em suas próprias palavras ele dizia: Ruby is designed to make programmers happy (Ruby é projetada para fazer os programadores felizes) [MATZ]. 20
21 Ruby é uma linguagem orientada a objetos genuína. Tudo que é manipulado é um objeto e os resultados dessa manipulação também são objetos. [THOM 04, p.09] A primeira publicação de Ruby, a versão 0.95, foi lançada em dezembro de O primeiro livro sobre a linguagem fora do Japão foi impresso somente em A versão da linguagem amplamente utilizada hoje é a 1.8. Em 30 de janeiro de 2009 a versão foi introduzida, incorporando novas características e melhorias, principalmente no que diz respeito ao desempenho. Ruby, até sua versão 1.8, tinha apenas duas principais implementações. A primeira e mais comum é a MRI (Matz s Ruby Interpreter), interpretador do próprio Matsumoto. A segunda é chamada JRuby, e roda o código ruby dentro da JVM (Java Virtual Machine). A partir da versão 1.9 uma nova máquina virtual é utilizada, o YARV (Yet another Ruby VM), uma máquina virtual que interpreta byte code visando aumentar a velocidade de programas em Ruby RubyGems RubyGems é um gerenciador de pacotes para a linguagem de programação Ruby. Uma gem é um conjunto de códigos reutilizáveis que podem ser distribuídos num formato muito parecido com o repositório apt-get do Linux. O interessante na utilização de gems é o padrão imposto na elaboração da mesma e seu controle de versões. RubyGems é um framework de instalação e empacotamento para bibliotecas e aplicativos, facilitando a localização, instalação, atualização e desinstalação de pacotes Ruby. (THOM 04, p. 203) Para instalar uma gem no Ruby, basta digitar o seguinte comando: gem install nomedagem 21
22 3.1.3 RVM Ruby Version Manager RVM é um gerenciador de controle de versão para a linguagem Ruby que permite ao desenvolvedor ter várias versões da linguagem instaladas na mesma máquina. Antes da criação do RVM era difícil e conflitante utilizar versões diferentes do Ruby com gems diferentes e alternar de acordo com cada projeto. Já com o uso da RVM basta digitar: rvm use versaodoruby, para utilizar a versão especificada. Com o RVM é possível ter várias versões de Ruby instalados na máquina e várias gems dentro de cada versão, o que facilita bastante na hora de desenvolver um projeto, bem como contribui na questão da compatibilidade entre sistemas desenvolvidos com versões distintas. 3.2 Rails Com a popularização do desenvolvimento web e com as práticas ágeis so incorporadas nas empresas em todo o mundo, a maioria dos desenvolvedores passaram a reaproveitar código para evitar a repetição na hora de iniciar um novo projeto e ter que configurar todos os diretórios, pastas, banco de dados e ambiente. A partir do momento que a reutilização de código tornou-se uma tarefa quase que obrigatória na área de desenvolvimento, foram surgindo os frameworks para abstração de camadas mais complexas de programação e para reuso do código usado em projetos. Uma façanha que a orientação a objetos conseguiu obter foi à estruturação de blocos de códigos imensos, em pequenas classes especialistas. Alguns conceitos como Herança, Polimorfismo e Interfaces auxiliam o desenvolvedor a estruturar melhor o seu código e fazê-lo sem muitas linhas em um único arquivo. Pensando assim, surgiu o Ruby on Rails. David Heinemeier Hansson (DHH), o criador do Rails, cansado de utilizar códigos gigantescos, como Java e PHP, resolveu utilizar alguma linguagem nova que atesse sua necessidade naquele momento. Ele então, ao iniciar seu projeto intitulado BaseCamp, na 37 Signals, empresa na qual ele foi contratado como programador, começou a preparar seu ambiente de desenvolvimento, fazo classes genéricas, abusando da orientação a objetos e da linguagem Ruby, que permitia o uso intenso deste paradigma.[ruby, 11] Rails foi lançado em 2005 para uso pela comunidade como open source, o que permitiu sua constante melhora e adição de funcionalidades por um grupo intitulado CORE TEAM e por outros desenvolvedores. 22
23 ROR (Ruby On Rails) tem como objetivo facilitar o desenvolvimento de aplicações web. É um framework que facilita a elaboração de aplicativos e torna fácil a manutenção devido a alguns princípios de qualidade de software. O primeiro princípio, Convention Over Configuration (CoC), diz que o programador que seguir algumas convenções terá rapidamente sua aplicação rodando com o mínimo de complexidade. Programadores Java que já passaram por problemas de depências, configurações de XML (extensible Markup Language), banco de dados e servidores, podem facilmente migrar para ROR e ver o quanto de configuração é encapsulada. Rails prioriza indivíduos e interações. Não existem ferramentas pesadas, configurações complexas e processos elaborados. [RUBY, 2011, p21] Rails também possui o princípio de DRY (Don t Repeat Yourself), ou seja, deve-se apenas ter código no lugar onde aquele código destina-se a ser usado. Não se deve repetir o código gerado em outros lugares. Se esse código é usado em vários locais, deve-se torná-lo genérico e de acesso múltiplo a várias classes. DHH quando criou o Rails fez pensando de forma ágil e dentro de alguns padrões de projeto. Uma característica que confirma essa afirmação é a criação de três ambientes de execução, Production (Produção), Development (Desenvolvimento) e Test (teste). Como se sabe, uma aplicação em produção tem toda uma particularidade, assim como nos outros ambientes. Em Java, é necessário sempre que feita uma modificação, reiniciar o servidor e iniciar o mesmo para visualizar a modificação efetuada. Já no ROR tem-se como utilizar o ambiente de desenvolvimento e simplesmente atualizar o navegador para visualizar a modificação efetuada no código. Ratificando o uso de metodologias ágeis, o ambiente de teste fora criado para facilitar a execução de suítes de testes e configuração de algumas peculiaridades como seed de banco de dados, fixtures, etc. E o último conceito, o KISS (Keep it Simple Stupid) visa manter o código criado na forma mais simples possível, permitindo que qualquer desenvolvedor enta o que o mesmo faz, e reforçando o uso de refatoração no código criado Padrão MVC Em 1979, Trygve Reenskaug desenvolveu uma nova arquitetura para desenvolver aplicações interativas. Na sua concepção, as aplicações eram distribuídas em três partes: Modelo, Visualização e Controlador. [RUBY, 11] 23
24 O modelo é responsável por manter o estado da aplicação. O modelo quase não tem contato com o usuário, ele é responsável pelo armazenamento da informação na base de dados. Representa também a entidade no sistema a ser desenvolvido e mantém em si, toda a regra de negócio da aplicação. Um modelo é mais que apenas dados. Ele agrega todas as regras de negócio que se aplica aos dados. [RUBY, 2011, p. 51] A visualização é responsável pela apresentação dos dados obtidos pelo modelo, gerando assim a interface. Sabe-se que essa interface pode ser representada de diversas formas para o mesmo modelo, depo assim da necessidade do usuário. O controlador como o próprio nome já diz, controla toda interação do usuário com o sistema e qual visualização o mesmo vai obter, ou seja, ele orquestra o modelo, e a visualização deste, e as entradas de dados do usuário. É através do controlador que podemos buscar adicionar e localizar dados no sistema. Ruby on Rails é um framework MVC. Ao criar uma aplicação Rails, pode-se observar que o framework cria automaticamente os diretórios para os controladores, as visualizações e os modelos. So assim, o Rails consegue interpretar todo o código adicionado nos três locais, respeitando o conceito de MVC e deixando a aplicação mais fácil de ser mantida. Figura Fonte: Modelo MVC Rails,
25 3.2.2 Suporte a Modelo no Rails O objetivo principal do Rails é proporcionar aos desenvolvedores para web que utilizam o padrão MVC a possibilidade de armazenar dados no banco de dados através da própria aplicação. Ele trata cada modelo criado através do framework como uma entidade, e através dessa convenção nota-se que o Rails cria automaticamente a tabela no banco de dados para receber os respectivos dados e seus relacionamentos caso existam. O problema em trabalhar com uma linguagem de programação orientada a objetos e um banco de dados relacional já é conhecido, devido à complexidade em questão. É correto afirmar que objetos possuem dados e métodos. Em contrapartida, bancos de dados são somente linhas e colunas com conjunto de valores. O mapeamento objeto-relacional sempre foi uma tarefa difícil de ser implementada, até mesmo em outras linguagens. Devido a essa dificuldade, alguns desenvolvedores começaram a estudar padrões de mapeamento objeto-relacional, o que permitia a comunicação e modelagem dos objetos em colunas do banco de dados. Essas bibliotecas que fazem essa comunicação são conhecidas como ORM s (Object-Relational Mapping) Mapeamento Objeto-Relacional Bibliotecas de Mapeamento Objeto-Relacional mapeiam as tabelas do banco de dados em classes. Por exemplo, se existe uma tabela chamada cliente, deve existir uma classe chamada cliente. Os objetos clientes correspondem a linhas na tabela e seus atributos a colunas da mesma. Cada objeto tem métodos get e set para preenchê-lo com os dados das colunas. Rails, em específico, traz métodos que auxiliam a manipular os dados vindos do banco de dados. Por exemplo, é possível observar nesse código Ruby a complexidade SQL que foi omitida para achar um cliente por seu código: cliente = Cliente.find(1) Figura 3.2 Código Rails para localizar Cliente por id 25
26 Em resumo, uma camada de Mapeamento Objeto-relacional mapeia tabelas para classes, linhas para objetos e colunas para atributos desse objeto. Geralmente, para que esse processo ocorra, é necessário utilizar arquivos XML para fazer o relacionamento dos campos. Porém, com a Convenção sobre a Configuração do Rails, o processo é automático Active Record Active Record (AR) é a camada ORM que vem com o Rails. Ele segue estritamente o padrão dos ORM s tradicionais, porém, uma das grandes adições feitas foi à redução de configuração se o padrão do framework for seguido. Para enter melhor como isso é feito, veremos um código em Rails de um mapeamento de uma tabela chamada clientes: classcliente<activerecord::base cliente = Cliente.find(1) cliente.nome = Thiago cliente.save Figura 3.3 Exemplo de Uso do AR Como é observado a classe automaticamente, quando criada, herda de ActiveRecord::Base, que é a classe ORM que vem por padrão em Rails. Com essa classe herdada, todos os métodos e atributos da classe ActiveRecord passam a fazer parte da classe Cliente, podo simplesmente fazer um find e localizar um cliente por id. Localizando o registro, é possível modificá-lo e depois salvá-lo na base de dados. O AR do Rails é a base do Modelo do padrão MVC e também um padrão de projeto estabelecido por Martin Fowler [FOW 03]. Ele possui algumas validações dos atributos pertencentes ao modelo e outros métodos que fazem dele um framework prático e ú. 3.3 Action Pack: Visualização e Controlador Quando é analisado a fundo a visualização e o controlador no padrão MVC, é possível perceber o quão interligados estão. O controlador recebe várias requisições das interfaces geradas 26
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo
Leia maisDESENVOLVENDO 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 mais4 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 maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisComeçando com Ruby on Rails @gibsongabriel
Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade
Leia maisOrientaçã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 maisAULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Leia mais10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO
10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE
Leia maisABORDAGEM 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 maisENGENHARIA 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 maisAmbiente 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 maisLazarus pelo SVN Linux/Windows
Lazarus pelo SVN Linux/Windows Sei que não faltam artigos sobre como obter e compilar o Lazarus e o FPC pelo SVN, mas sei também que nunca é de mais divulgar um pouco mais e talvez escrever algo diferente.
Leia maisNoçõ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 maisAmbiente 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 maisProcessos Técnicos - Aulas 4 e 5
Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)
Leia maisPROGRAMAÇÃ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 maisSistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com
Sistema Gerador de Anúncios para Compra e Venda On-line Leandro de Oliveira ol.leandro@gmail.com Roteiro da Apresentação Motivação Conceitos e Tecnologias Objetivos do trabalho Sistema SideCart Conclusões
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisTESTES AUTOMATIZADOS COM JUNITE MOCKITO
TESTES AUTOMATIZADOS COM JUNITE MOCKITO Jaime William Dias 12, Dener Barranco 1, Douglas Delapria 1 1 Universidade Paranaense (Unipar) 2 Universidade Estadual de Maringá (UEM) Paranavaí PR Brasil dener_barranco@hotmail.com,
Leia maisAPLICATIVO 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 maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisFigura 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 maisMetodologia e Gerenciamento do Projeto na Fábrica de Software v.2
.:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento
Leia maisHardware (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 maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisDesenvolvendo 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 maisGuia Site Empresarial
Guia Site Empresarial Índice 1 - Fazer Fatura... 2 1.1 - Fazer uma nova fatura por valores de crédito... 2 1.2 - Fazer fatura alterando limites dos cartões... 6 1.3 - Fazer fatura repetindo última solicitação
Leia maisUma 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 maisLógica de Programação
Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...
Leia maisATRIBUTOS 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 maisAplicação Prática de Lua para Web
Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisLógica de Programação
Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE
Leia maisSISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO
SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO AGOSTO DE 2013 SUMÁRIO STI/UFF - Sistema de Gerenciamento de Projetos do PDI SUMÁRIO... 2 1 Introdução... 3 1.1 O que é e qual a finalidade
Leia maisAUTOR: 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 maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisBoas Práticas de Desenvolvimento Seguro
Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO
Leia maisINTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO
Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele
Leia maisAlterações Easycaptive 2.0.10
Alterações Easycaptive 2.0.10 data: 10/04/2010 Este documento tem por objetivo demonstrar as alterações feitas nos scripts que compõem o addon easycaptive do sistema BrazilFW Firewall and Router. Todo
Leia maisProgramação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço
Leia maisMÓ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 maisDistribuidor de Mobilidade GUIA OUTSOURCING
Distribuidor de Mobilidade GUIA OUTSOURCING 1 ÍNDICE 03 04 06 07 09 Introdução Menos custos e mais controle Operação customizada à necessidade da empresa Atendimento: o grande diferencial Conclusão Quando
Leia maisROTEIRO PARA ELABORAÇÃO DE PROJETOS
APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da
Leia maishttp://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho
vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS
Leia maisCentro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas
Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização
Leia maisParte I. Demoiselle Mail
Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework
Leia maisEngenharia 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 maisModelagemde 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 maisMANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.
METODOLOGIAS ÁGEIS SURGIMENTO As metodologias ágeis surgiram em resposta ao problema dos atrasos no desenvolvimento de software e aos cancelamentos, devido ao fato dos sistemas demorarem muito tempo para
Leia maisProjeto Você pede, eu registro.
Projeto Você pede, eu registro. 1) IDENTIFICAÇÃO 1.1) Título do Projeto: Você pede eu registro. 1.2) Equipe responsável pela coordenação do projeto: Pedro Paulo Braga Bolzani Subsecretario de TI Antonio
Leia maisISO/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 maisComo se tornar um desenvolvedor de plug-ins para AutoCAD e Revit
Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Vitor Paulo Silva Se você é um projetista e sua principal ferramenta de trabalho é o AutoCAD ou o Revit, certamente você já se deparou com
Leia maisSphinx Scanner Informações gerais V 5.1.0.8
Sphinx Scanner Informações gerais V 5.1.0.8 Pré-requisitos: Possuir modalidade scanner no software Sphinx A SPHINX Brasil propõe uma solução de leitura automática de questionários por scanner. O Sphinx
Leia mais2 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 maisTópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres
Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise
Leia maisXP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br
XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso
Leia maisPROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS
PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS Élysson Mendes Rezende Bacharelando em Sistemas de Informação Bolsista de Iniciação Científica
Leia maisPEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0
PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0 Banco Central do Brasil, 2015 Página 1 de 14 Índice 1. FLUXO DO PEN - PROCESSO DE ENTENDIMENTO DAS NECESSIDADES DE NEGÓCIO... 3 2.
Leia maisPós-Graduação em Gerenciamento de Projetos práticas do PMI
Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL
Leia maisOperador de Computador. Informática Básica
Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no
Leia maisDesenvolvendo Software Livre com Programação extrema
Desenvolvendo Software Livre com Programação extrema Dairton Bassi FISL 7.0 abril/2006 Panorama sobre o Desenvolvimento de Software A sociedade demanda: Grande quantidade de sistemas/aplicações Sistemas
Leia maisCapacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Leia mais1. NÍVEL CONVENCIONAL DE MÁQUINA
1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0
Leia maisUNIVERSIDADE 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 maisProgramação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza
Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem
Leia maisPROCESSO 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 maisNa tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".
Servidor WEB Desenvolvedores de sites que querem aprender ou testar ASP, ou mesmo profissionais que precisam desenvolver páginas ASP ou ASP.Net, não precisam necessariamente ter um servidor na web com
Leia maisUML - 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 maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisDesenvolvendo para WEB
Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura
Leia maisEngenharia 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 maisBem- Vindo ao manual de instruções do ECO Editor de COnteúdo.
Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar
Leia maisTRABALHO 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 maisConteú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 maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia mais2. O AMBIENTE DE PROGRAMAÇÃO EM C
2. O AMBIENTE DE PROGRAMAÇÃO EM C Este capítulo trata de colocar a linguagem C para funcionar em um ambiente de programação, concentrando-se no compilador GNU Compiler Collection (gcc). Mas qualquer outro
Leia maisEngenharia de Software II
Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O
Leia maisUNIVERSIDADE 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 maisagility made possible
RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility
Leia maisIntrodução a Banco de Dados
Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05
Leia maisDesenvolvendo plugins WordPress usando Orientação a Objetos
Desenvolvendo plugins WordPress usando Orientação a Objetos por Daniel Antunes danieldeveloper.com @danieldeveloper Introdução Desenvolver plugins WordPress é mais que programar: é obter grandes resultados
Leia maisCurso Técnico em Redes
Curso Técnico em Redes Prof. Airton Ribeiro - 2012 Histórico das Linguagens de Programação O que é? É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas
Leia maisNome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA
Leia maisPrevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki
Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável
Leia maisDesenvolvimento 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 maisDicas para usar melhor o Word 2007
Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.
Leia maisFLUXO DE CAIXA: Módulo BI (Business Intelligence)
RELATÓRIO DE ESTÁGIO: Tânia Cristina Leite RA: 046567 Orientador: Prof. Dr. Aurelio Ribeiro Leite de Oliveira FLUXO DE CAIXA: Módulo BI (Business Intelligence) Universidade Estadual de Campinas Instituto
Leia maisUFG - 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 maisDisciplina de Banco de Dados Introdução
Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.
Leia maisNa 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 maisDocumento 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 mais1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.
1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade. Todos nós da AGI Soluções trabalhamos durante anos
Leia maisMANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1
MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo
Leia maisINTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF
INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.
Leia maisMAPEAMENTO 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 maisSoftware automatizado para controle de consultas da clínica de fisioterapia
Software automatizado para controle de consultas da clínica de fisioterapia Jeverson Siqueira 1, Wallace Caldeira 1, Jorge Aikes Junior 1 1 Ciência da Computacão Faculdades Anglo Americano de Foz do Iguaçu
Leia maisReferências internas são os artefatos usados para ajudar na elaboração do PT tais como:
Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código
Leia mais