Escolar Documentos
Profissional Documentos
Cultura Documentos
WDES 2014
Anais
WDES
Volume 02
ISSN 2178-6097
Anais
WDES 2014
WDES
PROCEEDINGS
Volume 02
ISSN 2178-6097
AutoSoft 2014
WDES
Autorizo a reproduo parcial ou total desta obra, para fins acadmicos, desde que citada a fonte
WDES
Apresentao
Visando unir competncias e promover a integrao entre reas de pesquisa
correlatas, o Workshop de Desenvolvimento Distribudo de Software (WDDS), em sua
oitava edio, amplia a sua abrangncia, dando origem ao Workshop de
Desenvolvimento Distribudo de Software, Ecossistemas de Software e Sistemas de
Sistemas (WDES 2014). Esse evento constitui um frum para apresentao e discusso
de resultados e experincias de pesquisadores e praticantes das reas de
Desenvolvimento Distribudo de Software (DDS), Ecossistemas de Software (ECOS) e
Sistemas de Sistemas (SoS), visando a gerao de conhecimento que possa viabilizar
projetos de sucesso nessas trs reas e/ou nas suas relaes. Esse movimento
comeou durante as discusses realizadas nas edies de 2012 e 2013 do WDDS, o que
resultou na publicao de artigos que relacionaram as reas de pesquisa.
O Comit Diretivo do WDES 2014 constitudo por trs pesquisadores de cada uma
das trs reas envolvidas no workshop. Por sua vez, o Comit de Programa do WDES
2014 formado por 16 pesquisadores de instituies do Brasil (9) e do exterior (7),
com atuao e produo relevantes nas reas de pesquisa envolvidas no workshop. Os
membros do Comit de Programa conduziram um processo rigoroso de reviso, sendo
que cada artigo foi avaliado por pelo menos trs membros. Alm disso, visando
ampliar as discusses durante o workshop, esta edio conta tambm com artigos
convidados, escritos por especialistas das reas.
com satisfao que damos as boas-vindas aos autores e apresentadores de artigos,
da academia e da indstria. Tambm recebemos com grande prazer os demais
participantes do CBSoft 2014, que gostaramos de convidar a tomar parte ativamente
das discusses e momentos de integrao proporcionados pelo workshop.
Adicionalmente, gostaramos de agradecer a todos os demais autores que
submeteram seus artigos, aos membros do Comit Diretivo, Comit de Programa e
Comit de Organizao, e aos organizadores e patrocinadores do CBSoft 2014 pelo
suporte na realizao deste workshop.
Esta edio organizada conjuntamente pela Universidade Federal do Rio de Janeiro
(COPPE/UFRJ), Universidade de So Paulo (ICMC/USP) e Pontifcia Universidade
Catlica do Rio Grande do Sul (PUCRS), sob a coordenao das professoras Cludia
Werner, Elisa Yumi Nakagawa e Sabrina Marczak, respectivamente. O Comit de
Organizao conta com o apoio dos doutorandos Rodrigo Pereira dos Santos, Lucas
Bueno Ruas de Oliveira, Marcelo Benites Gonalves e Bernardo Jos Estcio. O evento
realizado no Centro de Convenes Ruth Cardoso, em Macei, Alagoas, no dia 28 de
setembro, em conjunto com o V Congresso Brasileiro de Software: Teoria e Prtica
(CBSoft 2014).
Esperamos que tenham uma tima estada em Macei
Cludia, Elisa e Sabrina
Organizadoras do WDES 2014
WDES
WDES
WDES
17
25
33
41
45
53
58
WDES
1. Introduo
O Desenvolvimento Distribudo de Software (DDS) tem atrado a ateno da indstria
nos ltimos anos, levando organizaes a mudarem a maneira como gerenciam seus
negcios em busca de menores custos, melhores profissionais, entre outras vantagens
(Audy & Prikladnicki, 2007). Projetos DDS trazem muitas vantagens, porm tambm
tm desafios, tais como a dificuldade de comunicao e a gesto de riscos, dentre outros
(Zanoni & Audy, 2003; Leme et al., 2007). Nestes projetos, os riscos tendem a ser
dinmicos devido multiplicidade dos vrios aspectos, i.e., mltiplas localizaes,
culturas, equipes, padres e tecnologias (Mudumba & Lee, 2010).
Assim, frameworks, processos, boas prticas e ferramentas associadas gesto
de riscos tm sido propostos para melhorar a identificao, anlise, monitoramento e
controle de riscos no gerenciamento de projetos DDS e melhorar a qualidade do produto
de software desenvolvido (Persson et al., 2009). Nessa direo, este trabalho tem como
objetivo investigar a seguinte questo de pesquisa: A concepo de um framework
composto por prticas geis pode auxiliar a gesto de riscos em projetos DDS?
WDES
3. Trabalhos Relacionados
Keshlaf & Hashim (2000) definiram um modelo para gesto de riscos denominado
SoftRisk. Este modelo se baseia na ideia de documentao, utilizao de dados histricos
e foco nos principais riscos com o objetivo de reduzir esforo e tempo na gesto e
mitigao desses riscos. Seus passos so: identificao dos riscos; probabilidade dos
riscos e estimativa de magnitude; documentao dos riscos; anlise; priorizao dos dez
principais riscos; monitoramento; controle; e execuo de operao estatstica. SoftRisk
trata a gesto de riscos em projetos com disperso geogrfica e em equipes virtuais.
Porm, trata de forma parcial a definio de papis dos stakeholders nesta gesto. Por
fim, no discute questes impostas por diferenas culturais em DDS, o que apontado
como uma limitao 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 contribuio desses autores foi elaborada a partir de
uma reviso sistemtica da literatura, que sintetizou riscos e tcnicas de resoluo. As
reas de risco identificadas foram: distribuio das tarefas, gerenciamento do
conhecimento, distribuio geogrfica, estrutura de colaborao, distribuio cultural,
relacionamentos entre os stakeholders, infraestrutura de comunicao e configurao da
10
WDES
tecnologia. Esse framework trata o envolvimento dos stakeholders e os papis que eles
tm na gesto de riscos de maneira superficial, ou seja, no existe uma sistematizao da
identificao dos atores e suas atribuies/responsabilidades dentro do projeto.
Hossain et al. (2009) identificaram reas e fatores de risco envolvidos no
gerenciamento de projetos DDS utilizando prticas de desenvolvimento gil de software.
A contribuio de Hossain et al. (2009) veio de uma reviso sistemtica da literatura
sobre o uso de prticas de Scrum em projetos DDS. Como resultado, foram identificados
desafios, reas de risco, estratgias e prticas atuais para a mitigao desses riscos e, em
seguida, foi proposto um framework conceitual. Esse framework conceitual formado
por dois componentes, classificados em: principais reas de risco e estratgias atuais para
a reduo desses riscos. Na viso dos autores, este framework precisa evoluir para
manter uma comunicao contnua, i.e., divulgao constante dos riscos do projeto, pois
esse um fator crtico de sucesso.
A Tabela 1 traz uma sntese dos trabalhos relacionados. Os critrios de
comparao foram selecionados com base em (Ramesh et al., 2006), (Keshlaf & Riddle,
2010) e (mite et al., 2010). As abordagens analisadas trazem significantes resultados
gesto de riscos em projetos DDS, porm ainda existem lacunas a serem tratadas. O
presente trabalho define o framework RADS para gesto de riscos em projetos DDS
como forma de preenchimento das lacunas no atendidas pelas abordagens apresentadas
nessa seo. RADS tem seu diferencial na utilizao de prticas geis na gesto de
riscos, clara identificao dos atores envolvidos e premissa de que a gesto de riscos
precisa de uma comunicao contnua no decorrer do projeto, por meio de relatrios,
reunies, dentre outros meios formais para as partes interessadas.
Tabela 1 Comparao dos trabalhos relacionados
SoftRisk
(Keshlaf &
Hashim, 2000)
AP
N
AP
AP
N
Critrios
Contexto DDS
Utilizao de prticas geis
Definio dos papis/Envolvimento dos Stakeholders
Definio de papis na gesto de risco
Comunicao contnua no projeto
GDSP-RM
(Persson et
al., 2009)
A
N
AP
AP
AP
Framework
Conceitual (Hossain
et al., 2009)
A
A
N
N
AP
4. Metodologia
A pesquisa conduzida para a definio do framework foi organizada em quatro fases
(Figura 1). O procedimento para fundamentar a proposta do framework foi a realizao
de uma reviso bibliogrfica 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 questo de pesquisa. Baseado nos resultados dessas fases, na Fase 3,
definiu-se a verso inicial do framework. Finalmente, na Fase 4, executou-se um survey
com especialistas em DDS com experincia em projetos geis, com o objetivo de avaliar
se o mesmo pode auxiliar na gesto de riscos em projetos DDS, analisar a aplicabilidade
do framework em projetos reais e identificar oportunidades de melhoria em relao sua
estrutura. O questionrio do survey avaliou preliminarmente a verso inicial do
framework. O resultado desta avaliao apresentado na Seo 6.
11
WDES
WDES
Subrea
Reunio Global
Planejamento da
Sprint
Gesto de Risco
em Equipes
Distribudas
Execuo da
Sprint
Reviso da
Sprint
Identificao de
Papis na
Gesto de Risco
Elemento
Descrio do Elemento
Reunio Global de
Consolidao
Consolidao global dos riscos identificados pelas equipes distribudas. Esta reunio
tem a superviso do Gerente Global de Riscos.
Reunio Global de
Divulgao
Identificao dos
Stakeholders
Identificao dos
Riscos
Anlise dos
Riscos
Referncias
Planejamento de
Resposta aos Riscos
Identificao de
Novos Riscos
Processo de reviso da lista de riscos aps a execuo de uma sprint, pois novos
riscos podem surgir.
Status do Plano de
Mitigao dos Riscos
Analista de Riscos
Equipes Distribudas
Cliente
13
WDES
14
WDES
7. Consideraes Finais
O crescente interesse das organizaes na utilizao de tcnicas de DDS despertou
algumas questes sobre as etapas do ciclo de gerenciamento de projetos deste tipo. Entre
as atividades envolvidas, est a gesto de riscos. Neste contexto, o framework RADS
busca contribuir para a melhoria do cenrio de gerenciamento de projetos, em especial
no que diz respeito gesto de riscos em organizaes que utilizam DDS. O framework
contempla elementos identificados na literatura, inspirados nas metodologias geis, em
busca de um desenvolvimento de software mais dinmico. A avaliao preliminar do
framework por especialistas indicou que ele tem potencial para ser aplicado na indstria e
est coerente com as necessidades de gesto de riscos em projetos DDS.
Como trabalho futuro, pretende-se aplicar o RADS em casos reais de projetos
DDS para avaliar a sua eficincia e eficcia. Apesar da limitao de no 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 alcanados so de
contribuio para a comunidade de DDS.
15
WDES
Referncias
Audy, J., Prikladnicki, R. (2007) Desenvolvimento Distribudo de Software: Desenvolvimento
de Software com Equipes Distribudas. 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 cientfica. So 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., Gusmo, C. (2008) Definio de um processo gil de gesto de riscos em ambientes
de mltiplos projetos. Hfen, 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. So Paulo: Pearson Addison-Wesley, 8 ed.
WDDS (2013) Workshop de Desenvolvimento Distribudo de Software. Disponvel 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
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 todays
globalized IT market organizations also have to timely attend their customers 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
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 studys
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
ID
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
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
ORGs 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.
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).
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
24
WDES
1. Introduo
Um Ecossistema de Software (ECOS) pode ser definido como um conjunto de negcios
funcionando como uma unidade e interagindo com um mercado compartilhado entre
software e servios, juntos e inter-relacionados [Jansen et al., 2009]. Neste contexto, as
organizaes enfrentam desafios ao lidar com a dinmica do mercado [Messerschmitt &
Szyperski, 2003]. Fuses ou aquisies entre organizaes fornecedoras de tecnologias
podem alterar a oferta de produtos e servios, o que afeta as organizaes consumidoras
e seus negcios. Esses eventos agregam complexidade em selecionar, adotar e gerir
ferramentas/tecnologias para dar suporte organizao e seus objetivos [Albert, 2014].
Nesse sentido, organizaes consumidoras possuem, normalmente, um conjunto
de ferramentas de apoio a seus processos e profissionais, e produzem artefatos (produtos
e servios) para atingir seus objetivos. Alguns problemas, no entanto, aparecem, como o
alto custo para adoo de novas tecnologias, a necessidade de reavaliar processos de
negcios frente a sua implantao, a dificuldade em lidar com a oferta e a relutncia dos
usurios para aceit-las [Freitas & Rech, 2003]. A arquitetura de TI das organizaes
consumidoras, por exemplo, pode sofrer impactos do desafio de organizar, selecionar e
manter tecnologias em um mercado em constante mudana [Baars & Jansen, 2012].
Nos processos de tomada de deciso, essas organizaes tm dificuldades em
visualizar informaes de ECOS por carncias na gesto de seus ativos de software. Isso
leva empresas consumidoras a recorrerem a institutos como Gartner e Forrester, que
25
WDES
2. Fundamentao Terica
Organizaes fornecedoras e consumidoras estabelecem laos ao se relacionarem, como
em contratos de aquisio de produtos e consultorias. As relaes, organizaes
envolvidas e informaes trocadas so elementos de um ECOS. Nesse contexto, a fim de
cumprir as metas de uma organizao consumidora, gerentes e arquitetos de TI tm o
desafio de avaliar relaes entre tecnologias e fornecedores e us-las a favor da
organizao. As organizaes que exploram essas novas relaes, de fato, necessitam
construir um processo de deciso em seus modelos para usufruir de certa agilidade em
detrimento de seus concorrentes, o que impacta a sua arquitetura de TI [Gartner, 2007].
No cenrio de ECOS, a definio 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 caractersticas e relaes. Os elementos do ECOS
podem ser sistemas, componentes do sistema e atores. As relaes se referem quelas de
arquitetura de software, incluindo relaes entre atores (e.g., fornecedores competindo
com um mesmo tipo de produto no mercado). Por sua vez, Gartner (2007) separa as
caractersticas de ECOS sob quatro vises: 1) viso do ECOS como uma entidade; 2)
viso das trocas mtuas com o valor de negcio; 3) viso de artefatos compartilhados,
tecnologias e propriedade intelectual; e 4) viso dos tipos especficos de ECOS.
Nesse contexto, a governana pode auxiliar uma organizao a alcanar seus
objetivos, usufruir melhor dos recursos disponveis e promover um aumento da
lucratividade e reduo de riscos. Gartner (2007) indica que, para gerir arquitetura em
ECOS, seus componentes devem ter um conjunto mnimo de informaes que possibilite
a sua gesto pela organizao consumidora. Albert (2014) explica que os seguintes
dados devem fazer parte desse conjunto: Fornecedor, Natureza, Tecnologia, Maturidade,
Data, Tipo de Ativo Produzido, Verses, Licenas, Usurios e Utilizao (i.e., log de
ferramenta de coleta de uso de software). Para dar suporte governana, a gesto de
ativos de software entra como instrumento para gerir e otimizar prticas de aquisio,
implantao, uso e manuteno dos ativos da organizao [Williams & OConnor, 2011].
Como trabalhos sobre vises de governana 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 viso, uma combinao de abordagens que permitem
verificar a maturidade de tecnologias [ThoughtWorks, 2012]. Como diferencial da
abordagem SECOView, para alm dos trabalhos relacionados, busca-se explorar vises
para a governana de ECOS a partir das atividades de arquitetura de TI da organizao.
26
WDES
3. Abordagem Proposta
A abordagem SECOView visa manipular dados de uma biblioteca de ativos de software
para construir vises que apoiem a governana de ECOS. Estes dados se referem
gesto de ativos de software e, desta forma, a SECOView prope informaes grficas
para os usurios, ilustrando recortes do ECOS da organizao, ou mesmo provendo uma
viso global. A estrutura da SECOView (Figura 1) mostra que mecanismos de busca e
recuperao e histrico de ativos produzidos so utilizados para se ter acesso aos dados
da gesto de ativos na biblioteca de ativos de software da organizao (ou catlogo).
Estes dados se referem a: ativos de software (componente da biblioteca), fornecedores,
categorias de tecnologias e usurios. A SECOView interpreta os dados e, conforme
especificado pelo usurio, refina-os para gerar uma viso que exiba parte do (ou todo o)
estado do ECOS da organizao. Grficos so exibidos ao usurio a partir da agregao
dos dados das aplicaes, componentes e servios da organizao.
A SECOView toma por base o modelo SECOGov [Albert, 2014], que consiste
em um framework de governana de ECOS que envolve as seguintes atividades para
apoiar a arquitetura de TI, nas vises intra e interorganizacional: (i) Gerir Taxonomia de
Software: manter as categorias adequadas para organizar os ativos de software da
organizao; (ii) Gerir Arquitetura de Software: definir que ativos so padronizados para
cada categoria da taxonomia; (iii) Gerir Configuraes-padro de Software: definir quais
ativos compem uma configurao para atender a um dado perfil de ator do ECOS; (iv)
Gerir Licenas de Software: gerir o quantitativo e a diversidade de tipos de licenas, e
atribuir e disponibilizar licenas para os usurios; (v) Acompanhar ECOS: manter
informaes sobre os ECOS que a organizao participa ou deseja participar por meio da
anlise de relatrios de institutos, consultorias ou equipe de gesto da arquitetura
corporativa; (vi) Analisar a Maturidade de Tecnologias: cruzar informaes 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
definio de aquisio ou contratao de servios.
A partir de um ativo de software, para a atividade Gerir Licenas de Software, a
SECOView prope inicialmente dois grficos para a viso intra, que permitem
verificar: (1) o grau de dependncia tecnolgica dos ativos de um fornecedor que a
organizao adquiriu licenas; e a distribuio de seu uso e desuso (disponibilidade); e
(2) a comparao de produtividade com outros ativos que produzem o mesmo tipo de
soluo para a organizao (i.e., ativo produzido), filtrado por perodo. Esta proposta
27
WDES
motivada pelo resultado do levantamento de Rios (2013), que indica o controle das
licenas de cada ativo como crucial, pois isso concentra um dos maiores custos para o
setor de TI das organizaes. Em alto nvel, a SECOView prope grficos de ECOS
para examinar a viso inter: (3) o grau de dependncia tecnolgica da organizao
consumidora em relao aos seus fornecedores; e (4) a distribuio das licenas da
organizao consumidora em relao s categorias dos ativos adquiridos.
Por sua vez, para apoiar a atividade Gerir Arquitetura de Software do SECOGov,
prope-se um rtulo para o ativo de software, padro, para indicar o componente da
biblioteca que seja o padro de arquitetura para uma categoria especfica. Isso orienta
quais ativos de software devem ser adotados em maior escala pela organizao. Alm
disso, a SECOView prope um mdulo de gesto de anlises de ECOS (relatrios) para
apoiar a atividade Acompanhar ECOS do SECOGov, a fim de armazenar dados de como
a organizao consumidora participa do ECOS. Para facilitar a rastreabilidade destes
dados ao longo do tempo, a SECOView prope ainda associar uma categoria de
tecnologias e/ou ativos de software a uma anlise que justifique a adoo ou aquisio
pela organizao. As anlises podem ser ordenadas por parmetros [Gartner, 2007], e.g.,
taxa de benefcio, maturidade, tempo para adoo (anos) e recomendao para adoo.
Entre os recursos utilizados, esto: (i) grfico de pizza: para analisar os ativos de
um fornecedor especfico; (ii) grfico de barras horizontais: para avaliar as licenas em
uso e desuso de fornecedor; (iii) grfico de barras verticais: para avaliar os ativos
produzidos pela organizao; (iv) grafos: para analisar dependncias dos fornecedores; e
(v) planilhas: para exibir os resultados de relatrios de mercado sobre a anlise das
tecnologias que a organizao possui. Estes recursos foram baseados no levantamento
sobre mecanismos de recomendao e visualizao, realizado por Souza (2008).
Ressalta-se que as atividades Gerir Taxonomia de Software e Gerir Configuraespadro de Software so apoiadas pela implementao do modelo SECOGov, cujos
detalhes so descritos em (Albert, 2014), estando fora do escopo deste trabalho. Por fim,
as atividades Analisar a Maturidade de Tecnologias e Selecionar Produto ou Tecnologia
sero estudadas como trabalhos futuros.
28
WDES
WDES
5. Utilizao da Ferramenta
Com a inteno de observar inicialmente alguns elementos da interface do ferramental
desenvolvido, foi preparado um instrumento de anlise da Brech, utilizado por alunos
de graduao da rea de Computao da UFRJ. O instrumento (formulrio eletrnico)
incluiu algumas tarefas para verificar a adequao do tempo necessrio para execuo.
30
WDES
P1
P2
P3
10
10
10
10
10
6. Concluso
Devido ao desafio da governana de ECOS, este artigo apresentou a abordagem
SECOView, cujo objetivo manipular dados de uma biblioteca de ativos de software
para a construo de vises para apoiar a governana de ECOS a partir de atividades de
31
WDES
Referncias
Albert, B. (2014). Secogov: Um Modelo de Governana de Ecossistemas de Software para
Apoiar Atividades de Arquitetura de TI. Dissertao. 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, Servios e Aplicaes de Software, disponvel em:
<http://reuse.cos.ufrj.br/brecho>, acesso em julho de 2014.
Freitas, H.; Rech, I. (2003) Problemas e Aes na Adoo de Novas Tecnologias de
Informao. Revista de Administrao Contempornea, v. 7, n. 1 (Jan-Mar), pp. 125-150.
Gartner (2007) Evaluating Global-Class SECO, disponvel em: <http://www.gartner.com/
document/506608>, acesso em julho de 2014.
Gartner (2008) Gartner Hype Cycles, disponvel 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) Governana de Ativos em Ecossistemas de Software na Biblioteca Brech.
Trabalho de Concluso de Curso. Escola Politcnica da UFRJ, Rio de Janeiro, Brasil.
Souza, D. (2008) Utilizao de Tcnicas de Visualizao para a Recomendao de Substitutos.
Dissertao. COPPE/UFRJ, Rio de Janeiro, Brasil.
ThoughtWorks (2012) ThoughtWorks Technology Radar March 2012, disponvel em:
<http://thoughtworks.fileburst.com/assets/technology-radar-march-2012.pdf>.
Werner, C. et al. (2007) Brech: Catlogo de Componentes e Servios de Software. In: Anais
do XXI SBES, Sesso de Ferramentas, Joo Pessoa, Brasil, pp. 24-30.
Williams, C.; OConnor, S. (2011) Four Best Practices for Software Asset Management. BCM
Software Industry Insights.
32
WDES
School of Computing
Clemson University
Clemson, SC 29634 USA
johnmc@clemson.edu
2
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
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 models 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 models 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
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.
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.
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
195203.
da Silva Amorim, S., Almeida, E. S. D., and McGregor, J. D. (2013). Extensibility in
ecosystem architectures: an initial study. In WEA, pages 1115.
da Silva Amorim, S., de Almeida, E. S., and McGregor, J. D. (2014a). Scalability of
ecosystem architectures. In WICSA, pages 4952.
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):5768.
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):10151030.
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 5768.
Popp, K. M. (2011). Hybrid revenue models of software companies and their relationship
to hybrid business models. In IWSECO@ICSOB, pages 7788.
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
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 distribudo de software se tornou uma realidade na ltima
dcada. A comunidade de Engenharia de Software tem investigado aspectos tcnicos,
econmicos e sociais. Isso propiciou o desenvolvimento de plataformas globalizadas, de
larga escala e de longo prazo, que tem sido tratado como o ncleo de ecossistemas de
software. Entender como este cenrio impacta a qualidade em ecossistemas de software
tem sido um fator crtico. O artigo apresenta uma discusso inicial sobre qualidade em
ecossistemas de software visando identificar alguns desafios e oportunidades.
1. Introduo
O Desenvolvimento Distribudo de Software (DDS) se tornou uma realidade na ltima dcada
(Jimnez et al., 2009). Apesar dos desafios geogrficos e culturais da colaborao, uma das
principais motivaes do DDS est na busca por equipes mais produtivas e especializadas, produtos
de melhor qualidade e reduo de custos de desenvolvimento (Sengupta et al., 2006). Paralelamente
consolidao do DDS, outros modelos de desenvolvimento tm surgido, no 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 tm 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 prticas observadas em ECOS desafiam alguns pressupostos da Engenharia de Software (ES)
tradicional, dado que o desenvolvimento dos produtos no ocorre em torno de um projeto e sim pela
inovao contnua feita por diversos atores do ecossistema (i.e., inovao aberta). Nesse contexto,
um dos fatores crticos do desenvolvimento est na qualidade em ECOS (Santos & Werner, 2012).
Nos diferentes cenrios de DDS, fatores que impactam a qualidade so 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
Um keystone uma organizao que disponibiliza uma tecnologia de software central para ampliar o seu portflio de
produtos e servios a partir da integrao ou construo de novas solues por atores externos (Jansen et al., 2009).
42
WDES
capacidade e maturidade dos processos dos atores do ECOS (Santos & Werner, 2012). So
necessrias estratgias para coordenar diferentes atores e sua comunicao no ECOS (Farias Jnior
et al., 2013); tcnicas para melhorar a experincia (Fonto et al., 2014) e motivao (Miranda et al.,
2014) dos colaboradores; e abordagens (guias e padres) para certificao das contribuies dos
atores (Maia et al., 2013) e para negociar requisitos nos projetos do ECOS (Valena et al., 2013).
43
WDES
4. Consideraes Finais
Este artigo apresentou uma discusso inicial sobre qualidade em ECOS. Alguns dos desafios de
qualidade em ECOS identificados so herdados do DDS, porm com uma amplitude de questes
relacionadas arquitetura e modelos de negcio. Entre os itens chave de qualidade, esto a
aplicabilidade das metodologias atuais para maturidade e capacidade de processos de software em
relao a ambientes de ECOS e a gesto de conhecimento e aspectos sociais dos diferentes atores
com a finalidade de promover mais qualidade e sade para os ECOSs. Alm disso, devido vasta
literatura de gesto do conhecimento, devem-se analisar possveis adaptaes de estratgias
existentes para os novos ambientes de desenvolvimento gerados pelos ECOSs. No obstante o
amadurecimento das pesquisas mais voltadas para ECOS a partir de 2009 (Barbosa et al., 2013),
ainda so necessrios trabalhos que investiguem o tpico de forma mais aprofundada. Como
prximos passos, pretende-se desenvolver um framework para gesto e monitoramento da qualidade
em ECOS, bem como explorar a qualidade de processos e produtos a partir de elementos de DDS.
Referncias
Audy, J. & Prikladnicki, R. (2008) Desenvolvimento Distribudo 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) Reflexes sobre Comunicao no Desenvolvimento Distribudo no Contexto de
Ecossistemas de Software. In: VII WDDS, Braslia, 52-59.
Fonto, A. et al. (2014) MSECO Skill: Construo de Competncias de Desenvolvedores em Ecossistemas de
Software Mvel. In: XVII CIbSE, Pucn, 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.
Jimnez, 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
Distribudo no Contexto de Ecossistemas de Software. In: VII WDDS, Braslia, 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.
Valena, G. et al. (2013) Analysing Requirements Negotiation in Software Ecosystems with Multi-Agent
Systems Techniques. In: VII WDDS, Braslia, 44-51.
44
WDES
Elisa Yumi Nakagawa1, Rafael Capilla2, Francisco J. Daz3, and Flvio Oquendo4
1
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
47
WDES
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 airports 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 airports 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
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
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
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-Corts, 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 SESoS13, 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., Hst, 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
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
54
WDES
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
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 ISSRE2009, pages 175184, 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 GREENS2012, pages 6975, 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 CSER2014, pages 720727, 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 CSER2014, pages 728735,
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 SoSE2006, pages 1-5, Shanghai, China.
Nakagawa, E. Y., Gonalves, M., Guessi, M., Oliveira, L. and Oquendo, F. (2013) The
state of the art and future perspectives in systems of systems software architectures.
In SESoS2013, 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 SoSE2010,
Loughborough, UK.
Zhu, L., Staples, M. and Jeffery, R. (2008) Scaling up software architecture evaluation
processes. In ICSP2008, pages 112122, Leipzig, Germany.
57
WDES
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 societys 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.
59
WDES
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 communitys 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
environments 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 dItalia, Italy, 1-6.
62