• Nenhum resultado encontrado

TÂNIA EIKO EISHIMA PROPOSTA DE METAMODELO PARA DESENVOLVIMENTO ORIENTADO A MODELO PARA EMPRESAS DO APL DE LONDRINA

N/A
N/A
Protected

Academic year: 2021

Share "TÂNIA EIKO EISHIMA PROPOSTA DE METAMODELO PARA DESENVOLVIMENTO ORIENTADO A MODELO PARA EMPRESAS DO APL DE LONDRINA"

Copied!
31
0
0

Texto

(1)

TÂNIA EIKO EISHIMA

PROPOSTA DE METAMODELO PARA

DESENVOLVIMENTO ORIENTADO A MODELO

PARA EMPRESAS DO APL DE LONDRINA

LONDRINA–PR 2014

(2)

TÂNIA EIKO EISHIMA

PROPOSTA DE METAMODELO PARA

DESENVOLVIMENTO ORIENTADO A MODELO

PARA EMPRESAS DO APL DE LONDRINA

Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel em Ciência da Computação.

Orientador: Profa. Dra. Jandira Guenka Palma

LONDRINA–PR 2014

(3)

Tânia Eiko Eishima

Proposta de metamodelo para Desenvolvimento Orientado a Modelo para em-presas do APL de Londrina/ Tânia Eiko Eishima. – Londrina–PR,

2014-30p. : il. (algumas color.) ; 30 cm.

Orientador: Profa. Dra. Jandira Guenka Palma

– Universidade Estadual de Londrina, 2014.

1. Processo de Desenvolvimento de Software. 2. Desenvolvimento Orientado a Modelo. I. Jandira Guenka Palma. II. Universidade xxx. III. Faculdade de xxx. IV. Proposta de metamodelo para Desenvolvimento Orientado a Modelo para empresas da APL de Londrina

(4)

“Most of the goals presented here are not new. On the contrary, they represent something like the IT industry’s ‘Holy Grail’: no-one is inclined to believe in beneficial promises anymore, and rightly so. But if you take a look at the history of IT or computer science, you can see that an ongoing evolution is taking place.” (Markus Völter, Model-Driven Software Development - Technology, Engineering, Management, sobre os objetivos do MDD)

(5)

EISHIMA, T. E.. Proposta de metamodelo para Desenvolvimento

Ori-entado a Modelo para empresas do APL de Londrina.30p. Trabalho de Conclusão de Curso (Graduação). Bacharelado em Ciência da Computação – Universidade Estadual de Londrina, 2014.

RESUMO

O desenvolvimento orientado a modelos (Model-Driven Development - MDD) é uma abor-dagem que vem se destacando na indústria e na academia. Ele consiste na utilização de modelos para elevar o nível de abstração para a criação de software. A proposta deste trabalho é apresentar um metamodelo para o desenvolvimento de software orientado a modelos que otimize a organização, produtividade e qualidade do processo de produção de sistema nas empresas

Palavras-chave: MDD, desenvolvimento orientado a modelos, metamodelo,

(6)

EISHIMA, T. E.. Proposed metamodel to Model-Driven Development

to companies at Londrina’s APL..30p. Final Project (Undergraduation). Bachelor of Science in Computer Science – State University of Londrina, 2014.

ABSTRACT

The Model-Driven Development (MDD) is a approach that has been excelled in indus-try and academia. It is the use of models to raise the level of abstraction for creating software. The propose of this work is to present a metamodel to software model-driven development that optimizes the organization, productivity and quality of the production process systems in companies

(7)

LISTA DE ILUSTRAÇÕES

Figura 1 – Representação da engenharia de software em camadas. . . 11

Figura 2 – Representação do modelo cascata. . . 12

Figura 3 – Representação do modelo de processo incremental. . . 13

Figura 4 – Representação do modelo espiral. . . 14

Figura 5 – Representação do modelo concorrente. . . 15

Figura 6 – Representação do processo unificado. . . 16

Figura 7 – Principais elementos do MDD.. . . 18

(8)

LISTA DE ABREVIATURAS E SIGLAS

APL Arranjo Produtivo Local

CIM Computational Independent Model DSL Domain-Specific Language

