A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

@1997, Alexandre Vasconcelos 1DI-UFPE Sistemas CASE Introdução.

Apresentações semelhantes


Apresentação em tema: "@1997, Alexandre Vasconcelos 1DI-UFPE Sistemas CASE Introdução."— Transcrição da apresentação:

1 @1997, Alexandre Vasconcelos 1DI-UFPE Sistemas CASE Introdução

2 @1997, Alexandre Vasconcelos2DI-UFPE Conteúdo n Motivação n O que é CASE? n Uma Classificação para Sistemas CASE n Histórico; n Vantagens dos Sistemas CASE n Problemas com os Sistemas CASE n Ferramentas, Workbenches e Ambientes CASE n O Ciclo de Vida de um Sistema CASE

3 @1997, Alexandre Vasconcelos3DI-UFPE Motivação n A Engenharia de Software envolve trabalho técnico, administrativo e de controle; n Algumas tarefas são criativas e outras não; n Tarefas não-criativas podem ser automatizadas com o uso de CASE (Computer Aided Software Engineering):  editores de texto,  compiladores,  gerenciadores de versões,  etc.

4 @1997, Alexandre Vasconcelos4DI-UFPE O que é CASE? n É o uso de suporte computacional no processo de desenvolvimento de software;

5 @1997, Alexandre Vasconcelos5DI-UFPE Uma Classificação para Sistemas CASE n Classificação permite que sistemas CASE possam ser comparados; n Não existe uma classificação padrão; n Sistemas CASE podem ser classificados de acordo com várias dimensões:  grau de formalidade imposta;  tipo de interface oferecida ao usuário;  fase(s) do ciclo de vida coberta(s);  profundidade do suporte oferecido, etc.

6 @1997, Alexandre Vasconcelos6DI-UFPE Uma Classificação para Sistemas CASE - fases x profundidade n Ferramenta - é um produto de software que auxilia em uma ou mais tarefas específicas de uma ou mais fases do processo (ciclo de vida) de desenvolvimento de software (ex: compilação, checagem de consistência de um projeto, edição de texto, etc.); n Workbench - conjunto de ferramentas integradas que suporta uma ou mais fases do processo de desenvolvimento de software (ex: especificação, projeto, implementação, etc.). n Ambiente - suporta todo ou uma grande parte do processo de desenvolvimento de software. Geralmente é um conjunto de workbenches integrados. n Na prática estes limites não são bem definidos.

7 @1997, Alexandre Vasconcelos7DI-UFPE Uma Classificação para Sistemas CASE - fases x profundidade

8 @1997, Alexandre Vasconcelos8DI-UFPE Exemplos de Ferramentas CASE

9 @1997, Alexandre Vasconcelos9DI-UFPE Um Ambiente CASE Típico Farermenta A Fearrmenta B Ferramenta X Plataforma de Hardware e Software Adm. Sist. Integrador Desenvolvedores e Gerentes

10 @1997, Alexandre Vasconcelos10DI-UFPE Qualidade do Suporte CASE

11 @1997, Alexandre Vasconcelos11DI-UFPE Histórico n Surgimento de Ferramentas CASE específicas; n Primeiras ferramentas voltadas ao desenvolvimento de programas (ex: compiladores); n Desenvolvimento de ferramentas incompatíveis; n Necessidade de desenvolver ferramentas que pudessem ser integradas; n Surgimento de workbenches de programação;

12 @1997, Alexandre Vasconcelos12DI-UFPE Histórico n Surgimento de métodos de projeto de software (ex: Jackson, Yourdon, etc.); n Adequação destes métodos a CASE (diagramas, anotações e documentos); n Surgimento de ferramentas de suporte a estes métodos; n Surgimento de workbenches de suporte a outras fases do ciclo de vida de software;

13 @1997, Alexandre Vasconcelos13DI-UFPE Histórico n Automação de fases isoladas não foi satisfatória; n Surgimento do APSE (Ada Programming Support Environment) na década de 1980; n Surgimento de ambientes CASE integrados (IPSEs, ICASE’s, SDE’s ou SEE’s), suportando todo o ciclo de vida de software.

