UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

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

Download "UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Comparativo entre as linguagens de programação Java e Ruby para projetos que utilizem Extreme Programming ALAN KLOH, RODOLFO CORDEIRO BURLA DE AGUIAR DCC-IM/UFRJ Bacharelado em Ciência da Computação Orientador: Vinícius Manhães Teles Rio de Janeiro 2007

2 Comparativo entre as linguagens de programação Java e Ruby para projetos que utilizem Extreme Programming Alan Kloh, Rodolfo Cordeiro Burla de Aguiar Projeto Final de Curso submetido ao Departamento de Ciência da Computação do Instituto de Matemática da Universidade Federal do Rio de Janeiro como parte dos requisitos necessários para obtenção do grau de Bacharel em Ciência da Computação. Apresentado por: Alan Kloh Rodolfo Cordeiro Burla de Aguiar Aprovado por: Vinícius Manhães Teles, M.Sc. (Presidente) Adriano Joaquim de Oliveira Cruz, Ph.D. Carlo Emmanoel Tolla de Oliveira, Ph.D.. Vanessa de Paula Braganholo, D.Sc RIO DE JANEIRO, RJ - BRASIL JUNHO DE 2007

3 AGRADECIMENTOS Rodolfo A Deus, por ter me dado a oportunidade de concluir mais essa etapa na minha vida. Aos meus pais, José Geraldo e Paula, que mesmo estando longe, me deram todo incentivo, auxilio e carinho que precisava para completar mais essa etapa. À minha irmã Rosane, que foi quem sempre esteve ao meu lado durante todos esses anos, me ajudando quando precisava, me incentivando quando era necessário e me divertindo nos momentos de descanso. À minha irmã, Cecília, e meu cunhado, Pascoal, pelo o apoio e carinho durante todos esses anos. À minha namorada Mayara, pela compreensão nos momentos de ausência, pelo carinho e amor nos momentos em que estávamos juntos, que tornaram a graduação muito mais agradável, e pelo grande incentivo em todos os momentos. Ao nosso orientador Vinícius Manhães Teles, por ter me apresentado a essa nova metodologia, pelo apoio e auxilio na escolha do tema, e sem o qual essa monografia não teria a mesma qualidade. Ao Alan, parceiro durante toda a graduação, inclusive nessa monografia, sempre tornando os momentos mais difíceis naqueles mais divertidos com seu bom humor e suas piadas. Aos amigos da graduação, Luciano, Rafael, Carlos Eduardo (Kadu), João Paulo (Pipa) e Wallace, pela ajuda nos momentos de dificuldade e pela amizade nos momentos de diversão. Aos professores do DCC/UFRJ os quais nos transmitiram valiosos conhecimentos ao longo da graduação. A todos que nos ajudaram de alguma forma, direta ou indiretamente, na elaboração desta monografia.

4

5 RESUMO KLOH, Alan; AGUIAR, Rodolfo Cordeiro Burla, Comparativo entre as linguagens de programação Java e Ruby para projetos que utilizem Extreme Programming. Orientador: Vinícius Manhães Teles. Rio de Janeiro: UFRJ/IM/DCC, Monografia ( Bacharelado em Ciência da Computação) Este trabalho apresenta um estudo comparativo entre as linguagens Java e Ruby, com o framework Rails, no que se refere à utilização da metodologia de desenvolvimento Extreme Programming. Esse comparativo foi criado através de uma pesquisa de tecnologias para as linguagens a fim de identificarmos as vantagens e desvantagens das mesmas. Para o estudo, também foram criados dois blogs para comparar a qualidade do produto final, o tempo de duração do processo de desenvolvimento e a facilidade de sua utlização.

6 ABSTRACT KLOH, Alan; AGUIAR, Rodolfo Cordeiro Burla, Comparativo entre as linguagens de programação Java e Ruby para projetos que utilizem Extreme Programming. Orientador: Vinícius Manhães Teles. Rio de Janeiro: UFRJ/IM/DCC, Monografia ( Bacharelado em Ciência da Computação) This work presents a comparative study between Java and Ruby languages, relating to the use of Extremme Programming methodology. This comparative was created through research on technologies to the languages and by the development of two blogs, each of them in one of the languages. To identify the advantages and disadvantages of each used language with a set of technologies previously chosen.

7 SUMÁRIO 1 Introdução Motivação Proposta Validação Extreme Programming Valores Práticas Blog em Java Introdução Padrão Model-View-Controller MVC Model Struts JUnit Estrutura do Blog Funcionamento do Blog Considerações Blog em Ruby Introdução Ruby on Rails Migration Estrutura do Blog Funcionamento do Blog Considerações Comparativo Introdução Linhas de Código Analisando as práticas Conclusão...74

