Proposta de abordagem de desenvolvimento de software orientado a modelos para empresas



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

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

UML - Unified Modeling Language

Fase 1: Engenharia de Produto

Model Driven Architecture-MDA e um estudo de caso.

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Processo de Desenvolvimento Unificado

Modelagemde Software Orientadaa Objetos com UML

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

UNIVERSIDADE ESTADUAL DE MARINGÁ CENTRO DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA CURSO DE ENGENHARIA DE PRODUÇÃO

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Sistemas de Informação I

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Wilson Moraes Góes. Novatec

PROJETO DE FÁBRICA DE SOFTWARE

PRÓ-REITORIA DE EXTENSÃO, PESQUISA E INOVAÇÃO DIRETORIA DE PESQUISA E INOVAÇÃO Proposta de Projeto de Pesquisa

Table 1. Dados do trabalho

ENGENHARIA DE SOFTWARE I

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Resumo artigo Agile Modeling- Overview

Monitoramento de Métricas de Segurança da Informação

ISO/IEC 12207: Gerência de Configuração

CoMDD: uma abordagem colaborativa para auxiliar o desenvolvimento orientado a modelos. David Fernandes Neto

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Qualidade de Software. Anderson Belgamo

Introdução à Engenharia de Software

A importância do PDTI na implantação da Governança de TI nas Prefeituras Brasileiras

Introdução à Computação

Feature-Driven Development

EXPERIÊNCIA DE USO DE ARQUITETURA CORPORATIVA NO PROJETO DE RES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

2 Diagrama de Caso de Uso

VISUAL STUDIO TEAM SYSTEM IMPLANTAÇÃO DA SUITE DE FERRAMENTAS

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

Engenharia de Software II

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

Processos de Desenvolvimento de Software

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Pós Graduação Engenharia de Software

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Projeto de Sistemas I

PROFESSOR: CRISTIANO MARIOTTI

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Engenharia de Software

PROJETO DE PESQUISA CIENTÍFICA: a escolha do tema e a construção do problema

Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

Introdução a INGENIAS:

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

REGULAMENTO DO TRABALHO DE CONCLUSÃO DE CURSO Curso Superior de Tecnologia em Sistemas para Internet 2/2012

REGULAMENTO DO TRABALHO DE CONCLUSÃO DE CURSO Curso Superior de Tecnologia em Sistemas para Internet 1/2011

SISTEMA COMPUTACIONAL PARA ANÁLISES DE DADOS EM AGRICULTURA DE PRECISÃO

SISTEMA INTEGRADO DE GESTÃO. Prof. Esp. Lucas Cruz

Engenharia de Software

PERSPECTIVAS DO PROJETO DE ENSINO FÁBRICA DE SOFTWARE *

Projeto de Arquitetura

O QUE É CRM? NARCISO SANTAELLA

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

ONTOLOGIA E SUAS APLICAÇÕES EM MODELAGEM CONCEITUAL PARA BANCO DE DADOS PROPOSTA DE TRABALHO DE GRADUAÇÃO

Julio Cezar Fialho Freire de Carvalho 1, Aline Maria Malachini Miotto Amaral 2 1 INTRODUÇÃO

Fundamentos em Teste de Software. Vinicius V. Pessoni

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

MODELO DE GESTÃO DA INFORMAÇÃO COMO BASE DA AÇÃO COMERCIAL DE PEQUENAS EMPRESAS DE TI

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação

ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA DE SISTEMAS JACK SUSLIK POGORELSKY JUNIOR

Programação de Computadores - I. Profª Beatriz Profº Israel

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

MODELO CMM MATURIDADE DE SOFTWARE

Modelagem de Processos. Prof.: Fernando Ascani

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

SIGLA - Sistema Integrado de Gestão Legislativa e Administrativa

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Desenvolvimento de software orientado a características e dirigido por modelos

Engenharia de Software Processo de Desenvolvimento de Software

PLANO DE ENSINO. CURSO: Sistemas de Informação PERÍODO LETIVO: SEMESTRE: 4º. C/H SEMANAL Análise, Projeto e Implementação de Sistemas I

Universidade Federal de Santa Catarina Centro Tecnológico Curso de Sistemas de Informação. Proposta de Trabalho de Conclusão de Curso

Portaria Inep nº 190 de 12 de julho de 2011 Publicada no Diário Oficial de 13 de julho de 2011, Seção 1, pág. 13

Suporte à Engenharia Reversa para o ambiente SEA

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Transcrição:

Proposta de abordagem de desenvolvimento de software orientado a modelos para empresas Tânia Eiko Eishima 1, Jandira Guenka Palma 1 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011 86.057-970 Londrina PR Brasil taniaeiko@ieee.org, jgpalma@uel.br Abstract. The Model-Driven Development (MDD) is a approach that has been excelled in industry 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. Resumo. O desenvolvimento orientado a modelos (Model-Driven Development - MDD) é uma abordagem 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. 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 desatualizaçã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 tentativa de reduzir esses problemas. E acrescentar algumas vantagens como a produção a partir de modelos [5]. Os modelos são usualmente utilizados nas disciplinas das engenharias para a projeçã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 [7]. Na engenharia de software, a abordagem de desenvolvimento orientado a modelo permite que o produto produzido esteja como na modelagem realizada no seu planejamento. Já que o modelo é o primeiro e principal artefato do processo de desenvolvimento [9].

