Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Customização de Software como um Meio para o Desenvolvimento de Sistemas de Software Thiago Bianchi1 Elisa Yumi Nakagawa2 1 IBM - International Business Machines 04753-080, São Paulo, SP, Brazil [email protected] 2 Universidade de São Paulo - USP Caixa Postal 668, 13560-970, São Carlos, SP, Brazil [email protected] 01 de Outubro de 2013 1 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Sumário 1 Introdução 2 O Processo Prometheus 3 Estudo de Caso: Aplicação do Prometheus 4 Conclusão 2 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Sumário 1 Introdução 2 O Processo Prometheus 3 Estudo de Caso: Aplicação do Prometheus 4 Conclusão 3 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Contextualização O desenvolvimento de um software inicia-se na sua concepção e só termina depois que esse software deixa de ser utilizado; Enquanto é utilizado, esse software sofre diversas alterações que podem modificar drasticamente o contexto originalmente concebido; Por isso, diversos esforços foram realizados na área de Manutenção de Software com o objetivo de prover ferramentas, técnicas e métodos que auxiliassem no processo de manutenção de software na indústria; e Na indústria de software, as alterações que um software sofre para adequá-lo a um contexto específico são comumente chamadas de customizações. 4 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Contextualização Em outra perspectiva, a POA foi proposta para melhorar a separação de interesses em sistemas de software; Na indústria de software, a POA começou a ser difundida mais recentemente, colaborando para a melhora na modularização dos sistemas; e A boa separação de interesses contribui para a redução dos custos e facilidade de desenvolvimento, e melhora a manutenção e reúso do software. 5 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Contextualização O reúso de software é reconhecido como uma área importante na Engenharia de Software; O desenvolvimento baseado em componentes contribui para aumentar o reúso no desenvolvimento de sistemas, em particular nos sistemas de grande porte; A combinação dos princípios do desenvolvimento baseado em componentes com a POA originaram o termo de componentes OA; e As abordagem de desenvolvimento baseadas em componentes OA concentram-se no desenvolvimento de componentes cujos serviços são transversais e procura dividi-los em módulos orientados a aspectos. 6 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Motivação No contexto da indústria, as modificações realizadas em sistemas de software pelas atividades de manutenção e a integração com outros sistemas degradam a qualidade do código; Nota-se que a customização de software em escala industrial não tem sido largamente investigada; Observa-se, também, uma carência de trabalhos que investiguem o uso de componentes OA no contexto da customização de software em escala industrial; O estudo sobre reúso com base em aspectos é relativamente recente e existe muito espaço para pesquisas e experimentação na tentativa de combinar componentes e aspectos, inclusive na área da manutenção de sistemas de software 7 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Objetivos O objetivo deste trabalho é a proposta de um processo para a customização de sistemas de software utilizando componentes OA; Visa-se, com isso, facilitar a adaptação, diminuir o acoplamento e aumentar a coesão nos sistemas customizados e, como consequência, pretende-se melhorar a manutenção, a evolução e o reúso desses sistemas; Para analisar a viabilidade do processo proposto foi conduzido um estudo de caso utilizando um sistema de software comercial; Para analisar qualitativamente esse estudo de caso foram utilizadas métricas de acoplamento no sistema customizado; e Com isso, este trabalho visa contribuir para a área de Manutenção de Software com uma abordagem que poderá contribuir com o reúso, manutenibilidade e evolução de sistemas de software. 8 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Sumário 1 Introdução 2 O Processo Prometheus 3 Estudo de Caso: Aplicação do Prometheus 4 Conclusão 9 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Considerações Iniciais O Prometheus visa reduzir os esforços para customização de sistemas de software e preservar o acoplamento e coesão desses sistemas durante as atividade de customização; Tem o objetivo de ser simples o bastante para facilitar sua adoção na indústria de software, mas completo o suficiente para suportar a construção de um componente OA de maneira adequada; Baseado no Processo Unificado utilizado largamente pela indústria de software; Utiliza os conceitos do UML Components e da Engenharia de Componentes Baseados em Aspectos aliados à experiência retirada da indústria; e Essa abordagem é especialmente vantajosa para sistemas de grande porte, tais como ERP’s. 10 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Visão Geral do Processo O EPF foi utilizado para facilitar o entendimento e a utilização do Prometheus; Principais conceitos utilizados na construção do Prometheus: produto de trabalho, atividade, tarefa, papel e disciplina; e O Prometheus encontra-se disponível em http://143.107.231.100:8080/prometheus/: 11 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Visão Geral do Processo O Prometheus é composto por 6 atividades: Receber Solicitação de Mudanças, Análise das Solicitações de Mudanças, Identificação dos Componentes, Especificação dos Componentes, Desenvolvimento e Integração dos Componentes e Validação do Sistema; Três papéis: Analista Funcional, Analista de Sistema e Desenvolvedor; Três disciplinas: Manutenção, Análise e Projeto e Construção; É iterativo; e É incremental. 12 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Visão Geral do Processo 13 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Receber Solicitações de Mudanças 14 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Análise das Solicitações de Mudaças 15 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Identificação dos Componentes 16 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Identificação dos Componentes 17 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Especificação dos Componentes 18 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Especificação dos Componentes 19 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Desenvolvimento e Integração dos Componentes 20 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Desenvolvimento e Integração dos Componentes 21 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Validação do Sistema 22 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Considerações Finais O Prometheus é uma abordagem que utiliza componentes OA no contexto da customização de sistemas de software; As seis atividades são propostas para sistematizar a utilização de componentes OA na customização de sistemas; e A utilização do EPF auxiliou a organização das informações e conceitos propostos pelo Prometheus. 23 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Sumário 1 Introdução 2 O Processo Prometheus 3 Estudo de Caso: Aplicação do Prometheus 4 Conclusão 24 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Considerações Iniciais Para a avaliação do Prometheus, foi realizado um estudo de caso na customização do sistema IBM Maximo; O sistema IBM Maximo é um tipo específico de ERP: um EAM; e Os dados do estudo de caso foram extraídos do projeto de customização do sistema IBM Maximo para a British Petroleum. 25 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Visão Geral do Sistema Maximo O sistema IBM Maximo é um sistema de gerenciamento de ativos que é utilizado para a manutenção de equipamentos de grande porte em diversos segmentos da indústria, tais como petroquímica, transportes e hospitalar; É desenvolvido na plataforma JEE e possui uma arquitetura orientada a serviços; É um sistema baseado em framework; É dividido em diversas aplicações: 26 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Visão Geral do Sistema Maximo Pode ser considerado um sistema de grande porte: Item Linhas de Código (sem comentários e espaços) Número de Classes Número de Aplicações Número de Relatórios Número de Tabelas no Banco de Dados Tamanho do Diretório no Sistema de Arquivos Número de Arquivos no Diretório Valor 1.202.342 12968 199 329 1430 2,4 Gigabytes 86.621 Tabela: Dados gerais sobre o sistema IBM Maximo. 27 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Aplicação do Prometheus no Sistema IBM Maximo A BP é uma empresa do setor de extração e produção de combustíveis e que possui plantas em diversos lugares do mundo; Foi adotada uma solução baseada na utilização de diversos sistemas chamada de WMS e que pode ser vista como um SoS da qual o Maximo faz parte; Além de contemplar as regras específicas da BP, essa solução deve contemplar regras específicas para cada país; e Dessa maneira, o sistema IBM Maximo tem sido customizado intensamente ao longo dos últimos para se adequar às necessidades da BP. 28 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Aplicação do Prometheus no Sistema IBM Maximo Tela da versão original da aplicação de “Ordem de Serviço” do sistema IBM Maximo: 29 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Aplicação do Prometheus no Sistema IBM Maximo Tela da versão customizada para a BP da aplicação de “Ordem de Serviço” do sistema IBM Maximo: 30 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Aplicação do Prometheus no Sistema IBM Maximo Tela da versão customizada para a BP da aplicação de “Ordem de Serviço” do sistema IBM Maximo: 31 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Aplicação do Prometheus no Sistema IBM Maximo A quantidade de customizações é realmente grade: Item Linhas de Código (sem comentários e espaços) Número de Classes Número de Aplicações Alteradas Número de Relatórios Alterados Número de Arquivos no Diretório Valor 39.643 725 42 33 1.669 Tabela: Dados da customização do sistema IBM Maximo realizada pela BP. A seguir será descrito como o Prometheus foi aplicado para customizar o sistema IBM Maximo. Particularmente, serão utilizadas duas customizações realizadas pela IBM no WMS que serão reimplementadas utilizando-se componentes OA. 32 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Receber Solicitações de Mudanças Na BP, cada solicitação de mudança é descrita em um documento específico que é armazenada e rastreado pelo RTC; As duas solicitações de mudanças serão descritas de maneira resumida por se tratar de informação confidencial: 1 Solicitação de Mudança 1: processamento das mensagens de integração como o usuário que o originou; 2 Solicitação de mudança 2: a data de finalização de uma ordem de serviço deverá ser igual à data de sua criação ignorando-se o campo de estimativa de esforço da ordem de serviço; ou ser igual à estimativa de esforço do plano de trabalho se esse estiver associado à ordem de serviço. 33 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Análise das Solicitações de Mudanças De acordo com o Prometheus, a classificação das solicitações de mudanças deverá seguir o critério estabelecido por Chapin et al. (2001): 1 Solicitação de Mudança 1: por se tratar de uma alteração que modificou o sistema para adequá-lo com o ambiente operacional, decidiu-se classificar essa solicitação de mudança como: 1 2 2 Tipo Geral: Propriedades do Sistema; e Tipo Específico: Adaptativa. Solicitação de Mudança 2: por se tratar de uma alteração que extendeu as regras de negócio existentes no sistema, decidiu-se classificar essa solicitação de mudança como: 1 2 Tipo Geral: Regras de Negócio; e Tipo Específico: Extensão. Conforme o Prometheus, após classificadas as solicitações de mudanças devem ser considerados os artefatos necessários para a sua implementação: Manual do Usuário e código fonte. 34 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Identificação dos Componentes Diagrama de componentes mostrando os componentes OA projetados: 35 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Especificação dos Componentes 36 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Desenvolvimento e Integração dos Componentes Código do aspecto de integração implementado no sistema IBM Maximo: 37 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Desenvolvimento e Integração dos Componentes Código do aspecto de “Ordem de Serviço” implementado no sistema IBM Maximo: 38 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Desenvolvimento e Integração dos Componentes Diagrama de Implantação mostrando os componentes OA instalados no sistema IBM Maximo: 39 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Validação do Sistema Seguindo o Prometheus, é necessário validar as customizações incorporadaso ao sistema com o objetivo de garantir que os requisitos inicias encontram-se corretamente implementados; e Nesse estudo de caso, achou-se por bem utilizar os casos de testes escritos pela IBM para realizar os testes funcionais na solução WMS, uma vez as solicitações de mudanças consideradas foram extraídas do sistema IBM Maximo customizado para a BP. 40 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Análise do Estudo de Caso A aplicação do Prometheus no sistema IBM Maximo trouxe resultados importantes não só pelo fato de aplicá-lo em um sistema comercial de grande porte, mas também por utilizar dados extraídos da customização desse sistema para a BP; Nesse contexto, é possível comparar os pardigmas orientado a objetos e orientado a aspectos; Para comparar essas duas abordagens foram utilizadas as métricas propostas por Chidamber e Kemerer (1994) e que foram avaliadas por Dhanoa et al (2011). As métricas utilizadas no contexto deste trabalho são: Weighted Methods per Class (WMC): essa métrica é a soma das complexidades dos métodos definidos em uma classe; Coupling Between Objects (CBO): essa métrica indica a dependência dessa classe com o restante do sistema. Um valor igual a 0 indica nenhuma relacionamento com nenhuma outra classe do sistema, valores entre 1 e 4 indicam um acoplamento baixo, por fim, valores superiores a 4 indicam um alto acoplamento dessa classe com o sistema; e Depth of Inheritance Tree (DIT): essa métrica indica a profundidade de uma classe na hierarquia. 41 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Análise do Estudo de Caso A Tabela abaixo mostra os valores das métricas utilizadas: Métrica Weighted Methods per Class (WMC) Coupling Between Objects (CBO) Depth of Inheritance Tree (DIT) IBM 19.5 1 3.5 Prometheus 19 1 1 Tabela: Métricas utilizadas para comparar a solução desenvolvida pela IBM com a solução desenvolvida utilizando o Prometheus. A partir dos dados mostrados nessa tabela é possível observar que as métricas WMC e CBO ficaram praticamente inalteradas. Isso pode ser explicado pelo fato do código fonte utilizado na aplicação do Prometheus ser muito similar ao código fonte desenvolvido pela IBM para a BP. Dessa maneira, a métrica WMC mostra que as complexidades dos métodos utilizados nas duas soluções foram semelhantes. Também pode-se observar que a métrica CBO indicou que não houveram alterações nas dependências com o framework do sistema. 42 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Análise do Estudo de Caso No entanto, o valor da métrica DIT foi bem menor na solução desenvolvida com a utilização do Prometheus em comparação com a solução WMS desenvolvida pela IBM, pois o componente OA não precisa estender nenhuma classe do sistema para alterar o seu comportamento; e Considerando o contexto de todas as alterações realizadas pela IBM para a BP, se o Prometheus fosse utilizado para customizar o sistema IBM MAXIMO, poderiam ter sido evitadas alterações no banco de dados para customizar 367 classes relacionadas com o comportamento de objetos e atributos; também poderiam ter sido evitadas alterações em cinco arquivos xml. 43 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Considerações Finais Esse estudo de caso mostrou a viabilidade da utilização do Prometheus para customizar sistemas de software comerciais utilizando componentes OA; e O Prometheus poderia ser aplicado em outros sistemas e domínios com o objetivo de avaliar sua validade. 44 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Sumário 1 Introdução 2 O Processo Prometheus 3 Estudo de Caso: Aplicação do Prometheus 4 Conclusão 45 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Contribuições Principal contribuição é o estabelecimento de uma abordagem sistematizada para a customização de sistemas de software utilizando componentes OA; Este trabalho também contribui para a área de Manutenção de Software, pois o processo possui um conjunto de atividades, artefatos e papéis que diminuem a degradação do sistemas pelas atividades de customização; e Finalmente, este trabalho também contribui para aproximar a Universidade e a Indústria de Software. 46 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Dificuldades e Limitações Falta de padronização das ferramentas de modelagem para representação de elementos da POA; Trabalhar com sistemas de grande porte demanda muito esforço computacional para atividades habituais tais como compilação, empacotamento e implantação; O Prometheus foi avaliado apenas no sistema IBM Maximo; e Ferramentas para automatização da aplicação do Prometheus poderiam ter sido desenvolvidas. 47 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Trabalhos Futuros Incentivar o desenvolvimento de ferramentas de modelagem UML para representação dos elementos da POA; Melhorar a performance das IDE’s para dar suporte ao desenvolvimento de grandes sistemas; Realizar uma análise quantitativa do Prometheus; Utilizar o Prometheus para customização de sistemas desenvolvidos pela IBM; e Desenvolver ferramentas que automatizem a utilização do Prometheus 48 / 49 Introdução O Processo Prometheus Estudo de Caso: Aplicação do Prometheus Conclusão Customização de Software como um Meio para o Desenvolvimento de Sistemas de Software Thiago Bianchi1 Elisa Yumi Nakagawa2 1 IBM - International Business Machines 04753-080, São Paulo, SP, Brazil [email protected] 2 Universidade de São Paulo - USP Caixa Postal 668, 13560-970, São Carlos, SP, Brazil [email protected] 01 de Outubro de 2013 49 / 49