8 7 1 Introdução 1.1 Motivação Ao longo de mais de três anos, entre estágio e trabalho, percebemos que apesar de trabalharmos em lugares distintos nos deparávamos com os mesmos problemas em nossos projetos. Eles constantemente sofriam alteração no cronograma, pois era verificado que este era irreal e não poderia ser cumprido. Com isso, projetos que deveriam durar um determinado número de meses duravam, na realidade, quase o dobro. Os projetos eram entregues mas, muitas das vezes não atendiam às necessidades dos usuários. Em alguns casos até, esta já havia deixado de existir, devido a alguma mudança no ambiente em que seria utilizada. Esses problemas não aconteciam somente na nossa equipe, mas sim em grande parte dos projetos que as empresas estavam envolvidas, o que nos mostrava que não era um problema gerencial ou técnico das equipes. Como ocorriam em empresas diferentes, verificamos que se tratava de um problema em algo que era de uso comum às duas empresas. Foi então que começamos a estudar Extreme Programming (XP) 1 na faculdade. Durante esse estudo, o professor apresentou diversos problemas que eram comuns em projetos de software em geral. E eram, exatamente, esses os que identificávamos nas respectivas empresas. Assim descobrimos que as metodologias utilizadas nas duas empresas eram muito parecidas e, portanto, tinham alguma influência nos constantes atrasos e falhas dos projetos de software. E essa é uma metodologia comum, não somente a essas duas empresas, mas à maioria das companhias de desenvolvimento de software. 1 Metodologia de desenvolvimento de softwares criada no final da década de 90. (TELES, 2004)

9 8 No estudo do XP vimos que ela apresenta diversas práticas que buscam corrigir os erros mais comuns no desenvolvimento de software. Essa metodologia nos foi apresentada utilizando-se o Java (SUN 2006f), por ser tratar de uma linguagem amplamente utilizada hoje em dia no mercado e por possuir artefatos que auxiliam na utilização dessa metodologia. Porém, a integração desses artefatos que auxiliam na utilização dessa metodologia nem sempre é fácil e rápido, assim como o desenvolvimento nessa linguagem em geral requer a codificação de muitas classes, interfaces e arquivos de configurações. Diante dessa característica da linguagem, optamos por buscar, uma outra, e foi então que conhecemos a linguagem Ruby(THOMAS; HANSSON 2005) e o framework Ruby on Rails (THOMAS; HANSSON 2005). Porém, não sabíamos como seria utilizar a metodologia XP com essa linguagem, quais práticas possuiriam ferramentas para auxílio e quais seriam as dificultadas. Decidimos comparar as duas linguagens para verificar qual delas se mostraria mais eficiente, utilizando-se as práticas de XP, levando-se em conta as características de cada linguagem e o seu suporte na utilização das práticas de XP. 1.2 Proposta Nesse trabalho iremos testar essas duas linguagens utilizando-se as técnicas de XP, com a finalidade de verificarmos qual seria mais recomendada para o desenvolvimento de aplicações Web. Iremos com isso gerar um estudo comparativo entre as duas linguagens, apresentando vantagens e desvantagens, para cada técnica utilizada em XP. Ao

10 9 final, apresentaremos aquela que considerarmos a mais adequada para o desenvolvimento de aplicações Web, se verificarmos a existência de uma. Nesse comparativo iremos utilizar a métrica de linhas de código, como uma das formas de comparação entre as duas, bem como uma análise subjetiva em relação a complexidade no desenvolvimento da aplicação. 1.3 Validação Para obtermos esse comparativo, iremos desenvolver uma mesma aplicação Web, utilizando-se as técnicas de XP, nas duas linguagens, anotando as características de cada uma em relação a cada técnica. Essa aplicação será um blog 2, por se tratar de uma aplicação bastante utilizada atualmente, simples de ser implementada, mas, ao mesmo tempo, suficiente para a elaboração desse estudo. 2 Página da web que possui textos, que em geral se referem a um mesmo assunto, ou pertencem a uma mesma pessoa, que são organizados cronologicamente, que normalmente podem ser comentadas.

