Sistemas CASE
Seleção, Avaliação e Adoção de
Ferramentas CASE
DI-UFPE
1
Enfoques


Empírico;
Baseado na Engenharia de Software.
DI-UFPE
2
Enfoque Empírico

Na maioria das organizações, o processo de
aquisição de ferramentas CASE (quando são
adotadas) tem sido o seguinte:




DI-UFPE
Experimenta-se uma falha no software;
Houve-se “falar” que o uso de ferramentas CASE pode
evitar tais problemas;
Compra-se uma ferramenta anunciada;
Tenta-se descobrir que processos se encaixam no escopo
da ferramenta;
3
Enfoque Empírico





DI-UFPE
Assume-se que todos os problemas foram resolvidos;
Se os problemas persistem, culpa-se os membros do staff
por não saberem usar a ferramenta propriamente;
Contrata-se um consultor que não consegue os resultados
esperados;
Desilude-se com a ferramenta adquirida;
“Engaveta-se” a ferramenta.
4
Um Enfoque da Engenharia de Software

O SEI (Software Engineering Institute) propôs um
enfoque para seleção e adoção de ferramentas
baseado nas seguintes etapas:
Conhecimento e
Tomada de Decisão
Seleção
Julgamento
Estratégia de implantação
Institucionalização
DI-UFPE
5
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão


Nesta fase procura-se conhecer melhor o perfil da
organização, para avaliar a aplicabilidade ou não de
ferramentas CASE como parte da solução para os
problemas organizacionais;
Tal fase pode ser dividida nas seguintes sub-fases:






DI-UFPE
Avaliação de pessoal;
Avaliação da tecnologia usada na organização;
Avaliação do processo organizacional;
Avaliação dos projetos da organização;
Avaliação da política organizacional;
Avaliação de necessidades adicionais.
6
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação de pessoal:





DI-UFPE
Como os empregados irão reagir à introdução de uma nova
tecnologia?
Existe algum registro de mudanças que foram tentadas
(sucessos e falhas)?
Existem lideranças capazes de influenciar o pessoal técnico
no que concerne à adoção ou não de novas tecnologias?
Qual a habilidade do pessoal para aprender novas técnicas?
Qual a habilidade técnica do pessoal de suporte?
7
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação de pessoal (cont.):



DI-UFPE
Quais as tarefas assinaladas ao pessoal técnico?
Qual a habilidade do pessoal de staff para gerenciar as
inovações e mudanças?
Quão estável é o pessoal de staff? Existem constantes
mudanças de decisão e/ou de chefia?
8
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação da tecnologia usada na organização:







DI-UFPE
Quais as plataformas de hardware/software existentes
atualmente na organização?
Os recursos existentes são satisfatórios?
Qual o grau de integração do software utilizado?
Quais as linguagens de programação utilizadas?
A organização utiliza recursos de rede?
Em média, qual a percentagem de desenvolvimento, reuso e
manutenção de sistemas?
A plataforma de desenvolvimento difere da plataforma de
uso?
9
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação do processo organizacional:







DI-UFPE
Quão bem definido é o processo de desenvolvimento de
software na organização?
O processo de desenvolvimento ou parte dele é passível de
automação?
Qual o modelo de ciclo de vida adotado pela organização?
Quais os métodos de desenvolvimento adotados pela
organização (SADT, SA/SD, JSD, OMT, etc.)?
Quão experiente é o pessoal com os métodos adotados?
Algum destes métodos foi adaptado para ser aplicado à
organização?
Os métodos utilizados são satisfatórios?
10
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação do processo organizacional (cont.):




DI-UFPE
A adoção de um novo processo e/ou método de
desenvolvimento seria adequado à organização?
Existe algum padrão de documentação adotado (ou a ser
adotado) pela organização?
Existe algum programa (padrão) de qualidade de software
adotado (ou a ser adotado) pela organização?
A organização coleta alguma métrica de produtividade?
Como e para quê ela é utilizada?
11
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação dos projetos da organização:






DI-UFPE
Quais os domínios de atuação atendidos negócios da
organização?
Quais os tamanhos dos projetos e durações normais?
Qual o grau em que produtos similares são produzidos?
Por quais fases da produção a organização é responsável?
Qual a complexidade do processo de produção em cada
fase?
Quão experiente e decisivo deve ser o gerenciamento de
dos projetos?
12
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação da política organizacional:






DI-UFPE
Como a produtividade e a qualidade dos produtos da
organização se comparam com a de seus concorrentes?
Quais as metas de produtividade e qualidade a serem
atingidas?
A gerência está satisfeita com a situação atual?
Qual o compromisso da gerência em termos de investimento
em dinheiro, pessoal e projetos?
Existe algum suporte organizacional para encorajar a
adoção de novas ferramentas e tecnologias? Vontade de
arriscar, invovar e mudar?
Como as falhas têm sido gerenciadas?
13
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação da política organizacional (cont.):






DI-UFPE
Existem pressões da gerência para a adoção de
ferramentas CASE?
Em que grau a gerência considera que o uso de ferramentas
CASE será estratégico como fator diferencial de
competitividade?
Como o uso de uma ferramenta CASE poderá afetar os
custos, cronograma e a qualidade dos projetos?
Qual o período esperado para se obter retorno em termos
de custo-benefício?
Qual é o balanço do retorno dos investimentos passados?
As expectativas da gerência são factíveis?
14
Um Enfoque da Engenharia de Software:
conhecimento e tomada de decisão

Avaliação de necessidades adicionais:





DI-UFPE
Quais as partes do ciclo de vida que estão funcionando
melhor/pior?
Quais as partes do ciclo de vida do software que podem ser
melhoradas com o uso de ferramentas CASE?
Quais as necessidades adicionais de documentação?
Os mecanismos de comunicação inter-pessoal estão
funcionando adequadamente?
Que facilidades adicionais melhorariam a comunicação?
15
Um Enfoque da Engenharia de Software:
seleção


Nesta fase faz-se uma análise rigorosa sobre qual
ferramenta será adotada. Caso contrário corre-se o
risco de adquirir uma ferramenta que não será
usada;
A seleção pode ser dividida nas seguintes sub-fases:

Avaliação da tecnologia disponível para adoção:
Análise das ferramentas disponíveis;
Análise do fornecedor da ferramenta;
Análise das experiências de outros usuários.

DI-UFPE
Avaliação da aplicabilidade da tecnologia.
16
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise das ferramentas disponíveis:
É viável desenvolver uma ferramenta CASE própria?
Que ferramentas existem no mercado que podem servir a
organização?
Alguma das ferramentas existentes é customizável ou suporta
diretamente o processo de desenvolvimento adotado pela
organização?
Qual o hardware/software necessário para a implantação da
ferramenta?
Quão difícil será a inserção da ferramenta no ambiente
organizacional?
DI-UFPE
17
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise das ferramentas disponíveis (cont.):
Quão compatível é a ferramenta em relação a outras
ferramentas e métodos? A ferramenta é passível de integração
com outras ferramentas usadas na organização?
Versões de teste estão disponíveis? Se sim, devem ser
solicitadas;
A ferramenta funciona bem em um ambiente multi-usuário?
Qual a performance da ferramenta em relação a uma grande
carga de uso e acessos simultâneos?
A ferramenta funciona bem tanto para projetos de pequeno
como de grande porte? A ferramenta proporciona meios para
decomposição de projetos em sub-projetos?
DI-UFPE
18
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise das ferramentas disponíveis (cont.):
Qual o grau de maturidade da ferramenta a ser utilizada?
A ferramenta tem capacidade de funcionar em condições
adversas (robustez)?
Os mecanismos de disponibilização de atualizações da
ferramenta são satisfatórios para a organização?
A interface da ferramenta é de fácil uso?
O pessoal técnico é conhecedor das metodologias suportadas
pela ferramenta? Será preciso oferecer treinamento
especializado para eles?
Qual o tempo necessário para o pessoal técnico se adaptar à
ferramenta?
DI-UFPE
19
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise das ferramentas disponíveis (cont.):
A ferramenta a ser adotada está de acordo com algum
programa de qualidade adotado (ou a ser adotado) pela
organização?
A ferramenta a ser adotada tem que oferecer todas as
facilidades desejadas?
Qual o custo (financeiro e de tempo) para aquisição,
implantação, treinamento e manutenção da ferramenta,
incluindo também os custos de hardware, software e pessoal?
Estes custos ameaçam a aquisição da ferramenta?
DI-UFPE
20
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise do fornecedor da ferramenta:
A quanto tempo o fornecedor está no mercado de ferramentas
CASE?
A produção de ferramentas CASE é a linha principal de
negócios do fornecedor?
Qual o balanço quantitativo de vendas do fornecedor no
período de um ano?
Existe algum sentimento sobre a estabilidade do fornecedor no
mercado, por pelo menos um período de 5 anos (prazo
estimado para uma ferramenta cair em desuso)?
DI-UFPE
21
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise do fornecedor da ferramenta (cont.):
A qualidade do suporte oferecido pelo fornecedor é boa?
 Meio de comunicação;
 Tempo para atendimento;
 Localização geográfica.