MDA Model-Driven Architecture MDD Model-Driven Development MOF Meta-Object Facility

OMG Object Management Group PIM Platform Independent Model PSM Platform-Specific Model UML Unified Modeling Language

(9)

SUMÁRIO

1 INTRODUÇÃO . . . . 10

2 PROCESSO DE DESENVOLVIMENTO DE SOFTWARE . . 11

2.1 Modelo Cascata . . . 12

2.2 Modelo de Processo Incremental . . . 12

2.3 Modelo de Processo Evolucionário . . . 13

2.3.1 Prototipagem . . . 14

2.3.2 Modelo Espiral . . . 14

2.3.3 Modelo Concorrente . . . 15

2.4 Modelo Especializado . . . 15

2.5 Processo Unificado . . . 16

3 DESENVOLVIMENTO ORIENTADO A MODELO . . . . 17

3.1 Conceito e Motivação . . . 17

3.2 Model-Driven Architecture . . . 19

3.2.1 Computational Independent Model. . . 20

3.2.2 Platform Independent Model . . . 20

3.2.3 Platform-Specific Model. . . 20

3.2.4 Transformação . . . 20

3.3 Modelagem de domínio . . . 20

3.4 Ferramentas para o desenvolvimento do MDD e suas instâncias 21 4 PROPOSTA DE TRABALHO . . . . 22 4.1 Escopo. . . 22 4.2 Metamodelo . . . 22 4.3 Proposta . . . 22 4.3.1 Análise . . . 22 4.3.2 Projeto . . . 22

4.3.3 Gestão e Auditoria dos Processos de Desenvolvimento . . . . 22

4.3.4 Manutenção e Atualização do Software . . . 22

5 TRABALHOS RELACIONADOS . . . . 23

5.1 Metodologia para Colaboração B2B em Desenvolvimento Ori-entado a Modelo . . . 23

5.2 Uma Abordagem Orientada a Modelos para reutilização de Software. . . 23

(10)

5.3 Aplicando a Engenharia de Desenvolvimento Orientado a

Mo-delo em Pequenas Empresas . . . 24

6 ANÁLISE DE RESULTADOS . . . . 26

7 TRABALHOS FUTUROS . . . . 27

8 CONCLUSÃO. . . . 28

(11)

10

1 INTRODUÇÃO

A utilização de software está em constante expansão. Eles não fazem parte apenas do computador, mas compõem caixas eletrônicos, celulares, televisões e geladeiras. Diante da sua ampla forma de utilização e comunicação entre eles, os sistemas computacionais tornam-se muito complexos.

Os sistemas estão em constante mutação e a forma de desenvolvimento aplicada, muitas vezes gera lacunas que comprometem a qualidade do produto. Destacando a desa-tualização e desuso da documentação de requisitos e os modelos produzidos no início do processo de produção.

Diante desse contexto, o desenvolvimento orientado a modelo é proposto na ten-tativa de reduzir esses problemas. E acrescentar algumas vantagens como a produção a partir de modelos.

Os modelos são usualmente utilizados nas disciplinas das engenharias para a pro-jeção de produtos complexos. Não há como imaginar a construção de um prédio sem a prévia elaboração de vários modelos específicos.

Na engenharia de software, a abordagem de desenvolvimento orientado a modelo permite que o produto produzido esteja como na modelagem realizada no seu planeja-mento. Já que o modelo é o primeiro e principal artefato do processo de desenvolviplaneja-mento. Esse trabalho propõe apresentar um metamodelo os dados obtidos até o momento que servirão de base para a construção do metamodelo.

(12)

11

2 PROCESSO

DE

DESENVOLVIMENTO

DE

SOFTWARE

A engenharia de software é a aplicação de uma abordagem sistemática, discipli-nada e quantificável para o desenvolvimento, operação e manutenção do software. Ela é caracterizada como uma tecnologia em camadas e seu alicerce é o nível de processo [1], como representado na Figura 1.

Figura 1 – Representação da engenharia de software em camadas.

Um processo de software é um conjunto de ações compostas por atividades [2,3,4]. Diferentes abordagens organizam suas ações e atividades de maneiras distintas e são descritas em diferentes níveis de detalhes [4].

