Commit a282bfe49c32e7cefa0496d078c0891f0efe8788

Authored by Paulo Meireles
1 parent d04d35a9

[opensym] the camera ready version \o/

opensym2017/content/01-introduction.tex
@@ -68,17 +68,17 @@ The first release (beta) was in September 2014, only 9 months from the @@ -68,17 +68,17 @@ The first release (beta) was in September 2014, only 9 months from the
68 beginning of the project. The old portal was shut down in September 2015. 68 beginning of the project. The old portal was shut down in September 2015.
69 Finally, the last version was released in June 2016. 69 Finally, the last version was released in June 2016.
70 70
71 -In this paper, we present an overview of the new SPB Portal. We share  
72 -the methodology employed to develop this project. This methodology has the  
73 -goals of satisfying Government requirements and adhering as much as possible to  
74 -FLOSS and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss  
75 -lessons learned in providing a distributed and collaborative virtual  
76 -environment involving a large team of undergraduate students and remote senior  
77 -developers. In short, we released an innovative platform for helping the  
78 -Brazilian government to apply empirical software development methods. This case  
79 -can help other projects to overcome similar software engineering challenges in  
80 -the future, as well as to illustrate how universities can improve the  
81 -real-world experience of their students. 71 +In this paper, we present an overview of the new SPB Portal. We share the
  72 +methodology employed to develop this project. This methodology has the goals
  73 +of satisfying Government requirements and adhering as much as possible to FLOSS
  74 +and agile practices~\cite{mockus2002, tosi2015}. Moreover, we discuss lessons
  75 +learned in providing a distributed and collaborative virtual environment
  76 +involving a large team of undergraduate students and remote senior developers.
  77 +In short, we released an innovative platform for helping the Brazilian
  78 +government to apply empirical software development methods. This case can help
  79 +other projects to overcome similar software engineering challenges in the
  80 +future, as well as to illustrate how universities can improve the real-world
  81 +experience of their students.
82 82
83 \begin{comment} 83 \begin{comment}
84 %FALTA ESPAÇO 84 %FALTA ESPAÇO
opensym2017/content/02-spb.tex
@@ -41,20 +41,20 @@ social networking environments. @@ -41,20 +41,20 @@ social networking environments.
41 41
42 Initially, the purpose of the portal was only to share the software developed 42 Initially, the purpose of the portal was only to share the software developed
43 in the Brazilian government to reduce the costs of hiring software. However, it 43 in the Brazilian government to reduce the costs of hiring software. However, it
44 -was observed that when a software was released, a community was formed  
45 -around it, with several people collaborating and sharing the results  
46 -obtained through the use of those solutions, as commonly occurs in FLOSS  
47 -\cite{ducheneaut2005}. In this way, some software development cooperatives and  
48 -private companies have shown an interest in making their software available on  
49 -the SPB Portal. 44 +was observed that when a software was released, a community was formed around
  45 +it, with several people collaborating and sharing the results obtained through
  46 +the use of those solutions, as commonly occurs in FLOSS \cite{ducheneaut2005}.
  47 +In this way, some software development cooperatives and private companies have
  48 +shown an interest in making their software available on the SPB Portal.
50 49
51 -The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}. In addition to being  
52 -licensed under a FLOSS license, this software needs to have explicit guarantees that it  
53 -is a public good, and its project must be available on the SPB portal. Being a  
54 -true public good assumes requirements that can not be met solely by means of  
55 -FLOSS licensing. For example, there must be a relaxed trademark usage policy by  
56 -the original vendor that does not stop eventual competitors from advertising  
57 -services for that same software. Inclusion in the SPB Portal also has extra  
58 -requirements, such as having a public version control system, installation  
59 -manual, and hardware requirements specification. 50 +The concept of Brazilian Public Software goes beyond FLOSS \cite{freitas2008}.
  51 +In addition to being licensed under a FLOSS license, this software needs to
  52 +have explicit guarantees that it is a public good, and its project must be
  53 +available on the SPB portal. Being a true public good assumes requirements that
  54 +can not be met solely by means of FLOSS licensing. For example, there must be a
  55 +relaxed trademark usage policy by the original vendor that does not stop
  56 +eventual competitors from advertising services for that same software.
  57 +Inclusion in the SPB Portal also has extra requirements, such as having a
  58 +public version control system, installation manual, and hardware requirements
  59 +specification.
60 60
opensym2017/content/04-researchdesign.tex
@@ -27,13 +27,14 @@ Government. For the majority of the students, this was a first professional @@ -27,13 +27,14 @@ Government. For the majority of the students, this was a first professional
27 experience. Even though, our development process defined a central role on 27 experience. Even though, our development process defined a central role on
28 students participation. 28 students participation.
29 29
30 -\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile practices in the governmental development process?} 30 +\textbf{Q3.} \textit{How to introduce typical FLOSS collaborative and agile
  31 +practices in the governmental development process?}
31 % 32 %
32 The software development in Brazilian government is based on a very traditional 33 The software development in Brazilian government is based on a very traditional
33 way, frequently focusing documentation deliveries. We had to convince them to 34 way, frequently focusing documentation deliveries. We had to convince them to
34 accept the idea of open scope and empirical development. They had certain 35 accept the idea of open scope and empirical development. They had certain
35 expectations about the project development according to the Rational Unified 36 expectations about the project development according to the Rational Unified
36 -Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches, which  
37 -mismatched our work style based on agile and FLOSS practices. So we created  
38 -strategies to conciliate these different organizational cultures within the  
39 -project. 37 +Process (RUP) and the Project Management Body of Knowledge (PMBOK) approaches,
  38 +which mismatched our work style based on agile and FLOSS practices. So we
  39 +created strategies to conciliate these different organizational cultures within
  40 +the project.