11 10 2 Extreme Programming Extreme Programming (XP) é uma metodologia de desenvolvimento de software, nascida nos Estados Unidos, na década de 90, baseada em alguns valores e práticas que ajudam a tornar o desenvolvimento dos softwares mais ágil e produzir resultados com maior qualidade. Essa é uma das metodologias conhecidas como metodologias de desenvolvimento ágil. Essas metodologias seguem um conjunto de princípios criados por um grupo de profissionais veteranos que se reuniram numa estação de esqui, no EUA, para discutir formas de melhorar e agilizar o processo de desenvolvimento de software. Eles chegaram à conclusão de que todos os projetos em que estiveram envolvidos e que obtiveram sucesso, seguiam um mesmo conjunto de princípios. Com base nisso, eles criaram o Manifesto para o Desenvolvimento Ágil ( também conhecido como Manifesto Ágil. Esses princípios são: Indivíduos e interação entre eles mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano O manifesto ressalta que, mesmo que haja valor nos itens à direita, os itens à esquerda são considerados prioritários. No decorrer desse capítulo, iremos apresentar e explicar cada um dos valores e práticas utilizadas no desenvolvimento de software que seguem o XP. 2.1 Valores

12 11 Feedback Projetos de software são bastante suscetíveis à falha, pelo fato de que, em muitas vezes, os clientes não sabem exatamente o que desejam quando fazem uma solicitação de softwares Em geral, os clientes reconhecem os seus problemas e querem um sistema para resolvê-lo. No entanto, não sabem ao certo o que o software deve fazer para solucioná-lo. Devido a essa característica, geralmente, o entendimento do que o sistema deveria fazer não é o mesmo entre os desenvolvedores e os clientes, e por isso, constantemente, vemos softwares que não satisfazem às necessidades dos clientes (BROOKS, 1987). Para contornar essa característica do desenvolvimento de software, o XP utiliza um valor chamado feedback, que consiste em obter o feedback dos seus clientes o mais rápido possível. Esse processo busca diminuir, ao máximo, a defasagem de tempo entre o momento entre a execução da ação e a obtenção de seu resultado. Quanto mais cedo um mau entendimento de alguma funcionalidade for identificado, menor será o custo de seu reparo. Por isso, este valor é tão importante no XP, pois quanto maior o feedback dos clientes menor o risco de se produzir algo errado. Comunicação No desenvolvimento de software estão envolvidas pelo menos duas pessoas. O desenvolvedor e o cliente. Mas, em sua maioria, um maior número de pessoas estão envolvidas( mais clientes e desenvolvedores). No desenvolvimento de software, o cliente geralmente, precisa informar o que deseja ser produzido. E cabe ao desenvolvedor, informar quais as limitações técnicas envolvidas. No processo, os problemas na comunicação, frequentemente, causam uma compreensão equivocada do que está sendo solicitado.

13 12 Muitas vezes o meio de comunicação que está sendo utilizado faz toda a diferença na compreensão das pessoas que estão se comunicando, pois uma série de conhecimentos tácitos podem ser perdidos, dependendo do meio de comunicação empregado. Quando explicamos algo pessoalmente, por exemplo, percebemos através das expressões faciais, se estamos sendo compreendidos pela outra pessoa. Quando fazemos essa explicação por telefone, esse conhecimento tácito é perdido. Muitas vezes os clientes executam suas atividades de modo tácito, e por isso têm dificuldades de descrever suas atividades utilizando meio de comunicação pouco ricos como, telefone e por exemplo, mas em uma conversa presencial conseguem explicar facilmente essas tarefas. Por isso o XP valoriza meios de comunicação mais ricos, trazendo o cliente, ou ao menos um representante, para dentro da equipe de desenvolvimento. Isso significa trazer o cliente para o mesmo ambiente em que estão os desenvolvedores, para que a comunicação entre eles seja feita de forma presencial e o mais rápido possível. O XP também faz uso de radiadores de informação (COCKBURN, 2002) que, além de facilitar a comunicação, ajudam a colocar em prática um modelo de autodirecionamento do processo de desenvolvimento. Outra característica do XP, importante para que haja uma melhor comunicação entre os integrantes do processo de desenvolvimento, é a utilização de equipes pequenas, pois quanto menos pessoas envolvidas no processo de desenvolvimento, mais fácil saber o que cada uma está fazendo. Assim, evita-se que duas pessoas realizem tarefas que interfiram nas tarefas dos outros. Além disso, quanto menos pessoas envolvidas num processo de comunicação, mais fácil é a

14 13 compreensão do que uma pessoa está falando, por termos menos interferência e conversas paralelas, o que torna a comunicação mais rica. Simplicidade Um estudo do Standish Group (JOHNSON, 2002) mostrou que 45% das funcionalidades de um sistema típico jamais são utilizadas e que 19% das funcionalidades são usadas raramente. Esses números revelam um pouco da razão pela qual o desenvolvimento de software costuma ser mal sucedido. Quando falamos mal sucedido, nos referimos a projetos que, foram entregue fora do prazo, ou extrapolaram o custo, ou os dois, ou até que não terminaram. Esses 64% de funcionalidades desenvolvidas, sem necessidade, indicam um desperdício de tempo, dinheiro e pessoal responsável. Isto, em grande parte, pelo insucesso dos projetos de software. Essas funcionalidades surgem basicamente por três motivos: O escopo do sistema, geralmente, é fechado no inicio do desenvolvimento e alterações no mesmo são evitadas; Desenvolvedores criam soluções genéricas para facilitar possíveis alterações no escopo; Desenvolvedores têm a tendência de criar funcionalidades que eles imaginam que serão solicitadas pelos clientes. Para combater esses problemas, o XP utiliza um escopo negociável (POPPENDIECK & POPPENDIECK, 2003) e utiliza iterações curtas onde são projetados, programados, testados, integrados e entregues incrementos de softwares úteis (POPPENDIECK & POPPENDIECK, 2003).

15 14 Como essas iterações são curtas, o feedback do usuário é obtido em um espaço curto de tempo e, assim, o desenvolvimento de funcionalidades desnecessárias é evitada, já que as funcionalidades de uma iteração são definidas pelo usuário que estabelece a prioridade de cada funcionalidade que ele imagina ser necessária ao sistema. Os desenvolvedores selecionam as mais prioritárias dentro do limite de tempo para realização daquela iteração, deixando as outras para a iteração seguinte. E, assim, aquelas funcionalidades que o usuário imaginava necessária no inicio do desenvolvimento, mas que não eram prioritárias, mostram o seu caráter desnecessário com o passar das iterações e não são desenvolvidas. O valor da simplicidade implica em fazer somente o que é necessário agora, sem tentar adivinhar o que será necessário no futuro, fazendo da maneira mais simples possível. Porque mantendo o seu sistema o mais simples possível, fica mais fácil adicionar novas funcionalidades no futuro, nas iterações seguintes. Coragem Existem diversos temores no processo de desenvolvimento de software. Esses temores podem interferir no desenvolvimento, já que atingem tanto os clientes como os desenvolvedores, e as tarefas executadas passam a ser baseadas nesses temores.. Em projetos XP, estes temores também estão presentes. Porém, o XP utiliza um conjunto de práticas que tendem a diminuir a conseqüência desses temores e, com isso, torna a equipe mais confiante de que seu trabalho não será afetado por esses temores. Por exemplo: Os clientes possuem medo de que não seja produzido o que eles querem, ou que estejam pagando muito por pouco. Para isso o XP usa a prática de iterações curtas que mostram o resultado rapidamente ao cliente, que assim pode

16 15 avaliar se está sendo bem interpretado e ainda avaliar se a equipe com a qual está trabalhando está produzindo o suficiente que justifique o investimento. Essas e outras práticas dão suporte para que as equipes XP se sintam encorajadas a desenvolver seus trabalhos. 2.2 Práticas Cliente Presente Esta prática consiste em levar o cliente para perto da equipe de desenvolvimento ou levar a equipe para perto do cliente. Quando falamos perto, queremos dizer, colocar os dois, fisicamente, no mesmo local. Esta prática é importantíssima para dois dos valores em que o XP se baseia: feedback e comunicação. O feedback é aprimorado na medida em que o desenvolvedor, estando próximo ao cliente, pode tirar dúvidas, na hora que sentir necessidade. Por sua vez, o cliente pode ir testando o sistema, à medida que este vai ficando pronto e com isso ir fornecendo feedback a respeito do que foi produzido. E, assim, o desenvolvedor assimila mais rapidamente as necessidades do cliente, fazendo com o desenvolvimento fique mais rápido ao longo do tempo. A comunicação melhora, pois conforme falamos anteriormente, o XP valoriza os meios de comunicação mais ricos e, nada é mais rico do que uma conversa presencial. Estando o cliente no mesmo espaço físico do desenvolvedor, a comunicação entre eles tenderá ser sempre presencial, o que é importantíssimo para uma maior compreensão do que está sendo conversado. A presença do cliente no mesmo espaço do desenvolvedor cria uma outra relação benéfica, que é a

17 16 relação de confiança, onde o cliente toma conhecimento dos esforços das equipes de desenvolvimento. Apesar da presença dos clientes trazer essas vantagens, nem sempre é fácil envolvê-los nos projetos. Boehm e Turner (2003) e Teles (2004) apresentam situações nas quais pode ser difícil, ou inviável, a utilização desta prática. Como por exemplo, quando o cliente está situado em outra cidade, estado ou país diferente de onde se encontra a equipe de desenvolvimento. Jogo de Planejamento O planejamento em XP é feito de forma contínua ao longo do desenvolvimento do software, onde o cliente e os desenvolvedores estão presentes. Os clientes escrevem pequenas funcionalidades em cartões, chamadas de histórias. Essas histórias devem ser simples e escritas de forma que cliente e desenvolvedores sejam capazes de entendê-las. Uma vez com as histórias definidas, os desenvolvedores estimam quanto tempo irão levar para desenvolver cada uma. Com as estimativas definidas, o cliente define o valor de negócio de cada uma e então determina as prioridades e, baseado no orçamento dos desenvolvedores, define quais as histórias deverão ser entregues no próximo release.(beck & FOWLER, 2001). Os releases são intervalos de tempos, que geralmente duram alguns meses, onde um pequeno conjunto de funcionalidades, devidamente testado e integrado, é entregue aos usuários para serem utilizados. Esses releases são divididos em intervalos menores chamados de iterações. As iterações são intervalos de tempos que, geralmente, duram algumas semanas, e onde os desenvolvedores entregam algumas funcionalidades, também devidamente testadas. Uma coisa que vale ressaltar é que a duração de cada

18 17 iteração é constante ao longo do de todo o projeto. Essas iterações servem para se obter uma melhor estimativa do andamento do projeto e, com isso, estimar melhor o tempo de desenvolvimento da equipe, chamada de velocidade, ao longo do desenvolvimento. Essa velocidade tende a se estabilizar. As iterações também são extremamente importantes para obtenção de feedback de que o que está sendo desenvolvido é realmente o que foi pedido pelos clientes. Assim podemos identificar, mais rapidamente, possíveis erros cometidos e corrigí-los. A cada início de iteração é definido quais funcionalidades serão implementadas, baseado na velocidade das iterações passadas e após redefinição das prioridades das histórias. Por se tratar de um processo continuo de planejamento, revisão de prioridades e entrega de produtos, as funcionalidades desnecessárias tendem a não serem desenvolvidas, uma vez que o cliente vai tendo acesso ao sistema e verifica que essas funcionalidades não se fazem mais necessárias. Com isso, o desperdício de recursos é minimizado e aumenta a chance do projeto ser bem sucedido. Stand up meeting O Stand up meeting, como o próprio nome em inglês diz, é uma reunião em que seus participantes ficam em pé. Essa característica e extremamente importante para demonstrar que esta reunião deve ser rápida. Ela ocorre, diariamente, para que todos tomem ciência do que aconteceu no dia anterior. Todos contam o que fizeram um dia antes para que toda a equipe tenha conhecimento do andamento do projeto. Essa reunião também é importante para a obtenção do feedback dos outros integrantes da equipe. Neste momento, cada um fica sabendo de sua atividade diária, que é definida por toda a equipe. Ao tomar conhecimento de todas as atividades dos membros, dos problemas enfrentados e das soluções encontradas, o conhecimento adquirido por uma pessoa

19 18 é disseminado para toda a equipe. Porém, esta reunião só é possível se todos os membros da equipe trabalharem no mesmo lugar. Programação em Par A programação em par consiste em duas pessoas programando juntas em um mesmo computador. À primeira vista, essa prática pode ser vista como uma perda de recursos. Porém, como iremos ver, essa prática traz uma série de vantagens. A inspeção de código realizada intensamente é a primeira das vantagens que podem ser citadas. Ter alguém, ao lado, desenvolvendo com você, faz com que esta pessoa funcione como um revisor do código capaz de verificar erros simples, que podem passar despercebidos pelos programadores. Tais erros poder consumir dias para serem corrigidos. Assim, detectá-los cedo diminui o esforço da correção. Discussões ao longo do desenvolvimento fazem com que os programadores explorem um número maior de cenários, fazendo com que estes cheguem a uma forma mais simples de resolver o problema. Isto é uma grande vantagem quando tiver que ser dada alguma manutenção no código. Além disso, implantar a solução mais simples, em geral, consome menos tempo. Outro aspecto importantíssimo na programação, em par, é a disseminação do conhecimento. Como os programadores trocam de par constantemente, a troca de conhecimento enquanto trabalham juntos é acontece naturalmente. Ao se depararem com problemas, os programadores mais experientes passam seus conhecimentos para os mais jovens. Além disso, quando as pessoas obtêm informações sobre questões que estão enfrentando no dia-a-dia, a sua concentração no aprendizado tende e a ser muito melhor. A programação em par também é extremamente importante para construir uma equipe mais sólida, que não depende de um único programador chave e, ao

20 19 mesmo tempo, contribui para a adição de uma pessoa à equipe. Como o conhecimento é disseminado ao longo de toda equipe, a presença de um programador chave se torna mais difícil e a adição de uma pessoa é facilitada, pois esta irá trabalhar em par com outros programadores e obter conhecimento do domínio do sistema. Efeito conhecido, gerado pela programação em par, a pressão do par é importante porque aumenta a produtividade das equipes já que as pessoas se sentem pressionadas por seus pares. Isso diminui o tempo perdido com atividades externas ao projeto, como verificação de e conversas. As pessoas ficam inibidas em parar suas atividades pois isto implicará em parar, também, o trabalho de seu companheiro. Alem disso, a programação em par aumenta a motivação da equipe e o relacionamento inter pessoal pois proporciona o convívio direto com as pessoas e aumenta a confiança no outro, gerando uma maior intimidade que dão início. Até mesmo, a conversas sobre lazer e vida pessoal. Além disso, o fato de desenvolverem uma solução, em conjunto aumenta, a confiança nas atividades que executam. Todos esses fatores geram um aumento de produtividade que compensa o uso de dois desenvolvedores em um mesmo computador, além de produzir software mais rapidamente e de melhor qualidade. Existem alguns fatores, como ego e competitividade, que podem tornar a programação em par problemática. A presença de programadores com egos extremamente elevados, que não aceitam ver seus códigos serem questionados, e a existência de um ambiente extremamente competitivo, onde as pessoas não querem ser vistas aprendendo com um companheiro de trabalho, podem atrapalhar o

21 20 andamento do trabalho em conjunto. E, ao mesmo tempo em que alguns não estão dispostos a aprender, também se recusam a ensinar, a um colega de trabalho, algo que ele poderia passar adiante. Código Coletivo Uma outra prática utilizada no XP, que complementa a programação em par, é a pratica do código coletivo. Em XP, ninguém é proprietário de um código. O código pertence a toda a equipe e todos podem alterá-lo, sem pedir permissão a ninguém, o que ajuda na formação de uma equipe coesa. Já que todos têm acesso ao código, e sempre há um revezamento de pares e do trecho de código que cada um está desenvolvendo, na hora que for necessário dar manutenção em algum trecho de código, várias pessoas poderão fazer pois já trabalharam naquele trecho em algum momento. Como pessoas diferentes alteram o mesmo trecho de código, a tendência é que o código fique cada vez mais simplificado, pois cada um que notar que algo está sendo feito de uma maneira muito complicada tentará simplificá-lo. Assim, o código fica cada vez mais simples e os erros são detectados mais rapidamente, pois as pessoas que irão alterá-lo farão uma revisão do código e poderão identificar erros que ainda não haviam sido detectados (BECK, 2000, p ). Essa prática também agiliza o processo de desenvolvimento uma vez que as pessoas não precisam esperar que outra altere alguma coisa para que eles realizem os seus trabalhos. Eles mesmos alteram. Temos que ressaltar que esta prática só deve ser usada se a equipe desenvolve seu sistema utilizando uma base sólida de testes, pois alterações em trechos de códigos que não foram desenvolvidos pela própria pessoa podem causar muitos erros, mas com um grande conjunto de testes esse problema é contornado,

22 21 porque a pessoa poderá identificar esses erros quando rodar os testes e consertá-lo antes de integrá-lo. Código Padronizado Projetos XP utilizam código padronizado. Essa padronização é determinada pelos próprios desenvolvedores, o que auxilia na programação em par e no código coletivo. Mas essas práticas também são importantes para que se tenha um código padronizado, já que um código encontrado fora do padrão pode ser alterado para que fique no padrão. Design Simples Quando os usuários solicitam um software, esperam, basicamente, que ele possua quatro características : Que faça a coisa certa; Que funcione; Que seja fácil de utilizar e Que possa evoluir com o tempo. As duas primeiras características são alcançadas com a utilização da prática de iterações curtas (TELES, 2005), assim rapidamente os clientes podem verificar se o que está sendo feito está correto e funciona. Porém, essa mesma técnica pode ser uma armadilha para se obter as duas últimas características. Uma vez que o processo é iterativo, corre-se o risco de que nas iterações futuras seja difícil inserir novas funcionalidades e fazer com estas sejam facilmente adaptadas ao que já existe. Isso poderia tornar o sistema complexo de se usar e muitas vezes engessado. Mas para resolver esse problema, o XP utiliza uma série de práticas que são usadas em conjunto para corrigir possíveis falhas das outras e, uma delas, é a do

23 22 design simples. Equipes XP procuram manter o design dos sistemas o mais simples possível para que nas iterações futuras fique mais fácil agregar novas funcionalidades. Esta prática consiste em fazer sempre o mínimo possível, deixando que decisões complicadas sejam tomadas na hora certa, sem tentar prever o que está por vir, ou tentar prever mudanças que poderão acontecer no futuro. Essas previsões acabam fazendo com que os desenvolvedores comecem a gerar funcionalidades genéricas, porque acreditam que no futuro essas funcionalidades serão utilizadas por outros procedimentos e, com isso, vão gerando códigos complexos e difíceis de serem mantidos. Esta prática também é muito importante na utilização da prática de iterações curtas, pois apenas possuindo um design simples é possível fazer análise, design, implementação, testes e depuração de um conjunto de funcionalidades, em uma ou duas semanas. O design simples é obtido utilizando-se outras práticas que veremos a seguir. Essas práticas juntas fazem com que o crescimento do custo de manutenções futuras seja linear, e não exponencial, como na maioria dos casos. Isso ocorre porque com um design, sempre mantido o mais simples possível, com uso de computadores rápidos pelo os desenvolvedores, que permite que estes realizem testes sempre que fizerem uma mudança no sistema, e a adoção dos testes automatizados, evita que manutenções no futuro sejam muito mais custosas que as feitas no presente (BECK, 2000). Desenvolvimento Orientado a Testes Uma das práticas citadas acima que ajudam na elaboração de um design simples e que reduz o custo de manutenções futuras é a prática de desenvolvimento orientado a testes (HUNT & THOMAS, 2003). Essa prática consiste na elaboração

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

Capítulo 1. Extreme Programming: visão geral

Capítulo 1. Extreme Programming: visão geral Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento

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

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

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

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

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 mais

Jonas de Souza H2W SYSTEMS

Jonas de Souza H2W SYSTEMS Jonas de Souza H2W SYSTEMS 1 Tecnólogo em Informática Fatec Jundiaí MBA em Gerenciamento de Projetos FGV Project Management Professional PMI Mestrando em Tecnologia UNICAMP Metodologia de apoio à aquisição

Leia mais

http://www.wikiconsultoria.com.br/100-motivos-implantar-crm/

http://www.wikiconsultoria.com.br/100-motivos-implantar-crm/ Continuando a série 100 motivo para implantar um CRM, veremos agora motivos referentes a BackOffice de CRM. Se você não tem a primeira parte da nossa apresentação, com os primeiros 15 motivos para implantar

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

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

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.

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

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software Desenvolvimento Ágil de Software Métodos ágeis (Sommerville) As empresas operam em um ambiente global, com mudanças rápidas. Softwares fazem parte de quase todas as operações de negócios. O desenvolvimento

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

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

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

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com) SCRUM: UM MÉTODO ÁGIL Cleviton Monteiro (cleviton@gmail.com) Roteiro Motivação Manifesto Ágil Princípios Ciclo Papeis, cerimônias, eventos, artefatos Comunicação Product Backlog Desperdício 64% das features

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