Os processos de software são a base para o controle gerencial de projetos de soft-ware e estabelecem o contexto no qual os métodos técnicos são aplicados, os produtos de trabalho (modelos, documentos e formulários) são produzidos, os marcos são estabeleci-dos, a qualidade é assegurada e as modificações são adequadamente geridas [1].

Um modelo de processo de software é uma descrição simplificada de um processo de software [4]. Com o objetivo de orientar o processo de software, vários modelos foram propostos: modelo cascata, modelo de processo incremental, modelo de processo evoluci-onário, modelo especializado e processo unificado [1].

Há diversas variações de processos de software. Algumas organizações idealizaram abordagens completamente diferentes para o desenvolvimento de seus produtos. Os pro-cessos evoluíram para explorar a capacidade das pessoas em uma organização, assim como as características específicas dos sistemas que estão sendo desenvolvidos [4].

Nesse capítulo serão apresentados alguns dos modelos de processo existentes na literatura.

(13)

Capítulo 2. Processo de Desenvolvimento de Software 12

2.1

Modelo Cascata

O modelo cascata é o primeiro modelo de processo de desenvolvimento de software publicado. Foi denominado assim devido à sequência em cascata de uma fase para outra [4].

Esse modelo é dividido em uma série de etapas fundamentais independentes, que são realizadas sequencialmente, uma após a finalização da outra. Como ilustra a Figura

2. Cada fase produz um produto que é a entrada para a fase seguinte [3].

O modelo é simples e direto [3]. No entanto, sua característica linear requer que os requisitos sejam bem definidos no início do projeto e que os projetos não exijam correção de fases anteriores da vigente [1].

Figura 2 – Representação do modelo cascata.

2.2

Modelo de Processo Incremental

O modelo de processo incremental é uma combinação dos elementos do modelo em cascata aplicados de forma iterativa. Cada sequência linear produz um incremento do software, como representado na Figura 3[1].

No processo incremental, os clientes identificam as funções necessárias no sistema, identificam as mais importantes e definem uma série de estágios de entrega e o subcon-junto de funcionalidades incluídas. A alocação das funções é realizada de acordo com a prioridade[4].

(14)

Capítulo 2. Processo de Desenvolvimento de Software 13

O primeiro incremento é chamado de núcleo do produto. Nessa etapa os requisitos básicos são satisfeitos e o sistema já pode ser utilizado ou avaliado pelo cliente [1].

Esse modelo de processo é útil quando há pouca mão-de-obra para o desenvolvi-mento completo do software ou quando há a dependência de algum item (hardware, por exemplo) para finalizar o produto [3].

Figura 3 – Representação do modelo de processo incremental.

2.3

Modelo de Processo Evolucionário

O modelo de processo evolucionário tem como intuito desenvolver uma implemen-tação inicial, demonstrar o resultado ao usuário e fazer seu aprimoramento por meio de versões até que o sistema esteja completo [4].

Segundo Sommerville (2003), há dois tipos de desenvolvimento evolucionário: o desenvolvimento exploratório e o de protótipos descartáveis.

∙ Desenvolvimento Exploratório: trabalho de aperfeiçoamento de ideias com o cliente. O sistema evolui com o acréscimo de novas características.

∙ Protótipos Descartáveis: prototipação do sistema para a compreensão dos requisitos e desenvolver uma melhor definição dos requisitos.

(15)

Capítulo 2. Processo de Desenvolvimento de Software 14

São classificados como modelos evolucionários: a prototipagem, o modelo espiral e o modelo concorrente.

2.3.1

Prototipagem

Na Prototipagem, o engenheiro de software e o cliente definem os objetivos gerais do software, identificam as necessidades conhecidas e apontam áreas carentes de definições. Cada iteração do processo é gerado uma representação das funcionalidades visíveis ao cliente (layout da interface humana)[1].

2.3.2

Modelo Espiral

O modelo espiral leva em consideração a falta de certeza em muitos estágios du-rante o desenvolvimento do software [3] e assim, tem um modelo de processo em espiral. Cada loop representa uma fase do sistema [4].

