Download - Artigo corrigido

Transcript
Page 1: Artigo corrigido

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

Página: www.din.uem.br/~mpafrare

Maringá, 2010

Page 2: Artigo corrigido

Sumario

1. Introdução1.1. Por que definir processos1.2. Objetivos

2. Fundamentação Teórica2.1. Sobre Qualidade de Software2.2. Sobre Scrum2.3. Sobre Ambiente de Desenvolvimento de Software

3. Modelo (Materiais e Métodos)3.1. Ferramentas Utilizadas para Montar o Ambiente

3.1.1. Netbeans IDE3.1.2. Grails3.1.3. AceProject3.1.4. Visual Paradigm for UML3.1.5. Photoshop CS43.1.6. Sony Vaio

4. Resultados4.1. Sobre G-INFO4.2. Como foi utilizado o Modelo de Qualidade

4.2.1. Requisitos do G-INFO4.2.2. Diagrama de Classe4.2.3. Diagrama de Banco de Dados4.2.4. Ambiente Auxiliando no Desenvolvimento

5. Conclusão6. Referencias Bibliográficas

Page 3: Artigo corrigido

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

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.

Figura 1: Estrutura

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.

1.1. 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:

Page 4: Artigo corrigido

Facilita o entendimento e a comunicação entre pessoas;

Apóia a melhoria dos processos;

Apóia a gerência dos processos;

Fornece apoio automatizado guiando no processo;

Fornece apoio na execução automatizada do processo;

Tendo esclarecido o porquê é necessário definir um processo de software, vamos definir formalmente os objetivos deste artigo.

1.2. Objetivos

Montar um Ambiente de Desenvolvimento de Software; Desenvolver usando a metodologia Scrum a aplicação G-INFO versão

empresarial;

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.

2. Fundamentação Teórica

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

2.1. 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. A seguir são apresentados alguns conceitos, dentre muitos, sobre qualidade:

Adequação ao uso: o produto corresponde às expectativas de uso (conceito de qualidade mais aceito [5]

Conformidade com especificações: produtos possuem as características que estão descritas nos projetos [6]

Satisfação do cliente [6] Grau no qual um conjunto de características inerentes satisfaz a

requisitos [4]

Page 5: Artigo corrigido

É a totalidade de características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas [2].

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.

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

Algumas características do Scrum:

O Scrum é uma metodologia iterativa e incremental; 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.

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.

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.

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.

Page 6: Artigo corrigido

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.

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 utilização do Scrum foi necessário criar um ADS (Ambiente de Desenvolvimento de Software), primeiramente vamos definir o que é um ADS.

2.3. 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.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.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].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].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.

Page 7: Artigo corrigido

3. Modelos (Materiais e Métodos)

Nesta seção iremos ver como foi desenvolvido o ambiente de desenvolvimento de software.

3.1. Ferramentas Utilizadas para Montar o Ambiente

Para a criação do ambiente de desenvolvimento foram utilizadas as seguintes ferramentas:

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

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

3.1.3. AceProject

Ferramenta livre para gerenciamento de projetos

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

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

Page 8: Artigo corrigido

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

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.

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 aplicação que o desenvolvimento é mostrado na seção 4 do artigo.

4. ResultadosNesta 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.Primeiramente vamos definir o escopo do G-INFO.

4.1. Sobre o G-INFO

Page 9: Artigo corrigido

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.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“Sociedade da Informação” [13]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.Nesse artigo será mostrado como foi feito o desenvolvimento do G-INFO versão empresarial.A aplicação G-INFO foi feita utilizando qualidade de software, mais primeiramente vamos esclarecer o que é qualidade de software.

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

Não houve necessidade de SCRUM Master no desenvolvimento, pois a equipe era composta por 3 pessoas.Ocorreram 5 reuniões para o desenvolvimento do G-INFO, 3 foram para o planejamento e 2 para a codificação.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.

4.2.1. Requisitos do G-INFO

De acordo com a apresentação feita durante a aula, e a pesquisa foram levantados os seguintes requisitos:

Cadastrar Funcionários; Editar Funcionário; Desligar (deletar) funcionário da empresa; Cadastrar Projeto; Editar Projeto; Encerrar Projeto; Relatórios; Buscar Funcionários; Buscar Projetos; Associar Funcionário ao projeto;

Page 10: Artigo corrigido

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

4.2.2. Diagrama de Classe

Com base no backlog e auxilio do product owner foi desenvolvido o diagrama de classe que segue abaixo:

Page 11: Artigo corrigido

Figura 4: Diagrama de Classe

4.2.3. Diagrama de Banco de Dados

Com base no backlog e auxilio do product owner foi desenvolvido o diagrama de entidade-relacionamento que segue abaixo:

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.

Page 12: Artigo corrigido

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.

Vamos ver agora o desenvolvimento de um dos requisitos do G-INFO.

4.2.4. Ambiente Auxiliando no Desenvolvimento

Como foi feito o G-INFO usando o ambiente de desenvolvimento construído.

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 necessários

Page 13: Artigo corrigido

Figura 7: Modelando Diagrama de Classe

Figura 8: Modelando Diagrama Entidade-Relacionamento

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.

Page 14: Artigo corrigido

3º Codificação

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.

Figura 9: Codificando a classe Pessoa

Figura 10: Aplicação Funcionando após Compilar

Page 15: Artigo corrigido

4º Melhorar a Interface

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.

Figura 11: Criação de logos Usando o Photoshop CS4

Apesar de ser de difícil manuseio para iniciantes, encontram-se na internet vários tutoriais que podem auxiliar na utilização da ferramenta.

Page 16: Artigo corrigido

Figura 12: Tela do Sistema apos melhorar a interface

Figura 13: Tela de Cadastro

5º Apresentação

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.

Page 17: Artigo corrigido

Figura 14: Resultado depois de apresentar no Sony Vaio

5. Conclusão

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.Com isso pode-se dizer que os objetivos foram alcançados.

Page 18: Artigo corrigido

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

[2] CRUZ, T. Sistemas, organização & métodos: estudo integrado das novas tecnologias de informação. São Paulo: Atlas, 1997.

[3] Fusco. Camila - Scrum: a nova gestão de projetos disponível em http://governaca.wordpress.com/2008/03/18/scrum-a-nova-gestao-de-projeto acessado em abril de 2010

[4]ISO – International Organization for Standardization. NBR ISO 9000 Sistemas de gestão da qualidade – Fundamentos e vocabulário. Rio de Janeiro: ABNT, 2000

[5] JURAN, J.M. Planejando para a qualidade. São Paulo: pioneira, 1990.

[6] MARANHÃO, M. ISO Série 9000: Manual de Implementação: Versão 2000. Rio de Janeiro: Qualitymark, 2001.

[7] MOURA, L., Taxonomia de Ambientes de Desenvolvimento de Software, Dissertação de M. Sc., COPPE/UFRJ, Rio de Janeiro, Brasil, 1992.[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. [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.[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. Gestão da Qualidade: teoria e prática. São Paulo: Atlas, 2000.

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