Feature-Driven Development

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

Distribuidor de Mobilidade GUIA OUTSOURCING

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

A importância da comunicação em projetos de

A importância da comunicação em projetos de A importância da comunicação em projetos de Tecnologia da Informação (TI) Autor: Ivan Luizio R. G. Magalhães Um perigo previsto está metade evitado. Thomas Fuller Introdução Há muitos anos atrás, um bom

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

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

ACOMPANHAMENTO GERENCIAL SANKHYA

ACOMPANHAMENTO GERENCIAL SANKHYA MANUAL DE VISITA DE ACOMPANHAMENTO GERENCIAL SANKHYA Material exclusivo para uso interno. O QUE LEVA UMA EMPRESA OU GERENTE A INVESTIR EM UM ERP? Implantar um ERP exige tempo, dinheiro e envolve diversos

Leia mais

#10 PRODUZIR CONTEÚDO SUPER DICAS ATRATIVO DE PARA COMEÇAR A

#10 PRODUZIR CONTEÚDO SUPER DICAS ATRATIVO DE PARA COMEÇAR A #10 SUPER DICAS PARA COMEÇAR A Pantone 715 C 100% Black 80% Black C: 0 M: 55 Y: 95 K: 0 C: 0 M: 0 Y: 0 K: 100 C: 0 M: 0 Y: 0 K: 80 PRODUZIR CONTEÚDO ATRATIVO DE Confira estas super dicas para você produzir