Essa abordagem é um processo guiado por risco. É utilizada quando há diferen-tes interessados concorrendiferen-tes em cada versão evolucionária. E o conjunto de marcos de ancoragem garantem o comprometimento dos clientes com soluções satisfatórias [1].

(16)

Capítulo 2. Processo de Desenvolvimento de Software 15

2.3.3

Modelo Concorrente

O modelo de desenvolvimento concorrente é definido por uma série de atividades, ações e tarefas que podem ser executadas de forma simultânea.Para disparar a transição de estado para cada uma das atividades, ações e tarefas, o modelo define uma série de eventos [1].

Figura 5 – Representação do modelo concorrente.

2.4

Modelo Especializado

Os modelos especializados possuem semelhanças com os outros modelos apresen-tados nesse capítulo, porém são utilizados em uma abordagem bem definida [1].

(17)

Capítulo 2. Processo de Desenvolvimento de Software 16

Essa abordagem é representada pelo desenvolvimento baseado em Componentes, o modelo de métodos formais e o desenvolvimento orientado a aspectos [1].

2.5

Processo Unificado

O Processo Unificado (PU) é uma tentativa de reunir as melhores características dos modelos convencionais de processo de software, através do reconhecimento da impor-tância da comunicação com o cliente e de métodos diretos para a descrição da visão do cliente [1].

O PU pode ser utilizado em projetos de pequeno e grande porte, independente-mente da complexividade do problema. Tem como objetivos principais: atender as ne-cessidades dos clientes e acompanhar riscos. A abordagem é composta por quatro fases: concepção, elaboração, construção e transição [3], como é representado na Figura 6.

(18)

17

3 DESENVOLVIMENTO ORIENTADO A

MO-DELO

Os modelos de desenvolvimento, citados no capítulo2, possuem um processo onde em cada etapa há a elaboração parcial ou completa de um artefato. Os artefatos colaboram para a execução do processo, mas não são totalmente dependentes uns dos outros [1]. E geralmente são responsabilidades de funcionários ou departamentos distintos [5].

Além dessas características, a produção de software sofre com a atualização pe-riódica do produto imposta pelo mercado. E a heterogeneidade de conhecimento entre a equipe, com conhecimento e talentos individuais [5].

Esse cenário tem como consequência documentos e diagramas incompreensíveis para a equipe, desatualizados e inutilizáveis. O que resulta em sistemas complexos sem especificações acessíveis, aumentando o custo de manutenção e possibilidade de erros conceituais [6]. Com o intuito de reverter essa situação, o desenvolvimento orientado a modelos foi proposto [7].

Este capítulo apresenta os conceitos básicos do desenvolvimento de software ori-entado a modelo e a motivação para estudá-los.

3.1

Conceito e Motivação

O desenvolvimento orientado a modelo ou Model-Driven Development(MDD), é uma metodologia que tem como foco a criação de modelos como classe principal de arte-fatos para o desenvolvimento do software [8].

O modelo é um conjunto de elementos que descrevem formalmente determinados aspectos como interface, segurança, banco de dados, cenário de utilização de um sistema. O desenvolvimento de um software pode envolver uma ou mais modelagens distintas [9]. O MDD fornece diretrizes, linguagens, métodos, modelo de transformação e ferra-mentas para apoiar a representação de requisitos de negócios e permite a geração de uma solução de tecnologia específica para cada empresa [6].

A proposta do MDD é fazer com que o engenheiro de software não precise interagir manualmente com todo o código fonte, concentrando-se em modelos de alto-nível. Ficando protegido das complexidades geradas na implementação com diferentes plataformas [10]. Para que isso seja possível, a ferramenta de modelagem deve permitir que o modelo descreva todos os conceitos do domínio (problema). O modelo deve ser semanticamente completo e correto para que o computador ou uma equipe específica de codificação,

(19)

en-Capítulo 3. Desenvolvimento Orientado a Modelo 18

tenda e gere novos modelos ou código. A Figura7apresenta os principais elementos desse método de desenvolvimento.

Figura 7 – Principais elementos do MDD.

Essa abordagem de desenvolvimento tem como principais vantagens:

∙ Produtividade: redução de tempo de desenvolvimento com tarefas repetitivas através da geração de código automática [5,11,12] e através do conhecimento de especialista já agregado ao modelo [7].

∙ Portabilidade: modelos de alto-nível podem ser transformados em código para di-versas plataformas [5, 11].

∙ Interoperabilidade: possibilidade de criação de adaptadores e conectores para a co-municação entre diferentes plataformas [5, 11].

∙ Facilidade de manutenção: a manutenção é realizada diretamente no modelo o que facilita a compreensão do problema e a concepção de uma solução [5, 11].

∙ Comunicação: os modelos de mais alto-nível tornam a comunicação acessível entre todas as pessoas evolvidas no processo de desenvolvimento [5, 7].

∙ Reutilização: é possível fazer a reutilização de modelos adaptando-os a um novo contexto [5, 7,11, 13].

∙ Otimização: modelos possuem mais ferramentas para a verificação semântica e oti-mizações automáticas, assegurando implementações mais eficientes [5].

∙ Corretude de código e conceitos: o alto-nível de abstração dos modelos permite uma maior corretude de conceitos de negócios e a possível automatização de geração de código elimina erros acidentais no código fonte [5,11, 12, 13].

(20)

Capítulo 3. Desenvolvimento Orientado a Modelo 19

Em resumo, o desenvolvimento orientado a modelo permite que a longo prazo traga maior produtividade, qualidade e maior agregação de conhecimento nos produtos [5, 7,11].

No entanto, a abordagem possui alguns desafios a enfrentar como:

∙ Rigidez: devido a dependência dos modelos elaborados e a pouca influência do de-senvolvedor [5], o que dificulta a propagação de mudanças

∙ Complexidade: as ferramentas de modelagem, transformações e geradores de có-digo geram maior complexidade ao processo de desenvolvimento [5] e quanto mais modelos relacionados maior a complexidade de ligação entre os artefatos [13]. ∙ Redundância: possibilidade de utilização de modelos que possuem representações de

um mesmo conceito em diferentes níveis de abstração [13].

∙ Desempenho: na utilização de geradores automatizados, o desempenho pode ser afetado devido a inclusão de código desnecessário no sistema [5].

∙ Curva de Aprendizado: o MDD exige profissionais com habilidades na construção de modelos, manipulação de ferramentas de modelagem, transformações e geradores de código [5]. Os desenvolvedores devem ter conhecimento do impacto de cada etapa do processo no produto final [13].

∙ Alto Investimento Inicial: a preparação e a implantação do MDD necessita tempo e esforço, mas os ganhos posteriores são significativos [5].

O processo de desenvolvimento orientado a modelos possui um modelo de matu-ridade denominado MDD Maturity Model. Este modelo foi baseado nas experiências de diversas empresas e instituições de pesquisa envolvidas com o ModelWare[5].

3.2

Model-Driven Architecture

O Model-Driven Architecture (MDA) é um conjunto de padrões adotados pela

Object Management Group1(OMG) para o desenvolvimento através do MDD. Esse recurso tem como intuito manter a compatibilidade entre ferramentas de fabricantes distintos [5]. A interoperabilidade entre ferramentas é importante para a viabilidade do MDA. Ela apoiará o desenvolvimento de modelos e a transformação em código[14]. O MDA adota os conceitos de CIM (Computational Independent Model), PIM (Platform Independent

Model) e PSM (Platform-Specific Model) [5].

1 Object Management Group é um consórcio internacional, sem fins lucrativos que cria e mantém

(21)

Capítulo 3. Desenvolvimento Orientado a Modelo 20

3.2.1

Computational Independent Model

O CIM, ou Modelo Independente de Computação, é uma visão do sistema em que a compreensão independe do conhecimento em computação [5].

3.2.2

Platform Independent Model

O PIM, ou Modelo Independente de Plataforma, é uma visão do sistema indepen-dente da plataforma de implementação. Assim, ele pode ser reaproveitado em diferentes plataformas [5].

3.2.3

Platform-Specific Model

O PSM, ou Modelo Específico de Plataforma, é uma visão do sistema que consi-derará detalhes específicos a plataforma de desenvolvimento [5].

