1
Desenvolvimento de Sistemas de Informação com Objetos de Negócio:
Proposta de um Guia para Análise da Reutilização de Software
Autores: Décio Bittencourt Dolci e João Luiz Becker
Resumo:
A aceitação do Paradigma do Objeto como referência para o desenvolvimento de sistemas de
informação torna-se cada vez mais efetiva. A visão da obtenção de sistemas a partir da
composição de objetos de negócios é aclamada com muitas promessas. Provavelmente, a que
desperta maior atenção é a do incremento da reutilização de software. Este artigo apresenta
um guia para análise do processo de reutilização de software específico para o contexto
orientado a objetos de negócios. O guia compõe-se de um modelo analítico e de grades de
análise, que objetivam classificar e tabular dados obtidos empiricamente. Espera-se que o
instrumental proposto seja útil tanto para o meio acadêmico como para as organizações. Na
academia, pode auxiliar em pesquisas com hipóteses relacionadas ao tema. Nas organizações
que desenvolvem sistemas de informação com a Tecnologia do Objeto, pode facilitar a análise
do processo de reutilização de software realizado pela organização. Para ilustrar o guia, há
um exemplo de uso, em que se demonstram formas de avaliar a reutilização, destacando-se a
questão econômica, pois uma das mudanças prometidas é que, além da liberdade para
comprar e montar a solução, novas escalas de vendas serão atingidas, resultando redução nos
custos dos sistemas.
1. Introdução
A expressão “Crise do Software” tem sido usada para expressar a insatisfação
generalizada com a incapacidade de atendimento à demanda por software e a erros
apresentados pelos softwares após liberados para os clientes (Sohn e Dejnaronk, 1998).
Segundo alguns autores (Martin e Odell, 1992; Tapscott, 1995), a base dos problemas está no
fato de a maioria dos sistemas de informação ainda serem construídos de forma artesanal,
quase sempre inviabilizando o aproveitamento de trabalhos previamente desenvolvidos. Essa
forma não produtiva, além de desperdiçar recursos, ainda propicia pouca confiabilidade aos
softwares.
A saída para tal situação está em desenvolver técnicas semelhantes às utilizadas nas
demais engenharias, em que é construído o todo, extremamente complexo, a partir de
componentes (Tapscott, 1995). Vários autores propoem a adoção de tecnologias, métodos e
metodologias baseados no Paradigma do Objeto (Coad e Yordon, 1991; Jacobson et al., 1992;
Martin e Odell, 1992; Booch, 1994; Rumbauch et al., 1994) como solução para os problemas
citados anteriormente. 1
Embora haja aceitação crescente do Paradigma do Objeto como referência para o desenvolvimento de sistemas de informação, ainda são poucos os casos envolvendo objetos e
componentes de negócio e, mais raros ainda, aqueles em que montadores criam seus
aplicativos a partir de objetos fornecidos por terceiros. De fato, ainda que o boletim do
International Data Corporation (IDC) apresente as estratégias e características de três projetos
1 Embora na literatura recente o termo “Paradigma do Objeto” seja encontrado com freqüência, a expressão Orientado a Objeto (OO) é a mais utilizada, principalmente por
seus precursores. Como uma nova área do conhecimento da Tecnologia da Informação (TI) é denominada Tecnologia do Objeto (TO), abrangendo todo o conhecimento com
princípios científicos, relacionado à Orientação a Objeto (Johnson e Hardgrave, 1998).
2
baseados na arquitetura de componentes - IBM San Francisco, SAP R/3 Component
Architectures e Baan - até a data de sua publicação (março de 1998), apenas os primeiros
aplicativos a partir do IBM San Francisco estavam disponíveis no mercado (Byron, 1998).
Apesar da pouca ocorrência na prática, trabalhos fundamentais na organização da
Tecnologia do Objeto têm sido realizados, especialmente de padronização. Dentre várias
iniciativas, merecem destaque os trabalhos realizados pelo Object Management Group
(OMG) 2, consórcio internacional, com mais de 700 associados. Entre os primeiros segmentos
de negócios a serem organizados estão saúde, finanças, telecomunicações, manufatura,
transporte e comércio eletrônico. No Brasil, o Consórcio de Componentes de Software para
Sistemas de Informação em Saúde (CCS⋅SIS) 3 é o grupo mais consolidado. A definição de
padrões obtidos por consenso em consórcios de entidades provavelmente será seguido em
outras áreas.
O contexto apresentado sinaliza a proximidade da “Revolução Industrial em Software”
referida em Tapscott (1995). Perceber de forma clara e objetiva os avanços que vêm sendo
obtidos em relação à reutilização de software nesse novo processo de desenvolvimento é de
suma importância para a tomada de decisão daqueles que determinam a forma de desenvolver
sistemas, buscam novos espaços na cadeia produtiva ou contratam sistemas de informação.
Com base nesta necessidade, este artigo apresenta um guia para análise da reutilização
de software contextualizado no desenvolvimento de sistemas de informação a partir de
objetos de negócios. O guia compõe-se de um modelo analítico e de grades de análise, que
objetivam classificar e tabular dados obtidos empiricamente. Espera-se que o instrumental
proposto seja útil tanto para o meio acadêmico como para as organizações. Na academia,
pode auxiliar em pesquisas com hipóteses relacionadas ao tema, tornando possível a obtenção
de evidências, com rigor científico e de forma abrangente, que as corroborem ou não. Nas
organizações que desenvolvem sistemas de informação com a Tecnologia do Objeto, pode
facilitar a análise do processo de reutilização de software realizado pela organização.
A idealização do instrumento está baseada na experiência em Tecnologia da Informação
dos autores; em extensa revisão bibliográfica sobre os temas Desenvolvimento de Sistemas,
Tecnologia do Objeto e Reutilização de Software; e do estágio tecnológico atual disponível
no mercado, percebido através da avaliação do projeto IBM San Francisco (IBM, 1998) e do
software Business Object Facility Lite da SSA Inc. (Eeeles e Sims, 1998).
Ao pesquisar tecnologias que prometem incremento na reutilização de software, esperase contribuir de duas maneiras: primeiro, com as organizações usuárias, que necessitam de
sistemas de informação que interajam e se adaptem rapidamente às mudanças do ambiente, para
cumprirem seus objetivos (Freitas et al.,1997); segundo, para o desempenho das empresas de
desenvolvimento de software (Nidumolu e Knotts, 1998).
O trabalho está organizado como segue: na seção 2 do texto subseqüente, expõe-se
resumidamente o referencial conceitual pertinente ao guia. Sua apresentação está na seção 3,
enquanto na seção 4, por meio de exemplificação, faz-se um exercício, demonstrando sua
aplicabilidade. Finalmente, a seção 5 contém as considerações finais, prospectando-se futuras
pesquisas e instrumentos a partir do guia.
2. Referencial Conceitual
Nesta seção apresentam-se os principais conceitos envolvidos com a construção do
guia de análise. São abordados aspectos sobre o processo de reutilização de software, as
tecnologias disponíveis e seus principais benefícios, objetos, componentes e processos de
2 Maiores detalhes podem ser obtidos em WWW:http://www.omg.org
3 Maiores detalhes podem ser obtidos em WWW:http://www.datasus.gov.br/ccssis
3
negócio, além dos padrões, atualmente em fase de definição. Destaca-se, também, como se
estabelecem as relações entre a Tecnologia do Objeto e a Reutilização de Software.
2.1. Reutilização de Software
A reutilização de software apresenta-se como o principal fator crítico de sucesso da
produtividade e qualidade no desenvolvimento de software. Algumas definições em relação ao
tema são encontradas em Hooper e Chester (1991). É necessário distinguir o conceito de
reutilização do conceito conexo de reusabilidade. Em geral, reusabilidade diz respeito à
medida em que o software pode ser usado (com ou sem adaptações) na solução de múltiplos
problemas ou na solução de um problema diferente daquele para o qual ele foi originalmente
desenvolvido. Já reutilização diz respeito à ação de sintetizar a solução para um problema,
decompondo-o em subproblemas para os quais haja soluções pré-definidas. Implementa-se
novos softwares a partir de outros pré- existentes. Percebe-se que, enquanto o termo
reusabilidade está associado a resultados, reutilização está a processo.
Vários são os benefícios percebidos pela reutilização de software. Agresti e McGarry
(1990) salientam benefícios relacionados com o aumento de produtividade (ao usarem-se
componentes já existentes), aumento de confiabilidade (ao usarem-se componentes já
testados), aumento de consistência (ao usarem-se os mesmos componentes em vários lugares)
e maior facilidade de gerenciamento (ao usarem-se componentes já compreendidos pelo
desenvolvedores). Salientam ainda os benefícios obtidos pela padronização.
Ao longo dos anos, pode-se perceber alguns exemplos da prática de reutilização de
software. Alguns exemplos seminais relevantes são bibliotecas de sub-rotinas matemáticas,
funções do sistema operacional e linguagens de quarta geração. Hoje em dia, entretanto, para
contemplar o tamanho e a complexidade dos softwares exigidos, a questão precisa ser
expandida (Hooper e Chester, 1991). Kim e Stohr (1998) observam que as metodologias
tradicionais de desenvolvimento de software não são direcionadas, ao menos de forma
explícita, para aproveitarem fontes reutilizáveis. Os autores apresentam, na forma de
diagrama de fluxo de dados, um modelo para desenvolvimento de sistemas baseado no
processo de reutilização, salientando três tipos de atividades: de preparação para a utilização,
de utilização propriamente dita dos recursos reutilizáveis, e de integração entre recursos (já
existentes e novos) para o desenvolvimento do software.
As metodologias de
desenvolvimento tradicionais focam apenas as atividades de especificação, construção e
integração, não considerando atividades como classificação de fontes reutilizáveis,
recuperação, entendimento e alteração dessas fontes.
As tecnologias empregadas para obtenção da reutilização podem ser classificadas em
duas: tecnologias de geração e tecnologias de composição (Kim e Stohr, 1998). Enquanto a
primeira cria o software a partir de moldes pré definidos, modo utilizado em geradores de
aplicações, a tecnologia de composição utiliza algo previamente desenvolvido e
especialmente armazenado para ser reutilizado. Os recursos armazenados distinguem-se
quanto à visualização de seu conteúdo. Aqueles que têm seu conteúdo encapsulado,
disponibilizam apenas a sua interface, podendo sofrer algumas alterações via configuração.
Em contraste, existem recursos que permitem modificações diretamente em seus conteúdos.
O guia proposto neste artigo focaliza tecnologias de composição, interessando-se tanto
por recursos com conteúdo visível e alterável, como por recursos em que o acesso é feito
apenas pela interface.
Segundo Agresti e McGarry (1990) a reutilização pode ser classificada por produto e
por processo. Enquanto a classificação por produto identifica o que é reutilizado, a
classificação por processo define de que modo o recurso é reutilizado. Tal orientação está
4
apresentada na tabela 1. Seus parâmetros são parcialmente utilizados no guia proposto,
ajustando-se as alternativas ao contexto da tecnologia do presente estudo.
PROCESSO
PRODUTO
Tabela 1 - Classificação da reutilização
Tipo
(Que tipo de recursos são
reutilizados?)
Modo
(Quão formais são os recursos
reutilizados?)
Estágio
(Qual é a abrangência da
reutilização?)
Atividade
(Em que fase ocorre a
reutilização?)
Mecanismo
(Como é efetuada a
reutilização?)
Extensão da mudança
(Quanta mudança é necessária?) Granularidade
(Quanto do produto é
necessário?)
-
Conhecimento (aplicações, etc.)
Documentação (requisitos, código, plano de teste, etc.)
Programas executáveis (ferramentas, bibliotecas, etc. )
Formal (sintaxe e semântica, somente sintaxe, etc.)
Conhecimento institucional (manuais, etc.)
Conhecimento pessoal (favor de um amigo, experiência, etc.)
Em todo o segmento
Em toda a empresa
Em todo o departamento
Em um projeto
No planejamento (previsão de custos, análise de riscos, etc. )
No desenvolvimento (requisitos, especificações, etc. )
Na manutenção (alteração nas funções, correção de erros, etc.)
Literalmente
Parametrizadamente
Com moldes
Sem regras
Nenhuma
Trivial (menos que 5%)
Média (entre 5 e 25%)
Grande(mais que 25%)
Sistema inteiro
Segmento
Pequena parcela
Fonte: Adaptado de Agresti e McGarry (1990, p. 35)
2.2. Sistemas de Informação com Objetos de Negócio
Diversos autores (Coad e Yordon, 1990; Martin e Odell, 1992; Jacobson et al., 1992;
Booch, 1994; Rumbaugh et al., 1994) dedicaram-se a definir e a explicar como pensar e
trabalhar com as tecnologias e metodologias Orientadas a Objeto. O paradigma do Objeto é o
resultado da evolução na forma como os problemas são decompostos. Neste paradigma
focalizam-se os objetos usados para modelar as entidades (aquilo que constitui a essência de
algo). Contrariamente, em outros paradigmas, o foco está nas funções necessárias e
desempenhadas pelo sistema (McGregor e Sykes, 1992). Na medida dos objetivos deste
artigo, salientam-se a seguir os conceitos diretamente relacionados ao contexto de objetos
orientados a negócios. O leitor interessado nos fundamentos e conceitos básicos da
orientação a objeto são referenciados aos autores acima citados ou a Snyder (1993), que
resume os principais termos e conceitos.
O OMG define objeto de negócio como a representação de algo operante no domínio
dos negócios em geral. O objeto de negócio pode representar pessoas, lugares, eventos,
processos de negócio ou conceitos. Exemplos típicos são: um empregado, um produto, uma
fatura, um pagamento, etc. A evolução da modelagem, desde o levantamento dos requisitos
até o objeto em tempo de execução, pode ser vista na figura 1. Inicialmente, um conceito de
negócio é identificado como um objeto de negócio; durante o projeto ele é representado por
uma classe, geralmente na forma de diagrama; e a implementação dá-se através de uma classe
escrita em linguagem de programação.
5
Figura 1 – Evolução da representação do Objeto de Negócio
Fonte: Eeles e Sims (1998, p.6)
Eeles e Sims (1998) citam a necessidade de algo que supere o nível teórico. Sugerem
pensar no objeto de negócio como um componente de software, viabilizando coisas “plugged
and played”. Para os autores, um componente de software é um conjunto especial de código
que, principalmente, tem um “plug” bem definido, podendo ser conectado num soquete
específico, que pode ser usado para conectar diferentes componentes (tantos quantos tiverem
o mesmo “plug”). Quando tais componentes são orientados a negócios, são chamados
componentes de negócio.
Denominam-se componentes de processo de negócio os componentes que têm
características centradas no processo de negócio. Um processo de negócio é formado por um
conjunto de atividades relacionadas. Um exemplo trivial seria o processo realizar venda,
composto pelas atividades receber pedido, checar crédito, verificar estoque, providenciar
embarque, emitir nota fiscal, etc. Pode haver uma seqüência pré-determinada entre as
atividades, sendo possível esta depender de uma decisão associada a alguma condição lógica.
Os objetos de negócio são classificados pelo nível de especialização do objeto, do
mais geral (componentes comuns a vários negócios) ao mais específico (componentes de
processos de negócios para uma determinada aplicação). A figura 2 compara a classificação
utilizada pelo projeto IBM São Francisco e a proposta por Eeles e Sims (1998), oferecendo
alguns exemplos concretos.
Classificação IBM SF
Classificação Eeles e Sims
Applications
Efetua reserva
Aluga moto
Process Business Components
Core Business Processes
produto
cliente
pedido
Entitity Business Components
Common Business Objects
calendário
país moeda
Utility Business Components
Services and Frameworks
Business Object Facility
Foundation and Utilities
Figura 2 – Classificação dos componentes de negócios
2.3. Reutilização de software com a Tecnologia do Objeto em Negócios
Antes de apresentar possíveis casos de reutilização de objetos e processos, dá-se
destaque à padronização, fator determinante para a comunicação entre pesquisadores e
desenvolvedores de sistemas de informação, facilitando a reutilização dos softwares. Visando
à padronização, o OMG coordena um trabalho de especificação bastante amplo. A figura 3
apresenta as especificações desenvolvidas pelo OMG relativas à linguagem de modelagem
Linguagem de
Modelagem
Unificada
FINANÇAS
Outros Domínios
Verticais
Objetos de Negócios Comuns
(BOF) Facilidades p/ operar Objetos de negócio
CORBA Facilidades comuns
CORBA Serviços comuns
Interoperabilidade
opções de empacotamento
Componentes
Intermediário,ling. para a interface
Segurança
UML
Definições Fundamentais
SAÚDE
6
unificada (do inglês “Unified Modeling Language” - UML). As três últimas camadas dizem
respeito aos objetos de negócio. Na última camada situam-se as definições relativas aos
segmentos de negócios, ou domínios verticais, como denominados pelo OMG.
Figura 3 – Especificações da OMG
Fonte: adaptado de Siegel (1998)
Nas grades do anexo 1 a UML 4 assume papel extremamente relevante, pois grande
parte do que é questionado em termos de instrumentos para a reutilização nas fases de análise
e projeto está baseado no que a UML dispõe. Julga-se desnecessário acrescentar outros
métodos, dada a tendência de uso da UML para modelar sistemas (Hardgrave e Douglas,
1998). Os principais usos da UML são: mostrar as fronteiras e principais funções do sistema;
ilustrar as possíveis interações entre seus objetos; representar a estrutura estática do sistema;
modelar o comportamento dos objetos e determinar a arquitetura de implementação física.
Também permite, através de estereótipos, certa expansão da própria linguagem. Pode-se, por
exemplo, criar estereótipos para identificar as classes como: de interface, de controle ou de
entidade. Os tipos de diagramas e indicações de uso são apresentados em Flower e Scott
(1997) e Furlan (1998).
Apresentam-se a seguir alguns cenários de reutilização. A figura 4, representando
parte das classes necessárias em um sistema para reserva de veículos numa locadora, ilustra a
reutilização de objetos relacionada a entidades (objetos de negócios), enquanto a figura 5,
representando o diagrama de atividades que modela o processo de reserva de carro numa
locadora, ilustra a reutilização relacionada a processos (objetos de processos de negócios).
Unid. da Federcão
Veículo
fabricante
dia
modelo
mês
num assentos
nome
ano
Município
de retirada
Carro
sigla
Data
num registro
de devolução
aniversário
Cliente
Reserva
cor
valor diária
nome
num de portas
obterImposto(End))
telefone
local emplacamento
nome
De retirada
Endereço
rua
número
bairro
cep
Figura 4 – Diagrama de Classe para Locação de carros
Fonte: Adaptado de Eeles e Sims (1998)
4
Informações sobre a UML e suas atualizações podem ser encontradas em http://www.rational.com/uml
7
(A)
Atividade
Reserva
de Carro
Formulário
Cliente
Atividade
Reserva
de Carro
(B)
Visualiza
Clientes
Existentes
Especifica
Datas
Visualiza
Carros
Existentes
Localiza
Carro
Cria
Cliente
Localiza
Cliente
Atividade
Reserva
de Carro
Formulário
Cliente
Atividade
Reserva
de Carro
(C)
Visualiza
Clientes
Existentes
Especifica
Datas
Visualiza
Carros
Existentes
Localiza
Carro
Cria
Cliente
Localiza
Cliente
Autoriza
Crédito
Formulário
Atividade
Cliente
Reserva de
Apartamento
Visualiza
Atividade
Clientes
Reserva de
Apartamento Existentes
Especifica
Datas
Visualiza
Hoteis e
Apartamentos
Localiza
Apartamento
Cria
Cliente
Localiza
Cliente
Autoriza
Crédito
Figura 5 – Reutilização visualizada com o Diagrama de Atividade
Fonte: Adaptado de Eeles e Sims (1998)
Com o mecanismo de herança é possível uma especialização, novas classes são
acrescidas ao projeto sem alterar a classe da qual derivam. No exemplo ilustrado na figura 4,
a subclasse carro deriva da superclasse veículo. Em outros projetos que utilizam a mesma
superclasse veículo, poder-se-ia definir outras classe derivadas, como moto ou caminhão. No
mecanismo de herança, qualquer alteração na superclasse (classe de generalização) implicará
na subclasse (classe de especialização). Com o mecanismo de agregação 5, usam-se classes
definidas anteriormente para compor outras de maior granularidade. No exemplo apresentado
na figura 4, as classes endereço e data (previamente definidas) agregam-se à definição, como
atributos, da classe cliente, assim como unidade da federação e município (previamente
definidas) compõem o endereço. Os exemplos apresentados salientam apenas parte dos
benefícios e propriedades dos mecanismos de herança e agregação. O leitor interessado pode
consultar Coad e Mayfield (1998).
Em projetos com componentes de negócio, a reutilização de um componente pode
ocorrer literalmente, sem nenhuma mudança. Exemplificando: componentes de negócio que
representam clientes podem ser utilizados em diversas aplicações. No exemplo apresentado,
o mesmo componente cliente utilizado no sistema de aluguel de carro, pode ser utilizado em
aluguéis de apartamento. Dependendo dos requisitos e forma de projeto e implementação, o
componente pode ser reutilizado mantendo inclusive a interface com o usuário.
Assim como objetos de negócio, objetos de processo de negócio também são passíveis
de reutilização. Por exemplo, partindo do diagrama de atividade que modela o processo de
reserva de carro (figura 5a), pode-se acrescentar a atividade de autorização de crédito (figura
5b) ao processo. De outra parte, dada a semelhança entre os processos reserva de carro e
reserva de apartamento, este pode ser obtido (figura 5c) a partir daquele (localiza apartamento
substituindo localiza carro).
Um último conceito importante a destacar é o de independência do ambiente
operacional em que os objetos serão processados. Para facilitar o processamento em
múltiplos ambientes, Ambler (1998) sugere que o projeto seja organizado em camadas de
classes, possibilitando a substituição em casos de troca de ambiente. As camadas classificamse em: de interface com usuário, de negócio, de persistência e de sistema. As camadas de
persistência e de sistema, por serem estabelecidas para atender características de cunho
técnico, são mais estáveis e com maior propensão de serem encontradas prontas.
5 Nesse estudo não são relevantes distinções entre agregação e composição
8
3. Proposição do Guia
O guia proposto compõe-se de um modelo analítico e de grades de análise, que
objetivam classificar e tabular dados obtidos empiricamente. A estrutura para análise tem sua
origem no relacionamento entre duas dimensões: as etapas do desenvolvimento de sistemas e
as atividades do processo de reutilização. Na primeira dimensão, consideram-se as etapas
normalmente apresentadas nas metodologias de desenvolvimento de sistemas: análise e
projeto 6, e implementação 7. Na outra observam-se as atividades necessárias para atingir a
reutilização de forma sistêmica, a saber: preparação para o consumo, consumo e liberação de
novas fontes reutilizáveis. Tal relacionamento é demonstrado na figura 6, que ilustra os
grupos resultantes. Nesta seção colocam-se as questões relevantes de cada grupo. No Anexo
encontra-se um conjunto de grades que sugere possíveis formas de tabulação dos dados
observáveis, facilitando a análise.
Atividades do Processo de Reutilização de
Software
Análise e
Projeto
Grupo
A
Utilização
Grupo
B
Liberação
Grupo
C
Classificações no
Contexto Objetos
Implementação
Etapas do Desenvolvimento
De Sistemas
Preparação
de Negócio
Grupo
D
Grupo
E
Grupo
F
Figura 6: Grupos de Análise do Guia
Antes de apresentar o guia, destaca-se que a fase de preparação para a reutilização está
adequada à forma como estão acontecendo os primeiros projetos a partir de objetos de
negócios. Normalmente, são fomentados por organizações que possuem um conjunto inicial
de fontes de software reutilizáveis, os quais são transferidos a empresas de software ou
equipes de desenvolvedores, aos quais cabe construir o sistema de acordo com os requisitos
de seus clientes.
GRUPO A: RECEBENDO FONTES DE SOFTWARE REUTILIZÁVEIS RELATIVAS À ANÁLISE E PROJETO
Os indicadores desse grupo têm por objetivo levantar: os tipos de recursos reutilizáveis
liberados para o desenvolvedor, o modo como são transferidos e a facilidade de acesso a esses
recursos. Os possíveis recursos variam desde aqueles que disponibilizam o suficiente para a
incursão do desenvolvedor em um novo segmento, até os que fornecem detalhes da
implantação do sistema, em que os elementos, tanto de software como de hardware, são
modelados. Tomando-se por base os diagramas apresentados na UML obtêm-se as
possibilidades apresentadas na grade 1. Além do vocabulário, que permite a aproximação a
um determinado domínio, os diagramas possibilitam diferentes níveis de aprofundamento no
problema.
6 estão incluídas na fase de análise e projeto as atividades inerentes ao levantamento de necessidades.
7 a fase de implementação estende-se até a liberação de objetos testados.
9
Embora os instrumentos possam ser percebidos na primeira grade, os meios para
ocorrer a transferência, tais como manuais, treinamento, suporte, site, são apresentados na
grade 11. Também nesse grupo estão as investigações quanto aos métodos de classificação e
pesquisa para facilitar o acesso aos recursos reutilizáveis necessários, conforme pode ser visto
na grade 9.
GRUPO B : CONSUMINDO FONTES DE SOFTWARE REUTILIZÁVEIS RELATIVAS À ANÁLISE E PROJETO
A avaliação nesse grupo ocorre principalmente quanto ao mecanismo (literalmente,
acrescentando, substituindo) e à extensão da mudança. Esta avaliação pode ser realizada para
os diferentes diagramas utilizados no projeto do sistema. Os relacionamentos entre os
mecanismos e as funções dos diagramas apresentados na UML podem ser observados na
grade 2. Seu preenchimento permite obter a participação proporcional entre criação e
reutilização.
GRUPO C: LIBERANDO NOVAS FONTES REUTILIZÁVEIS RELATIVAS À ANÁLISE E PROJETO
Neste grupo são observados os resultados gerados internamente, tanto no que se refere
a objetos de negócio, como em processos de negócio. O parâmetro a ser observado é a
amplitude do que está sendo produzido, conforme sugere a grade 3. Tratando-se de
orientação a negócio, espera-se uma especialização dirigida a projetos e se estendendo, no
máximo, a um domínio vertical. A produção de recursos para diversos domínios verticais é
sinal de um estágio ainda embrionário, ou seja, de preparação para a reutilização. Ainda neste
grupo questionam-se o que internamente é disponibilizado para futura reutilização e a
facilidade para classificá-los (grades 10 e 11).
GRUPO D: RECEBENDO FONTES DE SOFTWARE REUTILIZÁVEIS RELATIVAS À IMPLEMENTAÇÃO
As questões nesse grupo dizem respeito, primeiramente, se o que está sendo recebido é
de forma aberta ou fechada e se a granularidade atinge apenas objetos de negócio ou estendese também a processos. Tal tabulação é demonstrada na grade 4. Assim como no grupo A,
aqui também são questionados os meios e facilidades oferecidas para a transferência (grades 9
e 11).
GRUPO E: CONSUMINDO FONTES DE SOFTWARE REUTILIZÁVEIS RELATIVAS À IMPLEMENTAÇÃO
Neste ponto, a análise prevê detectar quais os mecanismos empregados (literalmente,
através de agregação/composição ou através de herança) são mais freqüentes. Ao mesmo
tempo, há preocupação em perceber a granularidade (objetos de negócio ou comuns).
Embora semelhantes, as análises podem ser feitas separando objetos de negócio das de
processos de negócio, conforme mostram as grades 5 e 6.
O resultado da análise para objetos de negócio é o somatório das análises para cada
objeto, podendo este ser formado a partir de outros. Percebe-se a necessidade de um processo
recursivo para a contagem. Para a análise, opcionalmente, o resultado pode ser apresentado
totalizando objetos de negócio direta e indiretamente usados no sistema. Por exemplo, num
sistema de vendas em que é necessário de forma direta o objeto cliente, o qual foi derivado do
objeto empresa, é necessário fazer a análise de mecanismos utilizados nesse último.
No levantamento da obtenção de objetos de processo de negócio também existe a
contagem de forma recursiva, porém objetos de negócios que compõem a solução não são
analisados, somente o são processos com granularidade menor. Por exemplo, ao ser analisado
10
o processo de venda, que pode ser composto dos objetos de processos de negócios cria pedido
(cliente + vendedor + produtos solicitados), cria nota fiscal e imprime nota fiscal, e dos
objetos de negócios pedido, cliente, vendedor, produto e nota fiscal, dispensa-se a avaliação
dos objetos de negócio, visto que já foram avaliados anteriormente; porém, é necessário que
seja feita a análise para todos os processos a partir dos quais o processo principal foi
desenvolvido. Nesse grupo também é observado o fluxo de controle das atividades.
GRUPO F: LIBERANDO NOVAS FONTES DE SOFTWARE REUTILIZÁVEIS RELATIVAS À IMPLEMENTAÇÃO
Inicialmente, o objetivo é perceber a amplitude do que está sendo liberado, assim
como as limitações desses recursos diante de outros fatores, como ambientes operacionais.
Neste último parâmetro, tem-se uma ordem desejada de ajuste, quando não se consegue
aproveitar o objeto literalmente, sendo a melhor alternativa a configuração.
A seguir é apresentado um quadro sinótico das classificações julgadas mais relevantes.
Tabela 2: Quadro Sinótico
Atividades do Processo de Reutilização de Software
Etapas do Desenvolvimento de Sistemas
PR EPA RA Ç ÃO
A
N
Á
L
I
S
E
P
R
O
J
E
T
O
I
M
P
L
E
M
E
N
T
A
Ç
Ã
O
UT I L I ZA ÇÃ O
L IB ER AÇ ÃO
Grupo A
Grupo B
Grupo C
» Quanto ao tipo de conteúdo
recebido: vocabulário, diagramas.
» Quanto ao meio: treinamentos em negócio e meta-modelos, manuais, outras formas de
suporte.
» Quanto à extensão da pesquisa: conteúdo, especificação, palavra-chave.
» Quanto à recuperação: manual, atomatizada.
» Quanto ao mecanismo de
reutilização: reutilizado literalmente, montado a partir de
outros recursos existentes,
derivado a partir de outro
existente.
» Quanto à extensão da
mudança, quando exigida:
trivial, média, grande.
» Quanto à amplitude do
domínio do software liberado: para projetos de diversos
domínios verticais, para projetos de um determinado domínio vertical, neste projeto.
» Quanto à forma de disponibilizar: conteúdo, especificação, palavra-chave.
» Quanto ao meio de divulgar: manuais, treinamento,
outras forma de divulgação.
(Grades 1, 9 e 11)
Grupo D
(Grade 2)
Grupo E
(Grades 3, 10 e 11)
Grupo F
» Quanto ao tipo de conteúdo
da biblioteca recebida: classes
(código fonte), componentes
de negócio, processos de objeto de negócio.
» Quanto à formalidade: sintaxe e semântica, somente sintaxe.
» Quanto ao meio, extensão
da pesquisa e facilidade de
recuperação (idem a grade A).
» Quanto ao mecanismo de
reutilização dos objetos e processos de negócio: literalmente, exige configuração,
deriva de outro objeto, compondo outros objetos de negócio existentes.
» Quanto à amplitude do
domínio do software liberado: domínio horizontal, vertical, apenas no projeto.
» Quanto à amplitude do ambiente: limitada por sistemas
operacionais, BD.
» Quanto à forma de disponibilizar e divulgar (idem
grade C).
(Grades 4, 9 e 11)
(Grades 5 e 6)
(Grades 7,8,10 e 11)
⇒ Principais atividades:
Recebe recursos reutilizáveis
e suporte para uso destes.
⇒ Principais atividades:
recupera, modifica e cria
novos softwares.
⇒ Principais atividades:
classifica e disponibiliza os
novos recursos.
11
4. Exemplo de Uso do Guia
Espera-se que o instrumental proposto seja útil tanto para o meio acadêmico como
para as organizações. Na academia, por ser um tema contemporâneo, pode auxiliar tanto
pesquisas exploratórias com objetivos de identificar comportamentos e quantificar resultados,
como também em pesquisas com hipóteses relacionadas ao tema, tornando possível a
obtenção de evidências, com rigor científico e de forma abrangente, que as corroborem ou
não. Nas organizações que desenvolvem sistemas de informação com a Tecnologia do
Objeto, pode facilitar a análise do processo de reutilização de software realizado pela
organização.
Nesta seção apresenta-se um exemplo sobre a maneira de medir a reutilização e seus
resultados econômicos, no que tange à redução de custos. Com a chegada ao mercado de
novos fornecedores de componentes de negócio (SAP R3, Baan), efetivando-se a nova
indústria de software, caracterizada por fabricantes de componentes e montadores, mais
freqüentes serão as declarações sobre resultados de reutilização, como “...40% do trabalho
desenvolvido numa aplicação típica é aproveitado e 60% desenvolvido...”, conforme citado
por Arnold et. al. (1997, p.438) em relação aos trabalhos desenvolvidos por parceiros do IBM
San Francisco ou outras relativas à redução de custos, como “...80% dos custos de
desenvolvimento de um parceiro seria consumido programando e mantendo o básico, objetos
relacionados a facilidades comuns e a funções centrais que são os mesmos para qualquer
aplicativo...” conforme cita a IBM em relação ao IBM San Francisco, em Byron (1998, p.5).
Embora a primeira declaração enfatize a redução no esforço de desenvolvimento, e a segunda
saliente a redução de custos, nenhuma das duas possibilita visualizar, de fato, a real economia.
Tal economia somente é possível de ser medida se o custo de desenvolver for confrontado
com o custo de comprar pronto (make or buy).
O exemplo a seguir é construído a partir da seguinte situação: suponha a existência de
um sistema conforme figura 7 (diagrama A), para locação de automóveis sem autorização de
crédito, como um componente de processo de negócio. Há necessidade de trocar para locação
de apartamentos e acrescentar autorização de crédito. Para facilitar a exemplificação, não se
consideram métricas para reutilização do fluxo. O diagrama B é resultado de três atividades
reutilizadas literalmente (especifica datas, cria cliente, localiza cliente), uma substituição
(localiza carro por localiza apartamento), e um acréscimo (autoriza crédito). À primeira vista,
a reutilização de forma literal representa 60%, alteração 20% e acréscimo também 20%.
Aprofundando-se o problema, no caso em que autoriza crédito seja composto por outras três
atividades (diagrama C), verifica forma de pagamento, consulta SPC (Serviço de Proteção ao
Crédito), ativada apenas quando a forma de pagamento for em cheque ou crediário, e valida
cartão, quando o pagamento utilizar cartão de crédito. Caso apenas uma das três atividades
não esteja equacionada, resulta em 66,67% de reutilização literal e 33,33% de acréscimo.
Atividade
Reserva
de Carro
Formulário
Cliente
Atividade
Reserva
de Carro
Visualiza
Clientes
Existentes
Visualiza
Carros
Existentes
Atividade
Formulário
Reserva de Cliente
Apartamento
Atividade
Visualiza
Visualiza
Reserva de Clientes
Hoteise
Apartamento Existentes Apartamentos
LF2
LF1
LF3
Especifica
Datas
Localiza
Apartamento
Localiza
Cliente
Cria
Cliente
Especifica
Datas
Localiza
Carro
Cria
Cliente
Localiza
Cliente
Especifica
Datas
Localiza
Apartamento
Cria
Cliente
Localiza
Cliente
LF4
Lê Forma de
Pagamento
LF5
Autoriza
Crédito
Consulta
SPC
(A)
(B)
(C)
Figura 7: Diagramas de Atividade para sistema de locação
LF6
Verifica
Cartão
12
Repare o leitor no problema desta análise. Implicitamente, todos os componentes
foram considerados como se tivessem o mesmo grau de dificuldade, desprezando as
diferenças de granularidade e complexidade existentes entre eles. A conseqüência é a
possível geração de mais de um resultado, dependendo da abordagem e seqüência dada à
análise. Caso se divida o problema observando o nível hierárquico, conforme apresentado na
figura 8b, tem-se um índice de reutilização igual a 0,734 (0,6+0,67×0,2=0,734). No entanto,
observando o resultado do último nível, na mesma figura, chega-se a um índice de reutilização
igual a 5/7, ou seja, 0,714. Qual dos índices é o mais apropriado?
As análises a seguir são feitas com base na avaliação sugerida para o grupo E, mais
especificamente grade 6, aplicando um método recursivo até chegar nos componentes de
negócio de menor granularidade. Procurar-se-á demonstrar que o guia proposto proporciona
uma avaliação de melhor qualidade do que a realizada anteriormente.
Seqüência
Lógica
Aluga
Apartamento
Reutiliza LF1, LF2, LF3 Altera LF4
Componentes
de Processo
Especifica
Datas
Aluga
Apartamento
Especifica
Datas
Literalmente (.6)
Cria
Cliente
Cria
Cliente
Localiza
Cliente
Localiza
Cliente
Substitui (.2)
Localiza
Apartamento
Seqüência
Lógica
Verifica
Crédito
Componentes
de Processo
Literalmente (.67)
Lê Forma de
Pagamento
Acrescenta (.2)
Consulta
SPC
Legenda:
Componente de
processo Reutilizado
Localiza
Apartamento
Cria LF5, LF6
Lê Forma de
Pagamento
Consulta
SPC
Acrescenta (.33)
Verifica
Cartão
Componente de
processo construído
Verifica
Cartão
(A) Reutilização
(B) % com base na hierarquia
Figura 8: Visão geral da reutilização do exemplo
Ciente de que os componentes têm nível de complexidade diferentes, o critério de
comparação mais usual utiliza alguma medida de esforço, normalmente Homem-Hora (HH) de
desenvolvimento. A seguir, na tabela 3, apresenta-se um exemplo quantificando-se os componentes
em HH do último nível.
Tabela 3: Análise por esforço ( tomando como base HH de programação):
Custo
Custo
HH
Medida
Medida
Componentes de
Aquisição
implementação Reutilização implementação
Reutilização:
$
Processo
$
$
interna
HH
R
Especifica Datas
Cria Cliente
Localiza Cliente
Localiza Apart.
Verifica Forma de Pag.
Consulta SPC
Valida Cartão
reutiliza
reutiliza
reutiliza
novo
reutiliza
reutiliza
novo
Totais
3
2
2
1
2
3
300
313
C
3
2
2
1
2
3
12
300
301
R
30
20
20
10
20
30
3000
3130
20
5
10
10
1
1
3000
3047
C
20
5
10
10
1
1
37
3000
3010
Esta segunda análise, quantificando o esforço em HH, mostra que a reutilização seria
de 12/313, ou seja, apenas 3,83%, enquanto 96,17% permanecem sendo criados. Isto se dá
devido ao fato de o desenvolvimento do processo valida cartão ser muito oneroso. Embora
contribua para a tomada de decisão, esta forma de avaliação é válida apenas para o caso de
13
reutilização interna. Neste caso a mão-de-obra correspondente aos processos reutilizados
estaria liberada para atuação em outros projetos.
Na medida em que existe oportunidade de obterem-se tais fontes de software
externamente, a única unidade de medida que pode ser aplicada tanto interna como
externamente, é a valorização econômica do componente, não sendo mais suficiente
trabalhar-se com a unidade HH. Para exemplificar esta forma de perceber o problema,
considerando possibilidades de aquisição de fornecedores externos, um novo estudo é
acrescido na tabela 8, em que se determina a base para a quantificação da implementação em
custo de aquisição ($). Convencionou-se o valor da unidade HH em $10 e para os
componentes em que não há oferta externa (já prontos), manteve-se o mesmo valor interno de
implementação.
Nessa terceira forma de análise, a reutilização representa 37/3047, ou seja, 1,21% do
custo total efetivo do projeto. No entanto, a métrica mais expressiva nesse caso é a da
economia viabilizada pelo processo de reutilização. Nesse exemplo, caso todos os
componentes fossem construídos, resultaria um custo de $3.130, o que equivale a uma
economia de $83 ($3.130 - $3.047). Percentualmente haveria uma redução de custo de
83/3130, ou seja, 2,72%, atribuível ao processo de reutilização.
5. Considerações Finais
Espera-se que tanto pesquisadores como profissionais relacionados à área de sistemas
de informação interessados nesse novo contexto de produção de software, possam encontrar
no guia uma referência para acompanhar suas investigações.
Dada a emergência do tema, muitas questões serão levantadas, havendo necessidade
de desenvolvimento de instrumentos para respondê-las adequadamente. Particularmente, de
imediato, percebe-se a necessidade de dois desdobramentos. Devido à recursividade e
extensão exigidas em alguns grupos de avaliação, é necessária (e viável) a existência de um
software para desempenhar tal tarefa. Este deverá contemplar alguns mecanismos que
favoreçam uma distribuição por autoria, de forma a facilitar o cálculo de royalties de forma
proporcional ao uso dos componentes no projeto.
Bibliografia
AGRESTI, William, McGARRY, Frank. The Minnowbrook On Software Reuse: A Summary Report. In:
TRACZ, Will. Software Reuse - Emerging Technology. Los Alamitos, CA: IEEE Computer Society
Press, 1990. p.33-40.
AMBLER, Scott W. Análise e Projeto Orientados a Objeto, volume II: seu guia para desenvolver sistemas
robustos com tecnologia de objetos. Rio de Janeiro: Infobook, 1998.
ARNOLD, D. et al. IBM Business Frameworks: San Francisco project technical overview. IBM System Journal,
v.36, n.3, p.437-445, 1997.
BOOCH, Grady. Object-Oriented Analysis and Design with Applications. Redwood City, California,USA: The
Benjamin/Cummings Company, Inc., 1994.
BOHRER, K.A. Architecture of the San Francisco frameworks. IBM System Journal, v.37, n.2, p.156-180,
1998.
BYRON, Dennis. Vertical Industry Applications. International Data Corporation. (IDC), v.1, IDC #15907, p.115, mar. 1998.
COAD, Peter; MAYFIELD, Mark. Projeto de Sistemas em Java. São Paulo: Makron Books, 1998.
__________, YORDON, E. Object-oriented Analysis. Englewood Cliffs, NJ: Prentice Hall, 1990.
EELES, Peter; SIMS Oliver. Building Business Objects. USA: John Wiley & Sons, Inc., 1998.
FREITAS, Henrique et al. Informação e Decisão: Sistemas de Apoio e seu Impacto. Porto Alegre: Ortiz, 1997.
FURLAN, José Davi. Modelagem de Objetos através da UML. São Paulo: Makron Books, 1998.
HARDGRAVE, Bill C.; DOUGLAS, David E. Trends in Information System Curricula: Object-Oriented
Topics. Americas Conference on Information Systems. In: Proceedings... Maryland, 1998, p.683-685.
14
HOOPER, James; CHESTER, Rowena. Software Reuse: Guidelines and Methods. New York: Plenum
Press, 1991.
IBM. San Francisco Evaluation Kit (V1R2): Geting Started. Rochester, Minnesota: IBM Corp., 1998.
JACOBSON, I. et al. Object-Oriented Software Engineering. USA: Riverside Printing Co., 1992.
KIM, Yongbeom; STOHR, Edward. Software Reuse: Survey and Research Direction. Journal of Management
Information System, v.14, n.4, 1998, p.113-147.
MARTIN, James; ODELL, James. Object-oriented Analysis and Design.
Englewood Cliffs, New Jersey:
Prentice-Hall, 1992.
McGREGOR, John; SYKES David. Object-Oriented Software Development: Engineering Software for Reuse.
New York: Van Nostrand Reinhold, 1992.
NIDUMOLU, Sarma R.; KNOTTS Gary W. The effects of Customizability and Reusability on Perceived
Process and Competitive Performance of Software Firms. MIS Quarterly, Jun. 1998, p. 105-137.
RUMBAUGH, J. et al. Modelagem e Projetos Baseados em Objetos. Rio de Janeiro: Editora Campus, 1994.
SIEGEL, Jon. OMG Overview: CORBA and the OMA in Enterprise Computing. Communications of the ACM.
v.41, n.10, Oct. 1998,p.37-43.
SNYDER, Alan. The essence of Objects. Concepts and Terms. IEEE Software. jan. 1993, p.31-42
SOHN, Changsoo; DEJNARONK, Apiwan. Object-Oriented Approach as a Potential Silver Bullet. Americas
Conference on Information Systems. In: Proceedings... Maryland, 1998, p.702-704.
TAPSCOTT, Don. Mudança de Paradigma. São Paulo: Makron Books, 1995.
verticais
específico
projeto
100
100
Vocabulário do domínio
Diagrama de Caso de uso
Diagrama de Classe
Diagramas de Interação
Alterando existente
Criando novo
Não usa
Total ( % ): 100 100 100 100 100 100
GRADE 4
Quanto ao tipo de
conteúdo
(implementação)
3 Software tipo workflow
3 apenas neste
F
Acrescentando existente
2 Componentes de negócio
2 domínio vertical
E
Reutilizando literalmente
1 Classes de negócio
1 diversos domínios
Total ( % ):
D
4 Processos de negócio pronto
A
B
não contém
B
C
contém
A
Processos
de egócio
GRADE 3
Quanto a amplitude
do software liberado
1
2
3
4
5
B
Diagramas de estados
Vocabulário comum
Casos de uso e atores
Diagrama de Caso de Uso
Diagrama de Classe
Diagrama de Seqüência
Diagrama de Estado
Diagrama de Colaboração
Diagrama de Atividade
Diagrama de Componente
Diagrama de Implantação
A
GRADE 2
Quanto ao mecanismo
de reutilização.
Como é efetuada e
em que extensão
ocorre?
Diag. de Implementação
B
Objetos
deNegócio
1
2
3
4
5
6
7
8
9
10
A
não contém
GRADE 1
Quanto ao tipo de
conteúdo
(análise e projeto)
contém
ANEXO 1: Modelos de Grades para Tabulação do Dados
1
2
3
diversos domínios verticais
domínio vertical específico
apenas neste projeto
Total ( % )
A
B
Fluxo e interface com
usuário
compondo objetos de
processo de negócio com
menor granularidade
GRADE 8
Limitações dos
componentes de
negócio
Total (100%)
100
100
A
B
C
D
não reutiliza
100 100
Processos
de Negócio
GRADE 7
Quanto a amplitude e
granularidade do
software liberado
2
Objetos
de Negócio
Total ( % ):
1 Objetos para controle do
nova composição
3
B
aj. via configuração
6
Código fonte criado ou alterado
2
B
aproveita literalmente
4
5
em forma de componentes
Literalmente, objetos de negócio
sob a forma de código fonte
Compondo outros objetos de
negócio de menor granularidade
Herdando de outro objeto de negócio
Compondo outros objetos comuns
A
Novo
1 Literalmente, objetos de negócio
GRADE 6
Quanto ao
mecanismo na
obtenção do objetos
de processo de
negócios
Alterado
B
Reutilizado
A
indiretos
GRADE 5
Quanto ao mecanismo na
obtenção de Objetos
de negócios?
diretos
15
1 Mudando o ambiente
operacional do servidor
2 Mudando o ambiente
operacional do cliente
3 Mudando o gerenciador
de banco de dados
100
100
4 Soft desenvolvidos com
outras linguagens
relacionadas
2 especificação (interface)
3 conteúdo do recurso
1 Por palavras chaves
relacionadas
2 Pelo conteúdo da
interface ou espec.
3 Pela análise do conteúdo
do recurso
C
não
existe
B
manual
A
Automatizado
GRADE 10
Quanto a facilidades
de classificação do
recurso reutilizável
1
2
3
4
5
6
7
Manuais
Trein. no negócio
Trein. diagramas
Suporte on line
Forum dediscussão
Site
Espaço de sugestões
Não
fornece
1 palavras chaves
Fornece
GRADE 11
Quanto ao meio de
informação
sem acesso
manual
automatizado
GRADE 9
Quanto a facilidades
para recuperação do
recurso reutilizável,
forma de pesquisa
5 Citar outras mudanças:
Download

Desenvolvimento de Sistemas de Informação com Objetos