Artigo corrigido

of 23 /23
Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Disciplina: Ambientes de Desenvolvimento de Software – 1753 Criação do Ambiente de Desenvolvimento e Desenvolvimento da aplicação G-INFO Professor: Ademir Carniel Alunos: Carlos Alessandro Chiconato Ra: 48879 Página: www.din.uem.br/~cachiconato Marcos Paulo Arruda Frare Ra: 48893

Embed Size (px)

Transcript of Artigo corrigido

  • 1. Universidade Estadual de Maring
    Centro de Tecnologia
    Departamento de Informtica
    Disciplina: Ambientes de Desenvolvimento de Software 1753
    Criao do Ambiente de Desenvolvimento e Desenvolvimento da aplicao G-INFO
    Professor:
    Ademir Carniel
    Alunos:
    Carlos Alessandro Chiconato Ra: 48879
    Pgina: www.din.uem.br/~cachiconato
    Marcos Paulo Arruda Frare Ra: 48893
    Pgina: www.din.uem.br/~mpafrare
    Maring, 2010
    Sumario
    • Introduo
    2. Por que definir processos 3. Objetivos 4. Fundamentao Terica 5. Sobre Qualidade de Software 6. Sobre Scrum 7. Sobre Ambiente de Desenvolvimento de Software 8. Modelo (Materiais e Mtodos) 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. Concluso 24. Referencias Bibliogrficas 25. Introduo

Neste artigo ser mostrado como foi criado um ambiente de desenvolvimento de software e utilizando este ambiente o desenvolvimento de uma aplicao chamada de G-INFO.
Antes de mostrar como o ambiente e a aplicao foram criados, vamos mostrar a estrutura do que foi necessrio para criar a aplicao.
Figura 1: Estrutura
A figura 1 apresenta a estrutura do que necessrio para a criao da aplicao, para ter qualidade de software (Q.S. da figura) necessrio definir um processo de software, vamos ver por que necessrio definir um processo de software.

  • Por que Definir um Processo de Software