opensym2017/content/05-requirements.tex
@@ -32,7 +32,8 @@ replace the old SPB Portal, prioritizing the following features: @@ -32,7 +32,8 @@ replace the old SPB Portal, prioritizing the following features:
32 32
33 \begin{enumerate} 33 \begin{enumerate}
34 \item An organized public software catalog; 34 \item An organized public software catalog;
35 -\item Social network environment (profiles for users, software pages, and community pages); 35 +\item Social network environment (profiles for users, software pages, and
  36 + community pages);
36 \item CMS features; 37 \item CMS features;
37 \item Web-based Git repository manager with Wiki and issue tracking features; 38 \item Web-based Git repository manager with Wiki and issue tracking features;
38 \item Mailing lists and discussion forums. 39 \item Mailing lists and discussion forums.
opensym2017/content/06-architecture.tex
1 \section{Architecture} 1 \section{Architecture}
2 \label{sec:architecture} 2 \label{sec:architecture}
3 3
4 -From the architeture point of view, the integration of several features (such as centralized authentication, unified interface, search engine as well as other back-end features) of systems with different programming languages and frameworks would require a non-trivial amount of work. In this context, the most important architetural requirements for the new platform were: 4 +From the architeture point of view, the integration of several features (such
  5 +as centralized authentication, unified interface, search engine as well as
  6 +other back-end features) of systems with different programming languages and
  7 +frameworks would require a non-trivial amount of work. In this context, the
  8 +most important architetural requirements for the new platform were:
5 9
6 \begin{enumerate} 10 \begin{enumerate}
7 \item \textit{Integrating existing FLOSS systems} with minimal differences 11 \item \textit{Integrating existing FLOSS systems} with minimal differences
@@ -11,13 +15,18 @@ From the architeture point of view, the integration of several features (such as @@ -11,13 +15,18 @@ From the architeture point of view, the integration of several features (such as
11 \end{enumerate} 15 \end{enumerate}
12 16
13 The adoption of existing FLOSS systems and the minimization of their local 17 The adoption of existing FLOSS systems and the minimization of their local
14 -changes had the purpose to lower the effort of upgrading the software packages that compose the platform to newer version of their original software. With this facility, the platform  
15 -benefits from maintenance and improvements made by communities. The development of a consistent user interface aims to provide to platform's users a smooth transition between different systems. Without it, the necessity of  
16 -adaptation and learning for each tool could get users confused and fatigued. 18 +changes had the purpose to lower the effort of upgrading the software packages
  19 +that compose the platform to newer version of their original software. With
  20 +this facility, the platform benefits from maintenance and improvements made by
  21 +communities. The development of a consistent user interface aims to provide to
  22 +platform's users a smooth transition between different systems. Without it, the
  23 +necessity of adaptation and learning for each tool could get users confused and
  24 +fatigued.
17 % 25 %
18 For the first requirement, we have identified four main systems which would 26 For the first requirement, we have identified four main systems which would
19 have specialized teams for work in the integration process. Team members have 27 have specialized teams for work in the integration process. Team members have
20 -learned how to write code to their assigned systems and how to contribute to the original communities to align the used version with the original one. 28 +learned how to write code to their assigned systems and how to contribute to
  29 +the original communities to align the used version with the original one.
21 30
22 % 31 %
23 In the end of the project, the SPB portal has combined more than ten 32 In the end of the project, the SPB portal has combined more than ten
@@ -30,8 +39,9 @@ change between applications. For that, Colab provides facilities for: (i) @@ -30,8 +39,9 @@ change between applications. For that, Colab provides facilities for: (i)
30 Centralized authentication, (ii) Visual consistency, (iii) Relaying of events 39 Centralized authentication, (ii) Visual consistency, (iii) Relaying of events
31 between applications, and (iv) Integrated search engine. 40 between applications, and (iv) Integrated search engine.
32 % 41 %
33 -Colab implements this integration by working as a reverse proxy for the applications, i.e., all external requests pass through Colab  
34 -before reaching them. 42 +Colab implements this integration by working as a reverse proxy for the
  43 +applications, i.e., all external requests pass through Colab before reaching
  44 +them.
35 % 45 %
36 Initially, Colab had support for a small set of applications (Trac, GNU 46 Initially, Colab had support for a small set of applications (Trac, GNU
37 Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab 47 Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab
@@ -150,7 +160,7 @@ network created between them. @@ -150,7 +160,7 @@ network created between them.
150 160
151 \begin{figure*}[hbt] 161 \begin{figure*}[hbt]
152 \centering 162 \centering
153 - \includegraphics[width=.95\linewidth]{figures/arch3.png} 163 + \includegraphics[width=.85\linewidth]{figures/arch3.png}
154 \caption{Instanciation view of the SPB architecture.} 164 \caption{Instanciation view of the SPB architecture.}
155 \label{fig:architecture2} 165 \label{fig:architecture2}
156 \end{figure*} 166 \end{figure*}
@@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and @@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and
169 Prezento is a front-end for source code static analysis. 179 Prezento is a front-end for source code static analysis.
170 180
171 The source code static analysis is performed by \textit{mezuro}. It runs some 181 The source code static analysis is performed by \textit{mezuro}. It runs some
172 -static analysis tools on source code stored in a repository and provides this data  
173 -to Prezento. A social network and CMS is provided by Noosfero in 182 +static analysis tools on source code stored in a repository and provides this
  183 +data to Prezento. A social network and CMS is provided by Noosfero in
174 \textit{social}, and the databases of all tools with a cache service are in 184 \textit{social}, and the databases of all tools with a cache service are in
175 \textit{database}. 185 \textit{database}.
176 186