Esse trabalho propõe apresentar um metamodelo para o desenvolvimento orientado a modelo para a aplicação em empresas de software. 2. Fundamentação Teórico-Metodológica e Estado da Arte Para propor um metamodelo para desenvolvimento orientado a modelo é necessário conhecer os processos para a produção de software e os conceitos e características dessa metodologia. Assim, essa seção está dividida em duas partes: modelos de desenvolvimento de software e desenvolvimento orientado a modelos. 2.1. Modelos de Desenvolvimento de Software O desenvolvimento de software necessita que uma sequência de passos seja realizada para que se alcance um resultado de alta qualidade e dentro do prazo estabelecido. Denominamos esse conjunto de passos como processo de software [6]. O processo de software é definido como uma metodologia para as atividades, ações e tarefas. Ele pode ser definido no desenvolvimento de uma nova aplicação ou durante a expansão e modificação de uma já existente [8]. Com o objetivo de orientar o processo de software vários modelos foram propostos. Os modelos de processo de desenvolvimento de software são temas de grande destaque na engenharia de software. Eles descrevem a estrutura de todo o processo, através de etapas para a realização das tarefas [3]. Os modelos de desenvolvimento mais conhecidos: modelo cascata, modelo de processo incremental, modelo de processo evolucionário, modelo especializado e processo unificado. O modelo cascata, esquematizado na Figura 1, sugere um procedimento sequencial e sistemático [6]. O processo é constituído de fases que só podem ser inicializadas após o término da fase anterior [8]. Figura 1 Representação do Modelo Cascata [6]. ~

O modelo de processo incremental consiste em realizar fluxos paralelos de sequências de processos lineares como demonstrado na Figura 2. Cada sequência linear advém um incremento, uma versão, que oferece progressivamente maior funcionalidade ao cliente [6]. Figura 2 Modelo Incremental [6]. O desenvolvimento de software evolucionário propõe solucionar o problema através de um aprimoramento contínuo de um determinado esboço inicial. Essa iteração permite que haja feedback do cliente de forma concorrente com a implementação [8]. O modelo de processo especializado reúne características de outros modelos em contextos específicos. Exemplos: desenvolvimento baseado em componentes, modelo de métodos formais e desenvolvimento de software orientado a aspectos [6]. O processo unificado é um modelo de desenvolvimento que busca reunir as melhores características dos modelos tradicionais [6]. 2.2. Desenvolvimento Orientado a Modelos Os modelos de desenvolvimento de software citados 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 periódica do produto imposta pelo mercado. E a heterogeneidade de conhecimento entre a equipe, com conhecimento e talento 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 [9]. Com o intuito de reverter essa situação, o desenvolvimento orientado a modelos foi proposto. Essa seção está dividida em: histórico e motivação do desenvolvimento orientado a modelo; e o metamodelo. 2.2.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 primeira classe de artefatos para o desenvolvimento do software [10] Ela fornece diretrizes, linguagens, métodos, modelo de transformação e ferramentas 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 [9]. 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 altonível. Ficando protegido das complexidades geradas na implementação com diferentes plataformas [4]. 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, entenda e gere novos modelos ou código. A Figura 3 apresenta os principais elementos desse método de desenvolvimento. Figura 3 Principais elementos do MDD [5]. Essa abordagem de desenvolvimento tem como principais vantagens: produtividade, portabilidade, interoperabilidade, facilidade de manutenção e documentação, mais eficiente para a comunicação entre clientes e desenvolvedores, proporcionam a possibilidade de reutilização, otimização e corretude de códigos e conceitos [5].