14 @1997, Alexandre Vasconcelos14DI-UFPE Vantagens dos Sistemas CASE n Automatiza o trabalho manual (não-criativo); n Torna o desenvolvimento menos tedioso; n Impõe padrões de notações e métodos entre os usuários; n Facilita a verificação de consistência e completude do projeto, documentação e código dos sistemas; n Aumenta a produtividade e reduz os custos de desenvolvimento; n Ajuda a melhorar a qualidade (ex: confiabilidade, reusabilidade, etc.) do software;

15 @1997, Alexandre Vasconcelos15DI-UFPE Vantagens dos Sistemas CASE n Ajuda a melhorar a documentação e manutenção; n Possibilita que problemas no desenvolvimento sejam descobertos mais cedo, evitando a propagação entre as diversas fase; n Enfim, ameniza a crise de software.

16 @1997, Alexandre Vasconcelos16DI-UFPE Problemas com os Sistemas CASE n O grau de melhoria da produtividade é menor do que o esperado, devido a:  Alguns problemas de desenvolvimento de software não são completamente automatizáveis (ex: problemas de gerenciamento);  Problemas de integração;  As pessoas que adotam estes sistemas não dão a devida atenção aos processos de treinamento e adaptação.

17 @1997, Alexandre Vasconcelos17DI-UFPE CASE Workbenches n São sistemas especializados, desenvolvidos a partir de ferramentas e tecnologias particulares e que tiveram sua aplicabilidade estendida para cobrir uma ou mais fases do ciclo de vida do desenvolvimento de software; n Geralmente são fechados, ou seja, só podem ser estendidos a partir da modificação de sua arquitetura/código-fonte; n Existem alguns poucos workbenches abertos, onde novas ferramentas podem ser adicionadas incrementalmente; n Existe um grande número de workbenches especializados disponíveis e em uso, oferecendo excelente funcionalidade e ganhos em produtividade;

18 @1997, Alexandre Vasconcelos18DI-UFPE Ferramentas e Workbenches: especificação de requisitos n As principais características encontradas nestes sistemas são:  Captura de requisitos;  Alocação de requisitos a sub-sistemas (de forma gráfica ou textual);  Estabelecimento de ligações entre requisitos dependentes/derivados;  Rastreamento de requisitos (quem os forneceu?, por que?, evolução, etc.);  Gerenciamento de versões dos requisitos;  Gerenciamento do trabalho cooperativo (acessos concorrentes, níveis de acesso, etc.).

19 @1997, Alexandre Vasconcelos19DI-UFPE Ferramentas e Workbenches: especificação de requisitos n Exemplos:  DOORS (Dynamic OO Requirements System) - Quality Systems & Software (QSS);  RTM (Requirements and Traceability Management);  ProductTrack (Ferramenta para Captura, rastreamento e avaliação de requisitos).

20 @1997, Alexandre Vasconcelos20DI-UFPE Ferramentas e Workbenches: especificação formal n As principais características encontradas nestes sistemas são:  Ambiente para edição;  Verificação léxica, sintática e de tipos;  Geração de mensagens de erro com informações suficientes para o usuário localizar e reconhecer o erro;  Auxílio à prova formal das especificações. n Exemplos:  CADiZ (Computer AIded Design in Z) - York Software Engineering;  Z-eves - ORA Canada.

21 @1997, Alexandre Vasconcelos21DI-UFPE Ferramentas e Workbenches: análise e projeto de sistemas n As principais características encontradas nestes sistemas são:  Facilidades para representação gráfica do fluxo de controle e dos dados correspondentes;  Facilidades para criação de um modelo do sistema e análise da consistência do mesmo;  Suporte a métodos de análise e projeto estruturados (ex: SA/SD, SADT, JSD) e/ou técnicas de modelagem orientadas a objetos (ex: OMT, Booch, UML, etc.);  Pode incluir geradores de código a partir do modelo especificado.

22 @1997, Alexandre Vasconcelos22DI-UFPE Ferramentas e Workbenches: análise e projeto de sistemas