3.2.4

Transformação

O MDA apresenta a fase de transformação, onde um metamodelo é transformado em modelo, ou código, de acordo com as regras incluídas no metamodelo [11].

3.3

Modelagem de domínio

O desenvolvimento orientado a modelo começa a partir da modelagem do domí-nio. O domínio descreve um campo limitado de interesse ou conhecimento. Ele pode ser dividido em subdomínios [11].

A partir do domínio é realizado uma análise, que consiste na identificação dos principais conceitos e elementos de um domínio, a definição de seu escopo e a identificação do conjunto de artefatos a serem desenvolvidos [5].

Lucrédio(2009) enumera os objetivos da análise de domínio como:

∙ Coletar, registrar e documentar todas as informações disponíveis sobre o domínio; ∙ Definir o escopo do domínio a ser desenvolvido;

∙ Criar modelos do domínio;

∙ Identificar os subdomínios onde a automação é possível.

No contexto de MDD é fundamental que a representação do domínio seja clara. Para a formalização das informações do domínio é elaborado um metamodelo [11]. Eles

(22)

Capítulo 3. Desenvolvimento Orientado a Modelo 21

são representados por uma Domain-Specific Language(DSL)[12], ou meta-metamodelo [11], que servem de base para a definição de todas as linguagens de modelagem [5].

O Meta-Object Facility(MOF) é o meta-metamodelo mais popular baseado na

Unified Modeling Language(UML) [12]. O MOF consiste em um padrão orientado a objetos que permite a definição de classes com atributos e relacionamentos [5].

3.4

Ferramentas para o desenvolvimento do MDD e

suas instâncias

(23)

22

4 PROPOSTA DE TRABALHO

4.1

Escopo

4.2

Metamodelo

4.3

Proposta

4.3.1

Análise

4.3.2

Projeto

4.3.3

Gestão e Auditoria dos Processos de Desenvolvimento

4.3.4

Manutenção e Atualização do Software

(24)

23

5 TRABALHOS RELACIONADOS

A abordagem de desenvolvimento orientado a modelo já vem sendo discutido em outros trabalhos. Esse capítulo descreve propostas de diversos autores para diferentes cenários de produção de software.

5.1

Metodologia para Colaboração B2B em

Desen-volvimento Orientado a Modelo

O artigo ”Model-Driven Development Methodology for B2B Collaborations” [10] propõe uma abordagem de implementação de processos de negócios colaborativos e siste-mas Business-to-Business (B2B).

Esse cenário gera desafios como a descentralização de gestão, capacidade de lidar com mudança, iterações peer-to-peer, preservação de autonomia da empresa e interope-rabilidade do projeto.

A proposta resultante foi uma metodologia baseada no desenvolvimento concei-tual e fornece uma clara separação dos domínios e os níveis de abstração dos artefatos necessários no desenvolvimento de colaborações B2B. Ela é composta pelas etapas:

1. Identificação dos requisitos de negócio;

2. Definição das soluções de negócio necessárias; 3. Definição da arquitetura de TI para cada empresa; 4. Definição da solução tecnológica e implementação.

5.2

Uma Abordagem Orientada a Modelos para

reu-tilização de Software

A dissertação ”Uma Abordagem Orientada a Modelos para Reutilização de Software”[5] apresenta um modelo de processo em MDD para a reutilização de software, como ilustrado na Figura 8.

Assim, visa guiar o engenheiro de software desde as atividades iniciais de análise até a implementação de artefatos reutilizáveis de um domínio.

(25)

Capítulo 5. Trabalhos Relacionados 24

1. Análise de Domínio; 2. Projeto de Domínio;

3. Implementação do Domínio.

Figura 8 – Modelo de processo da abordagem.

5.3

Aplicando a Engenharia de Desenvolvimento

Ori-entado a Modelo em Pequenas Empresas

O tabalho ”Applying model-driven engineering in small software enterprises” [15] relata a experiência da aplicação do MDD em duas empresas pequenas da União Européia. Uma empresa possuia 12 funcionários e a outra, cerca de 100.

(26)

Capítulo 5. Trabalhos Relacionados 25

