Para qualquer artesão seja mecânico, carpinteiro, engenheiro de software uma boa oficina deve ter 3 características: - uma coleção de ferramentas úteis que ajudam em cada passo da construção do produto - uma disposição organizada, permitindo que as ferramentas sejam rapidamente encontradas e usadas de forma eficiente - um hábil artesão que saída usar as ferramentas de modo efetivo A oficina do engenheiro de software é denominada de ambiente integrado de apoio a projetos e as ferramentas dessa oficina são coletivamente chamadas de engenharia de software apoiada por computador. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia. As ferramentas CASE ajudam a garantir que a qualidade seja incorporada ao projeto antes do produto ser construído. CASE pode ser uma simples ferramenta que apóia uma atividade específica de engenharia de software ou uma complexa ferramenta, como um ambiente completo, que inclui base de dados, pessoal, hardware, rede, sistemas operacionais e normas. Blocos construtivos de CASE: Ferramentas CASE Arcabouço de Integração Serviços de Portabilidade Sistema Operacional Plataforma de Hardware Arquitetura do Ambiente A arquitetura do ambiente é composta pela plataforma de hardware e apoio de sistema software de redes, gestão de base de dados, outros serviços de gestão de objetos e estabelece a base de trabalho para CASE. Os serviços de portabilidade fornecem uma ponte entre as ferramentas CASE, seu arcabouço de integração e a arquitetura do ambiente, permitindo que as ferramentas e seu arcabouço migrem por diferentes plataforma de hardware e sistemas operacionais. 1 / 5
O arcabouço de integração consiste numa coleção de programas especializados que permitem que as ferramentas individuais se comuniquem umas com as outras, criem uma base de dados de projeto e exibam a mesma aparência e aspecto ao usuário final. As ferramentas CASE podem ser classificadas por: - função - papel como instrumento gerencial ou técnico - uso nos vários passos do processo de engenharia de software - pela arquitetura do ambiente (hw e sw) que as apóia - origem e custo. a) ferramentas de engenharia de processo de negócio Fornecem um modelo a partir do qual são derivados sistemas de informação específicos. A informação do negocio é modelada a medida que se move entre as várias entidades organizacionais da empresa. O objetivo é representar os objetos de dados de negócio, seus relacionamentos e como esses objetos de dados fluem entre as diferentes áreas do negócio. b) ferramentas de modelagem e gestão de processo São usadas para representar os elementos principais de um processo de modo que possa ser melhor entendido. Podem fornecer ligações para descrições de processo ajudando no entendimento das tarefas necessárias para realizá-lo. Fornecem ligações para outras ferramentas que suportam as atividades de processo definidas. c) ferramentas de planejamento de processo Focalizam duas áreas principais: - estimativa de custo e esforço de projetos de software - realização de cronogramas de projetos Ferramentas de estimativas calculam o esforço necessário, a duração do projeto e o número de pessoas para o projeto. Ferramentas de realização de cronograma de projeto permitem ao gerente: - definir todas as tarefas do projeto, - criar uma rede de tarefas - representar as interdependências entre tarefas e - modelar a quantidade de paralelismo possível para o projeto. d) ferramentas de análise de risco Possibilitam: - identificar riscos em potencial - desenvolver um plano para amenizar, monitorar e gerir os riscos 2 / 5
Permitem ao gerente construir uma tabela de riscos, fornecendo diretrizes detalhadas para identificação e análise dos riscos. e) ferramentas de gestão de projeto Possibilitam o acompanhamento e monitoramento do cronograma e do plano de projeto numa base continuada. Permite ao gerente coletar métricas que forneçam uma indicação da qualidade do produto de software. f) ferramentas de rastreamento de requisitos Fornecem uma abordagem sistemática para o isolamento de requisitos, começando com uma especificação do cliente. Combina avaliação humano-interativa de texto com um sistema de gestão de bases de dados que armazena e categoriza cada requisito do sistema a ser analisado. g) ferramentas de métricas e gestão Focalizam as características do processo e do produto. Captam métricas específicas de projeto que dão uma indicação global da qualidade ou da produtividade. h) ferramentas de documentação Focam a produção de documentos e editoração eletrônica. i) ferramentas de software básico Acomodam um software de sistema de redes de alta qualidade, serviços de gestão de objetos, suporte de componentes distribuídos, correio eletrônico, distribuição de boletins e outras possibilidades de comunicação. j) ferramentas de garantia da qualidade Ferramentas de métricas eu fazem auditoria de código-fonte para assegurar o atendimento das normas de linguagem. k) ferramentas de gestão de base de dados Servem para estabelecer a base de dados de projeto l) ferramentas de gestão de configuração de software Apóiam as tarefas: - identificação de cada item da configuração e relacionamento com outros itens - controle de versão - controle de modificação - auditoria - listagem de categorias m) ferramentas de análise e projeto 3 / 5
Permitem a criação de modelos do sistema a ser construído, contendo representações de dados, funções e comportamentos, caracterizações de projeto de dados, projeto arquitetural. n) ferramentas PRO/SIM (prototipação/simulação) - fornecem a capacidade de prever o comportamento do sistema em tempo real antes de ser construído - desenvolver modelos do sistema em tempo real o) ferramentas de projeto e desenvolvimento de interfaces Consistem de um estojo de componentes de software (classes) contendo: menus, botões, estruturas de janelas, ícones, mecanismos de rolagem, controladores de dispositivos, etc. p) ferramentas de prototipação Permitem a criação de projeto de dados acoplado com layout de telas e relatórios. q) ferramentas de programação Incluem compiladores, editores, depuradores. Encampam ambientes de programação orientada a objetos, linguagens de 4ª geração, ambientes de programação gráfica, geradores de aplicação, linguagens de consulta a base de dados. r) ferramentas de desenvolvimento web Incluem ferramentas que auxiliam na geração de textos, gráficos, formulários scripts, applets, e outros elementos de uma página web. s) ferramentas de integração e teste - aquisição de dados usados durante o teste - medição estática: analisadores de código fonte sem executar o teste - medição dinâmica: analisadores de código fonte durante a execução - simulação: simulam funções do hardware e outros dispositivos externos - gestão de testes: assistem o planejamento, desenvolvimento e controle dos testes t) ferramentas de análise estática Auxiliam na execução de testes estáticos: - testes baseados em código aceitam código como entrada e realizam análises - linguagens especializadas em testes baseadas especificações detalhadas de teste - testes baseados em requisitos isolam requisitos específicos e exercitam esses requisitos u) ferramentas de análise dinâmica 4 / 5
Interagem com um programa em execução verificando os caminhos, assertivas de testes sobre valores de variáveis. v) ferramentas de gestão de teste Usadas para controlar e coordenar os principais passos do teste de software. x) ferramentas de teste cliente/servidor Exercitam interfaces gráficas com usuário e requisitos de comunicação na rede. y) ferramentas de reengenharia - engenharia reversa para especificação: aceita código fonte e gera modelos de análise e projeto estruturado e outras informações de projeto - reestruturação e análise de código: analisa a sintaxe do programa, gera fluxo de controle e um programa estruturado - reengenharia de sistemas on-line: usada para modificar sistema de base de dados on-line. 5 / 5