23 @1997, Alexandre Vasconcelos23DI-UFPE Ferramentas e Workbenches: análise e projeto de sistemas n Exemplos:  ObjectMaker - Catalyst Software Ltd.  Teamwork - Cadre Technologies, Inc.  Paradigm - Platinum Technology.

24 @1997, Alexandre Vasconcelos24DI-UFPE Ferramentas e Workbenches: projeto e desenvolvimento de interfaces n As principais características encontradas nestes sistemas são:  Facilidades para edição gráfica da interface;  Geração do código correspondente a partir do protótipo da interface construída por meio de manipulação direta. n Exemplos:  Interviews;  X-Designer - Imperial Software Technology, UK.

25 @1997, Alexandre Vasconcelos25DI-UFPE Ferramentas e Workbenches: apoio à programação n As principais características encontradas nestes sistemas são:  Edição, compilação, ligação e depuração de programas. n Exemplos:  Turbo C;  Turbo Pascal;  VisualC++;  Delphi.

26 @1997, Alexandre Vasconcelos26DI-UFPE Ferramentas e Workbenches: Dirigidos à Linguagem n Ferramentas compartilham uma representação comum dos programas (ex: árvore sintática); n O editor de texto tem conhecimento da sintaxe da linguagem e pode editar a representação abstrata ao invés do código fonte; n Permite que múltiplas visões do programa sejam geradas.

27 @1997, Alexandre Vasconcelos27DI-UFPE Ferramentas e Workbenches: Dirigidos à Linguagem

28 @1997, Alexandre Vasconcelos28DI-UFPE Ferramentas e Workbenches: gerenciamento de projetos n As principais características encontradas nestes sistemas são:  Facilidades para representação de fluxo de documentos;  Geração de métricas de produtividade;  Estimativas de esforço e custos;  Facilidades para gerenciamento de tarefas: èQuais as tarefas a serem executadas e por quem? èQual o cronograma de execução das tarefas? èQuais os pré-requisitos para execução das tarefas? èQuais os recursos disponíveis para a execução das tarefas? èQuais os custos para a execução das tarefas?

29 @1997, Alexandre Vasconcelos29DI-UFPE Ferramentas e Workbenches: gerenciamento de projetos n Exemplos:  Project - Microsoft;  Time Line - Symantec.

30 @1997, Alexandre Vasconcelos30DI-UFPE Ferramentas e Workbenches: gerenciamento de configurações n As principais características encontradas nestes sistemas são:  Controle de acesso às bibliotecas de componentes (ex: duas pessoas não podem fazer modificações de um mesmo componente ao mesmo tempo);  Controle de versões;  Controle de dependências para a reconstrução do sistema. n Exemplos:  SCCS (Source Code Control System) e make no sistema Unix.

31 @1997, Alexandre Vasconcelos31DI-UFPE Ferramentas e Workbenches: teste de software n Tentam propiciar uma redução do tempo e do custo do esforço de teste; n As principais características encontradas nestes sistemas são:  Documentação de testes: èDefinição do teste, armazenamento e recuperação.  Suporte à geração de casos de teste;  Suporte à avaliação dinâmica da atividade de teste: èMétricas (ex: número de comandos executados pelo teste); èPercentagem de caminhos cobertos pelo teste, etc.;  Suporte à avaliação estática (ex: análise da complexidade do software com respeito à facilidade de manutenção);  Análise de abrangência (os testes foram exaustivos?).

32 @1997, Alexandre Vasconcelos32DI-UFPE Ferramentas e Workbenches: teste de software n Exemplos:  +1Test - +1 Software Engineering;  Ferramentas da Eastern Systems Inc.: èTestPlan (gerenciamento de testes); èTestBed (ferramenta de análise estática/dinâmica de testes); èTestDesigner (ferramenta de testes).

33 @1997, Alexandre Vasconcelos33DI-UFPE Ferramentas e Workbenches: documentação n As principais características encontradas nestes sistemas são:  Extração automática de informações de outras ferramentas usadas no desenvolvimento;  Extração automática de informações do código fonte;  Geração de documentos de acordo com determinados padrões. n Exemplos:  Interleaf;  PageMaker - Aldus.

