WDES - Instituto de Computação - Universidade Federal de Alagoas

Transcrição

WDES - Instituto de Computação - Universidade Federal de Alagoas
Congresso Brasileiro de Software: Teoria e Prática
28 de setembro a 03 de outubro de 2014 – Maceió/AL
VIII Workshop de Desenvolvimento Distribuído de Software,
Ecossistemas de Software e Sistemas de Sistemas
WDES 2014
Anais
WDES
Volume 02
ISSN 2178-6097
Anais
WDES 2014
VIII Workshop de Desenvolvimento Distribuído de
Software, Ecossistemas de Software e Sistemas de
Sistemas
COORDENADORES DO COMITÊ DE PROGRAMA
Cláudia Werner - Universidade Federal do Rio de Janeiro (UFRJ)
Elisa Yumi Nakagawa - Universidade de São Paulo (USP)
Sabrina Marczak - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
COORDENAÇÃO DO CBSOFT 2014
Baldoino Fonseca - Universidade Federal de Alagoas (UFAL)
Leandro Dias da Silva - Universidade Federal de Alagoas (UFAL)
Márcio Ribeiro - Universidade Federal de Alagoas (UFAL)
REALIZAÇÃO
Universidade Federal de Alagoas (UFAL)
Instituto de Computação (IC/UFAL)
PROMOÇÃO
Sociedade Brasileira de Computação (SBC)
PATROCÍNIO
CAPES, CNPq, INES, Google
APOIO
Instituto Federal de Alagoas, Aloo Telecom, Springer, Secretaria de Estado do Turismo
AL, Maceió Convention & Visitors Bureau, Centro Universitário CESMAC e Mix Cópia
2
WDES
PROCEEDINGS
Volume 02
ISSN 2178-6097
AutoSoft 2014
VIII Workshop de Desenvolvimento Distribuído de
Software, Ecossistemas de Software e Sistemas de
Sistemas
PROGRAM CHAIR
Cláudia Werner - Universidade Federal do Rio de Janeiro (UFRJ)
Elisa Yumi Nakagawa - Universidade de São Paulo (USP)
Sabrina Marczak - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
CBSOFT 2014 GENERAL CHAIRS
Baldoino Fonseca - Universidade Federal de Alagoas (UFAL)
Leandro Dias da Silva - Universidade Federal de Alagoas (UFAL)
Márcio Ribeiro - Universidade Federal de Alagoas (UFAL)
ORGANIZATION
Universidade Federal de Alagoas (UFAL)
Instituto de Computação (IC/UFAL)
PROMOTION
Sociedade Brasileira de Computação (SBC)
SPONSORS
CAPES, CNPq, INES, Google
SUPPORT
Instituto Federal de Alagoas, Aloo Telecom, Springer, Secretaria de Estado do Turismo AL, Maceió Convention & Visitors Bureau, Centro Universitário CESMAC and Mix Cópia
3
WDES
Autorizo a reprodução parcial ou total desta obra, para fins acadêmicos, desde que citada a fonte
4
WDES
Apresentação
Visando unir competências e promover a integração entre áreas de pesquisa
correlatas, o Workshop de Desenvolvimento Distribuído de Software (WDDS), em sua
oitava edição, amplia a sua abrangência, dando origem ao Workshop de
Desenvolvimento Distribuído de Software, Ecossistemas de Software e Sistemas de
Sistemas (WDES 2014). Esse evento constitui um fórum para apresentação e discussão
de resultados e experiências de pesquisadores e praticantes das áreas de
Desenvolvimento Distribuído de Software (DDS), Ecossistemas de Software (ECOS) e
Sistemas de Sistemas (SoS), visando a geração de conhecimento que possa viabilizar
projetos de sucesso nessas três áreas e/ou nas suas relações. Esse movimento
começou durante as discussões realizadas nas edições de 2012 e 2013 do WDDS, o que
resultou na publicação de artigos que relacionaram as áreas de pesquisa.
O Comitê Diretivo do WDES 2014 é constituído por três pesquisadores de cada uma
das três áreas envolvidas no workshop. Por sua vez, o Comitê de Programa do WDES
2014 é formado por 16 pesquisadores de instituições do Brasil (9) e do exterior (7),
com atuação e produção relevantes nas áreas de pesquisa envolvidas no workshop. Os
membros do Comitê de Programa conduziram um processo rigoroso de revisão, sendo
que cada artigo foi avaliado por pelo menos três membros. Além disso, visando
ampliar as discussões durante o workshop, esta edição conta também com artigos
convidados, escritos por especialistas das áreas.
É com satisfação que damos as boas-vindas aos autores e apresentadores de artigos,
da academia e da indústria. Também recebemos com grande prazer os demais
participantes do CBSoft 2014, que gostaríamos de convidar a tomar parte ativamente
das discussões e momentos de integração proporcionados pelo workshop.
Adicionalmente, gostaríamos de agradecer a todos os demais autores que
submeteram seus artigos, aos membros do Comitê Diretivo, Comitê de Programa e
Comitê de Organização, e aos organizadores e patrocinadores do CBSoft 2014 pelo
suporte na realização deste workshop.
Esta edição é organizada conjuntamente pela Universidade Federal do Rio de Janeiro
(COPPE/UFRJ), Universidade de São Paulo (ICMC/USP) e Pontifícia Universidade
Católica do Rio Grande do Sul (PUCRS), sob a coordenação das professoras Cláudia
Werner, Elisa Yumi Nakagawa e Sabrina Marczak, respectivamente. O Comitê de
Organização conta com o apoio dos doutorandos Rodrigo Pereira dos Santos, Lucas
Bueno Ruas de Oliveira, Marcelo Benites Gonçalves e Bernardo José Estácio. O evento
é realizado no Centro de Convenções Ruth Cardoso, em Maceió, Alagoas, no dia 28 de
setembro, em conjunto com o V Congresso Brasileiro de Software: Teoria e Prática
(CBSoft 2014).
Esperamos que tenham uma ótima estada em Maceió
Cláudia, Elisa e Sabrina
Organizadoras do WDES 2014
5
WDES
Comitês Técnicos / Program Committee
Comitê Diretivo / Steering Committee
Carina Frota Alves - Universidade Federal de Pernambuco (UFPE)
Cláudia Werner - Universidade Federal do Rio de Janeiro (UFRJ)
Eduardo Santana de Almeida - Universidade Federal da Bahia (UFBA)
Elisa Hatsue Moriya Huzita - Universidade Estadual de Maringá (UEM)
Elisa Yumi Nakagawa - Universidade de São Paulo (USP)
Flavio Oquendo - Université de Bretagne-Sud, France (UBS)
José Carlos Maldonado - Universidade de São Paulo (USP)
Renata Pontin de Mattos Fortes - Universidade de São Paulo (USP)
Sabrina Marczak - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Comitê do programa / Program Committee
Vander Alves - Universidade de Brasília (UnB)
Jan Bosch - Chalmers University of Technology, United States of America
USAParis Avgeriou - University of Groningen, The Netherlands
Heitor Costa - Universidade Federal de Lavras (UFLA)
Daniela S. Cruzes - SINTEF, Norway
Carlos E. Cuesta - Rey Juan Carlos University, Spain
Arilo Claudio Dias-Neto - Universidade Federal do Amazonas (UFAM)
Khalil Drira - LAAS-CNRS, France
Fernando Figueira - Universidade Federal do Rio Grande do Norte (UFRN)
Slinger Jansen - Utrecht University, The Netherlands
Alexandre L'Erario - Universidade Federal Tecnológica do Paraná (UTFPR)
John Mcgregor - Clemson University, United States of America
Leonardo Murta - Universidade Federal Fluminense (UFF)
Rafael Prikladnicki - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
Tania Tait - Universidade Federal do Rio Grande do Norte (UFRN)
Guilherme Travassos - Universidade Federal do Rio de Janeiro (UFRJ)
Revisores Adicionais / Additinal Reviewers
Dênis Leonardo Zaniro - Universidade de São Paulo (USP)
6
WDES
Comitê organizador / Organizing Committee
COORDENAÇÃO GERAL
Baldoino Fonseca - Universidade Federal de Alagoas (UFAL)
Leandro Dias da Silva - Universidade Federal de Alagoas (UFAL)
Márcio Ribeiro - Universidade Federal de Alagoas (UFAL)
COMITÊ LOCAL
Adilson Santos - Centro Universitário Cesmac (CESMAC)
Elvys Soares - Instituto Federal de Alagoas (IFAL)
Francisco Dalton Barbosa Dias - Universidade Federal de Alagoas (UFAL)
COORDENADORES DO WDES 2014
Cláudia Werner - Universidade Federal do Rio de Janeiro (UFRJ)
Elisa Yumi Nakagawa - Universidade de São Paulo (USP)
Sabrina Marczak - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
7
WDES
Índice / Table of Contents
Um Framework para Gerenciamento de Riscos em Projetos de
Desenvolvimento Distribuído de Software
Jefferson Barbosa, Ivaldir de Farias Junior, Sabrina Marczak, Rodrigo Santos e
Hermano Moura
9
On the Identification of Factors that Promote High-Performance
Projects in Distributed Development
Sabrina Marczak, Marcelo Perin, Rafael Prikladnicki e Christiano Ayub
17
SECOView: Uma Abordagem Baseada em Visões para Apoiar a
Governança de Ecossistemas de Software
Yuri Abreu, Rodrigo Santos, Benno Albert e Claudia Werner
25
Ecosystem Business Models and Architectures
John McGregor e Simone Amorim
33
Qualidade em Ecossistemas de Software: Desafios e Oportunidades
de Pesquisa
Rodrigo Santos, George Valença, Davi Viana, Bernado Estácio, Awdren
Fontão, Sabrina Marczak, Claudia Werner, Carina Alves, Tayana Conte e
Rafael Prikladnicki
41
Towards the Dynamic Evolution of Context-based Systems-ofSystems
Elisa Yumi Nakagawa, Rafael Capilla, Francisco Diaz e Flavio Oquendo
45
Towards the Evaluation of System-of-Systems Software
Architectures
Daniel Soares, Brauner Oliveira, Milena Guessi, Flavio Oquendo, Marcio
Eduardo Delamaro e Elisa Yumi Nakagawa
53
On the Relations between Systems-of-Systems and Software
Ecosystems
Rodrigo Santos, Marcelo Gonçalves, Elisa Yumi Nakagawa e Claudia Werner
58
8
WDES
Um Framework para Gestão de Riscos em Projetos de
Desenvolvimento Distribuído de Software
Jefferson Ferreira Barbosa¹, Ivaldir de Farias Junior¹, Sabrina Marczak²,
Rodrigo Pereira dos Santos³, Hermano Moura¹
¹Centro de Informática – Universidade Federal de Pernambuco (UFPE)
²FACIN – Pontifícia Universidade Católica de Porto Alegre (PUCRS)
³PESC/COPPE – Universidade Federal do Rio de Janeiro (UFRJ)
{jfb2, ihfj, hermano}@cin.upfe.br, [email protected],
[email protected]
Abstract. Risk management is considered a critical factor for Distributed Software
Development (DSD) projects since the lack of proper identification of the project’s risks
can determine its success or failure. This paper presents a framework for risk
management in DSD projects that uses agile practices. The framework has been defined
based in literature and has been preliminarily evaluated with about 30 software
professionals who work with distributed projects. Results from this preliminary
evaluation indicate that the framework contributes to DSD area.
Resumo. O gerenciamento de riscos é um dos fatores críticos para projetos de
Desenvolvimento Distribuído de Software (DDS) visto que a identificação de riscos
determina as incertezas que podem levar ao seu sucesso ou fracasso. Este artigo
apresenta um framework para a gestão de riscos em projetos DDS utilizando práticas
ágeis. O framework foi desenvolvido com base na literatura. Realizou-se uma avaliação
preliminar com aproximadamente 30 profissionais da área de TI que trabalham com
DDS. Os resultados indicam que o framework contribui para a área de DDS.
1. Introdução
O Desenvolvimento Distribuído de Software (DDS) tem atraído a atenção da indústria
nos últimos anos, levando organizações a mudarem a maneira como gerenciam seus
negócios em busca de menores custos, melhores profissionais, entre outras vantagens
(Audy & Prikladnicki, 2007). Projetos DDS trazem muitas vantagens, porém também
têm desafios, tais como a dificuldade de comunicação e a gestão de riscos, dentre outros
(Zanoni & Audy, 2003; Leme et al., 2007). Nestes projetos, os riscos tendem a ser
dinâmicos devido à multiplicidade dos vários aspectos, i.e., múltiplas localizações,
culturas, equipes, padrões e tecnologias (Mudumba & Lee, 2010).
Assim, frameworks, processos, boas práticas e ferramentas associadas à gestão
de riscos têm sido propostos para melhorar a identificação, análise, monitoramento e
controle de riscos no gerenciamento de projetos DDS e melhorar a qualidade do produto
de software desenvolvido (Persson et al., 2009). Nessa direção, este trabalho tem como
objetivo investigar a seguinte questão de pesquisa: “A concepção de um framework
composto por práticas ágeis pode auxiliar a gestão de riscos em projetos DDS?”
2. Gerenciamento de Riscos em DDS
Um risco é uma probabilidade de alguma circunstância adversa acontecer (Sommerville,
2007). O risco pode afetar planejamento, recursos financeiros, qualidade do processo e,
9
WDES
consequentemente, a qualidade do produto e do desempenho do projeto de software.
Por isso, a gestão dos riscos em projetos de software é muito importante, seja o projeto
co-localizado ou distribuído. A gestão deve contemplar os processos de identificação,
análise e resposta aos riscos do projeto para minimizar as consequências de eventos
negativos (Zanoni & Audy, 2003).
No DDS, a gestão de riscos recebe grande destaque pois pode levar um projeto
ao sucesso ou fracasso (Audy & Prikladnicki, 2007). Estes autores argumentam que
riscos podem ser percebidos de duas formas em projetos DDS: a primeira diz respeito
aos “fatores críticos de sucesso” de risco e a segunda foca na visão da “gestão de riscos”
como atividade crítica na organização para o sucesso destes projetos. Outros desafios
também foram desencadeados pela gestão de riscos em projetos DDS: tempo dedicado à
gestão propriamente dita; envolvimento dos stakeholders na identificação dos riscos; uso
de métodos para avaliação quantitativa de riscos; treinamento para a correta
identificação dos riscos; falta de um processo para essa gestão, adaptado à realidade da
organização; falta de um planejamento formal de resposta aos riscos; ausência de
incentivo à constante proatividade e comunicação; utilização de uma ferramenta de apoio
ao processo; manutenção de um histórico de riscos de projetos anteriores, entre outros
(Keshlaf & Hashim, 2000; Hossain et al., 2009; Persson et al., 2009).
Nesse contexto, o desenvolvimento ágil tem chamado atenção dos praticantes de
DDS por causa de sua flexibilidade com relação às frequentes tentativas aplicadas para
dinamizar a gestão do projeto de forma proativa (Hossain et al., 2009). As práticas ágeis
têm sido adotadas como forma de melhorar o desempenho de projetos distribuídos no
que tange especialmente a melhoria da comunicação, gestão de mudanças, riscos,
requisitos etc. (Šmite et al., 2010). Nesse sentido, uma visão clara da gestão de riscos
representa um grande desafio à aplicação dessas práticas para a gestão do projeto em
geral, bem como que seja realizada com base na perspectiva ágil (Hossain et al., 2009).
3. Trabalhos Relacionados
Keshlaf & Hashim (2000) definiram um modelo para gestão de riscos denominado
SoftRisk. Este modelo se baseia na ideia de documentação, utilização de dados históricos
e foco nos principais riscos com o objetivo de reduzir esforço e tempo na gestão e
mitigação desses riscos. Seus passos são: identificação dos riscos; probabilidade dos
riscos e estimativa de magnitude; documentação dos riscos; análise; priorização dos dez
principais riscos; monitoramento; controle; e execução de operação estatística. SoftRisk
trata a gestão de riscos em projetos com dispersão geográfica e em equipes virtuais.
Porém, trata de forma parcial a definição de papéis dos stakeholders nesta gestão. Por
fim, não discute questões impostas por diferenças culturais em DDS, o que é apontado
como uma limitação do modelo.
O Framework Integrativo conhecido como Geographically Distributed Software
Projects – GDSP (Persson et al., 2009) identificou áreas e fatores de risco envolvidos no
gerenciamento de projetos DDS. A contribuição desses autores foi elaborada a partir de
uma revisão sistemática da literatura, que sintetizou riscos e técnicas de resolução. As
áreas de risco identificadas foram: distribuição das tarefas, gerenciamento do
conhecimento, distribuição geográfica, estrutura de colaboração, distribuição cultural,
relacionamentos entre os stakeholders, infraestrutura de comunicação e configuração da
10
WDES
tecnologia. Esse framework trata o envolvimento dos stakeholders e os papéis que eles
têm na gestão de riscos de maneira superficial, ou seja, não existe uma sistematização da
identificação dos atores e suas atribuições/responsabilidades dentro do projeto.
Hossain et al. (2009) identificaram áreas e fatores de risco envolvidos no
gerenciamento de projetos DDS utilizando práticas de desenvolvimento ágil de software.
A contribuição de Hossain et al. (2009) veio de uma revisão sistemática da literatura
sobre o uso de práticas de Scrum em projetos DDS. Como resultado, foram identificados
desafios, áreas de risco, estratégias e práticas atuais para a mitigação desses riscos e, em
seguida, foi proposto um framework conceitual. Esse framework conceitual é formado
por dois componentes, classificados em: principais áreas de risco e estratégias atuais para
a redução desses riscos. Na visão dos autores, este framework precisa evoluir para
manter uma comunicação contínua, i.e., divulgação constante dos riscos do projeto, pois
esse é um fator crítico de sucesso.
A Tabela 1 traz uma síntese dos trabalhos relacionados. Os critérios de
comparação foram selecionados com base em (Ramesh et al., 2006), (Keshlaf & Riddle,
2010) e (Šmite et al., 2010). As abordagens analisadas trazem significantes resultados à
gestão de riscos em projetos DDS, porém ainda existem lacunas a serem tratadas. O
presente trabalho define o framework RADS para gestão de riscos em projetos DDS
como forma de preenchimento das lacunas não atendidas pelas abordagens apresentadas
nessa seção. RADS tem seu diferencial na utilização de práticas ágeis na gestão de
riscos, clara identificação dos atores envolvidos e premissa de que a gestão de riscos
precisa de uma comunicação contínua no decorrer do projeto, por meio de relatórios,
reuniões, dentre outros meios formais para as partes interessadas.
Tabela 1 – Comparação dos trabalhos relacionados
SoftRisk
(Keshlaf &
Hashim, 2000)
AP
N
AP
AP
N
Critérios
Contexto DDS
Utilização de práticas ágeis
Definição dos papéis/Envolvimento dos Stakeholders
Definição de papéis na gestão de risco
Comunicação contínua no projeto
GDSP-RM
(Persson et
al., 2009)
A
N
AP
AP
AP
Framework
Conceitual (Hossain
et al., 2009)
A
A
N
N
AP
A = Atende, AP = Atende parcialmente, N = Não atende
4. Metodologia
A pesquisa conduzida para a definição do framework foi organizada em quatro fases
(Figura 1). O procedimento para fundamentar a proposta do framework foi a realização
de uma revisão bibliográfica nas principais bibliotecas digitais na Fase 1 (i.e., IEEE,
ACM e Scopus). Na Fase 2, foi realizada uma pesquisa sobre os principais trabalhos
relacionados à questão de pesquisa. Baseado nos resultados dessas fases, na Fase 3,
definiu-se a versão inicial do framework. Finalmente, na Fase 4, executou-se um survey
com especialistas em DDS com experiência em projetos ágeis, com o objetivo de avaliar
se o mesmo pode auxiliar na gestão de riscos em projetos DDS, analisar a aplicabilidade
do framework em projetos reais e identificar oportunidades de melhoria em relação à sua
estrutura. O questionário do survey avaliou preliminarmente a versão inicial do
framework. O resultado desta avaliação é apresentado na Seção 6.
11
WDES
Figura 1 – Metodologia da Pesquisa
5. O Framework para Gestão de Riscos em Projetos de DDS
O framework RADS (Figura 2), acrônimo para “Risco, Ágil, Distribuído, Software”, foi
construído inicialmente a partir da literatura e posteriormente objeto de análise crítica de
especialistas em desenvolvimento ágil e DDS. Com a perspectiva de ser um framework
de fácil utilização, optou-se por não impor uma técnica mais adequada do que outra para
definir seus componentes. O RADS é composto por três áreas: i) gestão global de riscos,
ii) gestão de riscos em equipes distribuídas e iii) identificação dos atores na gestão de
riscos. Cada área é composta por subáreas e elementos, descritos na Tabela 2.
Figura 2 – Representação gráfica do framework RADS
O framework RADS utiliza práticas ágeis para o tratamento de riscos em DDS. O
RADS se inicia com a área de Gestão Global de Riscos, que busca consolidar todos os
riscos identificados inicialmente pelas equipes distribuídas do projeto (centralizar as
informações) e divulgar essas informações para as partes interessadas. Por sua vez, na
área de Gestão de Riscos em Equipes Distribuídas, busca-se realizar a identificação dos
riscos durante as iterações do projeto. Além disso, são contempladas a análise, mitigação
e aplicação das estratégias de riscos para o projeto em questão. Por fim, têm-se a área de
Identificação de Papéis na Gestão de Riscos, definidos pelo framework.
12
WDES
Tabela 2 – Descrição das áreas, subáreas e elementos do RADS
Área
Gestão Global
de Risco
Subárea
Reunião Global
Planejamento da
Sprint
Gestão de Risco
em Equipes
Distribuídas
Execução da
Sprint
Revisão da
Sprint
Identificação de
Papéis na
Gestão de Risco
-
Elemento
Descrição do Elemento
Reunião Global de
Consolidação
Consolidação global dos riscos identificados pelas equipes distribuídas. Esta reunião
tem a supervisão do Gerente Global de Riscos.
Reunião Global de
Divulgação
Divulgação dos riscos identificados e priorizados para a próxima sprint para as
equipes geograficamente dispersas.
Identificação dos
Stakeholders
Identificação e participação dos vários stakeholders envolvidos no processo de gestão
de riscos independente da dispersão geográfica desse stakeholder.
Identificação dos
Riscos
Processo de identificação dos riscos por parte da equipe distribuída.
(Boehm, 1991; Keshlaf & Hashim, 2000;
Hossain et al., 2009; PMI, 2013)
Processo de priorização da lista criada no passo de Identificação de Riscos.
(Boehm, 1991; Keshlaf & Hashim, 2000;
PMI, 2013)
Análise dos
Riscos
Referências
(Persson et al., 2009)
(Nyfjord & Kajko-Mattsson, 2007;
Persson et al., 2009; PMI, 2013)
Planejamento de
Resposta aos Riscos
Processo de definição, documentação e inclusão no backlog da sprint ou backlog do
projeto das ações necessárias para aceitação, transferência e mitigação dos riscos
identificados e priorizados nos passos anteriores.
(Boehm, 1991; Ebert et al., 2008;
Hossain et. al., 2009);
Aplicação das Estratégias
de Mitigação dos Riscos
Execução das estratégias de mitigação de riscos alocadas para as equipes distribuídas
dentro da execução da sprint.
(Nelson et al., 2008)
Identificação de
Novos Riscos
Processo de revisão da lista de riscos após a execução de uma sprint, pois novos
riscos podem surgir.
(Boehm, 1991; Nelson et al., 2008)
Status do Plano de
Mitigação dos Riscos
Neste passo, é apresentado o status do plano de mitigação de riscos, informando se
houve necessidade de execução do plano e atualização de estratégias de mitigação
para novos riscos identificados na revisão da sprint.
(Nelson et al., 2008)
Gerente Global do Projeto
Papel responsável pela coordenação da gestão de riscos no nível global, ou seja, de
todo o projeto.
(Nelson et al., 2008;
Ribeiro & Gusmão, 2008)
Gerente Global de Riscos
Papel responsável por gerenciar as atividades de priorização, consolidação e
divulgação dos riscos identificados pelas equipes para o Gerente Global do Projeto.
(Nelson et al., 2008;
Ribeiro & Gusmão, 2008)
Analista de Riscos
Equipes Distribuídas
Cliente
Papel responsável por gerenciar as atividades de risco das equipes.
Equipes responsáveis pela identificação de stakeholders, de riscos, análise dos riscos,
e documentação das estratégias de mitigação das equipes distribuídas.
Responsável por fazer a validação e priorização dos riscos.
13
(Nyfjord & Kajko-Mattsson, 2007;
Persson et al., 2009; PMI, 2013)
(Nelson et al., 2008)
Melhoria sugerida pelos especialistas
após aplicação do questionário.
WDES
6. Avaliação Preliminar do Framework RADS
Realizou-se um survey com o objetivo de avaliar, com profissionais da área de TI com
experiência em projetos DDS e em projetos ágeis, se o framework atende ao objetivo de
auxiliar na gestão de riscos em projetos DDS. Avaliou-se ainda o uso de práticas ágeis
para potencializar a gestão de riscos neste tipo de projeto, dado que o framework é
composto por este tipo de práticas. O questionário de avaliação online foi enviado para
71 pesquisadores que pertencem à comunidade do Workshop de Desenvolvimento
Distribuído de Software (WDDS, 2013) e para departamentos de TI dos seguintes
órgãos públicos, dado o acesso dos autores: Ministério Público da Paraíba, Tribunal de
Justiça da Paraíba, Tribunal Regional do Trabalho da Paraíba e Tribunal Regional
Eleitoral da Paraíba; Conselho Nacional do Ministério Público de Brasília; Companhia de
Processamento de Dados da Paraíba; e organizações privadas: Unimed (Paraíba e do Rio
de Janeiro), Incorptech de Pernambuco e Apple Inc. (EUA). Obteve-se um total de 28
respostas (39,4%). O questionário ficou disponível por duas semanas em novembro de
2013. O número de respondentes superou a média de respostas esperada por Marconi &
Lakatos (2003), que é de 25% de devoluções em questionários aplicados online.
Os profissionais que responderam ao questionário, entre suas características, têm
30 anos de idade em média; são gerentes de projetos e líderes de escritório de projeto
(PMO); possuem em média quatro anos de experiência em DDS; as instituições onde
trabalham adotam o PMBOK como conjunto de boas práticas no gerenciamento de
projetos; e eles têm experiência em média de um ano com gerenciamento de projetos
ágeis. Todos são formados na área de Computação e são pós-graduados.
Sobre o uso do Framework RADS no contexto DDS
Dos 28 respondentes, 4 deles (14%) concordaram totalmente, 7 (25%) concordaram e
12 (43%) concordaram parcialmente que os passos descritos no framework sejam
suficientes para melhor gerenciar riscos em projetos DDS. Em contrapartida, 1 (3,5%)
discordou parcialmente, 3 (11%) discordaram e 1 (3,5%) discordou totalmente. Apesar
dos respondentes terem admitido à aderência da aplicação do RADS ao DDS, as
respostas sugerem que o framework deve ser amadurecido em relação à sua aplicação na
indústria. Neste sentido, os respondentes que concordaram e os que concordaram
totalmente (39%) afirmaram que é importante o desenvolvimento de soluções
acadêmicas para gerar opções de escolha para o mercado.
Sobre a adoção de práticas ágeis no Framework RADS
Com relação a essa questão, 3 (11%) dos respondentes concordaram totalmente, 8
(28,5%) concordaram e 11 (39%) concordaram parcialmente de que a adoção de
práticas ágeis no framework RADS ajuda a melhor gerenciar riscos em projetos DDS.
Em contrapartida, 3 (11%) discordaram parcialmente, 1 (3,5%) discordou e 2 (7%)
discordam totalmente. 29% dos respondentes afirmaram que as metodologias ágeis em
geral, como o Scrum e XP, não abordam como aplicar as suas práticas em um contexto
distribuído. Desta forma, é necessária alguma intervenção ou apoio, ou seja, alguma
iniciativa para conceber metodologias, frameworks ou guias de boas práticas, que ajudem
a minimizar os desafios enfrentados por equipes distribuídas. Entre as razões daqueles
que discordaram, a principal foi que o RADS não tem uma equipe multidisciplinar.
14
WDES
Sobre a definição dos papéis do Framework RADS
Dentre os 28 respondentes, 4 (14%) dos respondentes concordaram totalmente, 15
(54%) concordaram e 7 (25%) concordaram parcialmente que os papéis descritos e suas
atribuições são suficientes para a gestão de riscos em projetos de DDS. Por outro lado, 1
(3,5%) discordou parcialmente e 1 (3,5%) discordou totalmente. Apesar da maior
aceitação da definição dos papéis do RADS, os comentários dos respondentes indicaram
que o framework não é ágil em si, mas que ele faz o bom uso de práticas ágeis. Mesmo
os respondentes sabendo que o framework não foi concebido exclusivamente para
projetos ágeis, esta percepção se deu devido ao fato do framework definir papéis
hierarquizados, o que é contrário à definição de papéis em equipes ágeis.
Sobre a comunicação contínua no Framework RADS
Dos respondentes, 3 (11%) dos respondentes concordaram totalmente, 8 (28,5%)
concordaram e 11 (39%) concordaram parcialmente com a afirmativa de que o
framework RADS pode ser utilizado para o gerenciamento de riscos em projetos DDS
nas instituições onde trabalham. Em contrapartida, 3 (11%) discordaram parcialmente, 1
(3,5%) discordou e 2 (7%) discordam totalmente. A busca por uma comunicação efetiva
dentro dos projetos é algo que vem sendo estudado há anos e ainda hoje representa um
problema em aberto. Os respondentes afirmaram que manter uma comunicação contínua
(clara e objetiva) contribui significativamente para o sucesso do projeto gera mais
confiança entre os stakeholders.
Melhorias sugeridas para o Framework RADS
Os respondentes reforçaram que existe uma necessidade de melhorar a denominação dos
papéis, bem como alinhar as definições dos papéis com aqueles existentes nas
metodologias ágeis, pois estes não apregoam o conceito “comando-controle”, mas sim
equipes mais multidisciplinares. Eles também sugeriram a utilização, de forma mais
explícita, do papel “cliente” ou um “representante do cliente”, pois, independente do
projeto, o papel do cliente é bastante relevante, sobretudo na gestão de riscos.
7. Considerações Finais
O crescente interesse das organizações na utilização de técnicas de DDS despertou
algumas questões sobre as etapas do ciclo de gerenciamento de projetos deste tipo. Entre
as atividades envolvidas, está a gestão de riscos. Neste contexto, o framework RADS
busca contribuir para a melhoria do cenário de gerenciamento de projetos, em especial
no que diz respeito à gestão de riscos em organizações que utilizam DDS. O framework
contempla elementos identificados na literatura, inspirados nas metodologias ágeis, em
busca de um desenvolvimento de software mais dinâmico. A avaliação preliminar do
framework por especialistas indicou que ele tem potencial para ser aplicado na indústria e
está coerente com as necessidades de gestão de riscos em projetos DDS.
Como trabalho futuro, pretende-se aplicar o RADS em casos reais de projetos
DDS para avaliar a sua eficiência e eficácia. Apesar da limitação de não ter sido avaliado
em um estudo de caso, a quantidade de participantes que responderam ao survey (28 dos
71 convidados, 39,4% de resposta) foi superior ao indicado, como esperado em estudos
deste tipo (25%). Desta forma, acredita-se que os resultados alcançados são de
contribuição para a comunidade de DDS.
15
WDES
Referências
Audy, J., Prikladnicki, R. (2007) “Desenvolvimento Distribuído de Software: Desenvolvimento
de Software com Equipes Distribuídas”. Rio de Janeiro: Campus.
Boehm, B. (1991) “Software Risk Management: Principles and Practices”. IEEE Software, v. 8,
n. 1 (January), pp. 32-40.
Ebert, C., Murthy, B., Jha, N. (2008) “Managing Risks in Global Software Engineering:
Principles and Practices”, In: Proceedings of the IEEE International Conference on Global
Software Engineering, Princeton, pp. 131-140.
Hossain E., Babar, M., Hye-young, P., Verner, J. (2009) “Risk identification and mitigation
processes for using scrum in global software development: A conceptual framework”, In:
Proceedings of the Asia-Pacific Software Engineering Conference, Penang, pp. 457-464.
Keshlaf, A., Hashim, K. (2000) “A model and prototype tool to manage software risks”, In: Proc.
of the First Asia-Pacific Conference on Quality Software, Hong Kong, pp. 297-305.
Keshlaf, A., Riddle, S. (2010) “Risk Management for Web and Distributed Software
Development Projects”, Proceedings of the 5th International Conference on Internet
Monitoring and Protection, Barcelona, pp. 22-28.
Leme, L., Tait, T., Huzita, E. (2007) “Strategy of Risk Management for a Distributed Software
Engineering Environment”, In: Proceedings of the 4th International Workshop on Computer
Supported Activity Coordination, ICEIS 2007, Funchal.
Marconi, M., Lakatos, E. (2003) “Fundamentos de metodologia científica”. São Paulo: Atlas.
Mudumba, V., Lee, O. (2010) “A New Perspective on GDSD Risk Management: Agile Risk
Management”, In: Proceedings of the 5th IEEE International Conference on Global Software
Engineering, Princeton, pp. 219-227.
Nelson, C., Taran, G., Hinojosa, L. (2008) “Explicit Risk Management in Agile Processes”, In:
Proceedings of the 9th International Conference XP, Limerick, pp. 190-201.
Nyfjord, J., Kajko-Mattsson, M. (2007) “Commonalities in Risk Management and Agile Process
Models”, In: Proceedings of the International Conference on Software Engineering Advances,
Cap Estrel, p. 18.
Persson, J., Mathiassen, L., Boeg, J., Madsen, T., Steinson, F. (2009) “Managing Risks in
Distributed Software Projects: An Integrative Framework”. IEEE Transactions on
Engineering Management, v. 56, n. 3 (August), pp. 508-532.
PMI (2013) “A Guide to the Project Management Body of Knowledge (PMBOK® Guide)”.
Project Management Institute, 5th ed.
Ramesh, B., Cao, L., Mohan, K., Xu, P. (2006) “Can distributed software development be
agile?”. Communications of the ACM, v. 49, n. 10 (October), pp. 41-46.
Ribeiro, L., Gusmão, C. (2008) “Definição de um processo ágil de gestão de riscos em ambientes
de múltiplos projetos”. Hífen, Uruguaiana, v. 32, n. 62 (II Semestre), pp. 67-74.
Šmite, D., Moe, N., Ågerfalk, P. (2010) “Agility Across Time and Space: Summing up and
Planning for the Future”, In: Šmite, D., Moe, N., Ågerfalk, P. (eds.), “Agility Across Time
and Space”, Springer Berlin Heidelberg.
Sommerville, I. (2007) “Engenharia de Software”. São Paulo: Pearson Addison-Wesley, 8ª ed.
WDDS (2013) “Workshop de Desenvolvimento Distribuído de Software”. Disponível em:
<http://www.wdds.ufpb.br/2013/index.php>. Acessado em: 10/07/2014.
Zanoni, R., Audy, J. (2003) “Project Management Model for a Physically Distributed Software
Development Environment”, In: Proceedings of the 36th Hawaii International Conference on
System Sciences, Hawaii, pp. 1-8.
16
WDES
On the Identification of Factors that Promote HighPerformance Projects in Distributed Development
Preliminary Findings of an Empirical Study of a Fortune 500 IT Multinational Company
Sabrina Marczak1, Marcelo Perin1, Rafael Prikladnicki1, Christiano Ayub2
1
Computer Science School– Pontifícia Universidade Católica do RS (PUCRS)
6681 Ipiranga Ave. – Partenon – 90.619-900 – Porto Alegre – RS – Brazil
2
Development Center, ORG
Ipiranga Ave. – Partenon – 90.619-900 – Porto Alegre – RS – Brazil
{sabrina.marczak,rafaelp,mperin}@pucrs.br, [email protected]
Abstract. As part of a long-term research on high-performance projects in
distributed software development, we sought to investigate what leads a
project to meet or exceed its expected performance. In this paper we report on
the preliminary findings of our qualitative exploratory study. We conducted 11
semi-structured interviews in a Fortune 500 IT multinational company that
develops software in-house to support its business processes. Participants
listed 7 factors that promote high-performance in their opinion, including
timely attending the organization’s business needs. They also mentioned 5
issues related to achieving performance such as having a person mediating the
conversation between the business and the IT departments. We present the
identified factors and issues, and discuss their implications to the performance
of distributed software development projects.
1. Introduction
Project management discipline aims to guide software teams to plan, implement, and
control the development of any software product. Organizations introduce project
management to their software projects aiming to deliver their projects on time, on
budget, and with quality (Project Management Institute, 2013). However, in today’s
globalized IT market organizations also have to timely attend their customer’s demands
in order to remain competitive. Therefore, organizations and managers desire to have
their projects attending or exceeding their expected performance goals. We name these
high-performance projects.
Although there are several studies on project performance in distributed software
development (e.g., (Herbsleb and Mockus, 2003)), little is still known about what
promotes high-performance in this kind of project in modern times. In the past decade
we have seen information and communication technology improving, agile methods
being proposed, companies going over major reorganizations to better attend their
customer expectations, among other changes that might have affected how software
teams perform and deliver software products. Therefore, as part of a long-term research
on high-performance projects, in this initial phase we sought to empirically explore
what contributes to a distributed software development project to meet or exceed its
expected performance. We conducted an exploratory qualitative study based on semi-
17
WDES
structured interviews in a large IT company, named ORG (a fictitious name due to
confidentiality restrictions). Our 11 study participants listed 7 factors that promote and 5
issues that make it difficult to achieve high-performance in distributed software
projects. In this paper we report on the findings of this initial study and discuss the
implications of the identified factors and issues to the performance of distributed
software development projects.
2. Research Method
Our empirical study consisted of interviews conducted on-site in a large IT company.
Interviews were transcribed and analysis was guided by ground theory procedures
(Corbin and Strauss, 2007).
2.1. Company Background
The study was conducted in a large IT multinational company. Software products to
support the organizational processes are developed by the IT department. Demands to
develop or to update these products come from the business departments. IT
development teams are distributed among the headquarters’ office located in the US and
in Brazil, India, and Malaysia. The IT department follows a matrix structure based on
business areas (e.g., sales) and IT functions (e.g., developers). Projects vary from the
development of new products to the maintenance of legacy systems. Project teams
mainly follow the waterfall model. Some Scrum practices are scarcely adopted to
support project management. Processes vary from formal (following CMMI Level 3
practices) to informal (defined by the project members upon their needs).
An annual project roadmap is defined in December based on the requests made
by business representatives and recorded by business analysts. Business analyst
managers in conjunction with project managers prioritize the requests and define a set
of projects to be developed throughout the year. Priorities are defined based on business
impact and on development costs. Distributed software teams are then formed to
develop the elected projects. Members are assigned to the projects based on their skills
and domain knowledge, despite of their physical location. Therefore, a project often has
its roles distributed over several locations. By mid February each team receives a
business request document. The software team starts working to translate the business
into software requirements led by the software requirements analysts. These have to
consult with business analysts to clarify business requirements and, when necessary,
business representatives are invited to join the discussion. Project managers monitor the
project progress based on a set of organizational performance measures that are reported
to senior management in a regular basis. Results from these measurements are used to
determine whether a project failed, attended, or exceeded its performance goals.
2.2. Data Collection and Analysis
Our study consisted of 11 interviews conducted on-site with Brazilian team members.
Each interview lasted for an average of one hour. We asked the participant to answer to
the following taking her working experience with the company into consideration:
“Looking back at the distributed software projects you have participated on, please
think of one project that stood out and elaborate on what you think that contributed to
this project to attend or exceed its performance goals.”
18
WDES
Study participants were selected based on their experience working with the
company and on their role within the IT department. We started by asking the Brazilian
IT Director whom we should be talking with. He pointed out 3 Senior Managers who
have started in the IT department about 12 years ago when the development center was
created. We then asked these 3 Senior Managers to point out more prospective
participants. Eight other people were interviewed, totaling 11 participants in our study.
We received suggestions of other prospective participants, but as we analyzed the
collected data as we were conducting the interviews, we considered this number
sufficient by saturation of the responses. Table 1 describes the participants’ current roles
and job descriptions, and their past roles within the company.
All interviews were transcribed, and transcriptions were prepared for analysis in
the ATLAS.ti software. Our subsequent analysis was guided by grounded theory
procedures (Corbin and Strauss, 2007). One researcher coded the data using the opencoding procedure. A second researcher coded a smaller sample of the transcriptions to
compare the identified codes. The researchers then discussed the code list together,
unifying codes into categories when appropriate. The resulting categories represent the
factors and the issues presented in Section 3. Both researchers conducted a 3 hours long
meeting with the 11 participants to report on the findings, reviewing the results to
ensure accurateness and discussing their usefulness to the company as suggested by
Creswell (2008).
3. Initial Findings
Participants reported on 7 key factors. We present them below. Note that each
participant has reported on more than a factor. Participants’ quotes include the study’s
participant identifier (ID) defined in Table 1.
• Factor 1: Enables the business and helps the business to evolve. Four participants
mentioned that it is important that the project “introduces something new to the
business that will help it to quickly evolve and better attend the market” (P6). For
instance, one of the senior development managers (P4) discussed “why would the
organization migrate legacy systems that are reliable and have a low cost
maintenance to new technologies if the systems would maintain their original
features”? He defends the idea that new functionalities that would help the business
to speed up its activities have to be introduced in order to justify such major
maintenance migration. The senior manager that was firstly hired in Brazil (P2)
recalled that a few projects considered as high-performance were those that had
helped the business to answer the question such as “what can help us improve the
way how the [organizational] business is done nowadays?”
• Factor 2: Delivers what the business needs in a timely manner. Three participants
highlighted the importance of delivering what is requested in a timely manner “in
order to have a software product that supports the business process that is in place”
(P7). The former software architect (P9) argued it is important to “try to anticipate
the estimated deliver date since the faster the new system is in place the more likely it
is that it will be in sync with the current business process”. One of the senior
development managers (P5) mentioned “there is no room for delays in this company,
if the project is late the process might not be there anymore, we change things to
frequently”.
19
WDES
Table 1. Participant’s background
ID
P1
Current Role and
Job Description
Quality and metrics manager: This is a
worldwide position responsible for
defining and collecting metrics to measure
performance of IT teams as well as
defining processes to guide their work.
P2
Career manager: This manager is
responsible for planning and help
developing the career of the Brazilian
developers (it includes developers and
team leaders)
P3
Manager of the Project Management
function: This is a worldwide position
responsible for hiring Project Managers,
allocating them to manage IT projects, and
following-up on their work.
P4
Senior Development Manager: This
position is responsible for assigning
developers to projects, and to following-up
on their work alongside the Project
Manager.
Senior Development Manager: Same job
description as P4.
Senior Development Manager: Same job
description as P4.
P5
P6
P7
P8
P9
P10
P11
Project Manager: This position is
responsible for managing the development
of the IT projects and for collecting
performance measurements to share with
Senior Management.
Project Manager: Same job description as
P7.
Project Manager: Same job description as
P7.
Senior Development Manager: Same job
description as P4.
Senior Development Manager: Same job
description as P4.
20
Past Roles
He started 12 years ago as a Software Reqs
Analyst. In this position, he led the worldwide
initiative of defining processes to support
requirements engineering activities. He also
acted as a Project Manager when he proposed,
among other things, a subset of the current
performance measures.
He also started 12 years ago. He was the first
employee hired by ORG to work in the
Brazilian Development Center. He acted as a
Development leader and a Project Manager.
He is also one of the focal points for the
research activities with PUCRS.
He is originally from the USA and joined
ORG about 20 years ago. He was one of
ORG’s first salesmen. He joined the IT team
12 years ago as a Project Manager. He was
one of the first managers assigned to work
with a Brazilian team. Two years later he
asked to have this job position transferred to
Brazil. He also worked as a Senior Project
Manager and a Career Manager.
He has been working at ORG for about 10
years and has started as a Developer. He also
acted as a Project Manager.
He has also started 10 years ago as a
Developer. He has acted as Dev Leader.
He has also started 10 years ago as a
Developer, acted as Dev Leader and Software
Architect.
She started about 8 years ago as a Software
Requirements Analyst.
She started 10 years ago as a Tester and also
acted as Test Leader.
He also started 10 years. He joined ORG as a
Developer and acted as a Software Architect.
He started 6 years ago as a Project Manager
and acted as the Site Manager for 3 years. As
a Site Manager he was responsible for hiring
people and controlling the overall IT
operations in Brazil.
He joined ORG about 4 years ago as a Project
Manager. He managed the development of
projects that are critical for the company’s
operation.
WDES
• Factor 3: Has an alignment between the business needs and the software
requirements. Seven out of 11 participants discussed how dynamic the organization
is and how challenging it is to have the software products attending the business
needs. For instance, the company has gone over two major reorganization structures
in the last 18 months, changing job functions, business goals, among other changes.
Therefore, they highlighted that a key factor to achieve high-performance is “to be
flexible and fast in perceiving changes and adjusting to them in order to keep the
software aligned to business needs” (P1).
• Factor 4: Finds the balance between what the customer ‘wants’ and what the
customer ‘really needs’. Three participants cited how critical it is that the IT team is
able “to distinguish between what the customer wants and what is really necessary to
support the business processes” (P3). In a distributed IT organization, where the
customers and end users are located in different time zones, often over 2 or 3
continents, it is “challenging to get to know the business processes in details to be
able to question the customer about her requests” (P2). The Quality and Metrics
manager (P1) recognized the importance of a “highly-skilled software requirements
analyst” to mediate the discussion with the business department in such scenario.
• Factor 5: Has a requirements engineering process that efficiently and effectively
defines what has to be done. Four participants recounted the relevance of a clear,
well-defined, and disseminated requirements engineering process. Former tester (P8)
recalled when the entire IT organization followed a single and unified development
process based on the CMMI Level 3. She mentioned “it was easier and faster to
communicate with everyone, and to perform our tasks. Now we need to waste time
negotiating with people from other sites how to do things and we never always reach
an agreement at first”.
• Factor 6: Has an adequate and qualified team. Five participants mentioned the
impact of “the right team” (P10). They were unisonous in recognizing that the
organization “has skilled employees that know how to provide the expected technical
solutions” (P2). They referred to the fact of having “people who know how to
approach the business team” (P2), “how to establish critical connections with them”
(P10), and “to identify whether the proper stakeholders are the ones originating the
demands to the IT team” (P11).
• Factor 7: Delivers on time, on budget, and with quality. Although 6 of the
participants mentioned that attending “traditional project management targets (e.g.,
being on time) is expected from any manager” (P2), only one participant described as
a key element “to deliver on time, on budget, and with quality” (P5). He said “we
cannot forget these are basic goals to any project and that sometimes we go easy on
them jeopardizing the quality of the final product”.
Although it was not part of our initial goal, during the interviews participants also
cited issues that had led projects to fail or to not completely attend their performance
goals. Given how much emphasis the respondents put on these issues, we report them
below as follows:
• Issue 1: To have a mediator between the business department and the IT team. Four
participants recalled the difficulties faced by software teams to timely clarify the
requirements. The former software requirements analyst (P7) mentioned “we know
that this is the structure that the organization imposes on us but they need to realize
21
WDES
how much it delays reaching out those who really know how the process should be
run”. The f critical applications’ former manager (P11) added “We need to be able to
reach the business representatives without depending on the business analysts that
quite frequently work in a high level that leaves important details out for the design
of the software solution”.
• Issue 2: To validate requirements too late in the development lifecycle. Four
participants pointed out as a serious drawback the fact that software requirements are
validated only after the development is over. One of the project managers (P7)
reported “too many business rules are identified as missing or misunderstood by the
software team in this point”. “It is also here that we learn that business processes
have changed and that the software has not been deployed yet is already obsolete”
(P9). One of the senior development managers (P11) suggested that “traditional
validation techniques like prototyping could be adopted to avoid such late findings”.
• Issue 3: To have poorly written software requirements. Although the participants
mentioned that they perceive the software professionals as well skilled, 3 of them
indicated that software requirements are still poorly written. A senior manager (P2)
said “because the projects’ roadmap is defined based on non-standardized written
business needs and requests, sometimes we inherit poorly defined business
requirements that are translated into poorly written software requirements. It would
be best if we could be closer to the business representatives”.
• Issue 4: To work based on assumptions. Associated to the perception that the
distance between business and IT teams is prejudicial, 3 participants mentioned that
“assuming certain knowledge about the business processes is a common practice of
the software teams that often results in disaster situations” (P11). A senior
development manager recalled that “the organization is so dynamic that even within
a single project it is risky to assume that the [business] processes have not changed,
mind in between projects” (P6). They wish the team members “would double-check
more often business rules and other important definitions used in the specification of
the software requirements” (P9).
• Issue 5: To implement improvements that were not requested. Three participants
commented on the fact that “software teams often add small improvements to the
applications without discussing them with the business analyst, resulting sometimes
in a positive feedback from the customers but quite often in waste of time and
rework” (P7). “This initiative is seen as pro-active behavior by software members but
perceived as ‘noisy’ by the business team” said a manager (P1).
4. Discussion and Final Considerations
To deliver a project on time, on budget, and with quality is a key premise in software
organizations. However, with the constant changing IT market software solutions need to
quickly adjust to business changes and to new customer’ requests. Agile methods have
been introduced aiming to provide a more flexible approach to software teams (Larman,
2003). Although these methods define practices that promote a more pro-active way of
working, there are organizations that still work based on more traditional approaches
such as the waterfall model as the investigated organization. Participants claimed that
following a more structured development model and a more ‘traditional’ organization
structure in which communication channels between departments are centralized helps
22
WDES
assuring that the project goals will be better achieved and that the customer will be better
served. Almost two decades ago Al-Rawas and Easterbrook (1996) have reported that
organizational barriers can inhibit efficient communication that leads to requirements
issues found later on in the development process. Despite this knowledge, our findings
suggest that the issue is still around.
Assuming that this Fortune 500 large IT multinational is not the only company in
the world to still follow the waterfall model and to having strictly communication
channels defined via the organization structure, our findings contribute to bringing to
light that traditional software engineering issues (e.g., issue 3 - poorly written software
requirements (Damian and Zowghi, 2003)) are still being faced by distributed software
teams. When going agile and following a more loose and dynamic process are not a
feasible option due to imposed organizational management decisions, software
engineering is still to provide effective and efficient recommendations. In a dynamic
market like the current one some practices, processes, and techniques provided in
literature might be limited. For instance, techniques to derive software requirements from
formally defined business processes (e.g., EKD (Bubenko, Sirna, and Brash, 2001)) to
ensure alignment might be over due when considering that organizations might not be
able to keep up-to-date written business processes.
We find it interesting that, in general, the factors and issues mentioned by our
respondents are not specific to distributed teams, i.e., these factors and issues are not
necessarily caused due to distance. The implication is that co-located teams might also
face them. Generalization of our findings has to be considered with caution. We have
investigated one single organization and interviewed members located in Brazil only.
Despite these limitations, we understand that the variety of roles played by the
respondents over the years and their large experience within the organization represent a
large set of projects, and as such the results are worth being considered by software
organizations with similar settings. Our next step in this long-term research is to
quantitatively investigate historical project data from ORG to identify which project
characteristics promoted high-performance.
Acknowledgement
We would like to thank the PDTI Program, financed by Dell Computers of Brazil Ltd.
(Law 8.248/91), and the participants for their collaboration and time.
References
Project Management Institute (2013) “A guide to the project management body of
knowledge,” 5th ed., Newtown Square, Project Management Institute, 589p.
Herbsleb, J. and Mockus, A. (2003) An Empirical Study of Speed and Communication
in Globally Distributed Software Development. IEEE Trans. on Software Eng., vol.
29, no. 6, June, pp. 481-494.
Corbin, J. and Strauss, A. (2007) “The basics of qualitative research: Techniques and
procedures for developing grounded theory,” Sage Publications, Los Angeles,
USA, 3rd ed., 400 p.
Creswell, J. (2008) “Research design: Qualitative, quantitative, and mixed methods
approaches,” Sage, Thousand Oaks, USA.
23
WDES
C. Larman (2003) “Agile and iterative development: A manager’s guide,” Addison
Wesley, New York, USA, 368p.
Al-Rawas, A. and Easterbrook, S. (1996) “Communication problems in requirements
engineering: A field study,” In: Proc. of the Conf. on Professional Awareness in
SEng, London, pp. 46-60.
Damian, D. and Zowghi, D. (2003) “RE challenges in multi-site software development
organisations”, Requirements Engineering, vol. 8, no. 3, pp. 149-160.
Bubenko, J., Sirna, J., and Brash, D. (2001) “EKD user guide,” Dept. of Computer and
Systems Sciences, Stockholm: Royal Institute of Technology.
24
WDES
SECOView: Uma Abordagem Baseada em Visões para
Apoiar a Governança de Ecossistemas de Software
Yuri Abreu1, Rodrigo Pereira dos Santos1, Benno Albert2, Cláudia Werner1
1
PESC/COPPE/UFRJ – Universidade Federal do Rio de Janeiro
Caixa Postal 68511 – CEP 21941-972 – Rio de Janeiro, RJ, Brasil
2
Petrobras, Tecnologia da Informação e Telecomunicações – Rio de Janeiro, RJ, Brasil
{yuriabreu, rps, werner}@cos.ufrj.br, [email protected]
Abstract. IT organizations constitute part of a Software Ecosystem (SECO)
when related to each other. They face challenges in managing, choosing and
maintaining their technologies in a dynamic market. On decision making
processes, these organizations have difficulties in visualizing SECO
information due to the lack of software asset management. This paper presents
a view-based approach for supporting SECO governance from IT architecture
activities. A tool was implemented as an extension of Brechó Library.
Resumo. Organizações de TI, em suas relações, fazem parte de Ecossistemas
de Software (ECOS) e enfrentam desafios ao organizar, selecionar e manter
tecnologias em um mercado dinâmico. Em processos de decisão, elas têm
dificuldades em visualizar informações de ECOS por carências na gestão dos
ativos de software. Este artigo apresenta uma abordagem baseada em visões
para apoiar a governança de ECOS a partir de atividades de arquitetura de
TI. Uma ferramenta foi construída como extensão da Biblioteca Brechó.
1. Introdução
Um Ecossistema de Software (ECOS) pode ser definido como um conjunto de negócios
funcionando como uma unidade e interagindo com um mercado compartilhado entre
software e serviços, juntos e inter-relacionados [Jansen et al., 2009]. Neste contexto, as
organizações enfrentam desafios ao lidar com a dinâmica do mercado [Messerschmitt &
Szyperski, 2003]. Fusões ou aquisições entre organizações fornecedoras de tecnologias
podem alterar a oferta de produtos e serviços, o que afeta as organizações consumidoras
e seus negócios. Esses eventos agregam complexidade em selecionar, adotar e gerir
ferramentas/tecnologias para dar suporte à organização e seus objetivos [Albert, 2014].
Nesse sentido, organizações consumidoras possuem, normalmente, um conjunto
de ferramentas de apoio a seus processos e profissionais, e produzem artefatos (produtos
e serviços) para atingir seus objetivos. Alguns problemas, no entanto, aparecem, como o
alto custo para adoção de novas tecnologias, a necessidade de reavaliar processos de
negócios frente a sua implantação, a dificuldade em lidar com a oferta e a relutância dos
usuários para aceitá-las [Freitas & Rech, 2003]. A arquitetura de TI das organizações
consumidoras, por exemplo, pode sofrer impactos do desafio de organizar, selecionar e
manter tecnologias em um mercado em constante mudança [Baars & Jansen, 2012].
Nos processos de tomada de decisão, essas organizações têm dificuldades em
visualizar informações de ECOS por carências na gestão de seus ativos de software. Isso
leva empresas consumidoras a recorrerem a institutos como Gartner e Forrester, que
25
WDES
agem como “conselheiros de TI” e produzem relatórios com base no mercado e opiniões
de profissionais da área [Albert et al., 2013]. Neste contexto, este artigo apresenta uma
abordagem baseada em visões para apoiar a governança de ECOS a partir de atividades
de arquitetura de TI, denominada SECOView. Uma infraestrutura de apoio foi
implementada como extensão de uma biblioteca de componentes e serviços de software
[Brechó, 2014] e uma análise preliminar de sua utilização foi realizada. O artigo está
organizado nas seguintes seções: a Seção 2 apresenta a fundamentação teórica; a Seção
3 apresenta a abordagem proposta; a Seção 4 discute a extensão da Biblioteca Brechó; a
Seção 5 discute uma análise preliminar de sua utilização; e a Seção 6 conclui o artigo.
2. Fundamentação Teórica
Organizações fornecedoras e consumidoras estabelecem laços ao se relacionarem, como
em contratos de aquisição de produtos e consultorias. As relações, organizações
envolvidas e informações trocadas são elementos de um ECOS. Nesse contexto, a fim de
cumprir as metas de uma organização consumidora, gerentes e arquitetos de TI têm o
desafio de avaliar relações entre tecnologias e fornecedores e usá-las a favor da
organização. As organizações que exploram essas novas relações, de fato, necessitam
construir um processo de decisão em seus modelos para usufruir de certa agilidade em
detrimento de seus concorrentes, o que impacta a sua arquitetura de TI [Gartner, 2007].
No cenário de ECOS, a definição de arquitetura de TI/software é estendida por
Manikas & Hansen (2013) como “Arquitetura de ECOS”, i.e., as estruturas do ECOS
como elementos de software, suas características e relações. Os elementos do ECOS
podem ser sistemas, componentes do sistema e atores. As relações se referem àquelas de
arquitetura de software, incluindo relações entre atores (e.g., fornecedores competindo
com um mesmo tipo de produto no mercado). Por sua vez, Gartner (2007) separa as
características de ECOS sob quatro visões: 1) visão do ECOS como uma entidade; 2)
visão das trocas mútuas com o valor de negócio; 3) visão de artefatos compartilhados,
tecnologias e propriedade intelectual; e 4) visão dos tipos específicos de ECOS.
Nesse contexto, a governança pode auxiliar uma organização a alcançar seus
objetivos, usufruir melhor dos recursos disponíveis e promover um aumento da
lucratividade e redução de riscos. Gartner (2007) indica que, para gerir arquitetura em
ECOS, seus componentes devem ter um conjunto mínimo de informações que possibilite
a sua gestão pela organização consumidora. Albert (2014) explica que os seguintes
dados devem fazer parte desse conjunto: Fornecedor, Natureza, Tecnologia, Maturidade,
Data, Tipo de Ativo Produzido, Versões, Licenças, Usuários e Utilização (i.e., log de
ferramenta de coleta de uso de software). Para dar suporte à governança, a gestão de
ativos de software entra como instrumento para gerir e otimizar práticas de aquisição,
implantação, uso e manutenção dos ativos da organização [Williams & O’Connor, 2011].
Como trabalhos sobre visões de governança em ECOS, há o Gartner Hype
Cycles [Gartner, 2008] e o Forrester Tech Horizon Chart [Hopkins et al., 2013], que
permitem acompanhar a maturidade de tecnologias. Outro trabalho, o ThoughtWorks
Technology Radar, agrega, em uma visão, uma combinação de abordagens que permitem
verificar a maturidade de tecnologias [ThoughtWorks, 2012]. Como diferencial da
abordagem SECOView, para além dos trabalhos relacionados, busca-se explorar visões
para a governança de ECOS a partir das atividades de arquitetura de TI da organização.
26
WDES
3. Abordagem Proposta
A abordagem SECOView visa manipular dados de uma biblioteca de ativos de software
para construir visões que apoiem a governança de ECOS. Estes dados se referem à
gestão de ativos de software e, desta forma, a SECOView propõe informações gráficas
para os usuários, ilustrando recortes do ECOS da organização, ou mesmo provendo uma
visão global. A estrutura da SECOView (Figura 1) mostra que mecanismos de busca e
recuperação e histórico de ativos produzidos são utilizados para se ter acesso aos dados
da gestão de ativos na biblioteca de ativos de software da organização (ou catálogo).
Estes dados se referem a: ativos de software (componente da biblioteca), fornecedores,
categorias de tecnologias e usuários. A SECOView interpreta os dados e, conforme
especificado pelo usuário, refina-os para gerar uma visão que exiba parte do (ou todo o)
estado do ECOS da organização. Gráficos são exibidos ao usuário a partir da agregação
dos dados das aplicações, componentes e serviços da organização.
Figura 1 – Estrutura da abordagem SECOView
A SECOView toma por base o modelo SECOGov [Albert, 2014], que consiste
em um framework de governança de ECOS que envolve as seguintes atividades para
apoiar a arquitetura de TI, nas visões intra e interorganizacional: (i) Gerir Taxonomia de
Software: manter as categorias adequadas para organizar os ativos de software da
organização; (ii) Gerir Arquitetura de Software: definir que ativos são padronizados para
cada categoria da taxonomia; (iii) Gerir Configurações-padrão de Software: definir quais
ativos compõem uma configuração para atender a um dado perfil de ator do ECOS; (iv)
Gerir Licenças de Software: gerir o quantitativo e a diversidade de tipos de licenças, e
atribuir e disponibilizar licenças para os usuários; (v) Acompanhar ECOS: manter
informações sobre os ECOS que a organização participa ou deseja participar por meio da
análise de relatórios de institutos, consultorias ou equipe de gestão da arquitetura
corporativa; (vi) Analisar a Maturidade de Tecnologias: cruzar informações dos ECOS
sobre a maturidade de determinada tecnologia ou mercado; e (vii) Selecionar Produto ou
Tecnologia: especificar requisitos da tecnologia desejada, avaliá-los e estabelecer uma
definição de aquisição ou contratação de serviços.
A partir de um ativo de software, para a atividade Gerir Licenças de Software, a
SECOView propõe inicialmente dois gráficos para a visão “intra”, que permitem
verificar: (1) o grau de dependência tecnológica dos ativos de um fornecedor que a
organização adquiriu licenças; e a distribuição de seu uso e desuso (disponibilidade); e
(2) a comparação de produtividade com outros ativos que produzem o mesmo tipo de
solução para a organização (i.e., ativo produzido), filtrado por período. Esta proposta é
27
WDES
motivada pelo resultado do levantamento de Rios (2013), que indica o controle das
licenças de cada ativo como crucial, pois isso concentra um dos maiores custos para o
setor de TI das organizações. Em alto nível, a SECOView propõe gráficos de ECOS
para examinar a visão “inter”: (3) o grau de dependência tecnológica da organização
consumidora em relação aos seus fornecedores; e (4) a distribuição das licenças da
organização consumidora em relação às categorias dos ativos adquiridos.
Por sua vez, para apoiar a atividade Gerir Arquitetura de Software do SECOGov,
propõe-se um rótulo para o ativo de software, “padrão”, para indicar o componente da
biblioteca que seja o padrão de arquitetura para uma categoria específica. Isso orienta
quais ativos de software devem ser adotados em maior escala pela organização. Além
disso, a SECOView propõe um módulo de gestão de análises de ECOS (relatórios) para
apoiar a atividade Acompanhar ECOS do SECOGov, a fim de armazenar dados de como
a organização consumidora participa do ECOS. Para facilitar a rastreabilidade destes
dados ao longo do tempo, a SECOView propõe ainda associar uma categoria de
tecnologias e/ou ativos de software a uma análise que justifique a adoção ou aquisição
pela organização. As análises podem ser ordenadas por parâmetros [Gartner, 2007], e.g.,
taxa de benefício, maturidade, tempo para adoção (anos) e recomendação para adoção.
Entre os recursos utilizados, estão: (i) gráfico de pizza: para analisar os ativos de
um fornecedor específico; (ii) gráfico de barras horizontais: para avaliar as licenças em
uso e desuso de fornecedor; (iii) gráfico de barras verticais: para avaliar os ativos
produzidos pela organização; (iv) grafos: para analisar dependências dos fornecedores; e
(v) planilhas: para exibir os resultados de relatórios de mercado sobre a análise das
tecnologias que a organização possui. Estes recursos foram baseados no levantamento
sobre mecanismos de recomendação e visualização, realizado por Souza (2008).
Ressalta-se que as atividades Gerir Taxonomia de Software e Gerir Configuraçõespadrão de Software são apoiadas pela implementação do modelo SECOGov, cujos
detalhes são descritos em (Albert, 2014), estando fora do escopo deste trabalho. Por fim,
as atividades Analisar a Maturidade de Tecnologias e Selecionar Produto ou Tecnologia
serão estudadas como trabalhos futuros.
4. Extensão da Biblioteca Brechó
Para dar suporte à abordagem proposta, foi implementada uma extensão da Biblioteca
Brechó. A Brechó consiste em um sistema web para gestão de ativos (componentes de
software, serviços web e aplicações) que fornece mecanismos de busca, recuperação,
armazenamento, documentação, publicação, controle de versão e evolução,
gerenciamento dos usuários e de licenças, entre outros [Werner et al., 2007]. A
biblioteca é organizada de forma hierárquica, onde um componente representa um ativo
armazenado de forma conceitual (nome e descrição), que possui um conjunto de
distribuições (corte funcional) e, estas, um conjunto de releases (corte temporal). Os
artefatos de uma release podem ser agrupados em pacotes para atender necessidades dos
usuários, ou disponibilizados como serviços web, ambos sob licenças (direitos/deveres).
Visando apoiar a governança dos componentes da biblioteca, um ícone para
acessar as visões da SECOView foi adicionado (Figura 2). Para o gráfico de fornecedor
(Figura 3), filtraram-se os componentes do fornecedor do componente selecionado,
separando a quantidade de licenças de cada componente e relacionando-as ao total de
28
WDES
licenças do fornecedor. Para o gráfico de alocação de licenças, analisaram-se todas as
releases do componente selecionado, de cada distribuição, comparando-se a quantidade
de licenças em uso/desuso, para cada release (Figura 3). Na visão “inter”, os gráficos de
ECOS foram desenvolvidos para analisar a biblioteca da organização, gerando uma
informação geral. O primeiro, “Dependência de Fornecedor” (Figura 4), foi construído a
partir da análise do total de licenças adquiridas/em uso das releases de cada fornecedor.
Similarmente, construiu-se o gráfico “Dependência de Categoria” (Figura 4) a partir da
análise dos dados de licenças adquiridas/em uso dos componentes de cada categoria.
Figura 2 – Tela “Meus Componentes”. Em destaque, ícones para a geração de gráficos
de um componente da biblioteca e o menu para acessar “gráficos de ecossistema”.
Figura 3 – Gráficos do fornecedor do componente Microsoft Office (esquerda) e da
alocação de licenças do componente Microsoft Office (direita).
Figura 4 – Gráficos da dependência de fornecedor (esquerda) e de categoria (direita).
Para configurar o atributo “padrão de arquitetura” para uma categoria, um novo
atributo, “standard”, foi acrescentado à entidade Componente da Brechó. A definição do
padrão é feita na tela de criação/edição de um componente: verificando se existe algum
29
WDES
padrão para a categoria em questão; fornecendo ao usuário escolhas pertinentes, e.g.,
caso tente definir um componente como padrão da categoria quando há outro, uma
mensagem para questionar se deseja alterar o padrão é exibida; caso positivo, realizando
as alterações pertinentes na base de dados (Figura 5). A marcação de componente padrão
foi feita acrescentando uma coluna no menu “Meus Componentes”, que exibe um “sinal
de visto” verde, caso o componente seja o padrão de sua categoria (Figura 2).
Figura 5 – Telas de definição do componente padrão de uma categoria quando há outro
padrão (esquerda) e de detalhes da categoria “Ferramentas de escritório” (direita).
Para acompanhar como a organização participa do ECOS, implementou-se o
módulo de análise de ECOS, para criar e editar uma análise, o que requer inserir dados
para facilitar a rastreabilidade e caracterização (e.g., nome, origem/fonte, descrição,
recomendação, impacto para o negócio, taxa de benefício, recomendação para adoção).
Foi implementada a tela “Listar Análises”, para recuperar as análises armazenadas e
exibi-las em uma tabela (Figura 6). Para facilitar a visão, implementou-se a ordenação
por alguns desses tipos de dados, clicando-se no item pretendido no cabeçalho da tabela.
Por fim, implementou-se o suporte ao acompanhamento de ECOS ao criar uma relação
entre as entidades, de modo que uma Análise pode estar associada a zero ou uma
Categoria que, por sua vez, pode estar associada a zero ou n Componentes, diferindo da
associação entre Componentes e Categoria (n a n). Para que o usuário gerencie estas
relações, foi criada uma funcionalidade para permitir essas associações (Figura 6).
Figura 6 – Tela “Listagem de análises” (esquerda) e de associação de análise (direita).
5. Utilização da Ferramenta
Com a intenção de observar inicialmente alguns elementos da interface do ferramental
desenvolvido, foi preparado um instrumento de análise da Brechó, utilizado por alunos
de graduação da área de Computação da UFRJ. O instrumento (formulário eletrônico)
incluiu algumas tarefas para verificar a adequação do tempo necessário para execução.
30
WDES
Além disso, o instrumento apontou alguns elementos de interface a serem observados
durante as tarefas, inspirados nas heurísticas de usabilidade adaptadas de [Nielsen, 1993].
Um piloto foi individualmente conduzido em 08/04/2014 com dois participantes
(um graduando em Engenharia da Computação e outro em Ciência da Computação).
Após a concordância, foi apresentado um texto sobre ECOS, o modelo de dados da
Brechó e a extensão implementada na SECOView. Ambos conseguiram responder às
perguntas, com poucos erros. Eles relataram dificuldades em encontrar certas opções
para realizar uma tarefa e visualizar a separação de componentes na tela “Meus
Componentes”, assim como a falta de um manual. A partir disso, foram feitas alterações
nas instruções e questões do instrumento, tornando os textos mais sintéticos, e também
no layout da ferramenta, para sanar os problemas de navegação.
A análise, então, foi conduzida individualmente com três participantes em
16/04/2014, graduandos em Ciência da Computação. Cada um preencheu a
caracterização, leu o embasamento e executou as tarefas propostas. Um exemplo de
tarefa foi: “Quais são os componentes associados à configuração de software
‘Programador Web’?”. Por fim, os participantes avaliaram a usabilidade da ferramenta.
Em geral, os participantes tiveram êxito em todas as tarefas. A Tabela 1 mostra os
resultados das avaliações dos participantes (P1, P2 e P3), na escala de 0 a 10.
Tabela 1 – Resultados da avaliação de usabilidade
Elementos de interface inspirados em [Nielsen, 1993]
(1) visibilidade do status
A ferramenta informa o que está acontecendo?
(2) concordância entre a ferramenta e o mundo real
A ferramenta utiliza a linguagem do usuário?
(3) controle e liberdade ao usuário
A ferramenta apresenta facilidade de interação e “saídas” claras?
(4) consistência e padrões
Diferentes situações ou ações representam a mesma coisa?
(5) prevenção de erros
O projeto da ferramenta prevê situação de erro ao invés de usar mensagem?
(6) minimização da carga de memória do usuário
As telas mostram o que está sendo feito e dão ideia do caminho percorrido?
(7) flexibilidade e eficiência de uso
A ferramenta atende a usuários experientes?
(8) projeto minimalista e estético
As informações são sintéticas e completas?
(9) reconhecimento, diagnóstico e recuperação de erros
Problemas e soluções são facilmente indicados?
(10) ajuda e documentação
Existem manuais simples e objetivos?
P1
P2
P3
6
5
8
6
8
9
7
1
9
8
8
10
9
9
10
6
0
10
8
7
10
7
8
9
8
4
10
4
6
8
O feedback indicou como pontos fracos: a dificuldade de encontrar informações;
a ausência de um manual on-line da ferramenta (i.e., ícones de ajuda); e a visibilidade do
estágio do usuário na tarefa. Entre os pontos fortes apontados, estão: a clareza dos
gráficos; a compilação da informação; e a prevenção de erros. Observou-se que os dois
participantes com o melhor desempenho nas tarefas foram os mais críticos e deram
feedback mais informativo. A análise realizada teve caráter preliminar e propiciou a
organização de um instrumento para conduzir um estudo de caso na indústria, com
participantes da área de governança, conforme apresenta (Albert, 2014).
6. Conclusão
Devido ao desafio da governança de ECOS, este artigo apresentou a abordagem
SECOView, cujo objetivo é manipular dados de uma biblioteca de ativos de software
para a construção de visões para apoiar a governança de ECOS a partir de atividades de
31
WDES
arquitetura de TI. A abordagem foi implementada como extensão da Biblioteca Brechó e
uma análise preliminar de utilização foi realizada. Como contribuições, são sumarizadas
características, artefatos e recursos importantes para a governança de ECOS no sentido
de apoiar a organização consumidora a melhorar a visão do ECOS em que está inserida.
Buscou-se com a SECOView um suporte para acompanhar a evolução do ECOS da
organização consumidora e dos ECOS relevantes aos seus objetivos de negócio. Os
recursos gráficos da SECOView trazem à pesquisa em ECOS uma visão sobre o
tratamento de dados em bibliotecas de ativos de software, a fim de atender as
necessidades de governança, pela carência de iniciativas na área [Baars & Jansen, 2012].
Alguns trabalhos futuros são apontados: (1) melhorar a interface da ferramenta,
com ícones de ajuda e visualização dos rastros das ações do usuário, e apoiar às demais
atividades do modelo SECOGov; (2) realizar um estudo de usabilidade com gerentes e
arquitetos de TI; e (3) estender a abordagem para tratar a gestão de demandas
(requisitos) em ECOS e contemplar mais variáveis arquitetônicas em sua estrutura.
Referências
Albert, B. (2014). “Secogov: Um Modelo de Governança de Ecossistemas de Software para
Apoiar Atividades de Arquitetura de TI”. Dissertação. COPPE/UFRJ, Rio de Janeiro, Brasil.
Albert, B.; Santos, R.; Werner, C. (2013) “Software Ecosystems Governance to Enable IT
Architecture Based on Software Asset Management”. In: 7th IEEE International Conference
on Digital EcoSystems and Technologies, Menlo Park, USA, pp. 55-60.
Baars, A.; Jansen, S. (2012) “A Framework for Software Ecosystem Governance”. In: 3rd
International Conference on Software Business, Boston, USA, pp. 168-180.
Brechó (2014) “Biblioteca de Componentes, Serviços e Aplicações de Software”, disponível em:
<http://reuse.cos.ufrj.br/brecho>, acesso em julho de 2014.
Freitas, H.; Rech, I. (2003) “Problemas e Ações na Adoção de Novas Tecnologias de
Informação”. Revista de Administração Contemporânea, v. 7, n. 1 (Jan-Mar), pp. 125-150.
Gartner (2007) “Evaluating Global-Class SECO”, disponível em: <http://www.gartner.com/
document/506608>, acesso em julho de 2014.
Gartner (2008) “Gartner Hype Cycles”, disponível em: <http://www.gartner.com/technology/
research/methodologies/hype-cycle.jsp>, acesso em julho de 2014.
Hopkins, B. et al. (2013) “Emerging Technology Innovation Needs New Tools”. Forrester.
Jansen, S.; Finkelstein, A.; Brinkkemper, S. (2009) “A Sense of Community: A Research Agenda
for Software Ecosystems”. In: 31st ICSE, NIER, Vancouver, Canada, pp.187-190.
Manikas, K.; Hansen., K. (2013) “Software Ecosystems – A Systematic Literature Review”.
Journal of Systems and Software, v. 86, n. 5 (May), pp. 1294-1306.
Messerschmitt, D.; Szyperski, C. (2003) “Software Ecosystem: Understanding an Indispensable
Technology and Industry”. Cambridge: MIT Press.
Nielsen, J. (1993) “Usability Engineering”. Cambridge: Academic Press.
Rios, L. (2013) “Governança de Ativos em Ecossistemas de Software na Biblioteca Brechó”.
Trabalho de Conclusão de Curso. Escola Politécnica da UFRJ, Rio de Janeiro, Brasil.
Souza, D. (2008) “Utilização de Técnicas de Visualização para a Recomendação de Substitutos”.
Dissertação. COPPE/UFRJ, Rio de Janeiro, Brasil.
ThoughtWorks (2012) “ThoughtWorks Technology Radar March 2012”, disponível em:
<http://thoughtworks.fileburst.com/assets/technology-radar-march-2012.pdf>.
Werner, C. et al. (2007) “Brechó: Catálogo de Componentes e Serviços de Software”. In: Anais
do XXI SBES, Sessão de Ferramentas, João Pessoa, Brasil, pp. 24-30.
Williams, C.; O’Connor, S. (2011) “Four Best Practices for Software Asset Management”. BCM
Software Industry Insights.
32
WDES
Ecosystem Business Models and Architectures
John D. McGregor1 , Simone da Silva Amorim2
1
School of Computing
Clemson University
Clemson, SC 29634 USA
[email protected]
2
Federal Institute of Education,
Science and Technology of Bahia
Salvador, BA Brazil 40170
[email protected]
Abstract. The ecosystem strategy has provided organizations with time and cost
savings by facilitating collaboration with other organizations with similar product ideas and compatible business models. This strategy requires a compatible
software architecture that is extensible, flexible, and scalable. In this position
paper we clarify definitions, summarize our previous work, and describe our ongoing work that supports defining effective and efficient ecosystem architectures
and business models.
1. Introduction
Every organization that produces a software product is embedded in an ecosystem that
comprises its collaborators, competitors, suppliers, and customers. We use “ecosystem”
as an analogy to the natural environment in which predators and prey interact. The
ecosystems in which we are interested are socio-technical ecosystems in which organizations, people, and technologies collaborate and compete on the development of softwareintensive products. The ecosystem may simply be the natural customer-supplier business
interactions of one organization with those with whom it does business or it may be a carefully orchestrated strategy that involves legal entities such as open source foundations or
partner programs, formal charters, and fees for membership.
Each organization in the ecosystem is following a business model that is more
collaborative, more continuous, more personalized, and more transparent than traditional
counterparts [Prahalad and Krishnan 2008]. Businesses are involving customers in the
product design process much more deeply than a few focus groups. By using social media
the opinions, complaints, and suggestions of customers are available to product designers as are their purchasing patterns. Rather than waiting for customers to initiate another
purchase, organizations establish a continual dialog via newsletters, reminders of events,
and other occasional communication. The data gathered from these continuous, collaborative relationships support the design of products that can be personalized based on data
collected in the ecosystem. The design process becomes more transparent to customers
as more information is revealed on both sides to establish the continuous relationship.
The software architecture underlying an ecosystem structure is critical to long term success because it unifies the work of personnel who are
33
WDES
distributed over different organizations and over geography.
In our previous work we have illustrated the need for the architecture of products, built
following an ecosystem-based strategy, to be flexible, extensible, and scalable [da Silva Amorim et al. 2013] [McGregor et al. 2013] [da Silva Amorim et al. 2014a]
[da Silva Amorim et al. 2014b]. The products must be sufficiently flexible to allow each
ecosystem member to configure easily the core product to meet the needs of their
particular customers. The architecture must be sufficiently extensible to allow completely
new features to be added to the core with minimal modifications. The architecture should
be sufficiently scalable to support the anticipated growth over the product life cycle.
We have observed that productive and robust ecosystems are centered around explicitly defined business models and a software architecture designed to satisfy those business models. There needs to be explicit linkages between the characteristics of the ecosystem strategy, business models, and the quality attributes of the product architectures.
The contribution of this paper is an analysis of the interactions of the three quality attributes, flexibility, extensibility, and scalability, with popular ecosystem business
models. We discuss the mechanisms that support these attributes and the tradeoffs that
result in products with these attributes as high priorities. We illustrate with examples
of specific architectures. The remainder of this paper is structured as follows: section 2
presents background relevant to understanding the analysis, section 3 presents an analysis
of quality attribute interactions, and section 4 summarizes our work and describes next
steps.
2. Background
2.1. Business models
A successful business model has a customer value proposition, profit formula, key resources, and key processes [Johnson et al. 2008]. We will use these elements as we analyze the impact of architecture qualities on business models in the next section. We
briefly present three business models, which will be used in the analysis, and we will
provide more details during the analysis discussion.
2.1.1. Coopetition
The “coopetition” business model is an efficient product development strategy that
leverages the collaboration among organizations in the ecosystem to share effort
and risks among the group. The group of organizations identify a core architecture that they wish to share among themselves, sometimes referred to as a platform [Baldwin and Woodard 2008]. The group collaborates in the planning and design
of the core architecture. They implement the core and often add frameworks that they
think will be useful in building products. These same collaborators then individually
compete with each other by taking the commonly developed artifacts and extending or
configuring them to produce a product of interest to their specific customer base. The
coopetition model’s value proposition addresses faster time to market and shared risk;
its profit formula is based on software reuse; key resources such as intellectual property
(IP) surrounding the core architecture which must be managed and key processes such
as management by consensus and promotion by meritocracy. For example, BMW applies
34
WDES
the coopetition business model to developing automotive systems through the AUTOSAR
Partnership, which has over 100 member organizations. The basic artifact is an automotive platform from which other vehicles can be built. BMW benefits because it can share
some of the risk of a new model with competitors such as Ford and GM and because the
extensive reference architecture allows BMW to produce more quickly and cheaply than
rivals that are not in the partnership.
2.1.2. Multi-sided markets
Hagiu and Wright defines a multi-sided market as “an organization that creates value primarily by enabling direct interactions between two (or more) distinct types of affiliated
customers” [Hagiu and Wright 2011]. In this model, an organization creates a product
that brings together two other groups that directly interact. Most often the product developer also establishes the market that creates value by having two types of clients. The
clients also provide feedback on improving the software supporting the market. This business model’s value proposition is to arrange for information suppliers and consumers to
be able to find each other; the profit formula is either fee-based or advertising-based; the
key resources are the software platform and members of the two client pools; the key
processes are developing the software and attracting clients. For example, the Science
Exchange provides a web portal where laboratories can register services which they offer [Science Exchange 2014]. Research groups can use the portal to locate services that
they may need as part of their experimentation.
2.1.3. Partner program
A large organization may establish a “partner” program whose membership is open to
other organizations interested in collaboration on one or more products. These organizations often pay a fee in order to gain the advantage of early access to new releases of
a product or special access to source code or other artifacts which they can use to build
extensions and apps. This early access allows the partners to have new products synchronized with the release of a new version of the main product; however, partners usually
do not have special access to source code and use the core application programming interfaces (APIs) to build products. The value proposition is being first to market, which
is an important advantage [Popp 2011]; the profit formula can be fee-based, in-kind contributions, or based on the product extensions attracting more buyers to the core product;
the key resources are the plans and designs of the dominant organization; key processes
are attracting partners and information sharing processes. For example, Microsoft has a
partner program for many of its products [Microsoft 2014]. Although definitely not open
source, Microsoft teams gather input from a variety of sources including the partners and
build roadmaps of products and features. Partners’ early access does not give them any
special access to source code; however, they are given access to the planned APIs earlier
than non-partners.
2.2. Quality Attributes
Based on our experience with a number of ecosystems in a number of domains,
we identified three quality attributes of the core architecture that contribute to
35
WDES
the success of an ecosystem: Extensibility, Scalability and Flexibility. We have
investigated how these quality attributes are present in ecosystem architectures.
[da Silva Amorim et al. 2013][da Silva Amorim et al. 2014a][da Silva Amorim et al. 2014b]
present the findings for each attribute and describe their impact in ecosystem architectures.
In our first study about Extensibility[da Silva Amorim et al. 2013] we investigated
the APIs of ecosystem platforms. APIs are the common mechanism that is used to allow
that external developers to connect their applications to the platform. A well-designed
API is essential to keeping external developers productive and satisfied. We identified 4
features with considerable influence in the building of an efficient API: Completeness,
Complexity, Design and Documentation. A complete API contains all the API elements
necessary to make developers’ work easier; the complexity of an API is reduced by eliminating details not needed to understand how to use the functions; the design of the API
influences how the components are organized and how decisions are made during building process; the documentation of the API offers guidance for external developers if it
is well-organized and clear. We examined these APIs features in 3 ecosystem platforms,
Hadoop [Monteith et al. 2013] that is increasing in use, Eclipse [Wermelinger 2009] that
is in solid use and CORBA [Schmidt 1993] that is declining in use. We evaluate how
these features are present in these architectures in order to illustrate extensibility in these
ecosystem architectures.
In our second study[da Silva Amorim et al. 2014a] we investigated the characteristics that contribute to build a scalable ecosystem. We used the six features defined by
Bondi [Bondi 2000] that describe the types of scalability in general systems: load, space,
space-time, structural, distance and speed/distance. We extended this classification and
defined more two additional features: artifact and people. Artifact scalability concerns
the increased number of managed artifacts over time. This increase occurs over chronological time, when several organizations join to ecosystem, over and over the phases of
the development process as they add new features to the platform. People scalability relates to the ecosystem’s ability to manage the growth of the membership of people and
organizations. These new participants contribute to diversity in the environment and improve the robustness and sustainability of the ecosystem. In addition, we performed case
studies with two ecosystems, the Eclipse Foundation [Wermelinger 2009] and Apache
OODT [Apache Foundation 2014] to examine these features in real-world ecosystems.
In our latest study [da Silva Amorim et al. 2014b], we analyzed features that influence the flexibility of ecosystem architectures. These features were classified into two
dimensions: business and technical dimensions. The business dimension refers to interactions among internal and external developers in addition to political and economical
aspects that influence design decisions that allow the building of flexible architectures.
The technical dimension considers the technical attributes with special attention to the
explicitly defined features of the architecture. We used Baldwin’s approach that is based
on the Propagation Cost metric [Baldwin et al. 2013] to adapt for ecosystems architectures. The original approach uses the design structure matrix (DSM) to record dependencies among the modules of system and to calculate the propagation cost considering
this cost as a measure of the system flexibility [MacCormack et al. 2006]. It does not
consider the dependencies of the API connected to the platform. We added weights in-
36
WDES
side the matrix where the values represent dependence with a module of the API. This
is the first step to get a different metric specific for ecosystem architectures. We applied
this metric in the Apache OODT ecosystem to exemplify the adaptation of the flexibility [Apache Foundation 2014].
3. Analysis
An ecosystem is successful if it continues to attract participants and is compatible with
their business models. This motivates the need for a platform that can meet the needs of
a wide range of participants. The platform is based on a core architecture that is scalable,
flexible, and extensible. Given the basics defined in section 2 we now consider how these
qualities support three ecosystem business models.
3.1. Business model characteristics
Table 1 provides a brief description of the linkages between the business process characteristics described in [Prahalad and Krishnan 2008] and the three business models we are
investigating.
Table 1. Business models vs. properties
Collaborative
Continuous
Personalized
Transparent
Coopetition
Ecosystem members co-develop products and
compete on the deployment of those products.
Feedback on innovations from product users
informs platform developers.
Multi-sided Market
An ecosystem member collaborates with two
consumer markets to bring them together.
Partners
The dominant producer collaborates with
smaller producers.
Feedback from both markets informs the platform supplier.
Platform may be used directly by individuals
instead of other product builders.
Open source development ecosystems show
everything from rules to voting.
Participants can filter a market to receive only
the information they wish to have.
Links to outside information energize both
markets through competition.
Ecosystem members work to attract new
clients, maybe even individuals, into the
product innovation process.
Users select the partners they wish to work
with and the add-ons they want to use.
Published categories of membership instead
of individual transactions level the playing
field.
3.2. Analysis by business model feature
The three quality attributes address each of the four parts of a business model but in
different ways for different models.
3.2.1. Value Proposition
The basic value proposition for ecosystem strategies includes reduced costs, quicker delivery of new features, and improved quality. These benefits are realized from improved
synergies among members of the ecosystem and are realized by both developers and users.
Flexible - The coopetition business model and the multi-sided markets model both
benefit from the flexibility provided by the variation mechanisms in the core architecture
to reconfigure the core to address multiple audiences. Most partner programs provide
less flexibility and the partners only build extensions rather than reconfiguring the core
product.
Extensible - The coopetition business model has less need for extensibility because the intense interactions in designing the core platform gives opportunities for anticipated changes to be identified and accommodated via variation mechanisms. The multisided markets business model uses extensibility when a specific client population can
be attracted by domain-specific features such as background checks for a dating service.
37
WDES
The partner programs extend the core product but market timing is controlled by the core
product.
Scalable - The multi-sided markets and partner models are based on handling
specific client loads so scalability is critical. The coopetition model is more generic and
certain types of products might be load sensitive such as the size of the product to be built
in a tools ecosystem.
3.2.2. Profit formula
The profit formulae for ecosystem strategies vary across strategies and roles of organizations, but what is common is that most strategies use an indirect formula. That is, the
organizations using many of the ecosystem strategies do not directly receive payment for
some of the work that is done. The work on the core platform is, in most cases, pooled
for the common good, often as open source. The profit may come from delivering an
audience for advertising-based models or from the ability for each participant to use the
work of the whole group as the basis for future products.
Flexible - The flexibility of the core platform enhances the profit formula of an
organization by giving the organization options for future products and helps attract and
retain developers. The effort required for inserting the variation mechanisms and for later
exercising these options is a cost against that profit. The coopetition model is particularly
sensitive to how flexible the platform is since the expectation is to produce products as
rapidly as possible.
Extensible - The extensibility of the core platform is the key to profit in the
ecosystem architectures. Anticipating all future features is impossible; however, ecosystem architects manage future feature development through the insertion of variation mechanisms. The use of loose coupling and well-defined APIs reduce the cost of defining the
extensions required for products and thereby increase profits.
Scalable - Products that utilize the multi-sided markets strategy will need to scale
in multiple dimensions in order to profit. Being able to handle an unconstrained number
of participants on each side of the market will yield the best profit.
3.2.3. Key resources
Personnel, money, and facilities are the key resources specified in most ecosystem business models. The facilities in particular include tools for collaboration and social networking tools. The ecosystem is as strong as the interactions among the organizations
and between the organizations and its customers.
Flexible - Developers who were not involved in building the core can become
productive more rapidly due to the variation mechanisms in place in the flexible architecture. This conserves all of the key resources. The multi-sided markets strategy follows
a distinct pattern which can be reflected in variation mechanisms and recipes to speed
development and conserve resources.
38
WDES
Extensible - Well-defined APIs in an extensible architecture make it easy for organizations following a partner strategy to attach their product extension to the main product. Up-to-date documentation, example architecture instantiations, and other aids assist
the developer in building product extensions.
Scalable - The multi-sided market strategy is sensitive to scaling from a resource
perspective. The searching and matching that usually is the focus of such a strategy needs
an architecture that maintains a linear growth pattern.
3.2.4. Key processes
The ecosystem business models usually include collaborations such as peer-to-peer,
dominant-to-subordinate, and multi-way interactions. The models also include development processes for both the core platform and products that are extensions of the core.
Flexible - The explicit variation mechanisms inserted in the core product to make
it flexible allows the development of the products to follow a set pattern making the process easy to define and follow. Ecosystems using the coopetition strategy select the variation mechanisms that first fit the situation and then that are the easiest to exercise.
Extensible - The partner strategy will benefit the most from having a standard set
of processes for defining and then for using the APIs in the architecture because partners
are usually limited to accessing the product through APIs to define extensions. In the
coopetition model the organization who developed the core is also developing the product
and should have some residual knowledge that goes beyond the APIs and should have
sufficient access to benefit from it.
Scalable - The development processes must accommodate a changing number of
organizations and their contributed resources. The processes must be able to scale in
a distributed environment. For the ecosystem to be successful the development process
must be able to support increases in number of organizations, number of developers, and
number of projects.
4. Summary
The ecosystem strategy supports a number of unique business models and enhances some
traditional ones as well. Each model supports different value propositions, profit is realized in different ways, and key resources and processes impose different constraints. The
architects and developers building the core architecture need to understand the business
model that ultimately will be the guide to success in order to prioritize how to handle
variation points, API definitions, and algorithm growth rates.
Our future work will include defining measures which distinguish ecosystems that
possess differing degrees of flexibility, extensibility, and scalability and does so in units
that are useful to ecosystem participants. The processes will have to address the wide variation in how the core architecture will ultimately be used. We will also identify ecosystem
design patterns.
References
Apache Foundation (2014). Apache oodt. http://oodt.apache.org/.
39
WDES
Baldwin, C., MacCormack, A., and Rusnak, J. (2013). Hidden structure: Using network
methods to map product architecture. Technical Report Working Paper 13-093, Harvard Business School.
Baldwin, C. Y. and Woodard, C. J. (2008). The architecture of platforms: A unified view.
Technical Report 09-034, Harvard Business School.
Bondi, A. B. (2000). Characteristics of scalability and their impact on performance. In
Proceedings of the 2nd international workshop on Software and performance, pages
195–203.
da Silva Amorim, S., Almeida, E. S. D., and McGregor, J. D. (2013). Extensibility in
ecosystem architectures: an initial study. In WEA, pages 11–15.
da Silva Amorim, S., de Almeida, E. S., and McGregor, J. D. (2014a). Scalability of
ecosystem architectures. In WICSA, pages 49–52.
da Silva Amorim, S., McGregor, J. D., Almeida, E. S. D., and von Flach G. Chavez, C.
(2014b). Flexibility in ecosystem architectures. In WEA.
Hagiu, A. and Wright, J. (2011). Multi-sided platforms. Technical Report 12-024, Harvard Business School.
Johnson, M. W., Christensen, C. M., and Kagermann, H. (2008). Reinventing your business model. Harvard business review, 86(12):57–68.
MacCormack, A., Rusnak, J., and Baldwin, C. Y. (2006). Exploring the structure of
complex software designs: An empirical study of open source and proprietary code.
Management Science, 52(7):1015–1030.
McGregor, J. D., Monteith, J. Y., Amorim, S., and Almeida, E. (2013). Modeling the
contributions of software architecture to the success of an ecosystem. In Proceedings
of SATURN - SEI Architecture Technology User Network.
Microsoft (2014). Microsoft partner program. https://mspartner.microsoft.
com/en/us/Pages/index.aspx.
Monteith, J. Y., McGregor, J. D., and Ingram, J. E. (2013). Hadoop and its evolving
ecosystem. In Proceedings of the Fifth International Workshop on Software Ecosystems, pages 57–68.
Popp, K. M. (2011). Hybrid revenue models of software companies and their relationship
to hybrid business models. In IWSECO@ICSOB, pages 77–88.
Prahalad, C. and Krishnan, S. (2008). The New Age of Innovation: Driving Cocreated
Value Through Global Networks. McGraw Hill professional. McGraw-Hill Education.
Schmidt, D. C. (1993). The adaptive communication environment: An object-oriented
network programming toolkit for developing communication software.
Science Exchange (2014). https://www.scienceexchange.com/.
Wermelinger,
M. (2009).
The architecture evolution of
http://michel.wermelinger.ws/chezmichel/2009/10/
the-architectural-evolution-of-eclipse/.
40
eclipse.
WDES
Qualidade em Ecossistemas de Software:
Desafios e Oportunidades de Pesquisa
Rodrigo Santos1, George Valença2, Davi Viana3, Bernardo Estácio4, Awdren Fontão3,5,
Sabrina Marczak4, Cláudia Werner1, Carina Alves2, Tayana Conte3, Rafael Prikladnicki4
1
PESC/COPPE – Universidade Federal do Rio de Janeiro (UFRJ)
2
CIn – Universidade Federal de Pernambuco (UFPE)
3
IComp – Universidade Federal do Amazonas (UFAM)
4
FACIN – Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
5
INdT – Instituto Nokia de Tecnologia
{rps, werner}@cos.ufrj.br, {gavs, cfa}@cin.ufpe.br,
{davi.viana, tayana}@icomp.ufam.edu.br, [email protected]
{bernardo.estacio, sabrina.marczak, rafaelp}@pucrs.br
Abstract. Distributed software development has become a reality over the last decade. The
Software Engineering community has investigated technical, economic and social aspects.
This scenario leveraged the development of globalized, large-scale and long-term
platforms, which is treated as a kernel of software ecosystems. Understanding how this
scenario impacts the quality in software ecosystems has been considered a critical success
factor. This paper presents an initial discussion on the quality in software ecosystems
towards the identification of some challenges and opportunities.
Resumo. Desenvolvimento distribuído de software se tornou uma realidade na última
década. A comunidade de Engenharia de Software tem investigado aspectos técnicos,
econômicos e sociais. Isso propiciou o desenvolvimento de plataformas globalizadas, de
larga escala e de longo prazo, que tem sido tratado como o núcleo de ecossistemas de
software. Entender como este cenário impacta a qualidade em ecossistemas de software
tem sido um fator crítico. O artigo apresenta uma discussão inicial sobre qualidade em
ecossistemas de software visando identificar alguns desafios e oportunidades.
1. Introdução
O Desenvolvimento Distribuído de Software (DDS) se tornou uma realidade na última década
(Jiménez et al., 2009). Apesar dos desafios geográficos e culturais da colaboração, uma das
principais motivações do DDS está na busca por equipes mais produtivas e especializadas, produtos
de melhor qualidade e redução de custos de desenvolvimento (Sengupta et al., 2006). Paralelamente
à consolidação do DDS, outros modelos de desenvolvimento têm surgido, não limitados ao escopo
de um projeto/produto único (Cataldo & Herbsleb, 2010). Ao reunir diversos projetos em torno de
uma tecnologia de software central, esses modelos têm permitido o desenvolvimento de plataformas
globalizadas, de larga escala e de longo prazo (Manikas & Hansen, 2013). Tais plataformas
originam sistemas mais complexos, que integram uma rede de diversos atores e artefatos, mesmo
externos a elas, e formam Ecossistemas de Software (ECOS) (Bosch, 2009). Dittrich (2014) relata
que as práticas observadas em ECOS desafiam alguns pressupostos da Engenharia de Software (ES)
tradicional, dado que o desenvolvimento dos produtos não ocorre em torno de um projeto e sim pela
inovação contínua feita por diversos atores do ecossistema (i.e., inovação aberta). Nesse contexto,
um dos fatores críticos do desenvolvimento está na qualidade em ECOS (Santos & Werner, 2012).
Nos diferentes cenários de DDS, fatores que impactam a qualidade são discutidos, seja no
desenvolvimento local (onshoring) ou global (offshoring), dentro da empresa (insourcing) ou com
terceiros (outsourcing) (Prikladnicki & Audy, 2010). Entre eles, destacam-se o alinhamento entre os
41
WDES
processos, as dependências entre as atividades e entre os artefatos, a gestão de projetos globais e a
comunicação (Gomes & Marczak, 2012). Estes fatores influenciam na forma como o software é
definido, construído, testado e entregue aos consumidores, afetando consequentemente os estágios
do ciclo de vida (Jiménez et al., 2009). Semelhante a um dos cenários de DDS, as plataformas de
ECOS são desenvolvidas de maneira global, com o envolvimento de terceiros. No entanto, em
ECOS, atores externos, conhecidos ou não, atuam no desenvolvimento de produtos e/ou da própria
plataforma (Barbosa et al., 2013). Nesse sentido, alguns desafios de DDS podem ser herdados por
ECOS, que trazem fatores adicionais para qualidade, como abertura da arquitetura da plataforma,
hibridização de modelo de negócio e governança em outsourcing (Jansen et al., 2009).
Este artigo apresenta uma discussão inicial sobre qualidade em ECOS visando identificar
desafios e oportunidades de pesquisa para a comunidade de ES. Além desta seção de introdução, o
artigo está organizado da seguinte forma: a Seção 2 apresenta uma visão geral de como a qualidade
tem sido abordada em ECOS; a Seção 3 discute alguns desafios e oportunidades para qualidade em
ECOS; e a Seção 4 discorre sobre as considerações finais do artigo.
2. Qualidade em Ecossistemas de Software
Com uma ampla atuação de atores externos à organização que provê a plataforma, como startups e
desenvolvedores independentes (Miranda et al., 2014), o desafio da qualidade em ECOS vem se
tornando uma questão importante (Axelsson et al., 2014). De acordo com Barbosa et al. (2013), a
questão da qualidade não tem sido definida ou tratada especificamente para ECOS, mas a maneira
pela qual a qualidade é medida vem sendo uma preocupação real. As primeiras iniciativas para
discutir qualidade em ECOS foram voltadas para a avaliação das contribuições dos atores, o que é
crucial para o desenvolvimento e evolução da plataforma (Hmood et al., 2010). Na presença de um
keystone1, fatores adicionais são percebidos, como o nível de controle e poder sobre o ECOS
(Jansen et al., 2009). Por exemplo, para um ECOS fechado, como o ECOS iPhone, o keystone tem
controle para garantir que as contribuições atendam a um padrão de qualidade mínimo exigido pelo
canal de distribuição (AppleStore). Já em um ECOS aberto, como o ECOS MySQL/PHP, onde os
atores têm acesso ao código fonte e às bases de conhecimento relacionadas, o controle de qualidade
é mais difícil de ser gerenciado e garantido, considerando atores externos desconhecidos.
Além disso, a qualidade em ECOS não tem se restringido à visão dos processos e dos
produtos, mas explora a visão de saúde e de prosperidade (Fotrousi et al., 2014). Em (Manikas &
Hansen, 2013), percebe-se esta relação com a saúde do ECOS, i.e., o grau com que um ECOS
oferece oportunidades para colaboradores e para os que dele dependem. Por exemplo, Dhungana et
al. (2010) discutem dois indicadores: (i) sustentabilidade, capacidade do ECOS aumentar ou manter
a comunidade de colaboradores diante do aparecimento de tecnologias/produtos de competidores; e
(ii) diversidade, capacidade do ECOS envolver diferentes colaboradores ao prover uma plataforma
que dê suporte a diferentes produtos, linguagens, dispositivos, perfis etc. Já Hartigh et al. (2006)
apresentam três categorias de indicadores: (i) produtividade, capacidade do ECOS adaptar e
entregar novas tecnologias, processos e ideias aos seus participantes; (ii) robustez, capacidade do
ECOS sustentar a sua rede de relacionamentos e manter a arquitetura da plataforma estável; e (iii)
criação de nicho, capacidade do ECOS inovar ou propiciar que a sua comunidade o faça.
Vale ressaltar que, diferente do processo de desenvolvimento de um único produto, em
ECOS não há separação entre o desenvolvimento da plataforma e dos projetos sobre ela (Cataldo &
Herbsleb, 2010). Isso requer processos de gestão distribuídos que ampliam a forma de avaliar a
1
Um keystone é uma organização que disponibiliza uma tecnologia de software central para ampliar o seu portfólio de
produtos e serviços a partir da integração ou construção de novas soluções por atores externos (Jansen et al., 2009).
42
WDES
capacidade e maturidade dos processos dos atores do ECOS (Santos & Werner, 2012). São
necessárias estratégias para coordenar diferentes atores e sua comunicação no ECOS (Farias Júnior
et al., 2013); técnicas para melhorar a experiência (Fontão et al., 2014) e motivação (Miranda et al.,
2014) dos colaboradores; e abordagens (guias e padrões) para certificação das contribuições dos
atores (Maia et al., 2013) e para negociar requisitos nos projetos do ECOS (Valença et al., 2013).
3. Desafios e Oportunidades de Pesquisa
Esta seção resume alguns desafios para garantir a qualidade em ECOS. Para identificá-los, utilizouse a categorização de questões de DDS definida por Audy & Prikladnicki (2008) como orientação:
processos de software, infraestrutura, pessoas ou recursos humanos, gerenciamento e comunicação.
Os desafios relacionados a DDS (Seção 1) e a explanação sobre qualidade em ECOS (Seção 2) são
tomados como base e questões específicas de ECOS são trazidas à discussão:
Categoria 1 – Processos de Software e Padrões
Como responsável pela gestão da plataforma e do ecossistema em torno dela, o keystone deve rever
seus processos de software para melhorar a experiência dos colaboradores do ECOS (e.g.,
desenvolvedores externos, fornecedores etc.) e estabelecer controles adequados aos diferentes tipos
de atores. Nesse contexto, indicadores de saúde de ECOS podem ser usados como instrumentos
para apoiar a avaliação da capacidade e maturidade do keystone, visando lidar com a qualidade.
O keystone deve disseminar boas práticas e padrões arquiteturais para garantir a consistência das
integrações dos produtos no ECOS, cobrindo assim a sustentabilidade, a produtividade e a robustez
do ECOS. Seja no contexto de comunidades ou naquele formado por empresas de software, é
fundamental que frameworks e bibliotecas de desenvolvimento ou sistemas integradores funcionem
como mecanismos para garantir o pleno funcionamento das soluções geradas (e.g., capacidade para
manter a execução de aplicativos desenvolvidos por terceiros em ECOS móveis).
Categoria 2 – Aspectos Sociais e Gestão do Conhecimento
O conhecimento circulante entre a plataforma e os produtos ao redor influencia o processo de
aquisição de tecnologias pelo keystone. A diversidade dos elementos que compõem o ECOS e as
contribuições intelectuais dos diferentes atores devem ser aproveitadas adequadamente pelos
projetos e pela plataforma por meio de diferentes estratégias de captura de conhecimento.
Adicionalmente, é importante que a credibilidade de um colaborador seja verificada por meio de
certificações ou processos de seleção de parceiros adaptados para as particularidades de ECOS.
Categoria 3 – Governança
Uma estratégia de Gestão dos Produtos de Software (Software Product Management) deve ser
estabelecida pelo keystone e comunicada aos demais atores do ECOS. Desse modo, é possível que
haja alinhamento de portfólios e conhecimento do roadmap dos produtos. Nesse sentido, sob a ótica
de gestão de requisitos, requisitos de qualidade e de integração devem ser identificados e
difundidos. Em particular, requisitos de integração podem favorecer a reutilização ao serem
incorporados pela plataforma, reduzindo problemas relacionados e facilitando o atendimento de
prazos, possibilitando ainda a inovação pela comunidade e ajudando na criação de nicho.
As atividades de governança de ECOS podem auxiliar o keystone na identificação de atores e
artefatos críticos para a plataforma, internos e externos. Além disso, o keystone deve estabelecer
orientações quanto a atividades de teste pelos colaboradores de forma a garantir confiabilidade e
segurança de seus produtos para diferentes plataformas de ECOS. Por fim, colaboradores precisam
analisar e/ou comparar a saúde de diferentes ECOSs de interesse para tomar decisões nos projetos
de suas contribuições para a plataforma, e.g., sobre o planejamento de releases.
43
WDES
4. Considerações Finais
Este artigo apresentou uma discussão inicial sobre qualidade em ECOS. Alguns dos desafios de
qualidade em ECOS identificados são herdados do DDS, porém com uma amplitude de questões
relacionadas à arquitetura e modelos de negócio. Entre os itens chave de qualidade, estão a
aplicabilidade das metodologias atuais para maturidade e capacidade de processos de software em
relação a ambientes de ECOS e a gestão de conhecimento e aspectos sociais dos diferentes atores
com a finalidade de promover mais qualidade e saúde para os ECOSs. Além disso, devido à vasta
literatura de gestão do conhecimento, devem-se analisar possíveis adaptações de estratégias
existentes para os novos ambientes de desenvolvimento gerados pelos ECOSs. Não obstante o
amadurecimento das pesquisas mais voltadas para ECOS a partir de 2009 (Barbosa et al., 2013),
ainda são necessários trabalhos que investiguem o tópico de forma mais aprofundada. Como
próximos passos, pretende-se desenvolver um framework para gestão e monitoramento da qualidade
em ECOS, bem como explorar a qualidade de processos e produtos a partir de elementos de DDS.
Referências
Audy, J. & Prikladnicki, R. (2008) “Desenvolvimento Distribuído de Software”. Campus.
Axelsson, J. et al. (2014) “Characteristics of software ecosystems for Federated Embedded Systems: A case
study”. Information and Software Technology. In press.
Barbosa, O. et al. (2013) “A Systematic Mapping Study on Software Ecosystems through a Three-dimensional
Perspective”. In: Jansen, S. et al. (eds.) Software Ecosystems: Analyzing and Managing Business Networks in
the Software Industry, Edward Elgar, 59-81.
Bosch, J. (2009) “From Software Product Lines to Software Ecosystem”. In: SPLC, San Francisco, 1-10.
Cataldo, M., Herbsleb, J. (2010) “Architecting in Software Ecosystems: Interface Translucence as an Enabler for
Scalable Collaboration”. In: 4th ECSA, 2nd IWSECO, Copenhagen, 65-72.
Dittrich, Y. “Software engineering beyond the project – Sustaining software ecosystems”. Information and
Software Technology. In press.
Farias Junior, I. et al. (2013) “Reflexões sobre Comunicação no Desenvolvimento Distribuído no Contexto de
Ecossistemas de Software”. In: VII WDDS, Brasília, 52-59.
Fontão, A. et al. (2014) “MSECO Skill: Construção de Competências de Desenvolvedores em Ecossistemas de
Software Móvel”. In: XVII CIbSE, Pucón, 81-94.
Fotrousi, F. et al. (2014) “KPIs for Software Ecosystems: A Systematic Mapping Study”. In: 5th ICSOB, Paphos.
Gomes, V., Marczak, S. (2012) “Problems? We All Know We Have Them. Do We Have Solutions Too? A
Literature Review on Problems and Their Solutions in GSD”. In: ICGSE, Porto Alegre, 154-158.
Hartigh, E. et al. (2006) “The Health Measurement of a Business Ecosystem”. In: 6th Annual Meeting of the
European Chaos and Complexity in Organisations Network, Bergen aan Zee, 39p.
Hmood, A. et al. (2010) “OntEQAM – A Methodology for Assessing Evolvability as a Quality Factor in Software
Ecosystems IEEE Industrial Software Evolution and Maintenance Processes”. In: WISEMP, Montreal.
Jansen, S. et al. (2009) “A Sense of Community: A Research Agenda for Software Ecosystems”. In: 31st ICSE,
NIER, Vancouver, 187-190.
Jiménez, M. et al. (2009) “Challenges and Improvements in Distributed Software Development: A Systematic
Review”. Advances in Software Engineering 2009(3):1-16.
Maia, N. et al. (2013) “Elementos que Impactam o Planejamento de Testes em Ambientes de Desenvolvimento
Distribuído no Contexto de Ecossistemas de Software”. In: VII WDDS, Brasília, 60-67.
Manikas, K., Hansen, K. (2013) “Software Ecosystems – A Systematic Literature Review”. Journal of Systems
and Software 86(5):1294-1306.
Miranda, M. et al. (2014) “An exploratory study of the adoption of mobile development platforms by software
engineers”. In: 1st MOBILESoft, Hyderabad, 50-53.
Prikladnicki, R., Audy, J. (2010) “Process models in the practice of distributed software development: A
systematic review of the literature”. Information and Software Technology 52(8):779-791.
Sengupta, B. et al. (2006) “A research agenda for DDS”. In: 28th ICSE, Shanghai, 731-740.
Santos, R., Werner, C. (2012) “ReuseECOS: An Approach to Support Global Software Development through
Software Ecosystems”. In: VI WDDS, Porto Alegre, 60-65.
Valença, G. et al. (2013) “Analysing Requirements Negotiation in Software Ecosystems with Multi-Agent
Systems Techniques”. In: VII WDDS, Brasília, 44-51.
44
WDES
Towards the Dynamic Evolution of Context-based
Systems-of-Systems
Elisa Yumi Nakagawa1, Rafael Capilla2, Francisco J. Díaz3, and Flávio Oquendo4
1
2
3
University of São Paulo – USP, São Carlos, Brazil
University Rey Juan Carlos – URJC, Madrid, Spain
Ingeniería y Economía del Transporte – INECO, Madrid, Spain
4
IRISA - University of South Brittany – USB, Vannes, France
[email protected], [email protected],
[email protected], [email protected]
Abstract. Systems engineering has invested considerable efforts in the
development of complex-large systems, often known as Systems-of-Systems
(SoS). However, the systematization of current engineering practices based on
the inherent complexity and size of these systems is still challenging for
software engineers. In this light we focus in this paper on the evolution aspects
of SoS using dynamic variability techniques. We suggest paths where runtime
variability mechanisms can help to manage the evolution of such complexlarge systems.
1. Introduction
The discipline of Systems Engineering is considered an interdisciplinary field focused
on the design and management of large-scale systems [Sage 2000]. Systems engineering
deals with all those organizational and technical disciplines where a complex system is
considered and integrated as a whole. System engineering overlaps with other technical
and human-centered disciplines (e.g., control engineering, project management,
industrial engineering or mechatronics) aimed to produce and manage complex software
systems. Nowadays, the genesis and development of large Ultra-Large-Scale (ULS)
systems [Northrop 2006] perceived as a System-of-Systems (SoS) bring many
challenges from its conception to its maintenance and evolution.
SoS encompasses the integration of various operationally independent systems, even
developed with different technologies and for diverse platforms. An adequate
integration has been more and more necessary to promote cooperation among these
independent systems in order to provide more complex functions, which could not be
provided by any system working separately [Maier 1998]. One important challenge for
SoS development refers to its evolutionary development. Complex systems that exploit
context-awareness and modify their behavior at runtime demand more complex
maintenance procedures. As functions and purposes of SoS can change at runtime and
45
WDES
new constituents can be reassembled to perform a different mission, the challenge for
adaptive behavior in SoS demands specific solutions.
In this scenario, this paper discusses about SoS evolution. In particular, we focus on
addressing how dynamic variability techniques can support the evolution of such
complex systems. The remainder of this paper is as follows. In Section 2 we
characterize SoS from an architectural point of view. Section 3 discusses the evolution
and needs of SoS that demand dynamic adaptation and Section 4 motivates the role of
dynamic variability as key for the evolution of SoS. In Section 5 we outline the
application domain of Airport Management Systems and in Section 6 we suggest how
dynamic variability can help to develop and evolve better such large-scale systems.
Finally, in Section 7 we draw our conclusions and future work.
2. SoS Characterization
An SoS is constituted of various operational and managerially independent,
heterogeneous constituents interoperating and complying with a larger mission [DoD
2008]. Several examples of SoS can be identified; for instance, a medical system
integrating systems to diagnosis, treatment, and management of patients, airport system,
and avionics system, including several of them characterized as critical embedded
systems.
Two main characteristics are directly related to the constituent systems of an SoS: (i)
Operational independence: each constituent can deliver its own functionalities when not
working with other constituents; and (ii) Managerial independence: constituents keep
their own managerial sphere, being sometimes developed by diverse companies or other
institutions. In addition, considering the whole SoS, four characteristics are inherent: (i)
Emergent behavior: SoS can deliver new functionalities resulting from constituents
working together; (ii) Evolutionary development: functions and purposes of SoS can
dynamically change at runtime; (iii) Geographic distribution: constituents of an SoS can
be geographically distributed; and (iv) Runtime architecture: a new organization of the
constituents is sometimes necessary in order to comply with the SoS evolution. As
result of these characteristics, SoS becomes naturally unpredictable regarding to what
can happen during their execution. Moreover, unpredictability also characterizes the
environment where a SoS is being executed. Moreover, software essentially influences
the design, construction, deployment, execution, and even evolution of SoS. Therefore,
the backbone of the characteristics of both the constituents and the whole SoS is the
software-intensivity.
Considering the rise of software-intensive SoS and intending to systematize their
development, several initiatives from Software Engineering area can be identified. Both
academy and industry have invested efforts in that direction; however, in general, these
initiatives need still to be more experimented and matured. From the SoS software
architecture perspective, it is also required more research efforts. Software architectures
promote quality attributes, mainly interoperability, adaptability, security, reliability, and
performance, considered most relevant ones for SoS [Nakagawa 2013]. There are also
challenges that need be overcome, including the investigation and establishment of
approaches to create, represent, evaluate, and especially evolve these architectures.
Specifically, these architectures must be also prepared to support dynamic evolution, as
46
WDES
evolution has sometimes occurred without adequate, systematic control, resulting in
degradation of their quality.
3. SoS Evolution Challenges
Managing the complexity of SoS is not easy, demanding complex organizational
procedures. Several modern systems use context information to more efficiently
perform the possible variations and adaptation of their complex operations, which
require changes in their behavior. As the evolution of SoS is naturally a challenging,
complex task, SoS should optimally and adaptively manage the information and
resources according to varying context conditions (e.g., smart cities, intelligent
transportation, wireless sensors, or warfighter systems).
Viewing SoS as a software product line where many systems can interoperate to achieve
the desired functionality facilitates the development, evolution, and management of
SoS. As the variety of SoS can be huge, we will focus on this work on those systems
that require adaptive behavior and where the integration of complex technologies and
platforms demand a significant degree of systems engineering activities. From this
perspective, we state the following challenges focused in the SoS evolution:
Smart and runtime adaptation and reconfiguration: SoS with adaptive and
autonomous behavior should provide mechanisms to change their behavior at runtime
with minimal or none human intervention. Reconfiguration at runtime can be possible if
the solution provided is feasible and performed in many cases under strict timing
requirements;
Dynamic selection of choices: Many autonomous systems need to optimally make
runtime decisions. Hence, variability management at runtime is still a challenging task
for unforeseen scenarios;
Runtime management: The possibility of many critical complex systems to change
from one operational mode to another demands mechanisms where the system variants
can change at post-deployment time;
Awareness of runtime decisions: Software designers should be aware of which
runtime changes can affect to critical parts of the architecture. Consequently, there is a
strong need to notify the relevant stakeholders about critical runtime changes; and
Ripple effect of runtime decisions: As safety and reliability are important design
concerns, critical decisions made by an autonomous behavior may impact on other
critical parts of a complex system. Hence, we need solutions to track on the possible
deviations of the normal system’s operational mode when a change may cause damage
on other parts of the system.
4. The Role of Dynamic Variability
Software product lines have proven as a successful technique for building families of
related systems, often with a high degree of complexity. The evolution of a product line
is achieved on behalf of software variability techniques [Capilla 2013], which maximize
reuse and manage efficiently the variations of their family members. However, when
complex systems demand runtime solutions able to manage the variations of systems
47
WDES
dynamically, runtime variability becomes a relevant technique. Because managing the
variations at runtime is still in the infancy, the emerging parading of Dynamic Software
Product Lines (DSPLs) [Hinchey 2012] aims to manage the variations of systems at
execution time. In this regard we discuss in this section those DSPL techniques that can
be suitable for development and evolution of SoS systems that exploit contextawareness and runtime behavior.
Context-aware properties are the base to exploit runtime adaptation in many complex
systems. The evolution of SoS can be achieved better modeling the contextual
information using variability techniques. This contextual information of SoS that must
be managed at runtime enhances the behavior of the system and supports better the
evolution for unforeseen scenarios, as new functionality could be added, removed, or
changed dynamically. In addition, system dynamics is an approach of systems
engineering aimed to understand the behavior of complex systems over time. However,
one step beyond on simulation of the behavior of complex systems refers to those
solutions that can anticipate system changes at runtime. From a previous work we stated
the challenge for managing runtime variability [Capilla 2011] as a promising solution to
evolve SoS and which techniques can be suitable to model, change, and optimize the
variations that happen when the behavior changes [Capilla 2014]. Consequently,
runtime variability proves as a suitable technique for those SoS that demand adaptive
and sometimes unpredictable behavior during execution time. In next section we discuss
potential solutions at the architectural level for SoS that use context information and
demand runtime adaptation in order to address the evolution challenges described in
Section 3.
5. Airport Management Systems
Regarding the research methodology, in this preliminary work, we did an informal
analysis of the target application domain based on the long experience of one of the coauthors. We did not performed an exploratory case study [Robson, 2002; Runeson
2009] or more formal analysis, as in this position paper we only wanted to state the
main key areas where SoS development can be enhanced with dynamic variability
techniques for the development of complex critical systems. In this light, one important
domain suitable for SoS is the case of Airport Management Systems (AMS), which
encompasses the automation of airport procedures in various areas, such as information
systems, control and computerized remote controls, computer equipment, billing,
baggage handling, security, weather information, controls signaling, and allocation of
airport facilities, among others. All these key areas must work and cooperate in a
coordinate and synchronized manner to handle the normal airport’s operations and
reduce human intervention. At present, the trend is to achieve maximum integration to
maximize coordination and usage of resources and integrate middleware from different
vendors in order to guarantee real-time operations. Consequently, reliability, safety, and
security are major quality concerns addressed by this kind of system, many of them
redundant in the AMS. Some of the subsystems that belong to AMS are the following:
Airfield lighting control systems: this system controls the lighting aids installed on the
airport (runways, taxiways, stop bars, etc.), and in other cases light towers and
48
WDES
obstacles. In small airports this system is often integrated with the power control
system;
Weather information system: it is the responsible for acquiring, processing,
presenting, recording, and disseminating information on the prevailing weather
conditions at the airport and is vital for normal airport’s operations. This system
computes parameters extracted from a variety of sensors, such as wind speed and
direction, atmospheric pressure, rainfall and humidity detection, and it can compute
complex measures such as the Runway Visual Range (RVR);
Automatic baggage handling system: this system results key for the operation of large
airports as it depends of the number of passengers and the season where passengers
travel. It encompasses other subsystems that perform different functions with the
luggage (e.g., billing, transportation, security, classification, etc.) and is considered one
of the most cost-consuming systems in large airports; and
Airport security system: the aim of this system is to manage a wide variety of
subsystems and services to control intrusion detection and the inner perimeter using
CCTV cameras, access control, and fire detection sensors. Various security groups are
associated to different roles and stakeholders.
Other systems belonging to the AMS are: the electrical control system to ensure an
uninterrupted power supply using a large variety of sensors and analyzers, the
allocation of airport resources system, which uses large databases and real-time
information to allocate resources, and the standard communication system, which
interconnects basic services and all voice, radio, and internet communications. Many
other airport facilities can be integrated under the AMS, such as tunnel control system,
passenger information system, slot management system, parking control system, airport
GIS, aircraft docking systems, and many more.
As the large variety of subsystems and parameters is sometimes unmanageable for the
many situations that may occur in an airport, the integration and configuration of all
these system is hard. In many situations, the diversity and amount of the data managed
by these subsystems as well as the responses and operations they need to perform
depend on the state of other systems (e.g., a fire detection system can generate
automatic actions on the access control system and the automatic baggage handling
system, activating different alarms outside the airport). Consequently, the variations and
the diversity of runtime scenarios complicate the maintenance and evolution when new
requirements demand changes in the AMS. According to the SoS evolution challenges
described in Section 3, and in order to address the large number of scenarios that may
arise in the airport’s daily operations, we identified the following challenges that AMS
subsystems need to address regarding the dynamic adaptation and reconfiguration
operations:
Challenge 1: Diversity of information sources where much of the information comes
from the environment. As sensors belonging to different subsystems determine the
airport configuration in real time, the AMS should provide a way to integrate all the
information and distribute it to the implied stakeholders;
Challenge 2: Growing number of mobile employees that often use location services.
The AMS should manage such diversity of information, aiming to exchange important
data among systems and users in raw or cooked format, even outside the airport;
49
WDES
Challenge 3: Dynamic reconfiguration of systems that must be adapted to unforeseen
situations. The huge number of interfacing systems and the kind of data they share
becomes a problem to solve in case a system becomes off-line, in faulty situations or in
maintenance mode, in most cases without interruption of the airport operation; and
Challenge 4: Multilingual and multicultural support. Airlines systems from different
nationalities and different cultures must interact with the airport systems, so, the AMS
should interact with all the airlines systems operating on it. In every season, those
companies may change.
6. Building and Evolving AMS with Dynamic Variability
Considering the inherent characteristics and complexity of AMS and the challenges
stated in the previous section, we identified the following opportunities where static and
dynamic variability can play a role for building and maintaining some of the AMS
subsystems, such as we describe below:
Variability in Airfield lighting control systems: multivendor solutions integrated in a
single control system, include lighting control and single lamp fault signaling managed
in real-time;
Variability in Weather information system: small airports do not need to calculate the
parameters like Runway Visual Range (RVR) that might be replaced by a Visibility
Measurement (VM). Other parameters like wind conditions or temperature are
mandatory in big airports;
Variability in Automatic baggage handling system: the implementation of this
system varies from a really simple distribution system, to complex systems with
kilometers of installations and interfaces with many other systems, like fire detection or
security systems; and
Variability in Airport security system: the security system may vary from a simple
CCTV with a simple intrusion detection system in littlest airports, to really complex
systems in wider airports, integrating thousands of cameras, thousands of sensors of any
kind, and interfacing with many other systems in the airport or external to the airport.
6.1 Context-variability for AMS
Because many of the variations of these subsystems depend on sensor that analyze
context information at real-time, we adopt one of the strategy to model AMS context
properties using context variability techniques. As the large number of subsystems may
complicate to model all the variability at the same time, we preferred to adopt a strategy
focused on reuse, where context features are modeled using separated feature sub-trees
and in the case a subsystem or part of it is replaced by a more modern one, the context
variability sub-tree of that subsystem can be easily replaced in the feature model.
In Figure 1, we describe a layered reference architecture for AMS where we describe
the organization of the subsystems mentioned and where dynamic variability can be
used to managed the context properties of all these systems. Our approach uses a
context variability model to describe both context and non context features (right side of
Figure 1) but because the variability model is large, we only represent a subset of it. We
adopted the strategy to have different branches in the feature model to discriminate
50
WDES
between context and non-context features because of the following reasons: (i) non
context features in AMS are more stable; (ii) a separate context feature sub-tree is more
reusable in case we need to replace one of the subsystems; and (iii) context features that
can modify the structural variability at runtime are easily to anchor in the feature tree
under the right subsystem in case we need to add or remove features dynamically. By
contrary, having two separate feature sub-trees for each subsystem may add more
dependencies between features of each different subsystem.
Figure 1: Excerpt of the reference architecture of an Airport Management System (left side) and a subset
of the context variability to model (right side) that describes context and non-context features and those
that modify the structural variability at runtime (dotted lines).
6.2
Dynamic evolution of context variability
AMS have strong real-time requirements and runtime reconfiguration needs that require
a different treatment from the evolution point of view. For instance, new features in the
weather information system could be added at runtime through specific middleware.
This could be the case that an AMS will need to incorporate an insolation sensor aimed
to measure the amount of solar radiation energy received on a runaway. New context
features could be added or removed dynamically in the feature model, having an clear
impact on the structural variability of the AMS. Consequently, the evolution of the
variability of these systems and subsystems can be managed using dynamic variability
techniques such as those suggested in a previous work [Bosch 2012], and using the
notion of super-types (i.e., a taxonomy to group features under a common functionality)
to add and remove features at runtime. These dynamic variability techniques in
combination with context features can reduce human intervention during critical AMS
51
WDES
maintenance, as certain subsystems can be plugged into the AMS middleware at
execution time.
7. Conclusions
The inherent complexity of SoS like AMS, which are composed by a wide range of
systems and subsystems that must run coordinately at runtime, complicates the
deployment and evolution of such systems. In this scenario, context variability and
dynamic variability techniques, such as proposed in this work, become suitable for
dealing better with the evolution of unforeseen situations and for modeling the
variability and the diversity of scenarios that SoS must deal with. In this work, we have
presented challenges and suggested opportunities for applying dynamic variability in the
construction and maintenance of AMS. For the future work, we intend to get more
evidence about the viability of applying dynamic variability to more efficiently control
the construction of reconfigurable SoS, in the case, an AMS, and evolution of critical
operations of such system.
References
Bosch, J., Capilla, R. (2012) Dynamic Variability in Software-Intensive Embedded
System Families. IEEE Computer 45(10): 28-35.
Capilla, R., Bosch, J., Trinidad, P., Ruiz-Cortés, A., Hinchey, M. (2014) An Overview
of Dynamic Software Product Line Architectures and Techniques: Observations from
Research and Industry, Journal of Systems and Software 91(5), 3-23.
Capilla, R., Bosch, J., Kang, K-C. (2013) Systems and Software Variability
Management, Concepts, Tools and Experiences, Springer.
Capilla, R., Bosch, J. (2011) The Promise and Challenge of Runtime Variability, IEEE
Software 44(12), 93-95.
DoD. (2008) System Engineering Guide for Systems of Systems. Office of the Deputy
Under Secretary of Defense for Acquisition and Technology, Systems and Software
Engineering, Version 1.0.
Hinchey, M., Park, S., Schmid, K. (2012) Building Dynamic Software Product Lines,
IEEE Computer 45(10), 22-26.
Maier, M. W. (1998). Architecting principles for systems-of-systems. Systems
Engineering, 1, 4, 267-284.
Nakagawa, E. Y., et al. (2013) The State of the Art and Future Perspectives in Systems
of Systems Software Architectures, In SESoS’13, Montpellier, France, 13-20.
Northrop, L., et al. (2006) Ultra-Large-Scale Systems: The Software Challenge of the
Feature, Software Engineering Institute, Carnegie Mellon, Pittsburgh, USA.
Robson,C. (2002) Real World Research. Blackwell (2nd Ed.)
Runeson, P., Höst, M. (2009) Guidelines for conducting and reporting case study
research in software engineering, Empirical Software Engineering Journal 14(2),
131-164
Sage, A. P., Armstrong, J. E. (2000) Introduction to Systems Engineering, Wiley Series.
52
WDES
Towards the Evaluation of System-of-Systems Software
Architectures
Daniel Soares Santos1, Brauner Oliveira1, Milena Guessi1,
Flavio Oquendo2, Marcio Delamaro1, Elisa Yumi Nakagawa1
1
2
ICMC - University of São Paulo (USP)
São Carlos - Brazil.
IRISA - Université de Bretagne Sud (UBS)
Vannes - France.
{danielss, brauner}@usp.br, {milena, delamaro, elisa}@icmc.usp.br,
[email protected]
Abstract. Evaluation of software architectures is an important activity to the
quality of software systems, as it verifies conformance and completeness of
such architecture regarding requirements and goals. In another perspective,
Systems-of-Systems (SoS) have emerged as a new class of software systems,
which aggregates independent and heterogeneous constituent systems for
performing new, emergent capabilities. Likewise, evaluation of SoS software
architectures is also important for ensuring that important quality attributes
are met in the SoS. The main contribution of this study is to present current
challenges for evaluating SoS software architectures and point out important
perspectives of research in that direction. We observe that despite the several
proposals for evaluating software architectures of SoS, there is still no
consensus on exactly what should be evaluated in such architectures.
Moreover, there are several difficulties that need to be overcome.
1. Introduction
Software architecture is essential to the success of software intensive systems and plays
a key role in determining the quality of software systems. Decisions made at the
architectural level directly enable, facilitate, or interfere in the achievement of business
goals as well as of functional and quality requirements [Bass et al. 2012]. In this
context, the architectural evaluation can be used for comparing and identifying strengths
and weaknesses of different architectural alternatives. Evaluation can also guide the
maintenance or indicate new opportunities for enhancing software architectures. Finally,
evaluation is essential for ensuring that software architectures meet desired quality
attributes [Bosch 2000].
Several approaches for evaluating software architectures can be found in the
literature. Bosch (2000) identify four main groups for these evaluation approaches: (i)
experience-based methods, which are based on previous experience and domain
knowledge of consultants or developers; (ii) simulation-based methods, which typically
rely on a high level implementation of the software architecture for evaluating its
performance and accuracy; (iii) mathematical modeling methods, which use
mathematical proofs for evaluating operational quality requirements, such as
performance and reliability; and (iv) scenario-based methods, which evaluate a
53
WDES
particular quality attribute by creating scenario profiles. Each scenario describes an
intended use of the system by means of a concrete description of the quality
requirement. These scenarios help to identify architectural risks and its potential
consequences through an efficient and scalable way.
In parallel, software-intensive systems have become increasingly large and
complex, with their considerable dissemination in various application domains. In this
context, Systems-of-Systems (SoS) result from the integration of several constituent
systems that operate independently and could potentially be developed using different
technologies and platforms. An adequate integration has been more and more necessary
to promote cooperation among these independent systems in order to provide more
complex functions, which could not be provided by any system working separately. SoS
has been proposed for different domains, in particular, for critical embedded systems,
such as medical systems, airport systems, robotic and automotive [Nakagawa et al.
2013].
Besides interoperability, several other quality attributes are critical for SoS (e.g.,
performance, reliability and flexibility). However, it is quite challenging to meet these
quality attributes in SoS, as their constituents are often developed and maintained by
different organizations. Moreover, these organizations may have their own stakeholders,
development teams, and processes, which collaborate for increasing this challenge. In
this context, the evaluation of SoS software architectures could ensure that these quality
attributes are satisfied from the early stage of the SoS lifecycle. An early evaluation of
the software architecture quality also aids in validating architectural decisions.
In this scenario, the main goal of this paper is to present the main challenges in
evaluating SoS software architectures. For this, it was based on results of a Systematic
Literature Review (SLR)1. In this SLR, we surveyed the difficulties and challenges that
are inherent to SoS evaluation as a way of pointing out new, important research
perspectives in the software architecture area. Overall, 16 primary studies were included
in this SLR. The following discussion builds upon these studies.
The remainder of this paper is organized as follows. Section 2 presents a brief
introduction about current research on evaluation of SoS software architectures and
elaborates on the main quality attributes that have been addressed for such architectures.
Section 3 discusses the main challenges and difficulties for performing this evaluation.
Finally, Section 4 presents our final considerations and perspectives to future work.
2. Evaluation of SoS Software Architectures
Evaluation of software architectures usually occurs after the design of such architectures
but before implementation starts. Nonetheless, an architecture can be evaluated at any
stage of its life cycle [Clements et al 2002]. In particular, for SoS software architectures,
due to their characteristics, we have observed that most works have proposed
application of evaluation methods in the design phase, as well as in architectures already
established, intending to analyze their flexibility and ability to evolution. In our SLR,
we also identified several evaluation methods for SoS. Moreover, we also identified the
most common quality attributes considered during the evaluation of SoS software
architectures. The following sections summarize our findings.
1
Available at http://goo.gl/PU12iQ (last accessed on 07/13/2014)
54
WDES
2.1. Evaluation Methods
The processes for evaluation of SoS software architectures are typically supported by
different methods and techniques. These methods and techniques usually are adapted
and enhanced to create a new proposal for SoS software architectures. Overall, six of
the 16 works propose or use mathematical-modeling evaluation methods, four works
propose or use simulation-based methods, and six works propose or use scenario-based
methods. Among the scenario-based approaches, Architecture Trade-off Analysis
Method (ATAM) by [Kazman 2000] is the most popular one. This method deals with
multiple quality attributes, their relationships, and trade-offs at the architecture level in
order to gain insight about the compliance of the architecture implementation regarding
quality requirements and business objectives. In our SLR, it was not observed a
convergence in using a specific type of evaluation method. Besides that, we did not find
works that consider experience-based methods for evaluating SoS.
The suitability of the methods and techniques usually has been assessment
through expert opinion and experiences in real projects, proof of concept or
demonstration, case study, and application in industry. It is important to highlight that
all works selected to evaluation in the industrial context have proposed to use scenariobased evaluation methods. This result shows that these evaluation methods have been
well accepted by industry or at least that they could be scalable to SoS.
2.2. Quality Attributes
Evaluation methods can either focus on single or several quality attributes. Through
results of our SRL, all proposed scenarios-based methods do not focus on specific
quality attributes. The main reason is that scenarios-based methods usually focus
on identifying trade-off among different qualities attributes instead of measuring
each quality attribute. However, simulation-based and mathematical modeling methods
usually focus on one or a few tangible quality attributes. The most common quality
attributes considered by these methods are reliability, performance, operability,
complexity, and flexibility. However, we have observed that evaluation methods for
SoS should take into account several quality attributes. Moreover, these methods should
also be able of measuring and classifying these quality attributes in order to support an
accurate comparison among architectural alternatives. This may be possible through the
use of simulation-based in combination with scenarios-based approaches.
Finally, the use of quality models for evaluating SoS architectures would be
relevant, as they would provide standardization for quality attributes of SoS, as well as
establishment of relationships among such attributes. However, none of the works
included in our SLR discusses the use of quality models during architectural evaluation.
3. Challenges
We have also observed that there are several challenges for an adequate evaluation of
SoS software architectures. The following discussion focuses on the main challenges.
The reliability of the communication among constituent systems is an important
factor to the success of SoS [Urwin et al. 2010]. According to Stratton (2009), it is
difficult to ensure reliable communication through an architecture evaluation for several
reasons: (i) constituent systems are usually developed independently by different teams
55
WDES
at different places; (ii) specification of communication requirements is ambiguous; and
(iii) communication issues are often subtle and remain hidden for a long time.
Moreover, the complex interdependencies that exist among constituents make it difficult
to foresee the behavior of SoS due to an unexpected loss of one of their constituents. In
the worst, SoS could collapse or trigger a cascading failure among their constituents.
These consequences cannot be fully understood only through an architectural evaluation
of the independent systems, as SoS require an evaluation of the effect of
interdependence among constituents on the entire system [Guariniello, C. and
DeLaurentis 2014a].
Regarding the evolutionary and decentralized nature of SoS, it becomes difficult
to ensure, for instance, reliability, security, or performance, using architecture
evaluation methods, which focus exclusively on structural characteristics but ignore
behavior compliance. This could be a problem, as a simple divergence in the
implementation of one of the constituents often reduces performance and reliability of
the entire SoS [Chen et al. 2012, Ackermann et al. 2009 and Zhu et al. 2008]
Finally, an important step to an adequate architectural evaluation involves
identification of metrics to measure features of systems. However, metrics used to
evaluate individual systems can not directly deal with the characteristics of the SoS
[Guariniello and DeLaurentis 2014b]. This happens because the emergent behavior of
SoS usually cannot be captured and evaluated by evaluation approaches that address the
level of constituent systems [Meilich 2006].
4. Conclusion
This position paper briefly presents the most important results of our SLR about SoS
software architecture evaluation. Despite the number of initiatives to evaluate such
architectures, there is still no consensus on what exactly should be considered during
this evaluation. From our results, we observe that main challenges in the SoS
architecture evaluation are due to the complex interaction among constituent systems
and the evolutionary, distributed nature of SoS as well. Therefore, appropriate, scalable
evaluation approaches still need to be developed. Moreover, we envisage that these new
approaches should be able to successfully capture and evaluate the emergent behavior of
SoS.
As future work, we intend to continue our investigation on evaluation of SoS
architectures, updating this SLR as well as identifying appropriate architecture
evaluation methods that consider quality attributes usually addressed by SoS. Moreover,
we will investigate alternatives to combine these methods and techniques in order to
reduce the number of difficulties and challenges that are inherent to this new class of
complex, large software systems.
56
WDES
References
Ackermann, C., Lindvall, M. and Cleaveland, R. (2009) “Towards behavioral reflexion
models.” In ISSRE’2009, pages 175–184, Mysuru, India.
Bass, L., Clements, P. and Kazman, R. (2012) “Software Architecture in Practice”. SEI
Series in Software Engineering. Pearson Education.
Bosch, J. (2000) “Design and Use of Software Architectures: Adopting and Evolving a
Product-Line Approach”. ACM Press Series. Addison Wesley.
Chen, H.-M., Kazman, R. B. and Hong-Mei, C.. (2012) “Architecting ultra-large-scale
green information systems”. In GREENS’2012, pages 69–75, Zurich, Switzerland.
Clements, P., Kazman, R. and Klein, M. (2002) “Evaluating software architectures:
methods and case studies”. SEI series in software engineering. Addison-Wesley.
Guariniello, C. and DeLaurentis, D. (2014a) “Communications, information, and cyber
security in systems-of-systems: Assessing the impact of attacks through
interdependency analysis“. In CSER’2014, pages 720–727, Redondo Beach
California, USA.
Guariniello, C. and DeLaurentis, D. (2014b) “Integrated analysis of functional and
developmental interdependencies to quantify and trade-off ilities for system-ofsystems design, architecture, and evolution”. In CSER’2014, pages 728–735,
Redondo Beach, California, USA.
Kazman, R., Klein, M., Clements, P. (2000) "ATAM: A Method for Architecture
Evaluation". CMU/SEI-2000-TR-004. Software Engineering Institute. Carnegie
Mellon University.
Martensson, F. and Tekniska Hogskola, B. (2006) “Software Architecture Quality
Evaluation: Approaches in an Industrial Context”. Ph. D. thesis, Blekinge Institute of
Technology, Karlskrona, Sweden.
Meilich, A. (2006) “System of systems (SoS) engineering & architecture challenges in a
net centric environment”. In SoSE’2006, pages 1-5, Shanghai, China.
Nakagawa, E. Y., Gonçalves, M., Guessi, M., Oliveira, L. and Oquendo, F. (2013) “The
state of the art and future perspectives in systems of systems software architectures”.
In SESoS’2013, pages 13-20, Montpellier, France.
Stratton, W., Sibol, D., Lindvall, M., Ackermann, C. and Godfrey, S. (2009)
“Developing an approach for analyzing and verifying system communication.” In
IEEE Aerospace Conference, Big Sky, Montana, USA.
Urwin, E., Venters, C., Russell, D., Liu, L., Luo, Z., Webster, D., Henshaw, M. and Xu,
J. (2010) “Scenario-based design and evaluation for capability“. In SoSE’2010,
Loughborough, UK.
Zhu, L., Staples, M. and Jeffery, R. (2008) “Scaling up software architecture evaluation
processes”. In ICSP’2008, pages 112–122, Leipzig, Germany.
57
WDES
On the Relations between
Systems-of-Systems and Software Ecosystems
Rodrigo Santos1, Marcelo Gonçalves2, Elisa Yumi Nakagawa2, Cláudia Werner1
1
PESC/COPPE –Federal University of Rio de Janeiro, Rio de Janeiro, Brazil
2
ICMC/USP – University of São Paulo, São Carlos, Brazil
{rps, werner}@cos.ufrj.br, {marcelob, elisa}@icmc.usp.br
Abstract. Software development commonly involves many individuals, groups,
and organizations related by one or more central platforms. Moreover,
organizations have created and maintained products and services with
different technologies and for diverse application domains. In this scenario,
topics of research have arisen in the Software Engineering area in order to
adequately deal with such large, complex software systems. In this perspective,
Systems-of-Systems and Software Ecosystems are two topics that have been
separately investigated and, at the same time, they are complementary. In this
paper, we perform a preliminary discussion on how these topics are related to
each other, aiming at supporting collaborative research.
1. Context and Motivation
According to Boehm (2006), the increasing pace of change in the global industry is
driving organizations towards increasing levels of agility in their software development
methods, while their products and services are concurrently becoming more and more
software-intensive. It other words, software has represented a crucial element for most
of existing systems, since it impacts functions, resources, and risks in different sectors of
industry (Santos & Werner, 2011). Software-intensive systems have also become
increasingly ubiquitous, large, and complex, with considerable dissemination in various
application domains. In parallel, the software industry creates products, services, and
processes considering different facets and perspectives of value, because it produces
value realized by its stakeholders (e.g., companies, developers, clients and users). In this
perspective, Software Engineering (SE) community has defined the treatment of tangled
technical, economic, and social issues as important research themes (Boehm, 2006).
Diverse research topics have arisen in the SE area, in order to adequately deal
with such software systems. Recently, there has been a growing interest in a class of
software-intensive systems, known as Systems-of-Systems (SoS) (Maier, 1998), whose
constituents are themselves complex, heterogeneous, independent, and large. In another
perspective, organizations have opened up their software platforms and assets to others,
including a community of partners and 3rd-party developers over the world (Bosch,
2010). The set of actors, artifacts, and relations, either internal or external, over a
software platform has been called Software Ecosystems (SECO) (Messerschmitt &
Szypersky, 2003). SoS and SECO are two topics that have been still separately
investigated, but certainly they should be treated in a complementary way. We perform a
preliminary discussion on SoS and SECO as related research topics, promoting
opportunities for collaborative research. This paper is organized as follows: Sections 2
58
WDES
and 3 present an overview of SoS and SECO, respectively; Section 4 discusses relations
between SoS and SECO; and Section 5 provides some final considerations.
2. Systems-of-Systems Overview
In the last years, there has been a growing interest in research and development of SoS,
resulted from the integration of other independent and heterogeneous systems. These
systems are useful for several of society’s needs, such as healthcare, avionics, logistics,
energy, and transportation (De Laurentis & Crossley, 2005). Although SoS have several
definitions, there is a set of consensual characteristics (Maier, 1998): (i) the operational
independence in which all of the constituent systems of an SoS can deliver their
functionalities when not working in the SoS; (ii) the managerial independence in which
each constituent system can be individually managed; (iii) the evolutionary development
in which SoS may evolve over time to respond to changes in its environment, the
constituent systems, or in its requirements; (iv) the emergent behavior in which SoS
behaviors are the result of constituent systems working together and cannot be provided
by any of these systems alone; and (v) the geographical distribution in which the
constituent systems of an SoS are physically decoupled.
SoS exist to accomplish their major goals. That is, the constituent systems have
their own individual mission and contribute to the accomplishment of the global mission.
Moreover, both SoS and their constituent systems can have their respective stakeholders,
which can also have different perspectives of interest. Furthermore, SoS can assume
different categories, according to particular aspects (DoD, 2008): (i) virtual in which
there is no central control. Therefore, the constituent systems are independently managed
in a distributed and uncoordinated environment where the mechanisms to maintain the
whole SoS are not evident; (ii) collaborative in which the constituent systems voluntarily
collaborate more or less in order to address shared or common interests. In this case,
there is a central control that offers standards to enable the collaboration of the
constituent systems; (iii) acknowledged in which the goals, management, resources, and
central control of the SoS are recognized, but the constituent systems still retain their
independent management; and (iv) directed in which there is a central control and
specific main purposes. The constituent systems can have their operational and
managerial independence, but they are subordinated to the central control.
3. Software Ecosystems Overview
Components, services, and applications developed by the global software industry have a
direct relation with collaborators in promoting, distributing or selling, and evolving
software systems based on software technologies (platforms), the so-called SECO
(Messerschmitt & Szyperski, 2003). External and/or unknown developers are also
contributing to maintain and evolve these systems, changing the traditional value chain.
In this case, networks of multiple products and services over platforms should be used to
support the comprehension of relationships among organizations in SECO, focusing on a
business sense (Santos & Werner, 2011). On the other hand, social impacts should be
taken into account due to the socialization of SE (Mens & Goeminne 2011). The cycle of
creating, providing, and operating software systems occurs over a net of tangled
stakeholders. These elements contribute to (depend on) the propagation, amplification,
and expansion of platforms in the software industry. Thus, a community sense emerges
59
WDES
because business models are revisited in order to treat transactions/transfers in open
value chains (Santos & Werner, 2012). Both senses represent the trend of hybrid models
to manage and engineer software systems (Popp, 2012).
Some technical challenges are reinforced in SECO, especially regarding software
architecture (Bosch, 2010): (i) stability: once an organization is providing a platform for
external developers, interfaces should evolve in a predictable fashion and with significant
time for adjustments; (ii) simplicity: integration at each of the levels of data, workflow,
and UI integration should be designed to minimize the complexity of the final solution;
(iii) security and reliability: architecture should be designed to minimize defective and
malicious external code and vulnerabilities; and (iv) evolution: the scope of the platform
needs to be constantly adjusted upwards in order to incorporate functionalities based on
the community’s emerging requirements, but also slim down the platform through rearchitecting it to replace proprietary code with commercial or open source components.
4. SoS & SECO
SoS and SECO are two emerging, relevant research topics in SE area. However, it is
observed that typically the solutions for SECO and SoS are individually proposed by
isolated teams in order to meet particular domain-oriented problems. First of all,
according to Kazman et al. (2012), architectural challenges have motivated a number of
methods for the design, documentation, and analysis of the traditional single systems and
architectures over the past 10 years. Moreover, these methods share many of the same
principles, which can be used to systems of different scales. Aiming at helping the
comprehension of architecture in SECO, Klein & McGregor (2013) amplified the
concept of architecture to the so-called SoS platform, or “industry platform”, also
defined by Cusumano (2010). This kind of platform provides domain-specific and general
services to a set of systems that need to interact to form an SoS (Maier, 1998). From the
SECO viewpoint, an SoS platform can exist in an environment of different levels of
actors, artifacts, and relationships towards the development of globalized, large-scale,
and long-term products and services (Santos & Werner, 2012). These products and
services can be developed with different technologies, where integration and
communication are crucial, since they are software-intensive systems (Brown &
McDermid, 2007). Moreover, SoS platforms fulfill the inherent characteristics of SoS.
Additionally, the SoS concept started to gain its popularity mainly in military
domain as a strategy for reaching goals, or delivering unique capabilities that are the
result of a collaborative work of a dynamic set of existing systems (DoD, 2008). The
evolution of computational systems reveals that more software-intensive systems tend to
meet the SoS concept. Based on that, it is possible to identify many examples of studies
addressing new application domains where SoS is gaining ground, such as Smart Cities,
Global Earth Observation, and Critical Embedded Systems. On the other hand, the
SECO concept is popular in software business platforms and open source software
(OSS) domains (Manikas & Hansen, 2013). SECO can be seen as an application domain
for SoS as such (Kazman et al., 2012; Klein & McGregor, 2013; Axelsson et al., 2014).
SoS are typically complex, interdisciplinary systems whose functionalities and
purposes can dynamically evolve (Firesmith, 2010), encompassing several new
challenges to be developed (DoD, 2008). In turn, the concepts of virtual and
60
WDES
collaborative SoS have been explored in the SECO context, allowing collaboration of
different constituent systems and organizations in order to produce emergent
functionalities (Klein & Vliet, 2013). In both collaborative and virtual SoS, SECO are
more valuable because in these categories there is no strict control over the constituent
systems. As such, SECO concerns may aid SoS to leverage the network of actors in
order to deal with innovation from their constituent systems.
Despite the discussion on the SoS categories for SECO scenarios, we have
preliminarily drawn some similarities between SoS characteristics (Maier, 1998) and
SECO technical challenges (Bosch, 2010). For example, architectural stability required
for SECO platforms regarding to their components, services, and applications can be
compared to the operational independence of constituent systems of an SoS. In this case,
software systems integration and component-based development can be combined to
support strategies to cope with application programming interface issues. On the other
hand, platform evolution directly depends on the SECO community’s emerging
requirements and contributions, as well as the adjustments of underlying hybrid business
models. As such, SoS evolutionary development should take into account not only the
environment’s technical issues but also the business and social ones. In this case, SoS
architecture models should be extended to cope with context variables based on value
chains and social networks. Finally, emergent behavior produced by constituent systems
of an SoS working together can be related to the security and reliability in SECO.
System dynamics theory may be a useful instrument to simulate components
configurations in order to improve the architectural design.
5. Final Considerations
Both academia and industry have recognized the importance of SoS and SECO to an
effective development of software systems. In this perspective, more joint research must
be conducted since the notion of SECO may be at least as generalizable as SoS
themselves. As future work, we intend to investigate how SECO platforms can benefit
from SoS mindset and how SoS can benefit from business and social networks. We also
intend to evaluate the interactions between SoS and SECO in order to more clearly state
differences and similarities of such systems from an SE perspective through conduction
of a systematic mapping study. Finally, a few more concrete implications for Distributed
Software Development (DSD) will be investigated and discussed, since one of the
SoS/SECO characteristics is the potentially distributed nature.
References
Axelsson, J. et al. (2014) “Characteristics of software ecosystems for Federated
Embedded Systems: A case study”. Information and Software Technology. In press.
Boehm, B. (2006) “A View of 20th and 21st Century Software Engineering”. In: 28th
International Conference on Software Engineering (ICSE), Shanghai, China, 12-29.
Bosch, J. (2010) “Architecture Challenges for Software Ecosystems”. In: Proceedings of
the 4th European Conference on Software Architecture (ECSA), 2nd International
Workshop on Software Ecosystems (IWSECO), Copenhagen, Denmark, 93-95.
61
WDES
Brown, A., McDermid, J. (2007) “The art and science of software architecture”. In: 1st
European Conference on Software Architecture (ECSA), Aranjuez, Spain, 237-256.
Cusumano, M. (2010) “The Evolution of Platform Thinking”. Communications of the
ACM 53(1):32-34.
De Laurentis, D., Crossley, W. (2005) “A taxonomy-based perspective for systems of
systems design methods”. In: IEEE International Conference on Systems, Man and
Cybernetics (SMC), Waikoloa, USA, 86-91.
DoD (2008) “System engineering guide for systems of systems”. Technical Report,
Version 1.0, August 2008.
Firesmith, D. (2010) “Profiling systems using the defining characteristics of systems of
systems”. Technical Note CMU/SEI-2010-TN-001, Software Engineering Institute.
Kazman, R. et al. (2012) “Scaling up software architecture analysis”. Journal of Systems
and Software 85(7):1511-1519.
Klein, J., McGregor, J. (2013) “System-of-Systems Platform Scoping”. In: 4th
International Workshop on Product Line Approaches in Software Engineering
(PLEASE), San Francisco, USA, 1-4.
Klein, J., Vliet, H. (2013) “A Systematic Review of System-of-systems Architecture
Research”. In 9th International Conference on Quality of Software Architectures
(QoSA), Vancouver, Canada, 13-22.
Maier, M. (1998) “Architecting principles for systems-of-systems”. System Engineering
1(4):267-284.
Manikas, K., Hansen., K. (2013) “Software Ecosystems – A Systematic Literature
Review”. Journal of Systems and Software 86(5):1294-1306.
Mens, T., Goeminne, M. (2011) “Analysing the Evolution of Social Aspects of Open
Source Software Ecosystems”. In: 3rd International Workshop on Software
Ecosystems (IWSECO), Brussels, Belgium, 77-88.
Messerschmitt, D., Szyperski, C. (2003) “Software Ecosystem: Understanding an
Indispensable Technology and Industry”. The MIT Press.
Popp, K. (2012) “Leveraging Open Source Licenses and Open Source Communities in
Hybrid Commercial Open Source Business Models”. In: 4th International Workshop
on Software Ecosystems (IWSECO), Boston, USA, 33-40.
Santos, R., Werner, C. (2011) “Treating Business Dimension in Software Ecosystems”.
In: 3rd ACM/IFIP International Conference on Management of Emergent Digital
EcoSystems (MEDES), San Francisco, USA, 197-201.
Santos, R., Werner, C. (2012) “Treating Social Dimension in Software Ecosystems
through ReuseECOS Approach”. In: 6th IEEE International Conference on Digital
Ecosystems and Technologies – Complex Environment Engineering (DEST-CEE),
Campione d’Italia, Italy, 1-6.
62

Documentos relacionados