Baixe o app para aproveitar ainda mais
Prévia do material em texto
6ºAula Ferramentas Case Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: entender o conceito CASE e sua importância no desenvolvimento dos sistemas; conhecer os tipos de ferramentas e o que cada uma delas executa; decidir qual o tipo de ferramenta é mais adequada para cada necessidade de projeto. Prezados(as) alunos(as), Nesta aula, vamos conhecer as ferramentas que auxiliam os profissionais de informática nas etapas de análise e projeto do sistema de informação. Bom Trabalho! Bons estudos! 95 Análise de Sistemas I 40 Seções de estudo 1 - O conceito CASE 1 – O conceito CASE 2 – Tipos de ferramentas Segundo Pressman (2006), [...] a engenharia de software abrange um conjunto de três elementos fundamentais - métodos, ferramentas e procedimentos – que possibilita ao gerente o controle do processo de desenvolvimento do software e oferece ao software de alta qualidade e produtivamente. Existem ferramentas de engenharia de software que oferecem automatizam todo o processo de criação do software, e outras que oferecem apoio apenas em algumas fases. São as chamadas Ferramentas CASE (Computer-Aided Software Engineering). Engenharia de Sistemas Auxiliada por Computador (CASE) é o conceito para o qual sistemas de software possam ser planejados da mesma forma que sistemas de hardware. CASE também é conhecido como Engenharia de Sistemas Assistida por Computador. O termo CASE foi criado no começo dos anos oitenta, quando a ideia de que ferramentas gráficas, como a dos diagramas de fluxo de dados, os diagramas de entidades e relacionamentos e gráficos estruturais poderiam ser úteis na análise e projeto de sistemas. Esse conceito surgiu com a programação estruturada, para a qual uma rigorosa disciplina é aplicada ao projeto de um simples programa que, então, é desenvolvido para uma forma estruturada, visando a todo ciclo de vida do software e ao desenvolvimento do sistema. Essa forma estruturada requer planejamento e consideração das interações e dependências do conjunto de aplicações em software como um todo, antes do desenvolvimento de partes mais discretas. As complicações de se estudar todas as interações e dependências levam ao desenvolvimento de ferramentas automatizadas que permitem aos desenvolvedores o gerenciamento e o uso das informações. O mundo do processamento dos dados está em um estado contínuo de rápida evolução das capacidades de software e hardware. Muitas das ferramentas disponíveis hoje no mercado são projetadas para trabalhar com Bancos de Dados Relacionais, Distribuídos ou em Redes e linguagens de quarta geração. Contudo, existe um forte movimento em direção à implementação de ambientes orientados a objetos junto a ferramentas apropriadas, e essas ferramentas estão se expandindo rapidamente. Um exemplo delas é a ferramenta Rational Rose, mostrada na tela da figura 6.1. Figura 6.1 – Tela da ferramenta CASE Rational Rose Fonte: <http://vva.msco.mil/Ref_Docs/VVTools/vvtools.htm>. 96 41 2 - Tipos de ferramentas Ferramentas CASE têm sido desenvolvidas para dar suporte a todos os estágios do ciclo de vida de um sistema de processamento de dados automatizado, desde a determinação dos requisitos iniciais até a manutenção dos sistemas operacionais para reengenharia de sistemas antigos. Muitas ferramentas podem ser usadas para múltiplos estágios do ciclo de vida. Mesmo que as ferramentas que abrangem todo o ciclo de vida sejam poucas, estas compreendem desde a análise inicial e projeto até a geração de código e reengenharia. As ferramentas fornecidas tipicamente têm uso em mais de uma fase do ciclo de vida. Um diagrama estruturado pode ser utilizado para determinar requisitos de dados iniciais ou para modelar requisitos para adições e revisões de um sistema existente. Um gerador de código pode ser utilizado para o desenvolvimento inicial do sistema ou para produzir módulos adicionais. Pacotes de software que contêm módulos para todas as fases da engenharia do sistema são chamados “Pacotes CASE Integrados”. 2.1 Modelos são descrições gráficas de informação e relacionamentos. Modelos Ambientais, algumas vezes, chamados diagramas de contexto, mostram o relacionamento de uma organização com o resto do mundo. Modelos Comportamentais mostram os relacionamentos entre partes da organização. Esses tipos de modelos são utilizados para capturar as preocupações Comportamentais de modo conciso e compreensivo visando a auxiliar no planejamento de atividades do sistema de informação. 2.2 - Ferramentas de Análise Métodos analíticos automatizados têm sido desenvolvidos para uso no projeto de sistemas de software. Esses métodos podem ser utilizados para projetar novos sistemas e para análise de sistemas existentes, a fim de determinar requisitos para melhoramentos. Cada método, geralmente, possui suas próprias convenções para representações gráficas da informação e alguma diferenciação para análise dos dados. Vários métodos comerciais estão disponíveis; existem também métodos proprietários únicos desenvolvidos por algumas companhias. Modelos e Diagramas Estruturados são ferramentas comuns de análise. As diferenças e a notação em ambas as ferramentas de análise de dados devem ser observadas, quando comparamos informações ou diagramas preparados com diferentes pacotes. Um ponto crítico é que ferramentas CASE possuem diferentes níveis de verificação cruzada e execução de leis de integridade. Algumas ferramentas checam automaticamente a consistência de definições de dados em diferentes modelos e diagramas e também conferem a partir dos níveis mais altos aos níveis mais baixos dos diagramas. Outras possuem pouca checagem ou até mesmo nenhuma. 2.2.1 - Modelos Os modelos ambientais e Comportamentais usados ao planejar atividades nos sistemas de informação também são úteis na fase de análise. Há ainda modelos exclusivos para essa fase de análise. Alguns mostram como itens de dados se relacionam num modelo lógico, ou como eles são implementados no banco de dados através de um modelo físico. Outros tentam representar o mundo real em um modelo de sistema. Alguns empregam métodos orientados a objetos. Diagramas estruturados são descrições gráficas que enfocam os dados em vários aspectos. Três dos mais comuns são: ) são métodos de modelar o movimento dos dados de processo para processo. Um processo é uma atividade, automatizada ou não, que causa alguma mudança em um elemento de dados. Armazenamento de dados quando não está no processo ou se movendo através de processos também é relevante. Os processos são amplos no primeiro modelo como também os elementos de dados. Decomposições interativas dos processos e fluxos de dados eventualmente resultam em elementos de dados atômicos, os quais podem ser definidos e usados para encher o dicionário de dados. são métodos de descrição de dados estáticos, unidades definidas que possuem qualidades distintas chamadas atributos e relacionamentos com outros itens de dados. A união de elementos de dados explicitamente definidos através de seus relacionamentos, como “parte de”, ou “composto de”, pode direcionar a precisas definições de elementos de dados. Essas definições, juntamente com os atributos, podem levar ao conteúdo do dicionário de dados com os valores dos elementos, bem como os relacionamentos, que permitem definições de grupos locais e chaves. Um método para o DER é o de , o principal desenvolvedor da análise DER. O CASE da Oracle e muitas outras ferramentas também oferecem análise DER. são métodos de descrição de uma sequência de mudanças nos dados e os respectivos eventos que provocam tais mudanças. Esses modelos mostram estímulos (ou entradas) causando ação e resultando em uma resposta (saídas). Eles são importantes para modelar sistemas de tempo real, em que a sequência de eventos e o estado dos sistemas em determinado ponto são críticos. 2.3 - Ferramentas de Desenvolvimento As ferramentasdescritas neste tópico são capazes de variar níveis da criação de aplicações na base de dados e desenvolver definições identificadas na fase de análise. Elas podem fazer uso de interface gráfica (GUI – Graphic Interface Unit), linha de comando e tem as seguintes características: processos em uma linguagem; 97 Análise de Sistemas I 42 e relacionamentos; dicionários de dados. 2.3.1 - Mudança nas Ferramentas de Gerência Os gerentes de sistemas automatizados necessitam de ferramentas que facilitem a gerência e o controle nas modificações de hardware e software. Os sistemas desenvolvidos para computadores pessoais, para uso em rede local e em ambiente distribuído podem conduzir para o caos sem uma modificação rigorosa na gerência. Se as operações computacionais são operações de contrato, então, a questão de aprovação da gerência e agendamento da instalação das mudanças são críticas. Alguns pacotes CASE incluem ferramentas para gerenciar essas mudanças, particularmente quando o pacote inclui também ferramentas que geram código para aplicações. Mas, os pacotes CASE que visam à análise podem ter limitadas a sua capacidade de gerência. Os planos de aquisição podem incluir configuração de gerenciamento pelos contratantes durante a fase de desenvolvimento. Os sistemas devem incluir ferramentas que facilitem o gerenciamento e o controle das mudanças no hardware e no software. Em grandes computadores (mainframes), o volume e a variedade nas mudanças de sistemas operacionais, assim como a atualização de hardware e de aplicações de software, podem rapidamente se tornar gerenciáveis. As ferramentas de controle de mudanças podem ser adquiridas com diversos níveis de capacidade de adaptar diferentes ambientes. Os usuários que desenvolvem novos sistemas, envolvendo a segurança de humanos, por exemplo, irão requerer a mais rigorosa configuração de gerenciamento. Os usuários que modificam sistemas antigos devem ser mais interessados nas capacidades de comparação de código e associação de mudanças por outros módulos. Algumas funções que devem gerenciar seus dados prudentemente precisam ser capazes de: marcos como a data em que o teste de mudança irá começar, a janela de teste, a data em que a instalação da mudança irá ser completada e a data em que as mudanças poderão ser retiradas, se falhar em modo de produção; gerenciamento requerido para cada item configurado; módulos de hardware e software afetados; originou, aprovações, testes, implementações e resultados; pelo parâmetro que as originou; log de mudanças feitas; de origem para módulos executáveis; origem para identificar mudanças. 2.3.2 - Ferramentas de geração de código Segundo Moreira e Mrack (2003), um gerador de código é uma ferramenta de auxílio ao processo de desenvolvimento de sistemas que atua na fase de implementação do projeto, gerando o código-fonte que seria criado pelo programador. De forma geral, esses geradores criam o código-fonte com base nas informações existentes no modelo de dados. Isso significa que os ganhos obtidos ficam restritos à interface de cadastro, listagens de registros ou telas de baixa complexidade (MOREIRA; MRACK, 2003). Conforme citado em UFMG (2013), a geração de códigos é uma técnica de construir códigos utilizando programas, desde programas simples até programas complexos, que transformam modelos lógicos em aplicações completas (UFMG, 2013). A geração automática de código tem sido uma técnica já bastante amadurecida nos últimos anos. Vários trabalhos foram desenvolvidos no sentido de produzir-se código de forma com um ganho de produtividade por parte do programador, que cada vez menos se vê obrigado a produzir código repetitivo e a desempenhar tarefas de reestruturação de forma quase mecânica (SANTOS, 2003). Apesar de o código produzido ser correto, algumas características indesejáveis são geralmente encontradas nesse tipo de ferramenta: um único sentido. Assim, uma vez que o modelo de dados é modificado, a geração deve ser reexecutada. programador, essas alterações são perdidas e devem ser refeitas. código produzido geralmente não está de acordo com o padrão de codificação da equipe de desenvolvimento. consideração questões de desempenho, otimização, estrutura, integração com outros sistemas ou documentação. 1. Geradores Ativos: Geram códigos que não são modificados ou são modificados em locais especiais que são preservados quando o código é recriado. São rodados múltiplas vezes no mesmo código de saída conforme o desenho de entrada ou o gerador muda. 2. Geradores Passivos: Geram códigos uma vez, que podem ser modificados pelo desenvolvedor, apresentando um maior aumento de produtividade inicial. 2.4 Reengenharia é o conceito de ter aplicações já existentes e analisar sua lógica, seus processos e a manipulação de dados para criar novas aplicações que fazem o mesmo trabalho de forma mais eficiente. A ferramenta de reengenharia pode ser 98 43 usada para analisar código de aplicações existentes procurando por trechos não utilizados, gargalos e erro lógico tal que o código possa ser modificado e reusado. Engenharia reversa é o termo usado para descrever o uso de ferramentas que destroem os esquemas de banco de dados ou o código de aplicações em elementos lógicos para análise e conversão para outro esquema de banco de dados ou outra linguagem e que produzem novas documentações. Quando a engenharia reversa é citada como uma capacidade da ferramenta CASE, ela deve especificar um ambiente particular no qual é efetivo e o nível de automação que pode ser razoavelmente esperado. Reengenharia e engenharia reversa são novos conceitos com pouca história disponível sobre as ferramentas que possuem essas capacidades. O principal destino para as ferramentas de reengenharia são as aplicações grandes que tem documentação inadequada e que não se aproximam facilmente do método analítico. Engenharia reversa de programas existentes tem um amplo espaço futuro para desenvolvimento. Em muitas empresas de desenvolvimento, existe um grande problema em administrar a enorme quantidade de linhas de código dos sistemas que precisam sofrer manutenções periódicas, nelas não existem ferramentas de tecnologia pra administrar esse trabalho. Como vimos na Aula 5, mais de 60% do tempo das suas atividades de software é gasto na manutenção ou modificação dos sistemas existentes. Portanto, essas ferramentas podem ajudar, e muito, nessa fase de manutenção, quando precisarmos recriar um projeto de um sistema que não havia sido documentado nas suas fases iniciais. 2.5 - Ferramentas de Gerência de Dados Existem três níveis nos quais os dados podem ser gerenciados e que afetam a escolha da ferramenta apropriada. O primeiro nível é de trabalho do administrador de banco de dados (DBA – Data Base Administrator), que é responsável pela coleção de dados, suas definições, acessibilidade, gerenciamento físico e de integridade. A ferramenta para esse nível é o dicionário de dados, que é parte do pacote de gerenciamento de banco de dados pelo qual o DBA é responsável. O segundo nível é o organizacional. Este, é o nível do administrador de dados (DA – Data Administrator) o qual é responsável pelos dados e por sua inteira organização. O DA é encarregado de ter uma visão das definições dos dados, acessibilidade, integridade e pode usar um dicionário de dados de plena organização que inclui informação de dicionário de dados individuais na organização. O terceiro e mais abrangente nível é chamado de nível de repositório. Um repositório é um nível do Chief Information Officer (CIO) que deve ser responsável não apenas pela administração dos dados, mas também do negócio organizacional e do modelo de informação, do inventário das fontes de informação e de outras áreas declaradas como sendo parte do grupo de informações da organização da empresa. O repositório pode ser usado para gerenciar não apenas os dados, mastambém o ciclo de vida das atividades de desenvolvimento para os dados e aplicações, nos quais o repositório assegura descrições. 2.6 - Vantagens e desvantagens das ferramentas CASE As Ferramentas CASE oferecem uma gama de vantagens que justificam a sua adoção por desenvolvedores de sistemas. Entre elas estão: probabilidade de erros em todo o ciclo de produção do software, pois utilizam técnicas e metodologias específicas, gerando códigos previamente testados e aprovados, atualizando documentação, evitando duplicidade de dados, efetuando rotinas com precisão etc. ao processo de desenvolvimento de software, uma vez que poupam trabalho braçal de codificação e reduzem o tempo gasto na fase de testes, pela falta ou inexpressividade dos erros. Por isso, a adoção de uma Ferramenta CASE não se justifica apenas pelo aumento da produtividade de novos softwares, mas também pela suavização do processo de manutenção. complexidade dos sistemas a serem desenvolvidos, exige a necessidade de constante aprimoramento e sofisticação das metodologias, e como as Ferramentas CASE as utilizam como base, contribuem também para a popularização, melhor utilização e aprimoramento das mesmas. de desenvolvimento são forçados a “falar a mesma língua”, ou seja, usar a mesma metodologia, o que possibilita uma maior interação e padronização do grupo. e facilitam a manutenção de programas já existentes, principalmente através do uso da Engenharia Reversa e da constante atualização da documentação. no tempo gasto para desenvolvimento dos softwares, com um maior controle de qualidade, aumentando satisfatoriamente a produtividade. cumprimento do cronograma e maior qualidade do sistema apresentado, resultando na satisfação do cliente. As desvantagens devem também ser citadas para avaliar a adoção ou não de Ferramentas CASE. Por isso, abaixo foram relacionadas algumas dessas desvantagens. desenvolvedores normalmente desconhecem as metodologias de desenvolvimento e suas vantagens, e como para se usar uma Ferramenta CASE se faz necessário tal conhecimento, a empresa que não possui uma metodologia de desenvolvimento de software implantada, terá que dispor de tempo e recursos para treinamento em um método e na utilização da ferramenta. Devido a esse quadro, o crescimento dessa tecnologia é muito lento. título de cargo dado ao responsável pela Tecnologia de Informação da empresa. 99 Análise de Sistemas I 44 A empresa terá que dispor de fundos para treinamento da equipe de desenvolvimento, tanto no que diz respeito à metodologia adotada pela ferramenta, como na utilização da própria ferramenta, para que todos possam tirar o máximo proveito de ambas. utilizam um único método, pode ocorrer que não seja a adotada pela empresa, ou também, que o método da ferramenta não seja a melhor solução para o problema. Por isso, justifica-se a necessidade da escolha da Ferramenta CASE de acordo com o método já adotado - ou pelo menos conhecido - pelos desenvolvedores, evitando, assim, decepções com a ferramenta e desperdício de tempo com treinamentos. CASE de primeira linha não possuem um preço muito acessível, deixando, assim, algumas empresas desestimuladas em sua adoção. Retomando a aula 1 – O conceito CASE As ferramentas CASE, que do Inglês significa Engenharia de Software Auxiliada por Computador, são usadas para automatizar o processo de desenvolvimento dos sistemas. A utilização das ferramentas CASE é de extrema importância na geração da documentação dos sistemas, de forma padronizada e organizada, facilitando também na manutenção dos projetos dos sistemas, pois as alterações e correções podem ser todas feitas e acompanhadas no dicionário de dados gerados pelas ferramentas. Existem diversas ferramentas disponíveis no mercado, algumas delas atendem várias fases do desenvolvimento dos sistemas, outras atendem fases específicas. As ferramentas podem ser classificadas por tipos: ferramentas de planejamento, ferramentas de análise, ferramentas de desenvolvimento, ferramentas de reengenharia e ferramentas de gerência de dados. Cada um desses tipos atende a determinadas etapas do processo de desenvolvimento. PRESSMAN, Roger. Engenharia de Software. São Paulo- SP: Makron Books, 2006. MOREIRA, Diego; MRACK, Marcelo. Sistemas dinâmicos baseados em metamodelos. Universidade de Santa Cruz do Sul, 2003. SANTOS, Gustavo Alexandre dos. Geração automática de código a partir de casos de uso. UFPE, 2003. Vale a pena ler Vale a pena ________. Noções de ferramenta CASE. Disponível por www em: <http://nocoesengsw.blogspot.com. br/2010/03/ferramentas-case.html>. Acesso em 02/11/2013. ALTO, Hélio Monte. Ferramentas CASE: análise e projeto de software. Disponível por www em: <http:// pt.slideshare.net/helioh6/ferramentas-case-fase-de- anlise>. Acesso em 10/11/2013. UFMG. Ambientes de desenvolvimento de software (ADS) & Ferramentas Case: importância e aplicações. Disponível por www em: <http://www.bibliotecadigital. ufmg.br/dspace/handle/1843/BUOS-94MPEV>. Acesso em 08/11/2013. Vale a pena acessar Minhas 100
Compartilhar