34 @1997, Alexandre Vasconcelos34DI-UFPE Ferramentas e Workbenches: engenharia reversa n As principais características encontradas nestes sistemas são:  Extração de informações sobre a arquitetura do sistema, estrutura de controle, fluxo lógico, estrutura de dados e fluxo de dados, a partir da análise do código fonte;  Construção do modelo comportamental do sistema a partir da análise dinâmica do sistema. Essa característica é bastante rara. n Exemplos:  PathMap - Cadre.

35 @1997, Alexandre Vasconcelos35DI-UFPE Meta-CASE Workbenches n Alguns workbenches são conceitualmente similares. Ex: em workbenches de projeto e análise, as diferenças podem ser o tipo de diagrama suportado e as regras utilizadas; em workbenches de programação, as ferramentas compartilham uma representação sintática dos programas, a qual pode ser definida separadamente; n Meta-CASE Workbenches são sistemas que dão apoio ao processo de criação de outros workbenches.

36 @1997, Alexandre Vasconcelos36DI-UFPE Meta-CASE Workbenches n Os primeiros sistemas deste tipo foram criados na década de 1980 (Mentor, Synthesizer Generator, Gandalf); n Nestes sistemas, a sintaxe e a semântica da linguagem alvo são definidas e usadas para adaptar ferramentas genéricas de processamento de linguagens.

37 @1997, Alexandre Vasconcelos37DI-UFPE Meta-CASE Workbenches

38 @1997, Alexandre Vasconcelos38DI-UFPE Vantagens dos Workbenches n Geralmente estão disponíveis para uso em computadores pessoais de baixo custos; n Facilitam a padronização da documentação de sistemas de software; n Estima-se ganhos de produtividade em torno de 40% nos projetos, os quais são produzidos com menos defeitos.

39 @1997, Alexandre Vasconcelos39DI-UFPE Desvantagens dos Workbenches n São sistemas geralmente fechados. Dificilmente podem ser integrados com outros sistemas; n Facilidades de importação e exportação de documentos são limitadas (geralmente ASCII e diagramas Postscript); n É difícil e muitas vezes impossível adaptá-los às necessidades específicas das organizações; n Deficiências no gerenciamento de configurações, principalmente devido à impossibilidade de relacionar documentos produzidos no workbench com documentos produzidos externamente.

40 @1997, Alexandre Vasconcelos40DI-UFPE Ambientes de Propósito Geral n São ambientes que já foram concebidos como plataformas capazes de incorporar uma vasta gama de ferramentas; n Destinam-se ao suporte de sistemas de software de grande escala; n São denominados IPSE’s; n Existem poucos ambientes comerciais de propósito geral e mesmo os que existem oferecem funcionalidade limitada.

41 @1997, Alexandre Vasconcelos41DI-UFPE Ambientes de Propósito Geral: requisitos n Suportar o desenvolvimento de software de grande porte; n Suportar todo o ciclo de vida de software; n Suportar e integrar os diversos métodos usados nas diversas fases; n Estabelecer um guia automático para elaboração de um projeto, passando por todas as fases do ciclo de vida de software, integrando as ferramentas e dados; n Permitir acesso direto a qualquer ferramenta, obedecendo a certos pre-requisitos; n Oferecer uma interface com o usuário consistente e uniforme em todas as ferramentas;

42 @1997, Alexandre Vasconcelos42DI-UFPE Ambientes de Propósito Geral: requisitos n Prover mecanismos para compartilhar informações entre as ferramentas; n Permitir propagação de atualização por todas as ferramentas, se houver alteração da base de dados em uma delas; n Prover controle de versão e gerenciamento de configuração sobre todas as informações; n Permitir trabalho cooperativo; n Ser configurável de acordo com as necessidades dos projetos e usuários;

43 @1997, Alexandre Vasconcelos43DI-UFPE Ambientes de Propósito Geral: requisitos n Permitir a reusabilidade de componentes de software; n Ser extensível (aberto), isto é, permitir que novas ferramentas sejam incorporadas; n Suportar a comunicação entre as equipes de desenvolvimento; n Coletar dados para medição de produtividade do processo de desenvolvimento de software.

