ECOSSISTEMAS DE SOFTWARE Alunos: Felyppe Rodrigues da Silva (Mestrado) Gabriella Castro Barbosa Costa (Doutorado) Professor: Toacy Cavalcante de Oliveira Disciplina: Reutilização de Software AGENDA 1. Introdução 2. Motivação 3. Ecossistemas de Software x Ecossistemas Naturais 4. Tipos de Ecossistemas 5. Exemplos 6. Modelos 7. Vantagens 8. Desvantagens e Dificuldades 9. Principais Conferências / Periódicos 10. Principais Pesquisadores 11. Possíveis Extensões 12. Referências Bibliográficas 2 1. INTRODUÇÃO Terminologia: Software Ecosystems (Ecossistemas de Software – ECOSs) Digital (Business) Ecosystem / D(B)E SECO (Software Ecosystem) Mobile Learning Ecosystems (MLES) / Mobile Ecosystem FOSS Ecosystem / Open Ecosystem 3 BARBOSA et al., 2013 1. INTRODUÇÃO Por mais esperta, criativa e inovadora que uma organização de software possa ser, existem mais pessoas mais espertas, criativas e inovadores fora desta organização, do que dentro dela. SANTOS, 2013 A essência do conceito de ECOSs encoraja um conjunto de desenvolvedores externos a utilizarem uma plataforma de software pertencente a um grupo de organizações, e a contribuírem para o desenvolvimento do produto. CAMPBELL et al., 2010 Software Ecosystem: A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them. JANSEN, 2009 4 1. INTRODUÇÃO Evolução da pesquisa em Ecossistemas de Software 5 BARBOSA e ALVES, 2011 1. INTRODUÇÃO Evolução da pesquisa em Ecossistemas de Software 6 MESSERSCHMITT e SZYPERSKI, 2003 1. INTRODUÇÃO Evolução da pesquisa em Ecossistemas de Software MANIKAS e HANSEN, 2013 7 1. INTRODUÇÃO 8 Figura 1: Trajetória da Reutilização de Software em “4 gerações” SANTOS, 2013 1. INTRODUÇÃO 4ª Geração: Sistemas Baseados em ECOSs LPS dentro de uma organização: Com a evolução de seu escopo, as suas fronteiras começam a se expandir naturalmente, ou pelo menos serem reavaliadas Estratégias de inovação aberta passam a ser fundamentais para a sua sobrevivência A plataforma de uma organização pode estar disponível para partes externas a esta e, uma vez que ela decide abrir a sua fronteira, ocorre a transição de LPS para ECOS 9 GOLDMAN e GABRIEL, 2005 2. MOTIVAÇÃO Razões para uma organização se mover em direção à abordagem de ECOS: 1. 2. Percepção de que a quantidade de funcionalidades que a empresa precisa desenvolver para satisfazer as necessidades dos clientes é muito maior do que ela pode construir A tendência à customização em massa direciona a demanda por investimento em P&D para aplicações de software de sucesso, de modo que estender o produto com o apoio de atores externos à organização parece ser um mecanismo efetivo 10 BOSCH, 2009 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Ecossistemas de Negócios Ecossistemas Naturais Ecossistemas de Software 11 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Ecossistema de Software Sustentável Pode aumentar ou manter sua comunidade de usuários / desenvolvedores durante longos períodos de tempo Pode sobreviver a mudanças, tais como novas tecnologias ou novos produtos que podem alterar a população 12 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Recursos Finitos Ecossistemas Naturais: recursos críticos como energia (alimentos), sais minerais (nutrientes), ou água são implicitamente geridos pelas leis da natureza Ecossistemas de Software: os recursos críticos são a arquitetura da plataforma, o código, tempo, dinheiro, usuários, desenvolvedores etc. Marcos regulatórios são necessários para a gestão adequada desses recursos 13 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS População Ecossistemas Naturais: é controlada pelo incentivo para as pessoas para entrar ou sair dos ecossistemas naturais Ecossistemas de Software: incentivo para que os usuários possam comprar / usar / estender produtos do ecossistema de software 14 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Interação entre os Participantes Competição Simbiose / Colaboração 15 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Transferência de Energia Ecossistemas Naturais: cadeias alimentares Ecossistemas de Software: transferência e tradução de conhecimento entre os diferentes participantes dos ecossistemas de software 16 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS Adaptação dos Indivíduos Ecossistemas Naturais: adaptação dos indivíduos às mudanças em ecossistemas naturais Ecossistemas de Software: resposta das partes interessadas para aceitar, rejeitar, ou "aprender a gostar" de produtos de software em um ecossistema de software 17 DHUNGANA et al., 2010 3. ECOSSISTEMAS DE SOFTWARE X ECOSSISTEMAS NATURAIS 18 DHUNGANA et al., 2010 4. TIPOS DE ECOSSISTEMAS E as interseções ? Ecossistemas de Negócios ? Ecossistemas Naturais Ecossistemas de Software 19 4. TIPOS DE ECOSSISTEMAS Ecossistemas Sociais Pessoas se relacionando sem fins lucrativos Nenhum produto é gerado, há apenas troca de informações 20 4. TIPOS DE ECOSSISTEMAS Ecossistemas de Negócios Empresas que dependem de terceiros para gerar seus produtos Está diretamente relacionado com linha de produto 21 4. TIPOS DE ECOSSISTEMAS Ecossistemas de Software Interação dos membros do ecossistema para gerar um produto de software 22 4. TIPOS DE ECOSSISTEMAS E as interseções? Ocorre quando um determinado tipo de ecossistema assume uma abordagem que o faz interagir com os demais Exemplo A Dell (Ecossistema de Negócios), quando lançou uma enquete aos seus clientes perguntando sobre melhorias em seus equipamentos, adotou uma abordagem de Ecossistema Social 23 5. EXEMPLOS Ecossistema SPB 24 http://www.softwarepublico.gov.br/5cqualibr/xowiki/Ecossistema 5. EXEMPLOS Ecossistema SPB 25 http://www.softwarepublico.gov.br/5cqualibr/xowiki/Ecossistema 5. EXEMPLOS Ecossistema SAP 26 http://www.softwarepublico.gov.br/5cqualibr/xowiki/Ecossistema 5. EXEMPLOS Ecossitema Android Interdependência entre usuários, desenvolvedores e fabricantes de equipamentos Um não pode existir sem o outro Os usuários compram dispositivos e aplicações Fabricantes de equipamentos vendem dispositivos, às vezes junto com aplicações Desenvolvedores compram dispositivos, em seguida, fazem/ vendem aplicativos. 27 5. EXEMPLOS Eclipse Não é apenas uma das principais IDEs Java É considerado como um ecossistema composto por vários projetos de diversas características Em meados de 1998 a IBM investiu na criação de um ambiente de desenvolvimento que fosse eficiente para trabalhar com servlets e desenvolveu o Websphere Studio Evoluiu e em 2001 se tornou a base para o lançamento da primeira versão do Eclipse. 28 http://www.yaw.com.br/artigos/view/eclipse-o-ecosistema-por-tras-do-ide/ 5. EXEMPLOS Eclipse A IBM abriu e doou o código do projeto para a comunidade de fornecedores de ferramentas de software Foi formado um consórcio de empresas (IBM, Borland, SuSe e outras) para controlar a evolução do Eclipse e a ferramenta começou a evoluir rapidamente Em 2004, com objetivo de criar uma corporação sem fins lucrativos e aumentar a participação de parceiros e fornecedores de extensões, foi criada a Eclipse Foundation 29 http://www.yaw.com.br/artigos/view/eclipse-o-ecosistema-por-tras-do-ide/ 5. EXEMPLOS Eclipse O ecossistema Eclipse é formado por mais 250 projetos. EMF: é um framework de modelagem e geração de código que permite a construção e integração de outras aplicações baseados em um modelo de dados AJDT: conjunto de ferramentas para desenvolvimento com AspectJ WTP: plataforma composta por funcionalidades e ferramentas para o desenvolvimento Web MotoDEV: adaptação sobre a plataforma Eclipse feita pela Motorola para desenvolvimento Mobile, que hoje é chamada Eclipse Mobile 30 http://www.yaw.com.br/artigos/view/eclipse-o-ecosistema-por-tras-do-ide/ 5. EXEMPLOS 31 MANIKAS e HANSEN, 2013 6. MODELOS Relembrando os slides anteriores, JANSEN et al., 2009 definiu um Ecossistema de Software da seguinte maneira: “Um grupo de atores funcionando como uma unidade e interagindo com um mercado compartilhado para software e serviços, em conjunto com a relação que os regem”. Adotaremos esta definição daqui por diante em virtude das notações que serão introduzidas. 32 6. MODELOS a) Software Supply relacionamentos. Network (SSN): b) SECO: SSNs e seus relacionamentos. c) SECOs: SECOs e seus relacionamentos. Atores e seus 33 BOUCHARAS et al., 2009 6. MODELOS Atualmente não existe uma modelagem formal e padrão para SECOs, em virtude disso nos deparamos muitas vezes com META-MODELOS pouco intuitivos e divergentes. 34 6. MODELOS 35 PETTERSSON et al., 2010 6. MODELOS 36 SANTOS, 2013 6. MODELOS BOUCHARAS et al., 2009 propõe duas formas de modelagem distintas para SECOs a fim de criar uma padronização que seja ao mesmo tempo útil e simples. Uma das formas se baseia na menor porção de camada do SECO e outra no produto pelo qual o SECO existe: Product Deployment Context (PDC): O ponto de interesse do SECO (motivo pelo qual o SECO existe). Software Supply Network (SSN): A camada mais interna do SECO (atores e seus relacionamentos). 37 6. MODELOS Product Deployment Context (PDC) Nomenclatura 38 BOUCHARAS et al., 2009 6. MODELOS Product Deployment Context (PDC) Exemplo 39 BOUCHARAS et al., 2009 6. MODELOS Software Supply Network (SSN) Nomenclatura 40 BOUCHARAS et al., 2009 6. MODELOS Software Supply Network (SSN) Nomenclatura 41 BOUCHARAS et al., 2009 6. MODELOS Software Supply Network (SSN) Exemplo BOUCHARAS et al., 2009 42 6. MODELOS 43 BOUCHARAS et al., 2009 7. VANTAGENS Aumentar o valor da oferta do núcleo da LPS para usuários Gerar atratividade em novos usuários Aumentar a rigidez da plataforma, ou seja, tornar mais difícil a mudança de plataforma Acelerar a produção através da inovação aberta Reduzir o custo total despendido pelo proprietário da plataforma do ECOS por “comoditizar” funcionalidade ao compartilhar a sua manutenção com parceiros no ECOS Aumentar o valor agregado à plataforma, necessidade de gastos com desenvolvedores sem a 44 8. DESVANTAGENS E DIFICULDADES Falta de uma modelagem padrão para SECOs Grande parte das modelagens existentes sãomuito informais, pouco intuitivas e não oferecem muitos recursos para modelar toda a complexidade existente em ECOS Falta de uma ferramenta para a construção dos modelos existentes 45 9. PRINCIPAIS CONFERÊNCIAS ICSR - International Conference on Software Reuse O ICSR é a conferência pioneira em sua área, teve início em 1990 quando ainda atendia pelo nome de IWSR (International Workshop on Software Reuse) vindo a mudar para o nome atual em 1994 na edição que aconteceu na cidade do Rio de Janeiro. Durante a história da conferência, alguns artigos sobre ecossistemas de software passaram por ela, no entanto, o foco da conferência não é exclusivamente este. A conferência se propõe a experimentar novas tecnologias e ideias inovadoras na área de reutilização de software. Este ano a conferência acontecerá em Pisa na Itália entre 18 e 21 de Junho e a submissão de artigos já foi encerrada. Mais informações: http://softeng.polito.it/ICSR13/ 46 9. PRINCIPAIS CONFERÊNCIAS IWSECO - International Workshop on Software Ecosystems O IWSECO está este ano em sua quinta edição e será realizado Postdam na Alemanha. Teve início em setembro de 2009 na Virgnínia (USA) e depois disso todas as suas edições aconteceram na Europa. O IWSECO apesar de nascer com base no ICSR, possui uma linha de pesquisa mais didática, voltada para o entendimento da realidade sobre ecossistemas de software. Alguns dos tópicos comumente abordados na conferência são: Modelagem de SECOs, Práticas importantes em SECOs, Experiências de mercado em SECOs, Modelos de negócios, Criação de SECOs, Impactos econômicos com base em SECOs, dentre outros. Este ano a conferência acontecerá no dia 11 de Junho e a submissão de artigos já foi encerrada. Mais informações: http://iwseco.org/ 47 9. PRINCIPAIS CONFERÊNCIAS ICSOB - International Conferênce on Software Business O ICSOB está este ano em sua quarta edição e apesar de tratar também de ecossistemas de software, seu foco é primordialmente em melhoria de técnicas de negócios com o auxílio de softwares. Este ano a conferência acontecerá em conjunto com o IWSECO em Postdam na Alemanhã entre os dias 11 e 14 de Junho e a submissão de artigos também já foi encerrada. Mais informações: http://www.icsob.org/ 48 9. PRINCIPAIS CONFERÊNCIAS International EcoSystems Conference on Management of Emergent International Conference on Digital Ecosystem Technologies Software Product Line Conference International Conference on Software Engineering International Conference on Global Software Engineering Workshop de Desenvolvimento Distribuído de Software Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização Simpósio Brasileiro de Engenharia de Software Digital PERIÓDICOS Journal of Systems and Software Information and Software Technology IEEE Software Engineering Journal 49 10. PRINCIPAIS PESQUISADORES 50 10. PRINCIPAIS PESQUISADORES 51 10. PRINCIPAIS PESQUISADORES 52 10. PRINCIPAIS PESQUISADORES 53 10. PRINCIPAIS PESQUISADORES 54 10. PRINCIPAIS PESQUISADORES 55 11. POSSÍVEIS EXTENSÕES Análise dos modelos propostos existentes e definição de um modelo a ser usado para especificação um determinado ecossistema. 56 12. REFERÊNCIAS BIBLIOGRÁFICAS BARBOSA, O., SANTOS, R.P., ALVES, C., WERNER, C., JANSEN, S., 2013, “A Systematic Mapping Study on Software Ecosystems through a Threedimensional Perspective”. In: JANSEN, S., CUSUMANO, M. & BRINKKEMPER, S. (eds.), Software Ecosystems: Analyzing and Managing Business Networks in the Software Industry, pp. 59-81. Cheltenham, UK, and Northampton, MA, USA, Edward Elgar Publishing. BOSCH, J., 2009, “From Software Product Lines to Software Ecosystem”, In: Proceedings of 13th International Software Product Line Conference, pp. 1-10, San Francisco, CA, USA, August. BOUCHARAS, V., JANSEN, S., BRINKKEMPER, S., 2009, “Formalizing Software Ecosystem Modeling”, In: Proceedings of the 1st International Workshop on Open Component Ecosystems, ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 41-50, Amsterdam, The Netherlands, August. CAMPBELL, P.R.J., AHMED, F., BOSCH, J. & JANSEN, S., 2010, “2nd International Workshop on Software Ecosystems (EcoSys)”, In: Proceedings of the Fourth European Conference on Software Architecture, 2nd International Workshop on Software Ecosystems, pp. 63-64, Copenhagen, Denmark, August. DHUNGANA, D., GROHER, I., SCHLUDERMANN, E., BIFFL, S., 2010, “Software Ecosystems vs. Natural Ecosystems: Learning from the Ingenious Mind of Nature”, In: Proceedings of the 4th European Conference on Software Architecture, 2nd International Workshop on Software Ecosystems, pp. 96-102, 57 Copenhagen, Denmark, August. 12. REFERÊNCIAS BIBLIOGRÁFICAS GOLDMAN, R., GABRIEL, R.P., 2005, Innovation Happens Elsewhere. Morgan Kaufmann. JANSEN, S., FINKELSTEIN A., BRINKKEMPER, S., 2007, “Providing transparency in the business of software: A modelling technique for software supply networks”. In Proceedings of the 8th IFIP Working Conference on Virtual Enterprises, pages 677-686. JANSEN, S., FINKELSTEIN, A., BRINKKEMPER, S., 2009, “A Sense of Community: A Research Agenda for Software Ecosystems”, In: Proceedings of the 31st International Conference on Software Engineering, New and Emerging Research Track, pp. 187-190, Vancouver, BC, Canada, May. MESSERSCHMITT, D. G., SZYPERSKI, C., 2003, “Software Ecosystem: Understanding an Indispensable Technology and Industry”. The MIT Press. PETTERSSON, O., SVENSSON, M., GIL, D., ANDERSSON, J., MILRAD, M., 2010, “On the Role of Software Process Modeling in Software Ecosystem Design”, In: Proceedings of the 4th European Conference on Software Architecture, 2nd International Workshop on Software Ecosystems, pp. 103-110, Copenhagen, Denmark, August. SANTOS, R. P., 2013, Engenharia e Gerenciamento de Ecossistemas de Software. Exame de Qualificação de Doutorado, COPPE/UFRJ, Rio de Janeiro, RJ, Brasil. 58 ECOSSISTEMAS DE SOFTWARE Alunos: Felyppe Rodrigues da Silva (Mestrado) Gabriella Castro Barbosa Costa (Doutorado) Professor: Toacy Cavalcante de Oliveira Disciplina: Reutilização de Software