sistemas case
DESCRIPTION
Sistemas CASE. Seleção, Avaliação e Adoção de Ferramentas CASE. Enfoques. Empírico; Baseado na Engenharia de Software. DI-UFPE. DI-UFPE. Enfoque Empírico. Na maioria das organizações, o processo de aquisição de ferramentas CASE (quando são adotadas) tem sido o seguinte: - PowerPoint PPT PresentationTRANSCRIPT
DI-UFPEDI-UFPE 11
Sistemas CASESistemas CASE
Seleção, Avaliação e Adoção de Ferramentas CASE
DI-UFPEDI-UFPE 22 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
EnfoquesEnfoques
Empírico; Baseado na Engenharia de Software.
DI-UFPEDI-UFPE 33 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
Enfoque EmpíricoEnfoque Empírico
Na maioria das organizações, o processo de aquisição de ferramentas CASE (quando são adotadas) tem sido o seguinte: 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;
DI-UFPEDI-UFPE 44 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
Enfoque EmpíricoEnfoque Empírico
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.
DI-UFPEDI-UFPE 55
Um Enfoque da Engenharia de SoftwareUm 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 eTomada de Decisão
Seleção
Julgamento
Estratégia de implantação
Institucionalização
DI-UFPEDI-UFPE 66
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento 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: 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.
DI-UFPEDI-UFPE 77
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação de pessoal: 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?
DI-UFPEDI-UFPE 88
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação de pessoal (cont.): 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?
DI-UFPEDI-UFPE 99
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação da tecnologia usada na organização: 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?
DI-UFPEDI-UFPE 1010
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação do processo organizacional: 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?
DI-UFPEDI-UFPE 1111
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação do processo organizacional (cont.): 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?
DI-UFPEDI-UFPE 1212
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação dos projetos da organização: 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?
DI-UFPEDI-UFPE 1313
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação da política organizacional: 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?
DI-UFPEDI-UFPE 1414
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação da política organizacional (cont.): 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?
DI-UFPEDI-UFPE 1515
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: conhecimento e tomada de decisãoconhecimento e tomada de decisão
Avaliação de necessidades adicionais: 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?
DI-UFPEDI-UFPE 1616
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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.
Avaliação da aplicabilidade da tecnologia.
DI-UFPEDI-UFPE 1717
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 1818
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 1919
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2020
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2121
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2222
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2323
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2424
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleção
Avaliação da aplicabilidade da tecnologia: 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;
DI-UFPEDI-UFPE 2525
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: seleçãoseleçã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-UFPEDI-UFPE 2626
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: julgamentojulgamento
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-UFPEDI-UFPE 2727
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: julgamentojulgamento
Os principais objetivos a serem alcançados nesta fase são: 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.
DI-UFPEDI-UFPE 2828
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: julgamentojulgamento
Os principais objetivos a serem alcançados nesta fase são (cont.): 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.).
DI-UFPEDI-UFPE 2929
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestraté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: Mudança de cultura na organização; Treinamento; Estabelecimento de padrões; Avaliação da efetividade da ferramenta.
DI-UFPEDI-UFPE 3030
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestratégia de implantação
Mudança de cultura na organização: 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.
DI-UFPEDI-UFPE 3131
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestratégia de implantação
Treinamento - a definição da estratégia de treinamento depende de: 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).
DI-UFPEDI-UFPE 3232
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestratégia de implantação
Estabelecimento de padrões - para o sucesso da ferramenta é essencial que certos padrões sejam estabelecidos: 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;
DI-UFPEDI-UFPE 3333
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestratégia de implantação
Estabelecimento de padrões (cont.): 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;
DI-UFPEDI-UFPE 3434
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: estratégia de implantaçãoestratégia de implantação
Avaliação da efetividade da ferramenta: 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.
DI-UFPEDI-UFPE 3535
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: institucionalizaçãoinstitucionalização
Nesta fase o uso da ferramenta é adotado como norma institucional;
Os seguintes mecanismos podem auxiliar à institucionalização da ferramenta: Suporte para treinamento continuado quando do
lançamento de novos releases e da incorporação de novo pessoal técnico;
DI-UFPEDI-UFPE 3636
Um Enfoque da Engenharia de Software: Um Enfoque da Engenharia de Software: institucionalizaçãoinstitucionalização
Mecanismos para a institucionalização da ferramenta (cont.): 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.
DI-UFPEDI-UFPE 3737 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
ConclusõesConclusõ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-UFPEDI-UFPE 3838
ConclusõesConclusõ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-UFPEDI-UFPE 3939
ConclusõesConclusões
Os ambientes CASE emergentes apresentam as seguintes características, entre outras: 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.
DI-UFPEDI-UFPE 4040 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
ConclusõesConclusõ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-UFPEDI-UFPE 4141 DI-UFPEDI-UFPEDI-UFPEDI-UFPE
ConclusõesConclusõ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-UFPEDI-UFPE 4242
ConclusõesConclusõ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-UFPEDI-UFPE 4343
ConclusãoConclusã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-UFPEDI-UFPE 4444 DI-UFPEDI-UFPE
Perspectivas FuturasPerspectivas 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-UFPEDI-UFPE 4545
Perspectivas FuturasPerspectivas 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.