44 @1997, Alexandre Vasconcelos44DI-UFPE Ambientes de Propósito Geral: problemas n Pouca evidência prática das vantagens teóricas destes ambientes em termos do custo-benefício; n Tamanho e complexidade dos ambientes, levando a:  Custos elevados para aquisição, treinamento, manutenção e uso;  Muitos sistemas não têm uma boa performance;  Necessidade de pessoal de suporte para instalação, monitoração e ajustes;  Decréscimo da produtividade no período de implantação, devido à falta de familiaridade e à mudança da sistemática de trabalho;

45 @1997, Alexandre Vasconcelos45DI-UFPE Ambientes de Propósito Geral: problemas n Inflexibilidade:  Idealmente ambientes deveriam ser customizáveis para cada usuário;  Na prática, a maioria dos ambientes disponibiliza um certo número de ferramentas e o melhor que pode ser feito é a incorporação de novas ferramentas;  Poucos são os sistemas que permitem a flexibilização do processo de desenvolvimento. n A tecnologia ainda é instável (falta ou excesso de padrões).

46 @1997, Alexandre Vasconcelos46DI-UFPE O Ciclo de Vida um Sistema CASE n O ciclo de vida de um sistema CASE é comparável ao ciclo de vida de um software desenvolvido usando tal sistema; n Existem vários estágios que podem ser identificados no uso de um sistema CASE:  Escolha;  Adaptação;  Introdução;  Uso;  Evolução;  Obsolescência.

47 @1997, Alexandre Vasconcelos47DI-UFPE O Ciclo de Vida de um Sistema CASE EscolhaAdaptaçãoIntrodução UsoEvoluçãoObsolescência

48 @1997, Alexandre Vasconcelos48DI-UFPE O Estágio da Escolha: definição n Envolve a escolha de um sistema CASE apropriada(o) para o tipo de software a ser desenvolvido na empresa.

49 @1997, Alexandre Vasconcelos49DI-UFPE O Estágio da Escolha: fatores n Os fatores a serem levados em conta na escolha de um sistema CASE são:  Padrões e métodos adotados na empresa devem ser suportados;  O hardware existente e os futuros desenvolvimentos do hardware;  As classes de aplicações a serem desenvolvidas;  Segurança de acesso;  Preço (aquisição, manutenção e evolução).

50 @1997, Alexandre Vasconcelos50DI-UFPE O Estágio da Adaptação: definição n Envolve a adaptação do sistema para as necessidades específicas da empresa.

51 @1997, Alexandre Vasconcelos51DI-UFPE O Estágio da Adaptação: principais atividades n Instalação e teste; n Definição do modelo de processo de software - mesmo que não seja possível embutir este modelo (ex: cascata, espiral, etc.) no sistema, esta atividade é necessária para que o gerente visualize onde o sistema CASE pode ser usado e que interfaces com outras ferramentas precisam ser construídas;

52 @1997, Alexandre Vasconcelos52DI-UFPE O Estágio da Adaptação: principais atividades n Integração - envolve a integração do sistema CASE com outros sistemas CASE.  Se o novo sistema baseia-se num Sistema de Gerenciamento de Objetos (OMS) compartilhado, o esquema deve ser definido e validado. Isto envolve identificar todas as entidades e relacionamentos que são importantes para o processo de desenvolvimento de software da organização;  Se o novo sistema é baseado em arquivos, um formato comum de arquivos deve ser adotado, ou quando não, programas filtros devem ser construídos. n Documentação - todo o processo de instalação e adaptação deve ser documentado.

53 @1997, Alexandre Vasconcelos53DI-UFPE O Estágio da Introdução: definição n Envolve a introdução do sistema CASE na empresa. Para isto, é necessário que o engenheiro de software seja adequadamente treinado para o seu uso.

