05-requirements.tex 3.49 KB
\section{Requirements}
\label{sec:requirements}

In 2013, the SPB Portal had more than 600 thousand unique visitors, generating
more than 16 million page views with about 50 million hits. By evaluating only
the main projects, there were more than 15 thousand downloads and 4 thousand
messages exchanged in their forums. These data illustrates the potential of the
SPB Portal, even with several limitations in the past.

By preparing the evolution project described in this paper, the Brazilian
government promoted 3 events to collect the requirements, in particular from
society point of view: (i) an online form to collect general ideas; (ii) a
face-to-face meeting with society in general; (iii) a workshop to review the
SPB concepts and requirements with IT stakeholders from the Brazilian
government and public organizations.

After these 3 rounds discussing the new SPB platform, the Brazilian government
listed about 145 requirements and developed a ``mind
map''\footnote{\url{https://softwarepublico.gov.br/social/spb/gallery/mapaconceitual.png}}
to guide the SPB portal evolution. In this scenario, the 10 most voted
requirements were:

\begin{enumerate}

\item Source code repository with public access;
\item Visit community pages without login;
\item Distributed version control system;
\item Scores of users and developers collaboration;
\item Search software by features;
\item Integration with social networks;
\item Repository for future ideas and requirements;
\item Friendly URL to access a public software community page;
\item User feedback about a public software;
\item Report of the experience about the use of a public software;

\end{enumerate}

\begin{figure}[hbt]
  \centering
    \includegraphics[width=\linewidth]{figures/technological-requirements.png}
  \caption{Technological requirements.}
  \label{fig:requirements}
\end{figure}


There were other requirements based on the experience of the IT
stakeholders from the Brazilian government and from the Brazilian FLOSS
community (that UnB and USP were representing too in this project). The
new platform would only work properly if there is a unique
authentication to use the provided tools. Additionally, a unified
interface was an important non-functional requirement to have a better
user experience in the new platform.

At the first moment, we desired to release an initial version that could
replace the old SPB portal. For that, the first version should have
features such as:

\begin{enumerate}

\item An organized public software catalog;
\item Social network environment (profiles for users, software pages, and community pages);
\item Content Management Systems (CMS) features;
\item Web-based Git repository manager with wiki and issue tracking features;
\item Mailing lists and discussion forums;

\end{enumerate}

Other requirements were also planned during the conception phase of the
SPB evolution project, such as an integrated search engine and a
web-based source code static analysis monitor. By analyzing all of these
requirements, we proposed the technological requirements
illustrated in Figure \ref{fig:requirements} to guide the development of
the new SPB platform. In other words, we have designed the SPB evolution
project based on existing FLOSS tools. However, the integration of
several existing systems that were already implemented in different
programming languages and frameworks, adding features such as a
centralized authentication, unified interface, and a search engine, as
well as, other back-end features, would require a non-trivial amount of
work.