2.2.2. Metamodelo A metamodelagem é um dos principais aspectos do MDD. Um metamodelo descreve a estrutura do modelo, ou seja, define os construtores de uma linguagem de modelagem e seus relacionamentos, assim como as constantes e regras de modelagem. Para a criação de um metamodelo é necessário construir uma DSL (Domain- Specific Language); validar modelos; realizar transformações de modelo; gerar código e integrar ferramentas de modelagem a um domínio [2]. A DSL é uma linguagem de especificação que oferece, através de notações e abstrações, poder expressivo focado em um problema de um domínio particular. Porém, ela não é a única abordagem de MDD. Há o do OMG (Object Management Group), a MDA (Model-Driven Architecture). Na fase de transformações os templates também serão utilizados. Um template possui uma estrutura pré-definida, mas com variáveis especificadas pelo desenvolvedor [5]. 3. Objetivo O objetivo desse trabalho é desenvolver um metamodelo seguindo a abordagem MDD, considerando as características já existentes nas empresas geolocalizadas no Arranjo Produtivo Local (APL) de Tecnologia da Informação de Londrina e Região. Para assim, possibilitar a sua utilização pelos integrantes desse centro. 4. Procedimentos Metodológicos Os procedimentos metodológicos para a elaboração desse trabalho foram divididos em seis atividades: 1- Levantamento bibliográfico: levantamento de referências relevantes para a compreensão de conceitos e verificação do estado da arte. 2- Definição do ambiente(s) ou do(s) tipo(s) de sistema(s) a qual se aplicará o MDD a ser proposto: levantamento dos modelos de desenvolvimento de software, análise e a especificação do ambiente ou do tipo de sistema alvo da proposta. 3- Estudo dos MDDs: pesquisa e análise de cases que utilizaram o desenvolvimento de software orientado a modelo. 4- Elaboração de um metamodelo para um ambiente/sistema selecionado: a partir dos dados obtidos, será possível estudar uma forma de desenvolver e propor um metamodelo que esteja de acordo com as características do nicho estabelecido. 5- Análise dos resultados: verificação do alcance do objetivo através da aplicação do metamodelo no desenvolvimento de um sistema. 6- Redação do TCC: produção da parte escrita do trabalho de conclusão de curso.

5. Cronograma de Execução As atividades seguirão o seguinte cronograma: FEV MAR ABR MAI JUN JUL AGO SET OUT 1-Levantamento bibliográfico x x x 2- Definição do ambiente x x 3- Estudo dos MDDs x x 4- Elaboração do metamodelo x x x x 5- Análise dos resultados x x 6- Redação do TCC x x x x x 6. Resultados Esperados O MDD proporciona produtividade e reutilização do software. Características de destaque em produções que almejam produção alta para cumprir deadlines [5]. A rigidez resultante dessa metodologia [2] possibilita a criação de um ambiente compartilhado, onde várias empresas possam produzir seus códigos. Ao final desse trabalho espera-se obter um metamodelo para o desenvolvimento orientado a modelo que possa ser utilizado por empresas do APL de Londrina e região. E dessa forma, propagar o uso dessa metodologia que apresenta vantagens para a competição comercial. 7. Espaço para assinaturas Londrina, 31 de março de 2014. Aluno Orientador

Referências [1] DUARTE, Francisco J. M.. Engenharia de Software Orientada aos Processos. 2002. 104 f. Dissertação (Mestrado) - Curso de Mestrado em Informática, Departamento de Departamento de Informática, Universidade do Minho, Braga, 2002. [2] FERNANDES NETO, David. CoMDD: uma abordagem colaborativa para auxiliar o desenvolvimento orientado a modelos. 2012. 87 f. Dissertação (Mestrado) - Curso de Ciências de Computação e Matemática Computacional, Departamento de Instituto de Ciências Matemáticas e de Computação - Icmc-usp, Universidade de São Paulo, São Carlos, 2012. [3] GAO, Yu, "Research on the rule of evolution of software development process model," Information Management and Engineering (ICIME), 2010 The 2nd IEEE International Conference on, vol., no., pp.466,470, 16-18 April 2010 doi: 10.1109/ICIME.2010.5477884 [4] LAZARTE, I.M.; TELLO-Leal, E.; ROA, J.; CHIOTTI, O.; Villarreal, P.D., "Model-Driven Development Methodology for B2B Collaborations," Enterprise Distributed Object Computing Conference Workshops (EDOCW), 2010 14th IEEE International, vol., no., pp.69,78, 25-29 Oct. 2010 doi: 10.1109/EDOCW.2010.21 [5] LUCRÉDIO, Daniel. Uma abordagem Orientada a Modelos para Reutilização de Software. 2009. 287 f. Tese (Doutorado) - Curso de Ciências de Computação e Matemática Computacional, Departamento de Instituto de Ciências Matemáticas e de Computação - Icmc-usp, Universidade de São Paulo, São Carlos, 2009. [6] PRESSMAN, Roger S.. Engenharia de Software: Uma abordagem profissional. 7. ed. Porto Alegre: Amgh, 2011. [7] SELIC, B., "The pragmatics of model-driven development," Software, IEEE, vol.20, no.5, pp.19,25, Sept.-Oct. 2003 doi: 10.1109/MS.2003.1231146 [8] SOMMERVILLE, Ian. Engenharia de Software. 6. ed. São Paulo: Addilson-wsley, 2000. [9] TEPPOLA, S.; PARVIAINEN, P.; TAKALO, J., "Challenges in Deployment of Model Driven Development," Software Engineering Advances, 2009. ICSEA '09. Fourth International Conference on, vol., no., pp.15,20, 20-25 Sept. 2009 doi: 10.1109/ICSEA.2009.11 [10] VARA, Juan M., ESPERANZA, Marcos, A framework for model-driven development of information systems: Technical decisions and lessons learned, Journal of Systems and Software, Volume 85, Issue 10, October 2012, Pages 2368-2384, ISSN 0164-1212, http://dx.doi.org/10.1016/j.jss.2012.04.080.