Leia mais

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)

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

Práticas do XP (Programação em Pares e Stand Up Meeting)

Práticas do XP (Programação em Pares e Stand Up Meeting) Programação Extrema Práticas do XP (Programação em Pares e Stand Up Meeting) Prof. Mauro Lopes 1-17 31 Objetivos Após explorarmos os Valores e as Práticas do XP, iremos trabalhar de forma mais profunda

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

COMO FAZER A TRANSIÇÃO

COMO FAZER A TRANSIÇÃO ISO 9001:2015 COMO FAZER A TRANSIÇÃO Um guia para empresas certificadas Antes de começar A ISO 9001 mudou! A versão brasileira da norma foi publicada no dia 30/09/2015 e a partir desse dia, as empresas

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

Leia mais

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis 3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis O que é um e- mail bem sucedido? É aquele e- mail que você recebe o contato, envia o e- mail para o cliente e ele te responde. Nós não estamos

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software)

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

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

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

Estudo de Caso. Cliente: Rafael Marques. Coach: Rodrigo Santiago. Duração do processo: 12 meses

Estudo de Caso. Cliente: Rafael Marques. Coach: Rodrigo Santiago. Duração do processo: 12 meses Estudo de Caso Cliente: Rafael Marques Duração do processo: 12 meses Coach: Rodrigo Santiago Minha idéia inicial de coaching era a de uma pessoa que me ajudaria a me organizar e me trazer idéias novas,

