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
Download

Customização de Software como um Meio para o