Commit 47d6eed36618b97ac768b95692d52a4cf4ecbb1f

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 68 beginning of the project. The old portal was shut down in September 2015.
69 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 83 \begin{comment}
84 84 %FALTA ESPAÇO
... ...
opensym2017/content/02-spb.tex
... ... @@ -41,20 +41,20 @@ social networking environments.
41 41  
42 42 Initially, the purpose of the portal was only to share the software developed
43 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 27 experience. Even though, our development process defined a central role on
28 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 33 The software development in Brazilian government is based on a very traditional
33 34 way, frequently focusing documentation deliveries. We had to convince them to
34 35 accept the idea of open scope and empirical development. They had certain
35 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 32  
33 33 \begin{enumerate}
34 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 37 \item CMS features;
37 38 \item Web-based Git repository manager with Wiki and issue tracking features;
38 39 \item Mailing lists and discussion forums.
... ...
opensym2017/content/06-architecture.tex
1 1 \section{Architecture}
2 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 10 \begin{enumerate}
7 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 15 \end{enumerate}
12 16  
13 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 26 For the first requirement, we have identified four main systems which would
19 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 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 39 Centralized authentication, (ii) Visual consistency, (iii) Relaying of events
31 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 46 Initially, Colab had support for a small set of applications (Trac, GNU
37 47 Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab
... ... @@ -150,7 +160,7 @@ network created between them.
150 160  
151 161 \begin{figure*}[hbt]
152 162 \centering
153   - \includegraphics[width=.95\linewidth]{figures/arch3.png}
  163 + \includegraphics[width=.85\linewidth]{figures/arch3.png}
154 164 \caption{Instanciation view of the SPB architecture.}
155 165 \label{fig:architecture2}
156 166 \end{figure*}
... ... @@ -169,8 +179,8 @@ Gitlab provides web interface for Git repositories and issues tracker, and
169 179 Prezento is a front-end for source code static analysis.
170 180  
171 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 184 \textit{social}, and the databases of all tools with a cache service are in
175 185 \textit{database}.
176 186  
... ...
opensym2017/content/09-conclusion.tex
... ... @@ -165,10 +165,9 @@ infrastructure.
165 165  
166 166 \subsection{Final Remarks and Future Work}
167 167  
168   -Ultimately, the SPB portal is in
169   -production\footnote{\url{https://softwarepublico.gov.br}} and its full
170   -documentation, including detailed architecture and operation manuals, is also
171   -available\footnote{\url{https://softwarepublico.gov.br/doc/}}.
  168 +The SPB portal is in production\footnote{\url{https://softwarepublico.gov.br}}
  169 +and its full documentation, including detailed architecture and operation
  170 +manuals, is also available\footnote{\url{https://softwarepublico.gov.br/doc/}}.
172 171 %
173 172 All the integrated tools are FLOSS and our contributions were published in open
174 173 repositories, available on the SPB Portal itself. We also contributed these
... ...