450 likes | 574 Views
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:
E N D
Sistemas CASE Seleção, Avaliação e Adoção de Ferramentas CASE DI-UFPE
Enfoques • Empírico; • Baseado na Engenharia de Software. DI-UFPE 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: • 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-UFPE DI-UFPE DI-UFPE
Enfoque 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-UFPE DI-UFPE DI-UFPE
Conhecimento e Tomada de Decisão Seleção Julgamento Estratégia de implantação Institucionalização 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: DI-UFPE
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: • 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
Um Enfoque da Engenharia de Software: conhecimento 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-UFPE
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. • Avaliação da aplicabilidade da tecnologia. DI-UFPE
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
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
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
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
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
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
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
Um Enfoque da Engenharia de Software: seleçã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-UFPE
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
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
Um Enfoque da Engenharia de Software: julgamento • 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-UFPE
Um Enfoque da Engenharia de Software: julgamento • 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-UFPE
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: • Mudança de cultura na organização; • Treinamento; • Estabelecimento de padrões; • Avaliação da efetividade da ferramenta. DI-UFPE
Um Enfoque da Engenharia de Software: estraté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-UFPE
Um Enfoque da Engenharia de Software: estraté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-UFPE
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: • 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-UFPE
Um Enfoque da Engenharia de Software: estraté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-UFPE
Um Enfoque da Engenharia de Software: estraté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-UFPE
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: • Suporte para treinamento continuado quando do lançamento de novos releases e da incorporação de novo pessoal técnico; DI-UFPE
Um Enfoque da Engenharia de Software: institucionalizaçã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-UFPE
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 DI-UFPE DI-UFPE
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
Conclusõ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-UFPE
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 DI-UFPE DI-UFPE
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 DI-UFPE DI-UFPE
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
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
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 DI-UFPE
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