Leia mais

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado. Nome: Nº Série: EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado. Habilidades: Pesquisar novas ferramentas e aplicativos de informática para a área

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

Programaçã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 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 mais

HIBERNATE EM APLICAÇÃO JAVA WEB

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

Leia mais

COMO INVESTIR PARA GANHAR DINHEIRO

COMO INVESTIR PARA GANHAR DINHEIRO COMO INVESTIR PARA GANHAR DINHEIRO Por que ler este livro? Você já escutou histórias de pessoas que ganharam muito dinheiro investindo, seja em imóveis ou na Bolsa de Valores? Após ter escutado todas essas

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

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: 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 mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior Sistemas ERP Introdução Sucesso para algumas empresas: acessar informações de forma rápida e confiável responder eficientemente ao mercado consumidor Conseguir não é tarefa simples Isso se deve ao fato

Leia mais

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

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Anexo I Formulário para Proposta

Anexo I Formulário para Proposta PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos

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

NOKIA. Em destaque LEE FEINBERG

NOKIA. Em destaque LEE FEINBERG Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões

Leia mais

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Rene Baltazar Introdução Serão abordados, neste trabalho, significados e características de Professor Pesquisador e as conseqüências,

Leia mais

Engenharia de Software II

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

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor Reuso de Software Aula 05 Agenda da Aula Linha de Produtos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 19 Março 2012 Padrões arquiteturais Cliente-Servidor

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

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

