Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 06 Análise de Sistemas I - UNIGRAN FERRAMENTAS CASE 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! 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. Seções de estudo • Seção 1 – O conceito CASE • Seção 2 – Tipos de ferramentas 79 Análise de Sistemas I - UNIGRAN Seção 1 – O conceito CASE 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 profi ssional uma base para a construção de software de alta qualidade e produtivamente. Existem ferramentas de engenharia de software que oferecem automatizam todo o processo de criação do software, outras 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 estas ferramentas estão se expandindo rapidamente. Um exemplo delas é a ferramenta Rational Rose, mostrada na tela da figura 6.1. 80 Análise de Sistemas I - UNIGRAN Seção 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 Ferramentas de Planejamento Modelos são descrições gráficas de informação e relacionamentos. Modelos Ambientais, algumas vezes, chamados diagramas de contexto, Figura 6.1 – Tela da ferramenta CASE Rational Rose Fonte: <http://vva.msco.mil/Ref_Docs/VVTools/vvtools.htm>. 81 Análise de Sistemas I - UNIGRAN 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. Outros 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 esta 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 Diagramas estruturados são descrições gráficas que enfocam os dados em vários aspectos. Três dos mais comuns são: • Diagramas de Fluxo de Dados (DFD) 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 82 Análise de Sistemas I - UNIGRAN 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. • Diagramas Entidade-Relacionamento (DER) 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 Peter Chen, o principal desenvolvedor da análise DER. OCASE da Oracle e muitas outras ferramentas também oferecem análise DER. • Diagramas de Transição de Estados (DTE) 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 ferramentas descritas 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: • geram telas de entrada e telas de saída de dados; • geram código de aplicações a partir da descrição de processos em uma linguagem; • geram relatórios baseados nos itens de dados definidos; • geram esquemas de banco de dados a partir de entidades e relacionamentos; • geram dicionário de dados a partir de DFD's e DER's; • geram documentação; • geram repositório de dados a partir de múltiplos 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 83 Análise de Sistemas I - UNIGRAN 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: • criar e manter uma agenda de mudanças incluindo 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; • controlar as mudanças associadas com a aprovação do gerenciamento requerido para cada item configurado; • controlar as mudanças associadas com todos os módulos de hardware e software afetados; • monitorar o recebimento de mudanças a partir de quem originou, aprovações, testes, implementações e resultados; • gerar relatório de mudanças agendadas e implementadas pelo parâmetro que as originou; • manter permanente o log de mudanças feitas; • manter uma biblioteca e referência cruzada do código de origem para módulos executáveis; • apresentar comparações dos módulos do código de origem para identificar mudanças. 84 Análise de Sistemas I - UNIGRAN 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 automática e efi ciente, contribuído assim 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: • funcionamento em uma via: O código é gerado em um único sentido. Assim, uma vez que o modelo de dados é modificado, a geração deve ser reexecutada. • caso o código existente tenha sido modificado pelo programador, essas alterações são perdidas e devem ser refeitas. • o padrão de código é dependente da ferramenta: O código produzido geralmente não está de acordo com o padrão de codificação da equipe de desenvolvimento. • código de baixa qualidade: O código gerado não leva em consideração questões de desempenho, otimização, estrutura, integração com outros sistemas ou documentação. Existem dois tipos de ferramentas de geração de códigos que sã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. 85 Análise de Sistemas I - UNIGRAN 2.4 Ferramentas de Reengenharia 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 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ódigodos sistemas que precisam sofrer manutenções periódicas, nelas não existem ferramentas de tecnologia pra administrar este 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, estas ferramentas podem ajudar e muito nesta 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 é o 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 86 Análise de Sistemas I - UNIGRAN 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, mas també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 Vantagens As Ferramentas CASE oferecem uma gama de vantagens que justificam a sua adoção por desenvolvedores de sistemas. Entre elas estão: • diminuição de erros: Proporcionam uma menor 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. • agilidade de desenvolvimento: Oferecem maior rapidez 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. • estímulo para novas metodologias: O aumento da 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. • padrão de metodologia: todos os membros da equipe 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. • melhoria e redução de custos na manutenção: Agilizam 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. • melhoria de produtividade: Há uma considerável baixa no tempo gasto para desenvolvimento dos softwares, com um maior controle de qualidade, aumentando satisfatoriamente a produtividade. O Chief InformaƟ on Offi cer ou CIO é um ơ tulo de cargo dado ao responsável pela Tecnologia de Informação da empresa. 87 Análise de Sistemas I - UNIGRAN • maior satisfação desenvolvedor/usuário: Há um melhor cumprimento do cronograma e maior qualidade do sistema apresentado, resultando na satisfação do cliente. Desvantagens: 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. • falta de conhecimento de metodologias: Os 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 este quadro, o crescimento desta tecnologia é muito lento. • necessidade de treinamento intensivo dos profissionais: 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. • método único: Como algumas Ferramentas CASE 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. • alto custo por licença: Infelizmente, as Ferramentas CASE de primeira linha não possuem um preço muito acessível, deixando, assim, algumas empresas desestimuladas em sua adoção. Retomando a conversa inicial Chegamos, assim, ao fi nal da sexta aula. Espero que vocês tenham compreendido a importância da ferramenta CASE e sua uƟ lidade nos projetos de sistemas. 88 Análise de Sistemas I - UNIGRAN • Seção 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 destas ferramentas CASE são 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. • Seção 2 – Tipos de 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 destes tipos de ferramentas atende a determinadas etapas do processo de desenvolvimento. Sugestões de leituras, sites e vídeos Leitura 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. Sites • ________. 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 89 Análise de Sistemas I - UNIGRAN 90
Compartilhar