Foi realizado uma avaliação do processo, métricas e formas de potenciais ganhos de produtividade através dessa abordagem. E concluiu-se que apesar da baixa admissão de empresas de pequeno porte no MDD, há ganhos significativos.

(27)

26

(28)

27

(29)

28

(30)

29

REFERÊNCIAS

1 PRESSMAN, R. S. Engenharia de Software. 6th. ed. [S.l.]: MCGRAW-HILL HIGHER EDUCATION, 2009.

2 PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. 7th. ed. New York: McGraw-Hill. ISBN 2008048802.

3 BELL, D. Software Engineering for Students. 4th. ed. Harlow: Pearson Education Limited, 2005. ISBN 0321261275.

4 SOMMERVILLE, I. Engenharia de Software. 6th. ed. São Paulo: Pearson Education Limited, 2003.

5 LUCRéDIO, D. Uma Abordagem Orientada a Modelos para Reutilização de Software

Uma Abordagem Orientada a Modelos para Reutilização de Software. 19–232 p. Tese

(Dissertação) — Universidade de São Paulo, 2009.

6 TEPPOLA, S.; PARVIAINEN, P.; TAKALO, J. Challenges in Deployment of Model Driven Development. 2009 Fourth International Conference on Software Engineering

Advances, Ieee, p. 15–20, set. 2009. Disponível em: <http://ieeexplore.ieee.org/lpdocs/ epic03/wrapper.htm?arnumber=5298434>.

7 MELLOR, S. J. et al. Model-Driven Development. IEEE Software, 2003. 8 VARA, J. M.; MARCOS, E. A framework for model-driven development of information systems: Technical decisions and lessons learned. Journal of Systems and

Software, Elsevier Inc., v. 85, n. 10, p. 2368–2384, out. 2012. ISSN 01641212. Disponível

em: <http://linkinghub.elsevier.com/retrieve/pii/S0164121212001367>.

9 SELIC, B. The pragmatics of model-driven development. IEEE Software, v. 20, n. 5, p. 19–25, set. 2003. ISSN 0740-7459. Disponível em: <http://ieeexplore.ieee.org/lpdocs/ epic03/wrapper.htm?arnumber=1231146>.

10 LAZARTE, I. M. et al. Model-Driven Development Methodology for B2B Collaborations. In: 2010 14th IEEE International Enterprise Distributed Object

Computing Conference Workshops. IEEE, 2010. p. 69–78. ISBN 978-1-4244-7965-8.

Disponível em: <http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber= 5628968>.

11 STHAL, T.; VOLTER, M. Model-Driven Software Development - Techno-logy,Engineering, Management. Wiley, 2006.

12 VöLTER, M. and; BETTIN, J. Patterns for Model-Driven Software-Development. 2004.

13 HAILPERN, B.; TARR, P. Model-driven development : The good , the bad , and the ugly. v. 45, n. 3, p. 451–461, 2006.

14 PARVIAINEN, P. et al. Model-Driven Development Processes and practices. [S.l.]: VTT Technical Research Centre of Finland, 2009. ISBN 9789513871758.

(31)

Referências 30

15 SáNCHEZ, J.; LUIS, J.; IZQUIERDO, C. Applying model-driven engineering in small software enterprises. Science of Computer Programming, Elsevier B.V., 2013. ISSN 0167-6423. Disponível em: <http://dx.doi.org/10.1016/j.scico.2013.04.007>.

Referências

Documentos relacionados

Portanto, mesmo percebendo a presença da música em diferentes situações no ambiente de educação infantil, percebe-se que as atividades relacionadas ao fazer musical ainda são

O segundo Beneficiário será designado pelo Segurado na Proposta de Adesão, podendo ser substituído a qualquer tempo, mediante solicitação formal assinada pelo próprio Segurado, para

limitações no uso do sistema de informação; isolamento do Serviço de Atenção Domiciliar em relação aos demais serviços da rede de saúde; limitações da Atenção Básica

[r]

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Analysis of relief and toponymy of the landscape based on the interpretation of the military topographic survey: Altimetry, Hypsometry, Hydrography, Slopes, Solar orientation,

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The