54 @1997, Alexandre Vasconcelos54DI-UFPE O Estágio da Introdução: problemas n Resistência por parte dos usuários:  crença de que os sistemas CASE são mais prescritivos e limitam a criatividade individual de cada pessoa. n Deficiência de treinamento:  usuários são relutantes em aprender novas tecnologias;  dificuldades em entender características/facilidades dos novos sistemas. n Resistência por parte da gerência:  medo de que a introdução de tecnologia desconhecida dificulte o processo de gerenciamento.

55 @1997, Alexandre Vasconcelos55DI-UFPE O Estágio da Introdução: respostas aos problemas n Resistência por parte dos usuários:  o sistema CASE dará assistência às tarefas maçantes do desenvolvimento de software (ex: redesenhar diagramas de projeto, encontrar o código associado à documentação e vice-versa, etc.);  os engenheiros de software terão mais tempo para as tarefas criativas e gratificantes do seu trabalho;  não é pretensão dos sistemas CASE desestimular a habilidade de criar dos engenheiros de software.

56 @1997, Alexandre Vasconcelos56DI-UFPE O Estágio da Introdução: respostas aos problemas n Deficiência de treinamento:  o treinamento deve ser de boa qualidade;  o orçamento dedicado ao treinamento deve ser adequado;  a migração para a nova tecnologia deve ser gradativa. n Resistência por parte da gerência:  os custos de introdução da tecnologia em novos projetos devem ser cuidadosamente medidos e comparados com os custos anteriores;  estas medidas podem ser usadas para convencer os gerentes das vantagens da introdução de novas ferramentas/ambientes.

57 @1997, Alexandre Vasconcelos57DI-UFPE O Estágio do Uso: definição n Envolve o uso da ferramenta/ambiente no desenvolvimento de software do dia-a-dia. n Após a introdução da ferramenta/ambiente em projetos pilotos, tal tecnologia pode se tornar disponível para todos os projetos; n Inicialmente o uso deve ser incentivado, mas com o ganho de experiência este uso pode se tornar obrigatório.

58 @1997, Alexandre Vasconcelos58DI-UFPE O Estágio da Evolução: definição n Na realidade não é um estágio isolado, pois é uma atividade contínua durante todo o ciclo de vida da ferramenta/ambiente; n Envolve a modificação da ferramenta/ambiente para adaptá-la a novos requisitos ou a novas plataformas de hardware ou software.

59 @1997, Alexandre Vasconcelos59DI-UFPE O Estágio da Evolução: problemas n As versões nova e velha da ferramenta/ambiente podem não ser compatíveis devido a mudanças no hardware/software; n Se esta incompatibilidade existir e forem necessárias ambas as versões da ferramenta/ambiente na empresa, então a infra-estrutura antiga de hardware/software terá que ser mantida na empresa, juntamente com a nova infra-estrutura.

60 @1997, Alexandre Vasconcelos60DI-UFPE O Estágio da Obsolescência: definição n Este é o estágio no qual a ferramenta/ambiente se torna fora de uso:  devido a deficiência de suporte por parte do fabricante/vendedor;  devido a mudanças na plataforma de hardware e/ou software da empresa;  devido à substituição por outra ferramenta/ambiente mais adequado para a empresa.

61 @1997, Alexandre Vasconcelos61DI-UFPE O Estágio da Obsolescência: problemas n Garantir que o software desenvolvido usando a ferramenta/ambiente ainda pode ser suportado pela empresa; n Um período de transição/migração para uma nova tecnologia deve ser cuidadosamente planejado; n Este período é mais tranqüilo se o software desenvolvido usando a ferramenta/ambiente já se tornou obsoleto.

62 @1997, Alexandre Vasconcelos62DI-UFPE Pontos-chave n CASE envolve o suporte automatizado ao processo de desenvolvimento de software; n A tecnologia CASE pode ser classificada de acordo com diversas características (ex: funcionalidade, fases do desenvolvimento suportadas, etc.); n Ferramentas dão suporte a atividades individuais, workbenches dão suporte a conjuntos de atividades e ambientes dão suporte a todo o processo.


Carregar ppt "@1997, Alexandre Vasconcelos 1DI-UFPE Sistemas CASE Introdução."

Apresentações semelhantes


Anúncios Google