importante definir um processo, pois ele necessrio para guiar as aes e etapas a serem realizadas em determinado momento. Alem disso a definio auxilia, pois:
Facilita o entendimento e a comunicao entre pessoas;
Apia a melhoria dos processos;
Apia a gerncia dos processos;
Fornece apoio automatizado guiando no processo;
Fornece apoio na execuo automatizada do processo;
Tendo esclarecido o porqu necessrio definir um processo de software, vamos definir formalmente os objetivos deste artigo.

  • Objetivos 26. Montar um Ambiente de Desenvolvimento de Software; 27. Desenvolver usando a metodologia Scrum a aplicao G-INFO verso empresarial; 28. Apos definirmos os objetivos terminamos a introduo (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 aplicao G-INFO, na 5 uma breve concluso e na 6 as referencias utilizadas neste artigo. 29. Fundamentao Terica

Nesta etapa do artigo iremos definir alguns conceitos, primeiramente definiremos o que qualidade de software.

  • Sobre Qualidade de Software

O termo qualidade apresenta caractersticas que implicam dificuldades considerveis para a sua perfeita definio.No um termo tcnico exclusivo, mas uma palavra de domnio pblico [12].Definir qualidade de forma errnea leva a Gesto da Qualidade a adotar aes cujas conseqncias podem ser extremamente srias para a empresa.O enfoque mais usual para a definio da qualidade envolve a idia de centrar a qualidade no consumidor, focalizando toda a atividade produtiva para o seu atendimento.
A seguir so apresentados alguns conceitos, dentre muitos, sobre qualidade:
Adequao ao uso: o produto corresponde s expectativas de uso (conceito de qualidade mais aceito [5]
Conformidade com especificaes: produtos possuem as caractersticas que esto descritas nos projetos [6]
Satisfao do cliente [6]
Grau no qual um conjunto de caractersticas inerentes satisfaz a requisitos [4]
a totalidade de caractersticas de uma entidade que lhe confere a capacidade de satisfazer as necessidades explcitas e implcitas [2].
Um Sistema de Gesto da Qualidade a estrutura organizacional, responsabilidades, procedimentos, processos e recursos necessrios para a implementao do gerenciamento da qualidade. D nfase preveno de problemas, ao invs da sua correo. O seu foco a definio e documentao de processos, a sua implementao e a garantia da sua eficcia para atingir os resultados esperados. Deve desenvolver mecanismos que garantam a sobrevivncia da organizao e possibilitem sua permanente e contnua evoluo. o processo de definio, implantao e avaliao de polticas da qualidade. [1] Um sistema de gesto da qualidade pode ser criado pela adoo de um dos modelos da qualidade existentes, no caso do desenvolvimento de G-INFO foi utilizado o modelo gil Scrum.

  • Sobre o SCRUM

O processo escolhido foi o Scrum basicamente por ser uma metodologia gil, tendo um enfoque maior no dilogo verbal entre os integrantes, onde a documentao no to formal.
Algumas caractersticas do Scrum:
O Scrum uma metodologia iterativa e incremental;
A iterao, chamada desprint, em geral tem durao rpida, duas semanas por exemplo. Ao final de cadasprint entregue um prottipo funcional do software.
Possui umbacklogde produto que o conjunto de requisitos priorizado peloproduct owner, por conhecer as necessidades do cliente. H tambm obacklogdesprint que uma interpretao dobacklogde produto, e contm tarefas completas que sero realizadas no prximo sprint.
So realizadas rpidas reunies diariamente, chamadas deDaily Scrum,Standup MeetingouDaily Meeting, pois os participantes permanecem em p durante a reunio, a fim de no prolongar a mesma. NoDaily Scrumcada integrante da equipe de projeto diz o progresso conseguido, o trabalhado a ser feito no dia ou o que o impede de realiz-lo.
OScrum Mastertem o papel de facilitar o Scrum, tendo como funo principal remover qualquer impedimento que a equipe venha a ter e que atrapalhe o bom andamento do projeto e a realizao do objetivo dosprint. OScrum Masterno o lder da equipe (pois estas so auto-organizadas), mas faz a funo de mediador entre a equipe e qualquer situao desestabilizadora. Tambm deve manter sua equipe focada na metodologia, motivando-a e gerenciando o bom uso das tcnicas do Scrum.
Clientes fazem parte da equipe de desenvolvimento, sempre esclarecendo possveis dvidas sobre as funcionalidades do sistema e fornecendo umfeedbackdos artefatos criados pelossprints.
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.
Para auxiliar no desenvolvimento do projeto e na utilizao do Scrum foi necessrio criar um ADS (Ambiente de Desenvolvimento de Software), primeiramente vamos definir o que um ADS.

  • Sobre o Ambiente de Desenvolvimento de Software

Diferentes abordagens tm sido propostas para melhorar a qualidade de processos e produtos. No entanto, pouca ateno tem sido dada produo, armazenamento, compartilhamento e uso de conhecimentos relevantes para o desenvolvimento e a manuteno de software.
Sempre que o conhecimento requerido no est disponvel, o desenvolvedor de software tem que partir do zero para encontrar a soluo do problema, o que tem srias implicaes em termos da qualidade da soluo. Verifica-se, desta forma, a importncia da administrao sistemtica dos conhecimentos relevantes neste contexto. Mas como integrar a administrao sistemtica do conhecimento com as atividades de Engenharia de Software? As reas de pesquisa de Gerncia do Conhecimento e Ambientes de Desenvolvimento de Software so fundamentais para elaborar uma resposta a esta questo.
Gerncia do Conhecimento implica na administrao, de forma sistemtica e ativa, do capital intelectual de uma organizao, utilizando tecnologia apropriada e visando fornecer benefcios estratgicos organizao. Recentemente, chegou-se ao consenso de que a Gerncia do Conhecimento deve ser freqentemente embutida em processos e que estes devem ser re-projetados para acomodar a Gerncia do Conhecimento [8].
Ambientes de Desenvolvimento de Software (ADS) so sistemas computacionais que apiam o desenvolvimento, reparo e melhoria de produtos de software bem como o controle e gerenciamento destas atividades [7], ou seja, ADSs so conjuntos de ferramentas CASE integradas que facilitam a realizao de atividades de engenharia de software, apoiando todo o ciclo de vida de software [14]. ADS tm evoludo 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 Domnio (ADSOD) [9,10].
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.

  • Modelos (Materiais e Mtodos)

Nesta seo iremos ver como foi desenvolvido o ambiente de desenvolvimento de software.

  • Ferramentas Utilizadas para Montar o Ambiente

Para a criao do ambiente de desenvolvimento foram utilizadas as seguintes ferramentas:

  • Netbeans IDE

ONetBeansIDE umambiente de desenvolvimento integrado (IDE) gratuito e decdigo abertopara desenvolvedores de software na linguagemJava, C/C++, PHP, Groovy, Ruby e muito mais. O IDE executado em muitas plataformas, comoWindows,Linux,SolariseMacOS. O NetBeans IDE oferece aos desenvolvedores ferramentas necessrias para criar aplicativos profissionais de desktop, empresariais, Web e mveis multiplataformas.

  • Grails

Grails umframeworkpara construo deaplicaesparawebatravs da linguagem de programaoGroovy(umalinguagem dinmicapara aplataforma Java). Foi desenvolvido emcdigo abertoe pretende ser um frameworkde alta produtividade graas utilizao do paradigma daprogramao por convenoque preserva o desenvolvedor dos detalhes de configurao. O Grails foi utilizando como sendo um plugin adicional para o Netbeans.

  • AceProject

Ferramenta livre para gerenciamento de projetos

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

  • Photoshop CS4

Adobe Photoshop um softwarecaracterizado comoeditor de imagembidimensionais do tiporaster(possuindo ainda algumas capacidades de edio tpicas dos editoresvetoriais) desenvolvido pela Adobe Systems. considerado o lder no mercado dos editores de imagem profissionais, assim como o programade fatopara edio profissional de imagens digitais e trabalhos depr-impresso.

  • Sony Vaio

VAIO uma marca denotebooks, produzida pelaSony. A palavra" VAIO" vem da siglaVdeo udio Integrated Operation(Operao Integrada de udio e Vdeo), desde 2008, para celebrar 10 anos do padro VAIO, seu nome foi mudado para Visual udio Intelligence Organizer (Organizador Inteligente de udio e Vdeo), fazendo referncia ao desenvolvimento de software paracaixa de somewebcamembutidos.
A Sony est ampliando continuamente a tecnologia da famlia delaptosVaio, assim podendo ser encontrado em escritrios, casas e etc. Com o estilo dinmico e feito defibra de carbono, se encontram geralmente com oWindows VistaBusiness, Windows Vista Ultimate ou Windows Vista Home Edition. Existe uma enorme variedade de modelos.
Os softwares desenvolvidos com essa ferramenta poderosa podem utilizar um selo raro que pode ser visto na imagem 2 abaixo:
Figura 2: Selo Sony Vaio Vermelho
Com isso mostramos as ferramentas que o ambiente de desenvolvimento utiliza, para ver como elas se interagem e funcionam em conjunto foi desenvolvido uma aplicao que o desenvolvimento mostrado na seo 4 do artigo.

  • Resultados

Nesta seo iremos mostrar como ocorreu o desenvolvimento do G-INFO, seguindo a estrutura da figura 1, utilizando o ADS e o modelo gil SCRUM.
Primeiramente vamos definir o escopo do G-INFO.

  • Sobre o G-INFO 30. O G-INFO uma aplicao para gesto de informaes e polticas institucionais, ele possui duas verses a acadmica e a empresarial. 31. Na verso acadmica ele uma soluo de gesto da informao para uma instituio de ensino, de forma a integrar s bases de dados da instituio, visando enfrentar as demandas de servios corporativos nos padres da 32. Sociedade da Informao [13] 33. Na verso empresarial ele uma soluo de gesto da informao dos funcionrios da empresa, voltado mais para auxiliar no planejamento e organizao de equipes para projetos. 34. Nesse artigo ser mostrado como foi feito o desenvolvimento do G-INFO verso empresarial. 35. A aplicao 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 fundamentao terica o modelo de qualidade utilizado no desenvolvimento da aplicao foi o modelo gil Scrum, que apesar de no ser necessria 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 acadmico necessrio ter provas de que se esta gerenciando o projeto, por isso que foi utilizado o aceproject.
No houve necessidade de SCRUM Master no desenvolvimento, pois a equipe era composta por 3 pessoas.
Ocorreram 5 reunies para o desenvolvimento do G-INFO, 3 foram para o planejamento e 2 para a codificao.
A primeira reunio 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.

  • Requisitos do G-INFO 37. De acordo com a apresentao feita durante a aula, e a pesquisa foram levantados os seguintes requisitos: 38. Cadastrar Funcionrios; 39. Editar Funcionrio; 40. Desligar (deletar) funcionrio da empresa; 41. Cadastrar Projeto; 42. Editar Projeto; 43. Encerrar Projeto; 44. Relatrios; 45. Buscar Funcionrios; 46. Buscar Projetos; 47. Associar Funcionrio ao projeto; 48. Verificar horas dedicadas ao projeto para poder trabalhar em mltiplos projetos;

Na terceira reunio juntamente com o product owner foi desenvolvido 2 diagramas o de classe e o de entidade relacionamento utilizando uma ferramenta do ambiente criado.
Lembrando que tudo o que foi feito, foi mapeado passo a passo na ferramenta de gerencia de projeto.

  • 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 reunies 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.
Desse modo, os objetivos foram alcanados, a criao de um ambiente de desenvolvimento de software auxiliou a rpida implementao e de forma organizada da aplicao, e como foi seguido um modelo de gesto de qualidade, pode-se afirmar que o software desenvolvido possui qualidade.
Vamos ver agora o desenvolvimento de um dos requisitos do G-INFO.

  • Ambiente Auxiliando no Desenvolvimento

Como foi feito o G-INFO usando o ambiente de desenvolvimento construdo.
1 Cadastrar a tarefa na ferramenta de gerencia de projeto
Figura 6: Cadastrando uma nova tarefa no AceProject
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.
2 Modelar os diagramas UML necessrios
Figura 7: Modelando Diagrama de Classe
Figura 8: Modelando Diagrama Entidade-Relacionamento
O visual paradigm for UML auxilia na criao de diagramas, apresentando vrios tipos de diagramas para modelar e cada um com ferramentas de fcil manuseio e interface simples apesar da enorme quantidade de botes, mesmo para iniciantes na ferramenta ela simples de utilizar.
3 Codificao
Na parte de codificao a integrao entre o netbeans e o grails auxilia para desenvolver a aplicao em pouco tempo e ainda com pouca chance de ocorrer erros.
Figura 9: Codificando a classe Pessoa
Figura 10: Aplicao Funcionando aps Compilar
4 Melhorar a Interface
Como foi visto na parte de acima o netbeans e o grails geram a aplicao de forma rpida e sem erros, porem a interface no feia, nessa parte entra o photoshop cs4, que auxilia no desenvolvimento da interface, alem do plugin do grails o grails UI, que auxilia na criao de menus.
Figura 11: Criao de logos Usando o Photoshop CS4
Apesar de ser de difcil manuseio para iniciantes, encontram-se na internet vrios tutoriais que podem auxiliar na utilizao da ferramenta.
Figura 12: Tela do Sistema apos melhorar a interface
Figura 13: Tela de Cadastro
5 Apresentao
Finalmente, o ambiente tambm auxilia nessa hora to importante, que apresentar o software desenvolvido, apresentando ele no Sony VAIO faz toda a diferena, pois o cliente vai ver que o software foi desenvolvido de forma diferenciada e especialmente para ele nessa ferramenta de fundamental importncia para o desenvolvimento, de forma que aumenta em 100% a chance de compra do software.

  • Figura 14: Resultado depois de apresentar no Sony Vaio 55. Concluso 56. A criao de um ambiente de desenvolvimento e o desenvolvimento da aplicao auxiliaram na compreenso dos contedos vistos em sala de aula, e tambm 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 tambm experincia para os mesmos. 57. Com isso pode-se dizer que os objetivos foram alcanados. 58. Referencias Bibliogrficas

[1] BRUZAROSCO, D. C. Modelo de apoio para uma integrao efetiva entre as tecnologias da Qualidade, de Gerncia por Processos e da Informao, nas Organizaes. 2005. Tese (Doutorado em Engenharia de Produo)- Programa de Ps-Graduao em Engenharia de Produo, UFSC, Florianpolis.
[2] CRUZ, T. Sistemas, organizao & mtodos: estudo integrado das novas tecnologias de informao. So Paulo: Atlas, 1997.
[3] Fusco. Camila - Scrum: a nova gesto de projetos disponvel 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
[4]ISO International Organizationfor Standardization. NBR ISO 9000 Sistemas de gesto da qualidade Fundamentos e vocabulrio. Rio de Janeiro: ABNT, 2000
[5] JURAN, J.M. Planejando para a qualidade. So Paulo: pioneira, 1990.
[6] MARANHO, M. ISO Srie 9000: Manual de Implementao: Verso 2000. Rio de Janeiro: Qualitymark, 2001.
[7] MOURA, L., Taxonomia de Ambientes de Desenvolvimento de Software, Dissertao de M. Sc., COPPE/UFRJ, Rio de Janeiro, Brasil, 1992.
[8] OLEARY, D. E., STUDER, R., Knowledge Management: An Interdisciplinary Approach, IEEE Intelligent Systems, v. 16, n. 1, pp. 24-25, Jan/Feb. 2001.
[9] OLIVEIRA, K., Modelo para Constrio de Ambientes de Desenvolvimento de Software Orientados a Domnio, Tese de D. Sc., COPPE/UFRJ, Rio de Janeiro, Brasil, 1999.
[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.
[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.
[12] PALADINI, E.P. Gesto da Qualidade: teoria e prtica. So Paulo: Atlas, 2000.
[13] Periotto lvaro Jos, Endrici.Joo Otavio Montanha - Gesto da Informao e Polticas Institucionais: uma soluo pautada pela auto-avaliao, 2007
[14]. W. Harrison, H. Ossher, P. Tarr, Software Engineering Tools and Environments: A Roadmap, in Proc. of the Future of Software Engineering, ICSE2000, Ireland, 2000