O fornecedor oferece treinamento?
O fornecedor irá customizar a ferramenta e/ou treinamento às
necessidades da organização?
Qual a reputação do fornecedor no mercado de ferramentas
CASE?
DI-UFPE
22
Um Enfoque da Engenharia de Software:
seleção

Avaliação da tecnologia disponível para adoção:

Análise das experiências de outros usuários:
Existe algum grupo de discussão sobre a ferramenta na
Internet? Se sim, qual tem sido a avaliação dos usuários?
Existe algum comentário crítico sobre a ferramenta na mídia
(publicações especializadas, anais de congresso, etc.)?
A organização tem conhecimento da experiência de outros
usuários?
 Qualidade e nível de suporte;
 Problemas com a ferramenta;
 Dicas e exemplos de uso, etc.
DI-UFPE
23
Um Enfoque da Engenharia de Software:
seleção

Avaliação da aplicabilidade da tecnologia:


DI-UFPE
Nesta sub-fase é tomada a decisão, com base nas questões
levantadas anteriormente, se a ferramenta selecionada
adequa-se às necessidades da organização;
Os pontos fortes e fracos da ferramenta são “pesados” e
comparados;
24
Um Enfoque da Engenharia de Software:
seleção

Avaliação da aplicabilidade da tecnologia (cont.)

Esta avaliação baseia-se principalmente em:
Compatibilidade da ferramenta com as capacidades do
pessoal técnico;
A tecnologia de software e hardware usada pela ferramenta;
O grau de suporte aos processo e métodos adotados pela
organização;
A capacidade de integração oferecida pela ferramenta;
A performance da ferramenta e o suporte oferecido ao trabalho
cooperativo;
A qualidade da documentação e do suporte oferecido;
Compatibilidade entre a ferramenta e as necessidades
adicionais da organização.
DI-UFPE
25
Um Enfoque da Engenharia de Software:
julgamento




Nesta fase a ferramenta escolhida deve ser
experimentada em um projeto-piloto;
Critérios de avaliação (sucessos e insucessos) devem
ser definidos antes de se começar a usar a ferramenta;
O projeto-piloto deve ser representativo em relação aos
projetos que efetivamente vão usar a ferramenta;
Idealmente o experimento deveria ser feito antes da
aquisição da ferramenta, em uma versão de teste, mas
nem sempre isto é possível (tal facilidade pode não ser
oferecida pelo fornecedor);
DI-UFPE
26
Um Enfoque da Engenharia de Software:
julgamento

Os principais objetivos a serem alcançados nesta
fase são:





DI-UFPE
Desenvolvimento de especialistas que podem disseminar o
uso da ferramenta na organização;
Documentação sobre as experiências de uso da ferramenta;
Direcionamento da ferramenta, dos métodos e dos
processos organizacionais, para um uso mais efetivo da
ferramenta;
Desenvolvimento de padrões e guias sobre o uso da
ferramenta;
Identificação de necessidades de treinamento.
27
Um Enfoque da Engenharia de Software:
julgamento

Os principais objetivos a serem alcançados nesta
fase são (cont.):



