@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 11 DI-UFPEDI-UFPE
Sistemas CASESistemas CASE
Introdução
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 22 DI-UFPEDI-UFPE
ConteúdoConteúdo
Motivação O que é CASE? Uma Classificação para Sistemas CASE Histórico; Vantagens dos Sistemas CASE Problemas com os Sistemas CASE Ferramentas, Workbenches e Ambientes CASE O Ciclo de Vida de um Sistema CASE
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 33 DI-UFPEDI-UFPE
MotivaçãoMotivação
A Engenharia de Software envolve trabalho técnico, administrativo e de controle;
Algumas tarefas são criativas e outras não; 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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 44 DI-UFPEDI-UFPE
O que é CASE?O que é CASE?
É o uso de suporte computacional no processo de desenvolvimento de software;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 55 DI-UFPEDI-UFPE
Uma Classificação para Sistemas CASEUma Classificação para Sistemas CASE
Classificação permite que sistemas CASE possam ser comparados;
Não existe uma classificação padrão; 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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 66 DI-UFPEDI-UFPE
Uma Classificação para Sistemas CASE - Uma Classificação para Sistemas CASE -
fases x profundidade fases x profundidade
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.);
Workbench - conjunto de ferramentas integradas que suporta uma ou mais fases do processo de desenvolvimento de software (ex: especificação, projeto, implementação, etc.).
Ambiente - suporta todo ou uma grande parte do processo de desenvolvimento de software. Geralmente é um conjunto de workbenches integrados.
Na prática estes limites não são bem definidos.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 77 DI-UFPEDI-UFPE
Uma Classificação para Sistemas CASE - Uma Classificação para Sistemas CASE -
fases x profundidadefases x profundidade
Single-methodworkbenches
General-purposeworkbenches
Multi-methodworkbenches
Language-specificworkbenches
Programming TestingAnalysis and
design
Integratedenvironments
Process-centredenvironments
FilecomparatorsCompilersEditors
EnvironmentsWorkbenchesTools
CASEtechnology
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 88 DI-UFPEDI-UFPE
Exemplos de Ferramentas CASEExemplos de Ferramentas CASE
Tool type ExamplesManagement tools PERT tools, Estimation toolsEditing tools Text editors, diagram editors, word
processorsConfiguration management tools Version management systems, Change
management systemsPrototyping tools Very high-level languages,
user interface generatorsMethod-support tools Design editors, data dictionaries, code
generatorsLanguage-processing tools Compilers, interpretersProgram analysis tools Cross reference generators, static
analysers, dynamic analysersTesting tools Test data generators, file comparatorsDebugging tools Interactive debugging systemsDocumentation tools Page layout programs, image editorsRe-engineering tools Cross-reference systems, program re-
structuring systems
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 99 DI-UFPEDI-UFPE
Um Ambiente CASE TípicoUm Ambiente CASE Típico
Farermenta A Fearrmenta B Ferramenta X
Plataforma de Hardware e Software
Adm. Sist.
Integrador
Desenvolvedores eGerentes
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1010 DI-UFPEDI-UFPE
Qualidade do Suporte CASEQualidade do Suporte CASE
Poor
Moderate
Good
Excellent
Quality of tool support
Requirementsdefinition
Function-orienteddesign
Object-orienteddesign
Testing ManagementFormalspecification
Datamodelling
Programming Maintenance
Activity
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1111 DI-UFPEDI-UFPE
HistóricoHistórico
Surgimento de Ferramentas CASE específicas; Primeiras ferramentas voltadas ao desenvolvimento
de programas (ex: compiladores); Desenvolvimento de ferramentas incompatíveis; Necessidade de desenvolver ferramentas que
pudessem ser integradas; Surgimento de workbenches de programação;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1212 DI-UFPEDI-UFPE
HistóricoHistórico
Surgimento de métodos de projeto de software (ex: Jackson, Yourdon, etc.);
Adequação destes métodos a CASE (diagramas, anotações e documentos);
Surgimento de ferramentas de suporte a estes métodos;
Surgimento de workbenches de suporte a outras fases do ciclo de vida de software;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1313 DI-UFPEDI-UFPE
HistóricoHistórico
Automação de fases isoladas não foi satisfatória; Surgimento do APSE (Ada Programming Support
Environment) na década de 1980; Surgimento de ambientes CASE integrados (IPSEs,
ICASE’s, SDE’s ou SEE’s), suportando todo o ciclo de vida de software.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1414 DI-UFPEDI-UFPE
Vantagens dos Sistemas CASEVantagens dos Sistemas CASE
Automatiza o trabalho manual (não-criativo); Torna o desenvolvimento menos tedioso; Impõe padrões de notações e métodos entre os
usuários; Facilita a verificação de consistência e completude
do projeto, documentação e código dos sistemas; Aumenta a produtividade e reduz os custos de
desenvolvimento; Ajuda a melhorar a qualidade (ex: confiabilidade,
reusabilidade, etc.) do software;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1515 DI-UFPEDI-UFPE
Vantagens dos Sistemas CASEVantagens dos Sistemas CASE
Ajuda a melhorar a documentação e manutenção; Possibilita que problemas no desenvolvimento sejam
descobertos mais cedo, evitando a propagação entre as diversas fase;
Enfim, ameniza a crise de software.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1616 DI-UFPEDI-UFPE
Problemas com os Sistemas CASEProblemas com os Sistemas CASE
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1717 DI-UFPEDI-UFPE
CASE WorkbenchesCASE Workbenches
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;
Geralmente são fechados, ou seja, só podem ser estendidos a partir da modificação de sua arquitetura/código-fonte;
Existem alguns poucos workbenches abertos, onde novas ferramentas podem ser adicionadas incrementalmente;
Existe um grande número de workbenches especializados disponíveis e em uso, oferecendo excelente funcionalidade e ganhos em produtividade;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1818 DI-UFPEDI-UFPE
Ferramentas e Workbenches:Ferramentas e Workbenches:especificação de requisitosespecificação de requisitos
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.).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 1919 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: especificação de requisitosespecificação de requisitos
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).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2020 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: especificação formalespecificação formal
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.
Exemplos: CADiZ (Computer AIded Design in Z) - York Software
Engineering; Z-eves - ORA Canada.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2121 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: análise e projeto de sistemasanálise e projeto de sistemas
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2222 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: análise e projeto de sistemasanálise e projeto de sistemas
Centralinformationrepository
Codegenerator
Querylanguagefacilities
Structureddiagramming
tools
Datadictionary
Reportgenerationfacilities
Design, analysisand checking
tools
Formscreation
tools
Import/exportfacilities
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2323 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: análise e projeto de sistemasanálise e projeto de sistemas
Exemplos: ObjectMaker - Catalyst Software Ltd. Teamwork - Cadre Technologies, Inc. Paradigm - Platinum Technology.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2424 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: projeto e desenvolvimento de interfacesprojeto e desenvolvimento de interfaces
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.
Exemplos: Interviews; X-Designer - Imperial Software Technology, UK.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2525 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: apoio à programaçãoapoio à programação
As principais características encontradas nestes sistemas são: Edição, compilação, ligação e depuração de programas.
Exemplos: Turbo C; Turbo Pascal; VisualC++; Delphi.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2626 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: Dirigidos à LinguagemDirigidos à Linguagem
Ferramentas compartilham uma representação comum dos programas (ex: árvore sintática);
O editor de texto tem conhecimento da sintaxe da linguagem e pode editar a representação abstrata ao invés do código fonte;
Permite que múltiplas visões do programa sejam geradas.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2727 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: Dirigidos à LinguagemDirigidos à Linguagem
Textview
Procedureheading view
Graphicalprogram view
Abstract syntaxtree
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2828 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: gerenciamento de projetosgerenciamento de projetos
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?
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 2929 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: gerenciamento de projetosgerenciamento de projetos
Exemplos: Project - Microsoft; Time Line - Symantec.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3030 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: gerenciamento de configuraçõesgerenciamento de configurações
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.
Exemplos: SCCS (Source Code Control System) e make no sistema
Unix.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3131 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: teste de softwareteste de software
Tentam propiciar uma redução do tempo e do custo do esforço de teste;
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?).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3232 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: teste de softwareteste de software
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).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3333 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: documentaçãodocumentação
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.
Exemplos: Interleaf; PageMaker - Aldus.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3434 DI-UFPEDI-UFPE
Ferramentas e Workbenches: Ferramentas e Workbenches: engenharia reversaengenharia reversa
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.
Exemplos: PathMap - Cadre.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3535 DI-UFPEDI-UFPE
Meta-CASE WorkbenchesMeta-CASE Workbenches
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;
Meta-CASE Workbenches são sistemas que dão apoio ao processo de criação de outros workbenches.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3636 DI-UFPEDI-UFPE
Meta-CASE WorkbenchesMeta-CASE Workbenches
Os primeiros sistemas deste tipo foram criados na década de 1980 (Mentor, Synthesizer Generator, Gandalf);
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3737 DI-UFPEDI-UFPE
Meta-CASE WorkbenchesMeta-CASE Workbenches
Languagesyntax
definition
Semanticinformation
Environmentgenerator
Languagetables
Genericenvironment
Language-oriented
environment
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3838 DI-UFPEDI-UFPE
Vantagens dos WorkbenchesVantagens dos Workbenches
Geralmente estão disponíveis para uso em computadores pessoais de baixo custos;
Facilitam a padronização da documentação de sistemas de software;
Estima-se ganhos de produtividade em torno de 40% nos projetos, os quais são produzidos com menos defeitos.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 3939 DI-UFPEDI-UFPE
Desvantagens dos WorkbenchesDesvantagens dos Workbenches
São sistemas geralmente fechados. Dificilmente podem ser integrados com outros sistemas;
Facilidades de importação e exportação de documentos são limitadas (geralmente ASCII e diagramas Postscript);
É difícil e muitas vezes impossível adaptá-los às necessidades específicas das organizações;
Deficiências no gerenciamento de configurações, principalmente devido à impossibilidade de relacionar documentos produzidos no workbench com documentos produzidos externamente.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4040 DI-UFPEDI-UFPE
Ambientes de Propósito GeralAmbientes de Propósito Geral
São ambientes que já foram concebidos como plataformas capazes de incorporar uma vasta gama de ferramentas;
Destinam-se ao suporte de sistemas de software de grande escala;
São denominados IPSE’s; Existem poucos ambientes comerciais de propósito
geral e mesmo os que existem oferecem funcionalidade limitada.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4141 DI-UFPEDI-UFPE
Ambientes de Propósito Geral: requisitosAmbientes de Propósito Geral: requisitos
Suportar o desenvolvimento de software de grande porte; Suportar todo o ciclo de vida de software; Suportar e integrar os diversos métodos usados nas
diversas fases; 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;
Permitir acesso direto a qualquer ferramenta, obedecendo a certos pre-requisitos;
Oferecer uma interface com o usuário consistente e uniforme em todas as ferramentas;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4242 DI-UFPEDI-UFPE
Ambientes de Propósito Geral: requisitosAmbientes de Propósito Geral: requisitos
Prover mecanismos para compartilhar informações entre as ferramentas;
Permitir propagação de atualização por todas as ferramentas, se houver alteração da base de dados em uma delas;
Prover controle de versão e gerenciamento de configuração sobre todas as informações;
Permitir trabalho cooperativo; Ser configurável de acordo com as necessidades dos
projetos e usuários;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4343 DI-UFPEDI-UFPE
Ambientes de Propósito Geral: requisitosAmbientes de Propósito Geral: requisitos
Permitir a reusabilidade de componentes de software;
Ser extensível (aberto), isto é, permitir que novas ferramentas sejam incorporadas;
Suportar a comunicação entre as equipes de desenvolvimento;
Coletar dados para medição de produtividade do processo de desenvolvimento de software.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4444 DI-UFPEDI-UFPE
Ambientes de Propósito Geral: problemasAmbientes de Propósito Geral: problemas
Pouca evidência prática das vantagens teóricas destes ambientes em termos do custo-benefício;
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;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4545 DI-UFPEDI-UFPE
Ambientes de Propósito Geral: problemasAmbientes de Propósito Geral: problemas
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.
A tecnologia ainda é instável (falta ou excesso de padrões).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4646 DI-UFPEDI-UFPE
O Ciclo de Vida um Sistema CASEO Ciclo de Vida um Sistema CASE
O ciclo de vida de um sistema CASE é comparável ao ciclo de vida de um software desenvolvido usando tal sistema;
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4747 DI-UFPEDI-UFPE
O Ciclo de Vida de um Sistema CASEO Ciclo de Vida de um Sistema CASE
Escolha Adaptação Introdução
Uso Evolução Obsolescência
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4848 DI-UFPEDI-UFPE
O Estágio da Escolha: O Estágio da Escolha: definiçãodefinição
Envolve a escolha de um sistema CASE apropriada(o) para o tipo de software a ser desenvolvido na empresa.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 4949 DI-UFPEDI-UFPE
O Estágio da Escolha: O Estágio da Escolha: fatoresfatores
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).
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5050 DI-UFPEDI-UFPE
O Estágio da Adaptação: O Estágio da Adaptação: definiçãodefinição
Envolve a adaptação do sistema para as necessidades específicas da empresa.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5151 DI-UFPEDI-UFPE
O Estágio da Adaptação:O Estágio da Adaptação:principais atividadesprincipais atividades
Instalação e teste; 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;
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5252 DI-UFPEDI-UFPE
O Estágio da Adaptação:O Estágio da Adaptação:principais atividadesprincipais atividades
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.
Documentação - todo o processo de instalação e adaptação deve ser documentado.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5353 DI-UFPEDI-UFPE
O Estágio da Introdução:O Estágio da Introdução:definiçãodefinição
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5454 DI-UFPEDI-UFPE
O Estágio da Introdução:O Estágio da Introdução:problemasproblemas
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.
Deficiência de treinamento: usuários são relutantes em aprender novas tecnologias; dificuldades em entender características/facilidades dos
novos sistemas.
Resistência por parte da gerência: medo de que a introdução de tecnologia desconhecida
dificulte o processo de gerenciamento.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5555 DI-UFPEDI-UFPE
O Estágio da Introdução:O Estágio da Introdução:respostas aos problemasrespostas aos problemas
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5656 DI-UFPEDI-UFPE
O Estágio da Introdução:O Estágio da Introdução:respostas aos problemasrespostas aos problemas
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.
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5757 DI-UFPEDI-UFPE
O Estágio do Uso:O Estágio do Uso:definiçãodefinição
Envolve o uso da ferramenta/ambiente no desenvolvimento de software do dia-a-dia.
Após a introdução da ferramenta/ambiente em projetos pilotos, tal tecnologia pode se tornar disponível para todos os projetos;
Inicialmente o uso deve ser incentivado, mas com o ganho de experiência este uso pode se tornar obrigatório.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5858 DI-UFPEDI-UFPE
O Estágio da Evolução:O Estágio da Evolução:definiçãodefinição
Na realidade não é um estágio isolado, pois é uma atividade contínua durante todo o ciclo de vida da ferramenta/ambiente;
Envolve a modificação da ferramenta/ambiente para adaptá-la a novos requisitos ou a novas plataformas de hardware ou software.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 5959 DI-UFPEDI-UFPE
O Estágio da Evolução:O Estágio da Evolução:problemasproblemas
As versões nova e velha da ferramenta/ambiente podem não ser compatíveis devido a mudanças no hardware/software;
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 6060 DI-UFPEDI-UFPE
O Estágio da Obsolescência:O Estágio da Obsolescência:definiçãodefinição
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.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 6161 DI-UFPEDI-UFPE
O Estágio da Obsolescência:O Estágio da Obsolescência:problemasproblemas
Garantir que o software desenvolvido usando a ferramenta/ambiente ainda pode ser suportado pela empresa;
Um período de transição/migração para uma nova tecnologia deve ser cuidadosamente planejado;
Este período é mais tranqüilo se o software desenvolvido usando a ferramenta/ambiente já se tornou obsoleto.
@1997, Alexandre Vasconcelos@1997, Alexandre Vasconcelos 6262 DI-UFPEDI-UFPE
Pontos-chavePontos-chave
CASE envolve o suporte automatizado ao processo de desenvolvimento de software;
A tecnologia CASE pode ser classificada de acordo com diversas características (ex: funcionalidade, fases do desenvolvimento suportadas, etc.);
Ferramentas dão suporte a atividades individuais, workbenches dão suporte a conjuntos de atividades e ambientes dão suporte a todo o processo.