MVC e Camadas - Fragmental Bliki

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

Leia mais

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras.

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras. 6 6 NOME DA AULA: 6 Algoritmos Duração da aula: 45 60 minutos Tempo de preparação: 10-25 minutos (dependendo da disponibilidade de tangrans prontos ou da necessidade de cortá-los à mão) Objetivo principal:

Leia mais

FANESE Faculdade de Administração e Negócios de Sergipe

FANESE Faculdade de Administração e Negócios de Sergipe 1 FANESE Faculdade de Administração e Negócios de Sergipe ITIL V2 Service Support Aracaju, Setembro de 2009 EDUARDO DA PAIXÃO RODRIGUES LUCIELMO DE AQUINO SANTOS 2 ITIL V2 Service Support Trabalho de graduação

Leia mais

Daruma NFCe Conheça todos os passos para testar a NFCe Daruma

Daruma NFCe Conheça todos os passos para testar a NFCe Daruma Pré-requisitos Mini Impressora Daruma versão 02.50.02 ou superior. Cadastro no servidor de Testes Daruma NFCe Conheça todos os passos para testar a NFCe Daruma Adquirir Mini Impressora a preço subsidiado

Leia mais

Manual 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) 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 mais

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr. A Chave para o Sucesso Empresarial José Renato Sátiro Santiago Jr. Capítulo 1 O Novo Cenário Corporativo O cenário organizacional, sem dúvida alguma, sofreu muitas alterações nos últimos anos. Estas mudanças

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Gestão de Relacionamento com o Cliente CRM