DI-UFPE
Estabelecimento de um ambiente “seguro onde os
indivíduos podem aprender mais sobre a ferramenta sem
pressões excessivas;
Desenvolvimento de expectativas realísticas para a
implantação da ferramenta em toda a organização (ex:
cronograma de implantação);
Desenvolvimento de uma estratégia organizacional para a
implantação da ferramenta (ex: definição de prioridades,
política de migração, etc.).
28
Um Enfoque da Engenharia de Software:
estratégia de implantação


Nesta fase define-se a estratégia de implantação da
ferramenta na organização de modo que o impacto
organizacional seja o menor possível;
Em adição ao cronograma de implantação, a
estratégia de implantação deve levar em conta os
seguintes pontos:




DI-UFPE
Mudança de cultura na organização;
Treinamento;
Estabelecimento de padrões;
Avaliação da efetividade da ferramenta.
29
Um Enfoque da Engenharia de Software:
estratégia de implantação

Mudança de cultura na organização:







DI-UFPE
Identificar as pessoas-chave e seus papéis na implantação;
Assegurar que as pessoas-chave tenham uma visão comum
do porque, o que e como será implantado;
Identificar as pessoas mais sucetíveis às mudanças e
incentivá-las;
Identificar as maiores barreiras para a implantação da
ferramenta, baseando-se em experiências anteriores;
Tentar minimizar as barreiras para a implantação;
Planejar a estratégia da gerência para convencer e
comunicar o pessoal sobre a adoção da ferramenta;
Monitorar e se preciso corrigir a estratégia de implantação.
30
Um Enfoque da Engenharia de Software:
estratégia de implantação

Treinamento - a definição da estratégia de
treinamento depende de:






DI-UFPE
Complexidade dos produtos desenvolvidos pela organização;
Qualidade dos cursos disponíveis;
O orçamento disponível para o treinamento;
O tempo que a gerência disponibilizará para o treinamento;
A formação e o interesse do pessoal que utilizará a ferramenta;
A existência e disponibilização de pessoal habilitado a servir
como multiplicador de conhecimento. Este pessoal poderá ser
treinado e então treinar o restante da equipe (solução
satisfatória e mais econômica).
31
Um Enfoque da Engenharia de Software:
estratégia de implantação

Estabelecimento de padrões - para o sucesso da
ferramenta é essencial que certos padrões sejam
estabelecidos:




DI-UFPE
Padrões para usar a ferramenta;
Convenções de nomes para as entidades manipuladas pela
ferramenta;
Padrões para backup e compartilhamento da base de dados
da ferramenta;
Padrões de segurança;
32
Um Enfoque da Engenharia de Software:
estratégia de implantação

Estabelecimento de padrões (cont.):




DI-UFPE
Padrões de relatórios para cada etapa do ciclo de vida do
software;
Padrões para documentação do software;
Padrões para a análise de produtividade e qualidade do
trabalho;
Padrões e técnicas para a interface com outras ferramentas;
33
Um Enfoque da Engenharia de Software:
estratégia de implantação

Avaliação da efetividade da ferramenta:

DI-UFPE
Nesta etapa define-se a estratégia para medir os ganhos de
produtividade e/ou qualidade obtidos com a implantação da
ferramenta em relação à sistemática anterior.
34
Um Enfoque da Engenharia de Software:
institucionalização


Nesta fase o uso da ferramenta é adotado como
norma institucional;
Os seguintes mecanismos podem auxiliar à
institucionalização da ferramenta:

DI-UFPE
Suporte para treinamento continuado quando do lançamento
de novos releases e da incorporação de novo pessoal
técnico;
35
Um Enfoque da Engenharia de Software:
institucionalização

Mecanismos para a institucionalização da ferramenta
(cont.):





DI-UFPE
Desenvolvimento e implementação de políticas para update da
ferramenta (ex: definição de procedimentos e
responsabilidades de instalação);
Desenvolvimento de mecanismos para compartilhamento de
experiências (ex: grupos de discussão, relatórios internos,
bibliotecas de reuso, publicações em congressos, etc.);
Bom relacionamento com o fornecedor;
Desenvolvimento de mecanismos para incentivar o uso da
ferramenta (reconhecimento público dos bons funcionários,
recompensas por produtividade, etc.);
Avaliação continua da qualidade e da produtividade.
36
Conclusões



