Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Denis Cezar Metzner
Título: Um Protótipo de Software Assistente de Atualização de Versão de Software
 
Introdução:
O mercado atual tem forçado as empresas desenvolvedoras de softwares ao constante desenvolvimento. Nas parcerias entre empresa desenvolvedora e seus clientes, encontram-se dificuldades no que diz respeito à padronização de software, pois cada cliente possui necessidades diferentes. Face à este fato, a empresa obriga-se a efetuar um controle de versões, para cada cliente, cujo processo de atualização do sistema (implantação de nova versão) gera uma grande mobilização. As versões são criadas e fechadas periodicamente e, os clientes sempre têm o interesse de atualizar o software para a última versão disponível. Para isso, a empresa desenvolvedora do software necessita que, sempre que um cliente solicitar uma atualização, deslocar um funcionário até o endereço do cliente, com a versão desejada, para efetuar as alterações necessárias. Essas alterações são feitas na estrutura do modelo de dados. Tanto para a empresa desenvolvedora quanto para o cliente esse processo gera custos e uma grande perda de tempo. Segundo informações da empresa onde o estágio foi efetuado, para iniciar o processo de atualização é necessário um levantamento das diferenças na estrutura de modelo de dados entre a versão que está no cliente e, a nova versão a ser atualizada. De posse das diferenças detectadas, deve-se proceder as alterações na estrutura do modelo de dados para que as novas telas, relatórios e processos internos com suas devidas alterações possam surtir efeito positivo ao usuário. Se o software for de pequeno porte com reduzido número de entidades, telas, relatórios e processos internos no modelo de dados, o trabalho de atualização é rápido. Mas a empresa desenvolvedora possui um software de gestão empresarial, com muitos processos, desde a alta administração da empresa até o chão de fábrica, com aproximadamente 350 entidades e mais de 2500 componentes (entre telas, relatórios e processos internos). Neste caso, a atualização do software é problemática, lenta, trabalhosa e com alto custo. Segundo Pressman (1995), realisticamente sabe-se que uma massa enorme de problemas e custos adicionais esconde-se sob a superfície em um processo de atualização. A natureza ambígua da mudança é subjacente a todo trabalho de software. A mudança é inevitável quando se constroem sistemas baseados em computador; portanto, deve-se desenvolver mecanismos para avaliar, controlar e fazer modificações. Dentre estes mecanismos o desenvolvimento estruturado é uma alternativa. Segundo Keller (1990) o desenvolvimento estruturado de sistemas é uma disciplina que produz uma especificação de sistema concisa, não-ambígua, não-redundante e rigorosa, usando entre outras ferramentas os diagramas de fluxo de dados (D.F.D.). A especificação baseada em D.F.D. é apoiada por uma breve narrativa ainda que estruturada em português, por uma descrição do banco de dados lógico e por um dicionário de dados completo para o projeto. Esta especificação estruturada das necessidades do usuário é convertida em diagramas de estrutura de módulos durante o projeto (design) que por sua vez são transformados em programas estruturados durante a implementação. Mas para isso, os diagramas devem ser convertidos para o modelo entidade relacionamento lógico e físico onde a partir desse ponto possam ser criados num banco de dados relacional com o intuito de permitir que as informações reais possam ser armazenadas e utilizadas. Segundo Kern (1994) um banco de dados é um acervo de informações armazenadas segundo certos critérios de organização. O modelo de dados relacional é uma maneira de conceber a organização de um banco de dados como uma coleção de tabelas e associações entre tabelas. Cerícola (1995) coloca que essa estruturação fornece fundamentos para um futuro desenvolvimento de aplicação. Quando o desenvolvimento acontecer, a análise de necessidades deve ser conduzida sem preocupação com quaisquer restrições que não sejam aquelas relativas à maneira pela qual a organização faz seus negócios. A partir do momento em que todas as informações foram levantadas, pode-se efetuar a criação da estrutura de um banco de dados relacional e o desenvolvimento da aplicação propriamente dita. Para o desenvolvimento do protótipo, utilizou-se uma ferramenta de desenvolvimento que permita fazer modelagem de dados utilizando a metodologia de análise estruturada onde, baseado no modelo criado será possível a construção dos componentes do protótipo. Como foi exposto por Compuware (1996), o UNIFACE é um ambiente de desenvolvimento para aplicações corporativas complexas e de negócios críticos. Ele permite todo o desenvolvimento de um projeto de sistemas, desde a modelagem de dados até a construção dos componentes do aplicativo. As linhas de código dos componentes são criadas baseadas em orientação a eventos. O UNIFACE possui uma grande manutenabilidade e reusabilidade, pois tudo é feita diretamente na modelagem de dados que são aplicadas aos componentes através de herança. Isto reflete em qualidade, consistência e produtividade. Numa publicação recente de (Sysart, 1998) é colocado que o UNIFACE está disponível para uma série de sistemas operacionais (Macintosh, Motif, OS/2, Windows, etc), caracterizando execução multi-plataforma, implementando apresentação gráfica ou em modo caractere. Possui dispositivos nativos e específicos para os mais importantes bancos de dados e sistemas de arquivos com acessos via ODBC (conforme Poffo (1996) significa conectividade aberta de banco de dados). Sabendo que o UNIFACE possui como característica o desenvolvimento utilizando banco de dados relacional, o protótipo foi desenvolvido utilizando esta ferramenta na criação dos componentes, juntamente com a metodologia de análise estruturada para efetuar a criação do modelo de dados.