Gestão de Relacionamento com o Cliente CRM Gestão de Relacionamento com o Cliente CRM Fábio Pires 1, Wyllian Fressatti 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil pires_fabin@hotmail.com wyllian@unipar.br RESUMO. O projeto destaca-se

Leia mais

Boas Práticas de Desenvolvimento Seguro

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

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

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

Projeto Você pede, eu registro.

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

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

MODELO CMM MATURIDADE DE SOFTWARE

MODELO CMM MATURIDADE DE SOFTWARE MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo

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

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

CSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO

CSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO CSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO CSF FasTest Reduzindo o esforço empregado nos testes Os testes são a faca de dois gumes da composição de documentos: durante o ciclo de vida de seu documento,

Leia mais

www.startercomunicacao.com startercomunic@gmail.com

www.startercomunicacao.com startercomunic@gmail.com 7 DICAS IMPERDÍVEIS QUE TODO COACH DEVE SABER PARA CONQUISTAR MAIS CLIENTES www.startercomunicacao.com startercomunic@gmail.com As 7 dicas imperdíveis 1 2 3 Identificando seu público Abordagem adequada

Leia mais

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson QUALIDADE Simpósio Brasileiro de Qualidade de Software - SBQS Instituto Nokia de Tecnologia Unit Test Sucess Bug INdT Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega

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

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

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

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pó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 mais

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português 1 de 7 28/10/2012 16:47 SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português RESULTADO DO SIMULADO Total de questões: 40 Pontos: 0 Score: 0 % Tempo restante: 55:07 min Resultado: Você precisa

Leia mais

Manual Portal Ambipar

Manual Portal Ambipar Manual Portal Ambipar Acesso Para acessar o Portal Ambipar, visite http://ambipar.educaquiz.com.br. Login Para efetuar o login no Portal será necessário o e-mail do Colaborador e a senha padrão, caso a

Leia mais

Os desafios do Bradesco nas redes sociais

Os desafios do Bradesco nas redes sociais Os desafios do Bradesco nas redes sociais Atual gerente de redes sociais do Bradesco, Marcelo Salgado, de 31 anos, começou sua carreira no banco como operador de telemarketing em 2000. Ele foi um dos responsáveis

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

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!! Apresentação Este manual é uma orientação para os participantes de cursos no ambiente Moodle do INSTITUTO PRISMA. Tem como objetivo orientar sobre as ações básicas de acesso e utilização do ambiente virtual

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

22 DICAS para REDUZIR O TMA DO CALL CENTER. em Clínicas de Imagem

22 DICAS para REDUZIR O TMA DO CALL CENTER. em Clínicas de Imagem para REDUZIR O TMA DO CALL CENTER em Clínicas de Imagem Objetivo Um atendimento eficiente e personalizado é um dos principais fatores que o cliente leva em consideração ao iniciar um processo de fidelização

Leia mais

A Grande Importância da Mineração de Dados nas Organizações

A Grande Importância da Mineração de Dados nas Organizações A Grande Importância da Mineração de Dados nas Organizações Amarildo Aparecido Ferreira Junior¹, Késsia Rita da Costa Marchi¹, Jaime Willian Dias¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

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

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

agility made possible

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

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

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