Escolar Documentos
Profissional Documentos
Cultura Documentos
XDF
Brasília / DF
Novembro / 2007
FUNDAÇÃO GETÚLIO VARGAS
XDF
Brasília / DF
Novembro / 2007
Página 3 de 96
DEDICATÓRIA
“Dedico este trabalho a minha esposa Mácia Cirlene e aos meus filhos Breno e
Lucas que por tantas vezes foram compreensivos diante a necessidade de
dedicação aos estudos para meu aperfeiçoamento pessoal. Sem o apoio
incondicional de minha família, certamente não seria possível dilatar o pouco tempo
que nos sobra para os estudos na correria do dia a dia”.
Página 4/96
AGRADECIMENTOS
“Agradeço a todos que durante minha jornada pessoal pela vida até o momento
presente, me estimularam a ouvir mais do que falar, pensar serenamente antes de
tomar decisões, respeitar e procurar compreender posições divergentes, mas,
principalmente, que me ensinaram a manter o espírito crítico e a mente aberta para
reconsiderar posições e rever constantemente os paradigmas de nosso modo de
viver e trabalhar”.
Página 5/96
RESUMO
Seu mote, "o modelo é o sistema", anuncia uma nova era em que as aplicações
serão "à prova de futuro". Estarão então "blindadas" dos modismos e das inovações
tecnológicas que, ao tempo em que trazem inovação, geram também enormes
investimentos para conversão do Legado de Sistemas existentes, colocado sob
tecnologias que se cristalizaram e não atendem mais as necessidades do negócio.
O framework XDF, como parte de seu o próprio nome diz (eXtreme), leva ao
extremo o uso aplicado do conceito de MDA, uma vez que, usando uma abordagem
translacionista1, faz uso de componentes de código livre, de Orientação a Objetos e
da Prevalência de Objetos oferecendo, pela "desconstrução" da complexidade
tecnológica e o uso inovador da potencialidade dos novos hardwares e softwares
básicos, a singular condição de simplicidade compartilhada de uso, associada a uma
maior independência de toda a parafernália de softwares complementares para que
um sistema processe sob plataformas heterogêneas.
1
Translacionista: Conceito MDA para representar a geração automática de sistemas a partir de seus modelos
Página 6/96
ABSTRACT
In its bold design, the XDF framework part of the "state of art" of new
technologies, among which the MDA (Model Driven Architecture), to apply them to
develop more efficient systems. Designated by a global consortium of multinational
companies, the OMG (Object Management Group) defines the concept spreads and
MDA (Model Driven Architecture). This concept, making use of graphical notation
UML (Unified Modeling Language), aims ultimately, dissociate radically the rules of
business (in the form of models) of the implementation of the same technology
(represented by systems).
His motto, "the model is the system," announces a new era in which applications
will be "proof of the future." They then "armored" of fashion and technological
innovations which, in the time that bring innovation, generate also huge investments
to convert the existing Legacy Systems, which is placed under technologies focused
and do not meet the needs of most business.
The XDF framework, as part of its the name says (eXtreme), leads to the end
user application of the concept of MDA, since, using an approach translacionist2,
makes use of components of code free, Objects Orientation and Objects Prevalence
offering, the "deconstruction" of the technological complexity and the use of
innovative potential of the new hardware and basic software, the natural condition of
shared simplicity of use, coupled with greater independence of the whole
paraphernalia of complementary software for a system place under heterogeneous
platforms.
2
Translacionist: The MDA concept represent the automatic generation of systems from its models
Página 7/96
ÍNDICE DE FIGURAS:
SUMÁRIO:
1 INTRODUÇÃO....................................................................................................11
1.6 Do caos a ordem caótica. Porque Projetos de TI ainda falham tanto? .................... 20
2.4.7.1 Produtividade........................................................................................................ 33
2.4.7.2 Portabilidade ......................................................................................................... 33
2.4.7.3 Manutenção e Documentação ........................................................................... 33
2.4.8 MDA e Linguagens de Modelagem............................................................................ 33
5 CONCLUSÕES...................................................................................................33
1 INTRODUÇÃO
Para construir uma resposta consistente a esse problema, que aponte para uma
solução com um escopo delimitado e que forneça um caminho de fato viável, faz-se
necessário contornar a complexidade do cenário tecnológico atual apresentando, de
forma objetiva e simplificada, os pontos entendidos como estruturantes para a
compreensão do contexto presente do ciclo de vida de sistemas informatizados.
Um brado de terror, ou algo parecido com isso, deve ter sido o que algum marujo
do Titanic disse ao avistar o imenso bloco de gelo, que o levou ao mais famoso
naufrágio da história da humanidade.
3
Autótrofo – Bio: Organismo que a partir de seus componentes fabrica seu próprio alimento
Página 12/96
Sob a ótica do usuário comum, que quer se valer de recursos tecnológicos para
dinamizar seu negócio, sua visibilidade tecnológica dificilmente ultrapassa o que lhe
é apresentado em uma estação de trabalho, sob a forma de um ou mais sistemas,
desconhecendo toda a complexidade “submersa” e necessária para que este possa,
de fato, usufruir os benefícios esperados.
4
1.2 A Babel Tecnológica
4
Conceito idealizado pelo Autor
5
ETL: Extract and Transformation Languages
Página 14/96
Em linhas gerais, tudo que se encontra em produção pode ser considerado como
Legado, pelo simples fato de já não ser mais entendido como novo. Muitos vêem os
componentes tecnológicos e sistemas Legados como feudos particulares, outros os
percebem como ameaças, alguns como oportunidades e outros ainda, simplesmente
como “aquilo que de fato funciona”.
6
1.3 A Teoria das Ondas
Um Hype Cycle é um gráfico (muito parecido com uma onda) que busca
representar a maturidade, adoção e aplicação ao negócio de uma tecnologia
específica.
6
Conceito idealizado pelo Autor
Página 16/96
Desde 1995, o Gartner Group tem usado essa representação para caracterizar o
super entusiasmo (ou Hype) do mercado e o subseqüente desapontamento que
tipicamente acontece com a introdução de novas tecnologias. Um Hype Cycle típico
tem cinco fases, conforme o exemplo mostrado na figura 3.
Isto uma vez colocado e entendido, o que se deve exercitar mentalmente são
centenas, talvez milhares de Hype-Cycles, evoluindo e/ou involuindo como ondas
interagindo entre si, seja de forma simbiôntica, seja de forma canibalesca,
convivendo ou se confrontando com estruturas Legadas consolidadas ou em
decomposição.
Cada onda busca impor-se como um novo padrão a ser adotado pelo (ou por
parte) do mercado, tornando cada vez mais complexo o ambiente de TI em nosso
tempo, ainda mais se for considerada a velocidade crescente dessas ondas e de
suas “fases”, como também a força embarcada em outras, as quais poderiam até ser
apelidá-las de tsunamis7.
8
1.4 Os especialistas especializados
7
Tsumani: Termo de origem asiática que representa uma onda de proporções catastróficas
8
Conceito idealizado pelo Autor
Página 18/96
impossível para uma única pessoa dispor de todo o conhecimento técnico sobre
cada parte componente das complexas soluções tecnológicas atualmente adotadas.
Há que se dividir; há que se fatiar.
Já não existe mais espaço para o velho médico de família generalista que
atendia a domicílio e resolvia todos os problemas com ungüentos e pílulas mágicas.
Como os problemas se tornaram muito complexos, cada qual abre seu nicho de
especialização e seu caráter “proprietário”.
Por mais aberta que seja uma solução tecnológica, ela é em si proprietária,
possuindo seus códigos próprios e formas de manejo personalistas até mesmo para
garantir seu caráter aberto e comunicar-se com “as outras tecnologias”.
Mesmos os decantados ERPs9, amados por uns e odiados por outros tantos, que
prometem a partir da adoção de melhores práticas (de quem?), resolver todos os
problemas do negócio, uma vez em sendo adotados, criam em torno de si um
mundo tecnológico à parte, que escraviza seus usuários.
9
ERP: Enterprise Resourcing Planning
Página 19/96
Explicando o termo cunhado, temos que hoje não basta ser especialista em uma
disciplina de TI, é necessário se especializar ainda mais em uma determinada
marca. Não basta saber programar, é necessário especializar-se em determinada
linguagem. É como ter que se render à clássica imagem de Charles Chaplin,
apertando parafusos como um autômato em “Tempos Modernos”, uma de suas mais
brilhantes obras cinematográficas.
Inúmeros são os exemplos de técnicos que não suportam essa rotina por mais de
10 a 15 anos. Buscam aproveitar ao máximo os frutos de determinada onda
tecnológica, tentando alcançar determinado nível de independência financeira e
abandonar o barco, para se refestelarem à sombra de um coqueiro na praia,
satisfeito talvez em viver da venda de sanduíches naturais ou coisa parecida.
Sem dúvida, com base nas tecnologia que de fato “vingam” uma enormidade de
conhecimento é gerado sob a forma de regras de negócios, mas seriam essas
10
Termo de origem inglesa que representa a constante substituição de profissionais
Página 20/96
O que explicaria então uma evolução tão tímida ao longo de tantos anos com a
aplicação de normas de qualidade para o desenvolvimento de softwares?
Observa-se, no dia a dia prático e na grande maioria das vezes, que o negócio
corre atrás dos concorrentes, enquanto que a TI corre atrás do negócio, sem dispor
de especificações claras. Feito um sistema e colocado em produção, via de regra o
negócio não se reconhece em sua “versão tecnológica” e com isso aumentam as
falhas, o retrabalho, o turnover e o custeio. A TI “resolve” o problema oferecendo
muitas vezes mais complexidade. Diante de novos fracassos diminuem a
credibilidade, os recursos e as receitas. O negócio, querendo se perpetuar anseia
por sistemas à prova de Futuro!
Apesar de existirem muitos outros pontos que poderiam ser abordados para
caracterizar o contexto que envolve o problema alvo desta Monografia, a questão
central reside em separar o negócio de suas formas de implementação da forma
mais radical possível.
Para fazer isso, o espírito do que será demonstrado nesse trabalho deve
enfrentar e romper com paradigmas estabelecidos e entranhados na indústria de
software há décadas.
Entende-se que, quanto maior for o êxito no alcance da solução proposta, maior
será o número de elementos a colaborarem na aceleração e uso aplicado do “ciclo
virtuoso” que se espera gerar. Um framework conforme anteriormente resumido
deverá, portanto:
11
API: Application Program Interface
Página 28/96
2 FUNDAMENTAÇÃO TEÓRICA
Herança: Uma classe nova nem sempre é criada do zero. Ela pode "herdar"
atributos e ações de outras já existentes. Um basculante herda atributos das
janelas e das persianas.
2.1.1 Benefícios da OO
Seu conjunto de primitivas, porém permite que você digite comandos para que o
computador execute. A organização e a manipulação dos dados vêm depois. A
linguagem OO é projetada para permitir a definição dos objetos que compõe os
Página 32/96
Este código intermediário chama-se bytecode que são instruções para uma
máquina virtual (a JVM - Java Virtual Machine). Por fim a JVM, que é o interpretador
Java, executa os arquivos de classe.
É sua função construir modelos para o problema, buscando achar uma solução e
explorando abordagens alternativas. A documentação, neste caso, torna-se
imprescindível.
O PIM descreve toda a aplicação que dará suporte a algum negócio, sem se
preocupar com qual plataforma ou tecnologia a utilizar. Uma vez concebido,
mantém-se intacto, mudando apenas quando o negócio sofrer modificações. Para
efetuar a modelagem do PIM, os projetistas podem utilizar várias notações de
modelagem, embora a UML seja a notação mais utilizada para a produção desses
modelos.
tecnologia muda, o código pode ser regerado a partir do PIM. Acredita-se ser essa
abordagem, é mais rápida e mais barata do que migrar o código legado.
Uma vez que o PIM tenha sido criado, uma ferramenta específica deve gerar um
esqueleto ou primeira versão do PSM a qual o desenvolvedor pode, em seguida,
"aperfeiçoar", acrescentando novas informações ou pormenores técnicos.
Página 43/96
Do mesmo modo, esta ferramenta deve gerar o código final do PSM final no
processo de elaboração. Este código admite ainda aperfeiçoamentos técnicos antes
da geração do executável.
Espera-se que essas transformações – sobretudo, PIM >> PSM e PSM >>
Códigos Fonte – se tornem cada vez mais ricas e automáticas, aumentando assim
os ganhos em produtividade, portabilidade, interoperabilidade e manutenção.
2.4.7.1 Produtividade
2.4.7.2 Portabilidade
2.4.8.1 Os Critérios
componentes primários nesse novo contexto, e por serem básicos não serão
utilizados como critério de avaliação para a escolha da linguagem ideal para MDA.
Nessa seção, o enfoque principal foi a UML. A principal razão para isso é o fato
de o OMG, criador da MDA (e da própria UML), declarar essa notação como um dos
padrões estruturais do framework MDA. Um outro aspecto a ser considerado é a sua
aceitação em nível mundial como linguagem padrão para modelagem de sistemas. A
UML provê também adaptabilidade (através dos mecanismos de extensão),
flexibilidade (através dos diversos profiles UML), escalabilidade (generalização,
especialização, decomposição) etc.
2.5.1.1 Expressões
Uma invariante é um tipo de restrição que determina que uma condição deva
sempre ser atendida por todas as instâncias de uma classe. Invariantes
devem ser sempre verdadeiras.
Página 52/96
Uma pré-condição é uma restrição que deve ser sempre verdadeira antes da
execução de uma operação ser iniciada.
Uma pós-condição é uma restrição que deve ser sempre verdadeira depois
da execução de uma operação ser finalizada.
Uma guarda é uma restrição que deve ser verdadeira para que ocorra a
transição entre um estado e outro.
A versão 2.0 é a primeira grande revisão da UML após uma série de revisões
menores. A principal motivação para essa revisão foi à necessidade de prover um
maior suporte ao paradigma MDD. Para suportar um nível cada vez maior de
automatização no processo de desenvolvimento de software, sobretudo no que se
refere às transformações de modelos e geração de código, era necessário que se
redefinisse a linguagem de uma forma mais precisa que nas versões anteriores.
Essa seção avalia a UML 2.0 quanto a seu suporte aos conceitos MDA, de
acordo com os critérios já elencados.
2.6.3.1 Expressividade
A UML não podia ser considerada expressiva o bastante até a inserção da OCL
(Object Constraint Language) como parte integrante da linguagem. A OCL é uma
poderosa linguagem textual que permite a descrição de propriedades e restrições de
um sistema de software. A UML, associada a uma linguagem executável baseada
Página 55/96
A semântica executável provida pela UML 2.0 traz grandes benefícios para o
suporte de aplicações n-tier, garantindo, entre outras coisas, a possibilidade de se
testar os artefatos de projeto antes da sua implementação propriamente dita. O
OMG continua empreendendo esforços para estender a UML com elementos de
domínios específicos através da utilização do conceito de profiles.
2.7.1 O Prevayler
Por essa razão, dois mecanismos devem ser utilizados para garantir a
persistência dos objetos: um log de transação e um backup, ou snapshot, do estado
dos objetos.
Página 60/96
2.7.2.1 A serialização
O objeto não é acessado em seu estado serializado, pois a sua estrutura não é
mais a de um objeto, mas uma seqüência de bytes. Os mecanismos de log e
Página 61/96
A maioria dos sistemas que utiliza um log para garantir a durabilidade de suas
transações emprega um backup para limitar o volume de log a ser processado
quando o sistema se recupera de uma falha ou reinicia. O log de transação é
gravado pelo próprio sistema de prevalência. O snapshot deve ser invocado pela
aplicação, em períodos de pouca utilização da mesma.
2.7.2.2 A Restauração
Todos os objetos de negócio precisam ser referenciados por um objeto raiz para
que a persistência seja garantida. O objeto raiz pode representar o banco de dados
do sistema, pois contém a referência a todos os objetos que devem ser persistidos
na aplicação. A persistência dos objetos de negócio é garantida através da ligação
entre o objeto raiz e o sistema de prevalência, realizada antes de qualquer acesso
aos objetos.
3 ANÁLISE E PROPOSIÇÃO
Isto nos leva à questão fundamental de saber como o comportamento deve ser
especificado em um PIM, e se um PIM pode, efetivamente, tornar-se um código
executável e testável. Embora haja um acordo geral no seio da comunidade MDA
que os aspectos estruturais de um sistema são capturados utilizando técnicas de
modelagem estrutural da UML, existem opiniões diferentes sobre a forma como o
comportamento ou dinâmicas de um sistema deve ser representado.
Máquinas de Estado podem gerar workflows que podem ainda seqüenciar outras
máquinas de estados (mais primitivas), incluindo as funções de controle do tempo,
de trabalho cooperativo e de alçadas (direitos e permissões de negócios), gerando
Processos do Negócio (wizards) que aumentam a produtividade dos usuários finais;
Desenvolvimento | Produção
XOS1
XDF Object Server XOS2
XDFSecurity XDFWorkflow
XDF XDF
Prevalence StateMachine XOSn
Modelos Us o
XDF Object Browser
Desenvolvedores Usuário
3.2.3.1 XDFDesigner
Segurança (XDFSecurity);
Workflow (XDFWorkflow).
3.2.3.2 XDFObjectBrowser
Executar workflows.
3.2.3.3 XDFPrevalence
Isolamento transacional;
Zero Administration;
3.2.3.4 XDFStateMachine
3.2.3.5 XDFObjectServer
3.2.3.6 XDFSecurity
3.2.3.7 XDFWorkflow
3.2.3.8 XDFProxy
É uma API genérica que pode ser “ligada” (linked) estática ou dinamicamente
com uma aplicação escrita usando outra tecnologia ou linguagem: Java, C++, .Net,
Delphi, VB, etc. Permitindo interoperabilidade de uma aplicação do mundo externo
seja Client de uma aplicação XDF atuando como Server. Para que o caminho oposto
(XDF >> mundo externo) seja implementado é necessário que a aplicação Server
disponibilize suas interfaces como uma API para a aplicação XDF que atuará como
Client.
4 DISCUSSÃO E INTERPRETAÇÃO
O X (eXtreme) do XDF é exatamente uma proposta nova, que se faz contra esta
indefinição, tornando implementação de PIMs de qualquer domínio de negócio
factível sob o paradigma MDA Translacionista. Baseados nisso aplicam-se os
seguintes pressupostos:
Linguagens interpretadas ou scriptadas tais como: Perl, PHP, ASP, Tcl, Python,
Forth, Lisp, Smalltalk ou Ruby não oferecem a performance necessária para serem
consideradas. Já outras linguagens orientadas a objeto com compiladores de código
Página 87/96
nativo como C++, Delphi, FreePascal, Eiffel, Oberon e Ada são opções melhores ao
se avaliar sob este prisma.
Emula a VCL (Visual Component Library) do Delphi, isto significa que existe
um vasto legado de programas, sistemas, bibliotecas e componentes
disponíveis livremente pela Internet que podem ser diretamente usados pelo
XDF com pouca ou nenhuma modificação;
Página 88/96
O uso aplicado do Object Pascal como alternativa para geração de código nativo
(sistemas) a partir de um modelo de negócio (PIM) que se expressa por meio de
DCs e DMEs viabilizou através do uso especializado e aperfeiçoado da Prevalência
para criação de Servidores de Objetos de elevada performance e confiabilidade.
Esses Servidores de Objetos, assim como URLs (ou páginas da Internet), podem
estar localizados em qualquer parte do mundo e serem invocados por um Browser
(interface) polimórfico, porém padronizado, que permite ao usuário “navegar” sob os
Página 89/96
modelos seja de forma orientada a objetos (OO), seja de forma orientada a tarefas
(Workflow).
Em seu estado da arte atual XDF permite que o desenvolvimento dos modelos
seja colaborativo, seja sob uma rede local, seja via Internet, uma vez que o próprio
framework reside em um Servidor de Objetos específico onde modelos podem ser
construídos simultaneamente, compartilhados e reaproveitados, ampliando-se o
conceito de componentização para outro que se denomina “pacotes de negócios”.
5 CONCLUSÕES
Outro ponto central a ser comentado nesta conclusão diz respeito a uma questão
cultural, notadamente sob dois aspectos principais:
Este contexto foi minando a confiança dos patrocinadores para continuidade dos
projetos ainda que muitos destes já estivessem com sua homologação funcional e
técnica concluídas a espera da autorização para entrada em produção.
Uma vez que venha a ser vencido o problema relacionado com direitos autorais
ou ainda que seja revertida a posição político-institucional dos atuais patrocinadores
para um retorno de sua utilização, sugere-se a adoção de um novo modelo de
negócios para a disseminação do framework, com base nas lições aprendidas
durante o ciclo de vida do Programa XDF até o momento presente:
Que forte atenção seja dada formação básica e adequada aos desenvolvedores
nos conceitos de Orientação a Objetos, uma vez que a experiência do Programa
XDF e seus diversos Projetos componentes demonstraram ser esse um grande
entrave a adoção dos novos paradigmas;
Página 93/96
Que seu uso aplicado seja orientado a sistemas com complexidade crescente,
partindo de aplicações menores e menos críticas para outras mais complexas e
transacionais;
Que o XDF seja empacotado sob a forma de um produto para livre distribuição
nos meios acadêmicos, com algumas restrições técnicas que preservem a condição
de manter seu potencial comercial (p.exe: número limitado de acessos simultâneos a
um mesmo XDFObjectServer);
6 REFERÊNCIAS BIBLIOGRÁFICAS
[ACME04]
Carnegie Mellon University. The Acme Architectural Description Language. 2004.
Disponível em <www-2.cs.cmu.edu/~acme>. Acesso em: 15 de maio de 20076.
[AS02]
Object Management Group. Action semantics for UML, Action semantics
specification document. 2002. Disponível em <www.omg.org/docs/ptc/02-01-09.pdf>.
Acesso em: 15 de maio de 2007.
[BJORKANDER03]
Björkander M, Kobryn C. Architecting Systems with UML 2.0. IEEE Computer
Society Press, Los Alamitos, CA, USA, 2003.
[CORBA04]
Common Object Requested Broker Architecture. The official homepage of CORBA.
Disponível em <www.corba.org>. Acesso em: 15 de abril de 2007.
[CROSBY1979]
Crosby, Philip. Quality is Free. New York: McGraw-Hill. 1979.
[CWM03]
Common Warehouse Metamodel (CWM). Common Warehouse Metamodel
Specification, 2003. Disponível em <www.omg.org/docs/formal/03-03-02.pdf>.
Acesso em: 25 de abril de 2007.
[DEMASI]
DE MASI DOMENICO, O Futuro do Trabalho. Rio de Janeiro, RJ. José Olympio.
1999.
[GURD03]
Gurd A. Using UML 2.0 to Solve Systems Engineering Problems. White Paper,
Telogic AB, July 2003.
[HAREL1984]
D. Harel and D. Peleg, Static Logics, Dynamic Logics and Complexity Classes,
Information and Control 60 (1984), 86-102.
[KLEPPE03]
KLEPPE, A.; WARMER, J.; BAST, W. MDA Explained: The Model Driven
Architecture - Practice and Promise. Addison-Wesley, Reading, MA, 2003.
[McCABE1976]
McCabe, Thomas J.; Watson, Arthur H. Structured Testing: A Testing Methodology
Using the Cyclomatic Complexity Metric. Computer Systems Laboratory, National
Institute of Standards and Technology, 1996
[MDA01]
Object Management Group Architecture Board. Model Driven Architecture 2001.
Disponível em <http://www.omg.org/docs/ormsc/01-07-01.pdf>. Acesso em: 10/03/07
Página 95/96
[MDA03]
Object Management Group. MDA Guide. Version 1.0.1, 2003. Disponível em
<http://www.omg.org/docs/omg/03-06-01.pdf>. Acesso em: 15 de março de 2007.
[MDA04]
Model Driven Architecture. The official homepage of MDA. 2004. Disponível em
<www.omg.org/mda>. Acesso em: 25 de março de 2007.
[MOF03]
Meta Object Facility. Document. 2003. Disponível em <www.omg.org/docs/formal/02-
04-03.pdf >. Acesso em: 18 de março de 2007.
[MOSSES92]
Mosses P, Action Semantics. Number 26 in Cambridge Tracts in Theoretical
Computer Science. Cambridge University Press, 1992.
[MENDES02]
MENDES, Antônio. Arquitetura de Software: Desenvolvimento Orientado para
Arquitetura. Campus, Rio de Janeiro, 2002.
[OAL03]
Object Action Language. Object Action Language Manual V 1.4. 2003. Disponível em
<www.projtech.com/pdfs/bp/oal.pdf>. Acesso em: 25 de maio de 2007.
[OCL03]
Object Constraint Language. OCL 1.6 Specification Document. 2003. Disponível em
<www.omg.org/docs/ad/03-01-07.pdf>. Acesso em: 25 de maio de 2007.
[OMG04]
Object Management Group. The official homepage of OMG. Disponível em
www.omg.org , 2004. Acesso em: 15 de maio de 2007.
[PAULK1995]
PAULK, M. C. The Capability Maturity Model: Guidelines for improving the software
process. U.S.A: Addison Wesley, 1995. (SEI Series).
[PRESMAN02]
PRESSMAN, Roger S. Engenharia de Software. Mc Graw Hill, 5º ed. Rio de Janeiro,
2002.
[Prevayler]
The Open Source Prevalence Layer. The official homepage of Prevayler. Disponível
em <http://prevayler.org/wiki/>. Acesso em 28 de outubro de 2007.
[SDL04]
SDL Fórum Society. Specification and Description Language. Disponível em
<www.sdl-forum.org>. Acesso em: 8 de junho de 2007.
[SIEGEL01]
SIEGEL, J & OMG Staff Strategy Group. Developing in OMG’s Model-Driven
Architecture. 2001. Disponível em <ftp://ftp.omg.org/pub/docs/omg/01-12-01.pdf>.
Acesso em: 10 de junho de 2007.
Página 96/96
[STA2004]
The Standish Group. The official homepage of OMG. Disponível em
<http://www.standishgroup.com/benchmark/performance.php>, Benchmark
Performance Report 2004. Acesso em: 15 de abril de 2007.
[STEPHEN01]
Mellor, j. Stephen; Balcer J. Mark. Executable UML, A Foundation for Model-Driven
Architecture, Addison Wesley, 2002.
[UML04]
Unified Modeling Language. The official homepage of UML. 2004. Disponível em
www.uml.org. Acesso em: 15 de junho de 2007.
[WILKIE01]
Wilkie I; King A; Clarke M; Weaver C; Rastrick C. UML ASL Reference. Disponível
em <http://www.irit.fr/~Ralph.Sobek/neptune/03-03-12.pdf>. 2001. Acesso em: 15 de
maio de 2007.