A crise de software está longe de ser resolvida por
completo;
O uso de ferramentas e ambientes no processo de
desenvolvimento de software contribui para amenizar
esta crise;
O CASE está para a Engenharia de Software assim
como o CAD/CAM (Computer Aided Design/
Computer Aided Manufacture) está para as outras
engenharias;
DI-UFPE
37
Conclusões




No entanto o CAD/CAM implementa práticas de
engenharia que foram experimentadas e provadas
ao longo dos últimos 100 anos;
O CASE, por sua vez, apresenta um conjunto de
ferramentas semi-automatizadas e automatizadas
que implementam uma cultura de engenharia que é
novidade para muitas organizações;
Existe uma grande quantidade de ambientes
especializados, os quais são geralmente fechados;
A maioria dos ambientes existentes está longe de ser
de propósito geral;
DI-UFPE
38
Conclusões

Os ambientes CASE emergentes apresentam as
seguintes características, entre outras:







DI-UFPE
Uso de interfaces gráficas padrão;
Repositório compartilhado (se tornando comum);
Estão caminhando rumo a modelos comuns;
Arquitetura cliente-servidor;
Pequeno suporte à integração por processo;
Interação dinâmica entre as ferramentas;
Troca de mensagens entre as ferramentas.
39
Conclusões



Ambientes genéricos baseados em PTIs permitem
que todo o ciclo de vida seja suportado. Porém não
existe um conjunto completo de ferramentas que
suporte isto na prática;
Um dos grandes problemas no uso de CASE é a
integração de ferramentas;
Apesar de ser mais disciplinado, o processo de
seleção de ferramentas CASE adotado pela
Engenharia de software ainda não é preciso.
Depende das necessidades da organização;
DI-UFPE
40
Conclusões


Estima-se que mais da metade de todas as
ferramentas CASE adquiridas caem no desuso muito
rapidamente. Isto implica em prejuízos econômicos
(hardware, software, treinamento e da própria
ferramenta) e decréscimo de produtividade;
O sucesso de uma ferramenta CASE depende não
só da ferramenta, mas também do processo de
adoção da mesma na organização;
DI-UFPE
41
Conclusões


As estratégias de seleção e adoção de ferramentas
apresentadas não garantem o sucesso da
ferramenta a ser adotada, porém diminuem
consideravelmente a probabilidade de insucesso;
De forma análoga aos custos de correção de erros
de software, quanto mais tarde se descobre que a
ferramenta é inadequada para a organização, maior
será a perda econômica e de tempo;
DI-UFPE
42
Conclusão

Um pré-requisito para a implantação de uma
ferramenta/ambiente CASE em uma organização é
que o processo de desenvolvimento de software tem
que estar bem definido. Uma ferramenta/ambiente
CASE suporta o processo, mas não é um substituto
para os procedimentos de desenvolvimento.
DI-UFPE
43
Perspectivas Futuras



No futuro, espera-se que exista um padrão ao qual
todos os ambientes deverão obedecer, o que
permitirá uma melhor integração de ferramentas;
Os ambientes e ferramentas deverão ser mais
customizáveis, de modo a que possam se adaptar às
necessidades dos usuários;
Do ponto de vista do usuário final, as ferramentas
deverão oferecer a possibilidade de produzir
aplicações de maneira rápida (ex: geração
automática de código, facilidades para localização de
componentes reutilizáveis);
DI-UFPE
44
Perspectivas Futuras





As arquiteturas deverão ser do tipo cliente-servidor;
As ferramentas poderão estar distribuídas;
Os ambientes deverão ser extensíveis e baseados
em componentes;
A integração por processo deverá ser mais comum;
Os sistemas incentivarão cada vez mais o
desenvolvimento cooperativo de software,
possivelmente desenvolvimento distribuído.
DI-UFPE
45
Download

Seleção,Avaliação e Adoção de Ferramentas CASE