Artigo corrigido

  • 775 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
775
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Universidade Estadual de Maringá<br />Centro de Tecnologia<br />Departamento de Informática<br />Disciplina: Ambientes de Desenvolvimento de Software – 1753<br />Criação do Ambiente de Desenvolvimento e Desenvolvimento da aplicação G-INFO<br />Professor:<br />Ademir Carniel<br />Alunos:<br />Carlos Alessandro Chiconato Ra: 48879<br />Página: www.din.uem.br/~cachiconato<br />Marcos Paulo Arruda Frare Ra: 48893<br />Página: www.din.uem.br/~mpafrare<br />Maringá, 2010<br />Sumario<br />
    • Introdução
    • 2. Por que definir processos
    • 3. Objetivos
    • 4. Fundamentação Teórica
    • 5. Sobre Qualidade de Software
    • 6. Sobre Scrum
    • 7. Sobre Ambiente de Desenvolvimento de Software
    • 8. Modelo (Materiais e Métodos)
    • 9. Ferramentas Utilizadas para Montar o Ambiente
    • 10. Netbeans IDE
    • 11. Grails
    • 12. AceProject
    • 13. Visual Paradigm for UML
    • 14. Photoshop CS4
    • 15. Sony Vaio
    • 16. Resultados
    • 17. Sobre G-INFO
    • 18. Como foi utilizado o Modelo de Qualidade
    • 19. Requisitos do G-INFO
    • 20. Diagrama de Classe
    • 21. Diagrama de Banco de Dados
    • 22. Ambiente Auxiliando no Desenvolvimento
    • 23. Conclusão
    • 24. Referencias Bibliográficas
    • 25. Introdução
    Neste artigo será mostrado como foi criado um ambiente de desenvolvimento de software e utilizando este ambiente o desenvolvimento de uma aplicação chamada de G-INFO.<br />Antes de mostrar como o ambiente e a aplicação foram criados, vamos mostrar a estrutura do que foi necessário para criar a aplicação.<br />Figura 1: Estrutura <br />A figura 1 apresenta a estrutura do que é necessário para a criação da aplicação, para ter qualidade de software (Q.S. da figura) é necessário definir um processo de software, vamos ver por que é necessário definir um processo de software.<br />
    • Por que Definir um Processo de Software
    É importante definir um processo, pois ele é necessário para guiar as ações e etapas a serem realizadas em determinado momento. Alem disso a definição auxilia, pois:<br />Facilita o entendimento e a comunicação entre pessoas;<br />Apóia a melhoria dos processos;<br />Apóia a gerência dos processos;<br />Fornece apoio automatizado guiando no processo;<br />Fornece apoio na execução automatizada do processo;<br />Tendo esclarecido o porquê é necessário definir um processo de software, vamos definir formalmente os objetivos deste artigo.<br />
    • Objetivos
    • 26. Montar um Ambiente de Desenvolvimento de Software;
    • 27. Desenvolver usando a metodologia Scrum a aplicação G-INFO versão empresarial;
    • 28. Apos definirmos os objetivos terminamos a introdução (parte 1), na parte 2 será definido conceitos que foram utilizados, a parte 3 mostra como foi criado o ambiente de desenvolvimento, na parte 4 apresenta-se como foi desenvolvido a aplicação G-INFO, na 5 uma breve conclusão e na 6 as referencias utilizadas neste artigo.
    • 29. Fundamentação Teórica
    Nesta etapa do artigo iremos definir alguns conceitos, primeiramente definiremos o que é qualidade de software.<br />
    • Sobre Qualidade de Software
    O termo qualidade apresenta características que implicam dificuldades consideráveis para a sua perfeita definição. Não é um termo técnico exclusivo, mas uma palavra de domínio público [12]. Definir qualidade de forma errônea leva a Gestão da Qualidade a adotar ações cujas conseqüências podem ser extremamente sérias para a empresa. O enfoque mais usual para a definição da qualidade envolve a idéia de centrar a qualidade no consumidor, focalizando toda a atividade produtiva para o seu atendimento. <br />A seguir são apresentados alguns conceitos, dentre muitos, sobre qualidade:<br />Adequação ao uso: o produto corresponde às expectativas de uso (conceito de qualidade mais aceito [5]<br />Conformidade com especificações: produtos possuem as características que estão descritas nos projetos [6]<br />Satisfação do cliente [6]<br />Grau no qual um conjunto de características inerentes satisfaz a requisitos [4]<br />É a totalidade de características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas [2].<br />Um Sistema de Gestão da Qualidade é a estrutura organizacional, responsabilidades, procedimentos, processos e recursos necessários para a implementação do gerenciamento da qualidade. Dá ênfase à prevenção de problemas, ao invés da sua correção. O seu foco é a definição e documentação de processos, a sua implementação e a garantia da sua eficácia para atingir os resultados esperados. Deve desenvolver mecanismos que garantam a sobrevivência da organização e possibilitem sua permanente e contínua evolução. É o processo de definição, implantação e avaliação de políticas da qualidade. [1] Um sistema de gestão da qualidade pode ser criado pela adoção de um dos modelos da qualidade existentes, no caso do desenvolvimento de G-INFO foi utilizado o modelo ágil Scrum. <br />
    • Sobre o SCRUM
    O processo escolhido foi o Scrum basicamente por ser uma metodologia ágil, tendo um enfoque maior no diálogo verbal entre os integrantes, onde a documentação não é tão formal.<br />Algumas características do Scrum:<br />O Scrum é uma metodologia iterativa e incremental;<br />A iteração, chamada de sprint, em geral tem duração rápida, duas semanas por exemplo. Ao final de cada sprint é entregue um protótipo funcional do software.<br />Possui um backlog de produto que é o conjunto de requisitos priorizado pelo product owner, por conhecer as necessidades do cliente. Há também o backlog de sprint que é uma interpretação do backlog de produto, e contém tarefas completas que serão realizadas no próximo sprint.<br />São realizadas rápidas reuniões diariamente, chamadas de Daily Scrum, Standup Meeting ou Daily Meeting, pois os participantes permanecem em pé durante a reunião, a fim de não prolongar a mesma. No Daily Scrum cada integrante da equipe de projeto diz o progresso conseguido, o trabalhado a ser feito no dia ou o que o impede de realizá-lo.<br />O Scrum Master tem o papel de facilitar o Scrum, tendo como função principal remover qualquer impedimento que a equipe venha a ter e que atrapalhe o bom andamento do projeto e a realização do objetivo do sprint. O Scrum Master não é o líder da equipe (pois estas são auto-organizadas), mas faz a função de mediador entre a equipe e qualquer situação desestabilizadora. Também deve manter sua equipe focada na metodologia, motivando-a e gerenciando o bom uso das técnicas do Scrum.<br />Clientes fazem parte da equipe de desenvolvimento, sempre esclarecendo possíveis dúvidas sobre as funcionalidades do sistema e fornecendo um feedback dos artefatos criados pelos sprints.<br />Entrega de funcionalidades 100% desenvolvidas periodicamente. É importante para o cliente receber uma funcionalidade completamente desenvolvida para que haja um retorno à equipe, orientando o que deve ser melhorado ou o que pode ser retirado do projeto.<br />Para auxiliar no desenvolvimento do projeto e na utilização do Scrum foi necessário criar um ADS (Ambiente de Desenvolvimento de Software), primeiramente vamos definir o que é um ADS.<br />
    • Sobre o Ambiente de Desenvolvimento de Software
    Diferentes abordagens têm sido propostas para melhorar a qualidade de processos e produtos. No entanto, pouca atenção tem sido dada à produção, armazenamento, compartilhamento e uso de conhecimentos relevantes para o desenvolvimento e a manutenção de software.<br />Sempre que o conhecimento requerido não está disponível, o desenvolvedor de software tem que partir do zero para encontrar a solução do problema, o que tem sérias implicações em termos da qualidade da solução. Verifica-se, desta forma, a importância da administração sistemática dos conhecimentos relevantes neste contexto. Mas como integrar a administração sistemática do conhecimento com as atividades de Engenharia de Software? As áreas de pesquisa de Gerência do Conhecimento e Ambientes de Desenvolvimento de Software são fundamentais para elaborar uma resposta a esta questão.<br />Gerência do Conhecimento implica na administração, de forma sistemática e ativa, do capital intelectual de uma organização, utilizando tecnologia apropriada e visando fornecer benefícios estratégicos à organização. Recentemente, chegou-se ao consenso de que a Gerência do Conhecimento deve ser freqüentemente embutida em processos e que estes devem ser re-projetados para acomodar a Gerência do Conhecimento [8].<br />Ambientes de Desenvolvimento de Software (ADS) são sistemas computacionais que apóiam o desenvolvimento, reparo e melhoria de produtos de software bem como o controle e gerenciamento destas atividades [7], ou seja, ADSs são conjuntos de ferramentas CASE integradas que facilitam a realização de atividades de engenharia de software, apoiando todo o ciclo de vida de software [14]. ADS têm evoluído ao longo do tempo para fornecer apoio mais amplo e efetivo aos desenvolvedores de software, tendo surgido os Ambientes de Desenvolvimento de Software Centrados em Processo [11] e os Ambientes de Desenvolvimento de Software Orientados a Domínio (ADSOD) [9,10].<br />Com isso enceramos a etapa 2 do artigo, agora já sabendo o que é um ambiente de desenvolvimento de software, iremos para a parte 3 que mostra como foi feito o ambiente.<br />
    • Modelos (Materiais e Métodos)
    Nesta seção iremos ver como foi desenvolvido o ambiente de desenvolvimento de software.<br />
    • Ferramentas Utilizadas para Montar o Ambiente
    Para a criação do ambiente de desenvolvimento foram utilizadas as seguintes ferramentas:<br />
    • Netbeans IDE
    O NetBeans IDE é um ambiente de desenvolvimento integrado (IDE) gratuito e de código aberto para desenvolvedores de software na linguagem Java, C/C++, PHP, Groovy, Ruby e muito mais. O IDE é executado em muitas plataformas, como Windows, Linux, Solaris e MacOS. O NetBeans IDE oferece aos desenvolvedores ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais, Web e móveis multiplataformas.<br />
    • Grails
    Grails é um framework para construção de aplicações para web através da linguagem de programação Groovy (uma linguagem dinâmica para a plataforma Java). Foi desenvolvido em código aberto e pretende ser um framework de alta produtividade graças à utilização do paradigma da programação por convenção que preserva o desenvolvedor dos detalhes de configuração. O Grails foi utilizando como sendo um plugin adicional para o Netbeans.<br />
    • AceProject
    Ferramenta livre para gerenciamento de projetos<br />
    • Visual Paradigm for UML
    Ferramenta recomendada pelo Netbeans, apos o mesmo parar de disponibilizar o plugin de UML, a ferramenta possibilita fazer a modelagem dos diagramas UML.<br />
    • Photoshop CS4
    Adobe Photoshop é um software caracterizado como editor de imagem bidimensionais do tipo raster (possuindo ainda algumas capacidades de edição típicas dos editores vetoriais) desenvolvido pela Adobe Systems . É considerado o líder no mercado dos editores de imagem profissionais, assim como o programa de fato para edição profissional de imagens digitais e trabalhos de pré-impressão.<br />
    • Sony Vaio
    VAIO é uma marca de notebooks, produzida pela Sony. A palavra " VAIO"  vem da sigla Vídeo Áudio Integrated Operation (Operação Integrada de Áudio e Vídeo), desde 2008, para celebrar 10 anos do padrão VAIO, seu nome foi mudado para Visual Áudio Intelligence Organizer (Organizador Inteligente de Áudio e Vídeo), fazendo referência ao desenvolvimento de software para caixa de som e webcam embutidos.<br />A Sony está ampliando continuamente a tecnologia da família de laptos Vaio, assim podendo ser encontrado em escritórios, casas e etc. Com o estilo dinâmico e feito de fibra de carbono, se encontram geralmente com o Windows Vista Business, Windows Vista Ultimate ou Windows Vista Home Edition. Existe uma enorme variedade de modelos.<br />Os softwares desenvolvidos com essa ferramenta poderosa podem utilizar um selo raro que pode ser visto na imagem 2 abaixo:<br />Figura 2: Selo Sony Vaio Vermelho<br />Com isso mostramos as ferramentas que o ambiente de desenvolvimento utiliza, para ver como elas se interagem e funcionam em conjunto foi desenvolvido uma aplicação que o desenvolvimento é mostrado na seção 4 do artigo.<br />
    • Resultados
    Nesta seção iremos mostrar como ocorreu o desenvolvimento do G-INFO, seguindo a estrutura da figura 1, utilizando o ADS e o modelo ágil SCRUM.<br />Primeiramente vamos definir o escopo do G-INFO.<br />
    • Sobre o G-INFO
    • 30. O G-INFO é uma aplicação para gestão de informações e políticas institucionais, ele possui duas versões a acadêmica e a empresarial.
    • 31. Na versão acadêmica ele é uma solução de gestão da informação para uma instituição de ensino, de forma a integrar às bases de dados da instituição, visando enfrentar as demandas de serviços corporativos nos padrões da
    • 32. “Sociedade da Informação” [13]
    • 33. Na versão empresarial ele é uma solução de gestão da informação dos funcionários da empresa, voltado mais para auxiliar no planejamento e organização de equipes para projetos.
    • 34. Nesse artigo será mostrado como foi feito o desenvolvimento do G-INFO versão empresarial.
    • 35. A aplicação G-INFO foi feita utilizando qualidade de software, mais primeiramente vamos esclarecer o que é qualidade de software.
    • 36. Como foi utilizado o Modelo de Qualidade
    Conforme foi dito na fundamentação teórica o modelo de qualidade utilizado no desenvolvimento da aplicação foi o modelo ágil Scrum, que apesar de não ser necessária uma ferramenta para gerenciamento de projeto no Scrum, é mais comum usar um quadro e colocar papeis, com o que deve ser feito, a equipe decidiu usar uma ferramenta de gerenciamento, pois como é um trabalho acadêmico é necessário ter “provas” de que se esta gerenciando o projeto, por isso que foi utilizado o aceproject.<br />Não houve necessidade de SCRUM Master no desenvolvimento, pois a equipe era composta por 3 pessoas.<br />Ocorreram 5 reuniões para o desenvolvimento do G-INFO, 3 foram para o planejamento e 2 para a codificação.<br />A primeira reunião foi com o cliente, expondo o seu problema e a segunda foi com product owner, com isso o backlog do G-INFO foi definido e segue abaixo. <br />
    • Requisitos do G-INFO
    • 37. De acordo com a apresentação feita durante a aula, e a pesquisa foram levantados os seguintes requisitos:
    • 38. Cadastrar Funcionários;
    • 39. Editar Funcionário;
    • 40. Desligar (deletar) funcionário da empresa;
    • 41. Cadastrar Projeto;
    • 42. Editar Projeto;
    • 43. Encerrar Projeto;
    • 44. Relatórios;
    • 45. Buscar Funcionários;
    • 46. Buscar Projetos;
    • 47. Associar Funcionário ao projeto;
    • 48. Verificar horas dedicadas ao projeto para poder trabalhar em múltiplos projetos;
    Na terceira reunião juntamente com o product owner foi desenvolvido 2 diagramas o de classe e o de entidade – relacionamento utilizando uma ferramenta do ambiente criado.<br />Lembrando que tudo o que foi feito, foi mapeado passo a passo na ferramenta de gerencia de projeto.<br />
    • Figura 3: Ferramenta de Gerencia de Projeto contendo o que já foi planejado
    • 49. Diagrama de Classe
    • 50. Com base no backlog e auxilio do product owner foi desenvolvido o diagrama de classe que segue abaixo:
    • 51. Figura 4: Diagrama de Classe
    • 52. Diagrama de Banco de Dados
    • 53. Com base no backlog e auxilio do product owner foi desenvolvido o diagrama de entidade-relacionamento que segue abaixo:
    • 54. Figura 5: Diagrama Entidade-Relacionamento
    Apos as reuniões de planejamento ocorreram duas Standup Meeting, para definir o que cada integrante da dupla de desenvolvimento iria codificar, lembrando que a equipe era de 2 integrantes o terceiro que era o product owner era o professor.<br />Desse modo, os objetivos foram alcançados, a criação de um ambiente de desenvolvimento de software auxiliou a rápida implementação e de forma organizada da aplicação, e como foi seguido um modelo de gestão de qualidade, pode-se afirmar que o software desenvolvido possui qualidade.<br />Vamos ver agora o desenvolvimento de um dos requisitos do G-INFO.<br />
    • Ambiente Auxiliando no Desenvolvimento
    Como foi feito o G-INFO usando o ambiente de desenvolvimento construído.<br />1° Cadastrar a tarefa na ferramenta de gerencia de projeto<br />Figura 6: Cadastrando uma nova tarefa no AceProject<br />É muito simples cadastrar uma nova tarefa no aceproject, apos ter o projeto cadastrado é só clicar em add Task que abre a tela da figura 6.<br />2º Modelar os diagramas UML necessários<br />Figura 7: Modelando Diagrama de Classe<br />Figura 8: Modelando Diagrama Entidade-Relacionamento<br />O visual paradigm for UML auxilia na criação de diagramas, apresentando vários tipos de diagramas para modelar e cada um com ferramentas de fácil manuseio e interface simples apesar da enorme quantidade de botões, mesmo para iniciantes na ferramenta ela é simples de utilizar.<br />3º Codificação<br />Na parte de codificação a integração entre o netbeans e o grails auxilia para desenvolver a aplicação em pouco tempo e ainda com pouca chance de ocorrer erros.<br />Figura 9: Codificando a classe Pessoa<br />Figura 10: Aplicação Funcionando após Compilar<br />4º Melhorar a Interface<br />Como foi visto na parte de acima o netbeans e o grails geram a aplicação de forma rápida e sem erros, porem a interface não feia, nessa parte entra o photoshop cs4, que auxilia no desenvolvimento da interface, alem do plugin do grails o grails UI, que auxilia na criação de menus.<br />Figura 11: Criação de logos Usando o Photoshop CS4<br />Apesar de ser de difícil manuseio para iniciantes, encontram-se na internet vários tutoriais que podem auxiliar na utilização da ferramenta.<br />Figura 12: Tela do Sistema apos melhorar a interface<br />Figura 13: Tela de Cadastro<br />5º Apresentação<br />Finalmente, o ambiente também auxilia nessa hora tão importante, que é apresentar o software desenvolvido, apresentando ele no Sony VAIO faz toda a diferença, pois o cliente vai ver que o software foi desenvolvido de forma diferenciada e especialmente para ele nessa ferramenta de fundamental importância para o desenvolvimento, de forma que aumenta em 100% a chance de compra do software.<br />
    • Figura 14: Resultado depois de apresentar no Sony Vaio
    • 55. Conclusão
    • 56. A criação de um ambiente de desenvolvimento e o desenvolvimento da aplicação auxiliaram na compreensão dos conteúdos vistos em sala de aula, e também foi importante para aprender uma nova metodologia de desenvolvimento sem ser a tradicional, alem disso foram conhecidas tecnologias e ferramentas novas como o grails, que auxiliam no desenvolvimento, tudo isso fez com que a equipe adquirisse novos conhecimentos para os integrantes da equipe e também experiência para os mesmos.
    • 57. Com isso pode-se dizer que os objetivos foram alcançados.
    • 58. Referencias Bibliográficas
    [1] BRUZAROSCO, D. C. Modelo de apoio para uma integração efetiva entre as tecnologias da Qualidade, de Gerência por Processos e da Informação, nas Organizações. 2005. Tese (Doutorado em Engenharia de Produção)- Programa de Pós-Graduação em Engenharia de Produção, UFSC, Florianópolis.<br />[2] CRUZ, T. Sistemas, organização & métodos: estudo integrado das novas tecnologias de informação. São Paulo: Atlas, 1997.<br />[3] Fusco. Camila - Scrum: a nova gestão de projetos disponível em HYPERLINK " http://governaca.wordpress.com/2008/03/18/scrum-a-nova-gestao-de-projeto" http://governaca.wordpress.com/2008/03/18/scrum-a-nova-gestao-de-projeto acessado em abril de 2010<br />[4]ISO – International Organization for Standardization. NBR ISO 9000 Sistemas de gestão da qualidade – Fundamentos e vocabulário. Rio de Janeiro: ABNT, 2000<br />[5] JURAN, J.M. Planejando para a qualidade. São Paulo: pioneira, 1990.<br />[6] MARANHÃO, M. ISO Série 9000: Manual de Implementação: Versão 2000. Rio de Janeiro: Qualitymark, 2001.<br />[7] MOURA, L., Taxonomia de Ambientes de Desenvolvimento de Software, Dissertação de M. Sc., COPPE/UFRJ, Rio de Janeiro, Brasil, 1992.<br />[8] O’LEARY, D. E., STUDER, R., “Knowledge Management: An Interdisciplinary Approach”, IEEE Intelligent Systems, v. 16, n. 1, pp. 24-25, Jan/Feb. 2001.<br /> [9] OLIVEIRA, K., Modelo para Constrição de Ambientes de Desenvolvimento de Software Orientados a Domínio, Tese de D. Sc., COPPE/UFRJ, Rio de Janeiro, Brasil, 1999.<br />[10] OLIVEIRA, K., ZLOT, F., ROCHA, A. R., et al., “Domain-oriented software development environment”, Journal of Systems and Software (Article in Press), 2004. In: http://authors.elsevier.com/sd/article/S0164121203002334.<br />[11] OSTERWEIL, L. J., “A Process-Object Centered View of Software Environment Architecture”. In: Advanced Programming Environments, v. 244, Lecture Notes in Computer Science, Springer- Verlag, pp. 156-174, 1986.<br />[12] PALADINI, E.P. Gestão da Qualidade: teoria e prática. São Paulo: Atlas, 2000.<br />[13] Periotto Álvaro José, Endrici. João Otavio Montanha - Gestão da Informação e Políticas Institucionais: uma solução pautada pela auto-avaliação, 2007<br />[14]. W. Harrison, H. Ossher, P. Tarr, “Software Engineering Tools and Environments: A Roadmap”, in Proc. of the Future of Software Engineering, ICSE’2000, Ireland, 2000<br />