Compare View
Commits (121)
-
…articles into oss_2018
-
…articles into oss_2018
-
…articles into oss_2018
-
…articles into oss_2018
-
…articles into oss_2018
-
Conflicts: icse2018/content/01-introduction.tex
-
…articles into oss_2018
-
Conflicts: oss2018/content/03-methods.tex oss2018/spb-oss-2018.bib
-
…articles into oss_2018
-
…articles into oss_2018
Showing
38 changed files
Show diff stats
... | ... | @@ -0,0 +1,15 @@ |
1 | +TARGET=spb-oss-2018 | |
2 | + | |
3 | +all: $(TARGET).tex | |
4 | + pdflatex $(TARGET).tex | |
5 | + bibtex $(TARGET) | |
6 | + pdflatex $(TARGET).tex | |
7 | + pdflatex $(TARGET).tex | |
8 | + evince $(TARGET).pdf & | |
9 | + | |
10 | +edit: | |
11 | + gedit Makefile *.bib *.tex & | |
12 | + | |
13 | +clean: | |
14 | + rm -f $(TARGET).pdf *.out *.aux *.log *.blg *.bbl *.dvi *.ps *.toc *.lot *.lof *.idx *~ | |
15 | + | ... | ... |
... | ... | @@ -0,0 +1,17 @@ |
1 | +\begin{abstract} | |
2 | + | |
3 | +Government and academia can collaborate on bringing innovation and filling | |
4 | +design-reality gaps in e-government projects. However, differences in project | |
5 | +management methods employed by the organizations is often a challenge for | |
6 | +collaborative works. Bearing that in mind, we investigated a 30-month | |
7 | +government-academia partnership to find appropriate ways to get around this | |
8 | +obstacle. From the analysis of \textit{post-mortem} data as well as the results | |
9 | +of questionnaires and interviews with project participants, we present a set of | |
10 | +best practices based on FLOSS and agile software development approaches that | |
11 | +favors team management in government-academia collaborations in e-government | |
12 | +development projects. | |
13 | + | |
14 | +\end{abstract} | |
15 | + | |
16 | +\keywords{Open Source Software, Free Software, Agile Methods, Best Practices, | |
17 | +Project Management, E-Government.} | ... | ... |
... | ... | @@ -0,0 +1,49 @@ |
1 | +\section{Introduction} | |
2 | + | |
3 | +E-government projects differ from others due to their complexity and extension | |
4 | +\cite{anthopoulos2016egovernment}. They are complex because they combine | |
5 | +development, innovation, information \& communications technologies, politics, | |
6 | +and social impact. They are extensive, on the other hand, regarding their | |
7 | +scope, target audience, organizational size, time, and the corresponding | |
8 | +resistance to change. Developing an innovative e-government project that meets | |
9 | +the needs of society is a issue that may be addressed alternatively through | |
10 | +collaborative projects between government and academia. However, this | |
11 | +collaborative work has challenges, such as organizing the collaboration | |
12 | +project, aligning goals, synchronizing the pace of between government and | |
13 | +academia, and overcoming the failure trend of e-government projects | |
14 | +\cite{goldfinch2007pessimism}. | |
15 | + | |
16 | +One of the leading causes of e-government project failure is poor project | |
17 | +management \cite{anthopoulos2016egovernment}. In this sense, the proper | |
18 | +management of the collaboration project should be a relevant concern when | |
19 | +government and academia combine efforts to develop an e-government solution. | |
20 | +Academia commonly works on cutting-edge development methodologies while the | |
21 | +government still relies on traditional techniques. Changing the development | |
22 | +process of one of this large-size institutions represents an organizational | |
23 | +disturbance with impacts on structure, culture, and management practices | |
24 | +\cite{nerur2015challenges}. As a result, government and academia have to | |
25 | +harmonize their view to increasing the chances of success in projects with | |
26 | +tight deadlines and short budgets. | |
27 | + | |
28 | +We have investigated the adoption of recommended community standards from | |
29 | +Free/Libre and Open Source Software (FLOSS) and agile values as a strategy to | |
30 | +harmonize different management approaches, due to the plurality of FLOSS | |
31 | +ecosystems and the diversity favored by agile methodologies. Open | |
32 | +communication, project modularity, the community of users, and fast response to | |
33 | +problems are just a few of the FLOSS ecosystem practices \cite{capiluppi, | |
34 | +warsta}. Individuals and interactions, working software, customer | |
35 | +collaboration, responding to change are the values agile | |
36 | +development~\cite{beck}. With this in mind, FLOSS and agile practices may | |
37 | +improve the cooperation of distinct teams. | |
38 | + | |
39 | +In this work, we examine the empirical method developed during 30 months | |
40 | +of a government-academia project that helped to harmonize the differences | |
41 | +between both organization management cultures. We discuss both quantitative | |
42 | +and qualitative analyses of the benefits of FLOSS and agile practices in an | |
43 | +e-government project. We identify and trace the best practices based on | |
44 | +FLOSS ecosystems and agile methodology. We collect and analyze data from the | |
45 | +project repository. Finally, we conduct a survey target at projects | |
46 | +participants to find their perception around the set of best practices, and | |
47 | +which of them are useful to government-academia collaboration. In doing so, we | |
48 | +aim to help academia better understand critical issues they will be confronted | |
49 | +with when engaging in a government-academia software project. | ... | ... |
... | ... | @@ -0,0 +1,60 @@ |
1 | +\section{Related work} | |
2 | +\label{sec:relatedwork} | |
3 | + | |
4 | +Discussions on how to introduce new management methods into an organization are | |
5 | +present in several works. Nerur et al. recognized critical issues concerning | |
6 | +the migration from traditional to agile software development by comparing | |
7 | +practices of both methodologies \cite{nerur2015challenges}. The authors point | |
8 | +out managerial, organizational, people, process, and technological issues to be | |
9 | +rethought and reconfigured in an organization for a successful migration. | |
10 | +Strode et al. investigated the relationship between the adoption of agile | |
11 | +methodologies and organizational culture \cite{impactOfOrganizationalCulture} | |
12 | +by evaluating nine projects. They identified a set of six factors directly | |
13 | +linked to agile methods and concluded that the presence of these aspects in an | |
14 | +organization is proportional to the value of agile methodologies usage for | |
15 | +their projects. As Nerur et al., Strode et al. also said that the adoption of | |
16 | +agile development techniques does indeed produce changes in an organization's | |
17 | +culture. | |
18 | + | |
19 | +Some works also discuss how academia can collaborate with the industry in the | |
20 | +management of software projects. Chookittikul et al. evaluated the increasing | |
21 | +use of the agile techniques in software development companies in Thailand. The | |
22 | +authors suggested that universities should create curricula that develop in | |
23 | +their undergraduate students practical skills required by industry (mainly | |
24 | +agile practices) to promote growth in local software businesses | |
25 | +\cite{cho2011gap}. Sandberg et al. report the use of Scrum in an | |
26 | +industry-academia research consortium (involving ten industry partners and five | |
27 | +universities in Sweden) \cite{sandberg2017iacollaboration}. Through a case | |
28 | +study, they demonstrate that being able to bring together the meaningful | |
29 | +activities of the stakeholders is essential to the success of collaborative | |
30 | +research between industry and academia. | |
31 | + | |
32 | +Complex and large-scale organizations, such as the public administration, have | |
33 | +to deal with multiple project variables. Alleman et al. describe a production | |
34 | +deployment for the US government, focusing on the methodology applied to | |
35 | +address long-term planning and value estimation \cite{alleman2003making}. In | |
36 | +the Brazilian context, Melo et al. \cite{melo2013agileBr} investigates the | |
37 | +growing adoption of agile methodologies in this country's IT industry. The | |
38 | +results of their survey highlight some mismatch that companies faces when | |
39 | +developing software for public administration. | |
40 | + | |
41 | +Several works tried to highlight the FLOSS practices, while others attempted to | |
42 | +determine the relationship between FLOSS practices and agile methods. Capiluppi | |
43 | +et al. examined about 400 projects to find FLOSS project properties | |
44 | +\cite{capiluppi}. In their work, they extracted generic characterization | |
45 | +(project size, age, license, and programming language), analyzed the average | |
46 | +number of people involved in the project, the community of users, and | |
47 | +documentation characteristics. Warsta et al. found differences and similarities | |
48 | +between agile development and FLOSS practices \cite{warsta}. The authors argued | |
49 | +that FLOSS development may differ from agile in their philosophical and | |
50 | +economic perspectives, on the other hand, both share the definition of work. | |
51 | +Finally, Eric Raymond describes many of his experiences and decisions in his | |
52 | +work with FLOSS communities \cite{raymond}, and his report in 1999 has many | |
53 | +intersections with the agile manifesto in 2001. | |
54 | + | |
55 | +This paper differs itself from others by studying the government-academia | |
56 | +collaboration for developing a production-level solution. From questionnaires, | |
57 | +interviews, and development activities data, we extracted best practices that | |
58 | +helped to harmonize the interactions between two different development process | |
59 | +and satisfied the management process of both sides. We analyzed the decisions | |
60 | +made from the FLOSS and agile perspectives. | ... | ... |
... | ... | @@ -0,0 +1,135 @@ |
1 | +\section{Research Design} | |
2 | +\label{sec:researchdesign} | |
3 | + | |
4 | +We studied practical alternatives to harmonize the software project lifecycle | |
5 | +when confronting different development processes from crucial stakeholders. We | |
6 | +are interested in the relationship between government and academia from the | |
7 | +project management perspective, without the enforcement of changing their | |
8 | +internal processes. We present two research questions that guided this work: | |
9 | + | |
10 | +\textbf{RQ1. }\textit{How to introduce FLOSS and agile best practices into | |
11 | +government-academia collaboration projects?} | |
12 | + | |
13 | +\textbf{RQ2. }\textit{What practices favor effective team management in | |
14 | +government-academia collaborative projects?} | |
15 | + | |
16 | +To answer these questions, we used the case study as research method. We | |
17 | +selected as a case the evolution of the Brazilian Public Software (SPB) portal | |
18 | +\cite{meirelles2017spb}, a government-academia collaborative project based on | |
19 | +FLOSS systems. To validate our answers, we covered three different points of | |
20 | +view: developers, government agent, and data collected from the project | |
21 | +repository. | |
22 | + | |
23 | +\subsection{The case study} | |
24 | + | |
25 | +The project to evolve the SPB portal was a partnership between government and | |
26 | +academia held between 2014 and 2016 \cite{meirelles2017spb}. The old version of | |
27 | +SPB suffered from maintenance problems and design-reality gaps. In this sense, | |
28 | +The Ministry of Planning (MPOG) decided to join the University of Brasília | |
29 | +(UnB) and the University of São Paulo (USP) to develop a new platform. This | |
30 | +platform had as its primary requirement to be based on existing FLOSS projects | |
31 | +and integrate multiple systems into one, providing the end user with a unified | |
32 | +experience. | |
33 | + | |
34 | +In short, the SPB portal evolved into a Collaborative Development Environment | |
35 | +(CDE) \cite{booch2003}. It was a novelty in the context of the Brazilian | |
36 | +government, due to the technologies employed and its diverse features. The | |
37 | +portal includes social networking, mailing lists, version control system, and | |
38 | +source code quality monitoring. All software is integrated using a | |
39 | +system-of-systems framework \cite{meirelles2017spb}. | |
40 | + | |
41 | +The platform development took place at the Advanced Laboratory of Production, | |
42 | +Research, and Innovation in Software Engineering (LAPPIS/UnB) and the FLOSS | |
43 | +Competence Center at USP (CCSL/USP). Undergraduate interns, IT professionals and | |
44 | +professors formed a partially distributed development team. While interns and | |
45 | +professors worked in-person, most IT professionals worked remotely. Their | |
46 | +activities followed the workflow of biweekly sprints and 4-month releases. | |
47 | + | |
48 | +On the managerial aspect, at the project | |
49 | +beginning, the collaboration management and strategic discussions happened only | |
50 | +once a month, when project leaders and MPOG directors met in person at the | |
51 | +ministry's headquarters. Table~\ref{tab:gov-academia-diff} summarizes the | |
52 | +organizational differences in both involved sides. | |
53 | + | |
54 | +\vspace*{-.5cm} | |
55 | + | |
56 | +\begin{table}[h] | |
57 | +\centering | |
58 | +\def\arraystretch{1.2} | |
59 | +\setlength\tabcolsep{0.2cm} | |
60 | +\resizebox{\textwidth}{!}{% | |
61 | +\begin{tabular}{m{4.3cm}!{\color{white}\vrule}m{7cm}!{\color{white}\vrule}m{8cm}} | |
62 | +\rowcolor[HTML]{c0d6e4} | |
63 | +\textbf{Collaboration peaces} & \textbf{Academia} & \textbf{Goverment} \\ | |
64 | +\rowcolor[HTML]{f2f2f2} | |
65 | +\textbf{Responsibilities} & Platform development activites & Contracts and collaboration management \\ | |
66 | +\rowcolor[HTML]{fafafa} | |
67 | +\textbf{Team size} & | |
68 | +\begin{tabular}[c]{@{}l@{}} 42 undergraduate interns \\ 2 professors \\ 6 senior developers with significant \\ experience in FLOSS projects\\ 2 Designers (UX specialists) \end{tabular} & | |
69 | +\begin{tabular}[c]{@{}l@{}} 1 director \\ 1 coordinator \\ 2 requirement analysts \end{tabular} \\ | |
70 | +\rowcolor[HTML]{f2f2f2} | |
71 | +\textbf{Workplace} & LAPPIS at UnB and CCSL at USP & MPOG headquarters \\ | |
72 | +\rowcolor[HTML]{fafafa} | |
73 | +\begin{tabular}[c]{@{}l@{}}\textbf{Management} \textbf{approaches}\end{tabular} & FLOSS practices and Agile values & Mindset from RUP, CMMI, and PMBOK \\ | |
74 | +\end{tabular}% | |
75 | +} | |
76 | +\caption{Differences between academia and government sides.} | |
77 | +\label{tab:gov-academia-diff} | |
78 | +\end{table} | |
79 | + | |
80 | +\vspace*{-1cm} | |
81 | + | |
82 | +During the project progress, this workflow proved to be inefficient. Conflicts | |
83 | +between the internal management processes and differences in pace and goals of | |
84 | +each institution were compromising the platform development. To improve the | |
85 | +project management process and reducing the mismatching between government and | |
86 | +academia, professors, with the senior developers' collaboration, incrementally | |
87 | +employed a set of best practices based on FLOSS and agile values. Throughout | |
88 | +the project, the development leaders made decisions in a non-systematic way to | |
89 | +promote the usage of these techniques. In this paper, we analyzed and codified | |
90 | +these decisions and how they favored the collaboration progress. | |
91 | + | |
92 | +\subsection{Survey, Interview and Data Collection} | |
93 | + | |
94 | +We separated the project team into three groups: undergraduate interns, IT | |
95 | +professionals (senior developers and designers), and MPOG analysts. For the | |
96 | +first two we sent online questionnaires, and for the last one, we conducted | |
97 | +2-hour interviews. Table \ref{survey-table} presents the details of these | |
98 | +processes. | |
99 | + | |
100 | +\vspace*{-.5cm} | |
101 | + | |
102 | +\begin{table}[h] | |
103 | +\centering | |
104 | +\def\arraystretch{1.2} | |
105 | +\setlength\tabcolsep{0.2cm} | |
106 | +\resizebox{\textwidth}{!}{% | |
107 | +\begin{tabular}{m{4cm}!{\color{white}\vrule}m{5cm}!{\color{white}\vrule}m{6cm}!{\color{white}\vrule}m{6cm}} | |
108 | +\rowcolor[HTML]{c6b3df} | |
109 | +\textbf{} & \textbf{\nohyphens{Undergraduate Interns}} & \textbf{Senior Developers} & \textbf{MPOG Analysts} \\ | |
110 | +\rowcolor[HTML]{fafafa} | |
111 | +\textbf{Research technique} & Online questionnaire & Online questionnaire & Interview \\ | |
112 | +\rowcolor[HTML]{f2f2f2} | |
113 | +\textbf{Discussed topics} & \multicolumn{2}{l!{\color{white}\vrule}}{\begin{tabular}[c]{@{}l@{}}(1) project organization\\ (2) the development process\\ (3) communication and relationship with members\\ (4) knowledge sharing\\ (5) experience with FLOSS projects\end{tabular}} & \begin{tabular}[c]{@{}l@{}}(1) professional profile\\ (2) organization, communication \\ and development methodologies\\ (3) satisfaction with \\ the developed platform\\ (4) lessons learned\end{tabular} \\ | |
114 | +\rowcolor[HTML]{fafafa} | |
115 | +\textbf{Number of interviewed} & 42 & 8 & 2 \\ | |
116 | +\rowcolor[HTML]{f2f2f2} | |
117 | +\textbf{Rate of responses} & 88\% (37) & 100\% & 100\% \\ | |
118 | +\rowcolor[HTML]{fafafa} | |
119 | +\textbf{Average age at the end of the project} & 22 years old & 30 years old & 30 years old \\ | |
120 | +\rowcolor[HTML]{f2f2f2} | |
121 | +\textbf{Gender} & \begin{tabular}[c]{@{}l@{}}8\% women \\ 92\% man\end{tabular} & \begin{tabular}[c]{@{}l@{}}13\% women \\ 87\% man\end{tabular} & 100\% women \\ | |
122 | +\rowcolor[HTML]{fafafa} | |
123 | +\begin{tabular}[c]{@{}l@{}}\textbf{Experience} \\ \textbf{background}\end{tabular} & 43\% of the interns had the SPB project as their first contact with FLOSS & 11 years of experience; worked in at least 5 companies; participated in 4 to 80 distinct projects; 86\%of them had some background with FLOSS before the SPB project & more than 7 years working in the government; SPB project represented their first experience of government-academia collaboration \\ | |
124 | +\end{tabular}% | |
125 | +} | |
126 | +\caption{Surveying the project participants} | |
127 | +\label{survey-table} | |
128 | +\end{table} | |
129 | + | |
130 | +\vspace*{-1cm} | |
131 | + | |
132 | +Finally, we analyzed the data from the central project repository considering | |
133 | +all the issues and commits. From April 2015 to June 2016, 59 distinct authors | |
134 | +opened 879 issues, 64 different users made the total of 4,658 comments. The | |
135 | +development team made 3,256 commits in this abovementioned repository. | ... | ... |
... | ... | @@ -0,0 +1,188 @@ |
1 | +\section{Results} | |
2 | +\label{sec:results} | |
3 | + | |
4 | +The SPB portal project had two phases according to the traceability of project | |
5 | +management activities. The first one, between January 2014 and March 2015, is | |
6 | +non-traceable since only the universities managed the development activities. | |
7 | +The communication between government and academia was, generally, in private | |
8 | +channels, such as professional e-mails, personal meetings, and telephone calls. | |
9 | +Therefore, the quantitative data found for this period are not conclusive or | |
10 | +have little expressiveness, and we do not examine them. | |
11 | + | |
12 | +The second phase, from April 2015 to the end of the project (June 2016), has | |
13 | +meaningful data. Much of the management and communication activities were | |
14 | +recorded and published on online channels and tools. During this period, the | |
15 | +development leaders consolidated several FLOSS practices and agile values | |
16 | +employed in the development process. At the end of the project, the academic | |
17 | +team had an empirical management approach for meeting the government | |
18 | +bureaucracies. | |
19 | + | |
20 | +\subsection{Use of the system under development to develop the system itself} | |
21 | + | |
22 | +Due to the platform features for software development and social network, the | |
23 | +development coordinators decided to use the platform under construction to | |
24 | +develop the system itself. Gradually, in addition to development activities, | |
25 | +government and academia migrated the project management and the communication | |
26 | +between teams to the portal environment. | |
27 | + | |
28 | +In short, the wiki feature was used for logging meetings, defining goals, | |
29 | +planning sprints, documenting deployment procedures and user guides. The issue | |
30 | +tracker was used for discussing requirements, monitoring features under | |
31 | +development, requesting and recording changes, and validating the delivered | |
32 | +functionalities. Finally, the mailing list was used for collaborative | |
33 | +construction of requirements, defining schedules, and scheduling meetings | |
34 | +between institutions. | |
35 | + | |
36 | +Our surveys report Mailing list (100\%) and Issue Tracker (62.5\%) as the main | |
37 | +means of interaction between senior developers and interns. The development | |
38 | +team and MPOG staff also interacted mostly via Mailing List (87.5\%) and Issue | |
39 | +tracker (50\%). According to one of the interviewees, this movement made the | |
40 | +\textbf{communication more transparent and efficient}. An MPOG analyst said | |
41 | +that \textit{``Communicating well goes far beyond the speed. It means enabling | |
42 | +someone to tell everyone about everything that is happening in the project. We | |
43 | +did not use emails, we use more mailing list and avoid emails. This usage | |
44 | +helped us considerably. Everything was public and did not pollute our email | |
45 | +box. So, when you wanted to know something, you could access the SPB list and | |
46 | +see everything''}. | |
47 | + | |
48 | +Migrating to the SPB platform also \textbf{easied monitoring of activities and | |
49 | +increased interactions between developers and public servants}. The data | |
50 | +collected from the repository highlight the frequent use of the platform by | |
51 | +both sides teams. In the last 15 months of the project, 59 different authors | |
52 | +opened the central repository issues, 8 of them were MPOG agents. These issues | |
53 | +received comments from 64 distinct users, 9 of them from MPOG. When we consider | |
54 | +the issues with more interactions, those which had ten comments or more, we | |
55 | +notice that the government team also felt comfortable in using the tool to | |
56 | +interact directly with the development team. In a set of 102 active issues, | |
57 | +MPOG staff created 43 of them (this represents 42\% of the most active issues). | |
58 | + | |
59 | +For the MPOG analysts, interaction via repository improved communication. | |
60 | +\textit{``There was a big evolution, we increased our communication via | |
61 | +Gitlab''}. Migrating to the platform also led MPOG staff to \textbf{trust the | |
62 | +developed code}: \textit{``Everything was validated. We tested the | |
63 | +functionalities and developed the project on the SPB platform itself. Hence, | |
64 | +the use of the system homologated most of its features. From the moment we | |
65 | +began to use it for developing, this validation was constant. We felt confident | |
66 | +in the code produced''}. | |
67 | + | |
68 | +The abovementioned decision also collaborated to meet the government's demand | |
69 | +for meticulous documentation of the software design and stages of development | |
70 | +without bureaucratizing or modifying the development process. The usage of the | |
71 | +platform for project team management conducted \textbf{the organic production | |
72 | +of documentation and records}, as mentioned in one of the MPOG responses: | |
73 | +\textit{``It was a great learning experience. There are many things documented | |
74 | +in emails as well as in the portal itself. We can access the tools at any time | |
75 | +and find out how we develop a solution. We can remember the positive project | |
76 | +points''}. | |
77 | + | |
78 | +\subsection{Brings together government staff and development team} | |
79 | + | |
80 | +In the first phase of the project, the interviewed MPOG analysts did not | |
81 | +participate in any direct interaction with any university representative, even | |
82 | +though they were the ones in charge of the government in ensuring the | |
83 | +collaboration agreement and the delivery of the products. Because of this, they | |
84 | +relied on feedback from their superiors on inter-institutional meetings. They | |
85 | +reported that there was significant communication noise in the internal | |
86 | +dialogues with their superiors, as well as between their superiors and the | |
87 | +development team. | |
88 | + | |
89 | +In the second phase of the project, these analysts became direct | |
90 | +representatives of the government and started to visit the university's | |
91 | +laboratory bi-weekly. One of the analysts believed that \textit{``at this | |
92 | +point, the communication started to change''}. The new dynamics \textbf{reduced | |
93 | +communication misunderstandings and unified both sides}, as reported by another | |
94 | +interviewee: \textit{``It was very positive. We liked to go there and to | |
95 | +interact with the team. I think it brought more unity, more integration into | |
96 | +the project''}. {73\%} of the interns considered positive the direct | |
97 | +participation of the MPOG staff, and {81\%} of them believed the presence of | |
98 | +government staff in sprint ceremonies was relevant for the project development. | |
99 | +For 76\% of the interns, writing the requirements together with the MPOG staff | |
100 | +was very important to \textbf{better meet expectations of both sides}. | |
101 | +According to one of them, \textit{``Joint planning and timely meetings were | |
102 | +very important for understanding the needs of MPOG''}. | |
103 | + | |
104 | +The closest dialogue between government and academia generated empathy, as | |
105 | +reported by one of the interviewees: \textit{``Knowing people in person makes a | |
106 | +big difference in the relationship because it causes empathy. You know who that | |
107 | +person is. He's not merly a name''}. Consequently, this empathy helped to | |
108 | +\textbf{synchronize the execution pace of activities}: \textit{``Visiting the | |
109 | +lab and meeting the developers encouraged us to validate resources faster and | |
110 | +give faster feedback to the team. In return, they also quickly answered us any | |
111 | +question''}. | |
112 | + | |
113 | +The implementation of a Continuous Delivery pipeline also reinforced the teams' | |
114 | +synchronization \cite{siqueira2018cd} . For 81\% of the interns and 75\% of | |
115 | +the IT professionals, deploying new versions of the SPB portal in production | |
116 | +was a motivator during the project. On the government side, this approach | |
117 | +helped to \textbf{overcome the government bias toward low productivity of | |
118 | +collaborative projects with academia}, as mentioned by themselves: | |
119 | +\textit{``Government staff has a bias that universities do not deliver | |
120 | +products. However, in this project, we made many deliveries with high quality. | |
121 | +Nowadays, I think if we had paid the same amount for a company, it would not | |
122 | +have done the amount of features we did with the technical quality we have''}. | |
123 | +Additionally, the deployment of each new version also \textbf{share a common | |
124 | +understanding of the process from one side to the other}, as mentioned by a | |
125 | +MPOG analyst: \textit{``We had only the strategic vision of the project. When | |
126 | +we needed to deal with technical issues, we had some difficulty planning the | |
127 | +four-month releases. However, in the last stages of the project I realized | |
128 | +that this was not a problem. The team was delivering and the results were | |
129 | +available in production. The team was qualified, the code had quality, and the | |
130 | +project was well executed. So in practice, our difficulty in interpreting the | |
131 | +technical details did not impact the release planning''}. | |
132 | + | |
133 | +\subsection{Organized development team into priority fronts, and for each one, hire at least one specialist from the IT market} | |
134 | + | |
135 | +The development team had four work areas divided by the main demands of the | |
136 | +project: User Experience, DevOps, Integration of Systems, and Social | |
137 | +Networking. For each segment, at least one professional in the IT market was | |
138 | +hired to raise the quality of the product. Senior developers have been selected | |
139 | +based on their vast experience in FLOSS systems and their knowledge on tools | |
140 | +used in the project. | |
141 | + | |
142 | +The presence of senior developers in the project contributed to | |
143 | +\textbf{conciliate the development processes of each institution and make | |
144 | +better technical decisions}, as quoted in one of the answers to the senior | |
145 | +developer's questionnaire: \textit{``I think my main contribution was to | |
146 | +balance the relations between the MPOG staff and the university team''}. {63\%} | |
147 | +of the IT professionals believed they have collaborated to conciliate the | |
148 | +management and development process between the two institutions and also {63\%} | |
149 | +of them helped MPOG staff express their requests more clearly. Government | |
150 | +analysts were also more open to suggestions from these developers: | |
151 | +\textit{``They are upstream developers of the systems that integrate the | |
152 | +platform. They conveyed trust, and then we trust in the developed code''}. | |
153 | +According to questionnaire responses, IT professionals largely agreed with the | |
154 | +project development process. For 63\%, this process has close similarity to | |
155 | +their previous experiences. In contrast, {62.5\%} of them did not understand | |
156 | +the MPOG's project management process and {50\%} believed this process could | |
157 | +affect their project productivity. | |
158 | + | |
159 | +The senior developers were also responsible for \textbf{improving the | |
160 | +management and technical knowledge} of the interns about practices from | |
161 | +industry and open source projects. {91\%} of the interns believed that working | |
162 | +with professionals was essential for learning, and, for all of them, working | |
163 | +with IT professionals was important during the project. {75\%} of the IT | |
164 | +professionals believed that ``Working in pairs with a senior'' and 63\% that | |
165 | +``Participate in joint review tasks'' were the tasks with the involvement of | |
166 | +them that most contributed to the evolution of the interns in the project. | |
167 | +{75\%} believed that the knowledge shared by them to one intern was widespread | |
168 | +among the others in the team. Government analysts also pointed this knowledge | |
169 | +sharing: \textit{``On the university side, we noticed a significant improvement | |
170 | +in the platform with the hiring of the systems original developers. They had a | |
171 | +guide on how to best develop each feature and were able to solve non-trivial | |
172 | +problems quickly''}. | |
173 | + | |
174 | +Organizing the development team and hiring of the IT professionals allowed each | |
175 | +team to \textbf{self-organize and gain more autonomy in the management of their | |
176 | +tasks}. There was a development coach to lead each team, and a ``meta-coach'' | |
177 | +supported all of them in their internal management activities. The coaches | |
178 | +(most advanced interns) were points of reference in the development process. | |
179 | +{89\%} of the interns said that the presence of the coach was essential to the | |
180 | +sprint's running, and for {88\%} of the of the IT professionals the coaches was | |
181 | +essential for their interaction with the development team. MPOG analysts saw | |
182 | +the coaches as facilitators their activities and communication with the | |
183 | +development team. They said \textit{``I interacted more with the project | |
184 | +coordinator (professor) and team coaches (interns)''}, \textit{``Usually, we | |
185 | +contact a coach to clarify some requirements or to understand some feature. The | |
186 | +coaches were more available than senior developers and, sometimes, they would | |
187 | +take our question to a senior developer''}. | |
188 | + | ... | ... |
... | ... | @@ -0,0 +1,110 @@ |
1 | +\section{Discussion} | |
2 | +\label{sec:discussion} | |
3 | + | |
4 | +Our results reveal a set of nine management practices successfully employed in | |
5 | +abovementioned case. We analyzed unsystematic decisions made during a 30-month | |
6 | +collaborative project and identified three macro-decisions that harmonized the | |
7 | +differences of the management processes of each organization. We evidenced from | |
8 | +data collection, and responses of the members of both sides to the | |
9 | +questionnaires and interviews, the benefits obtained through the adoption of | |
10 | +this empirical method. The Table \ref{practices-table} summarizes | |
11 | +macro-decisions, practices, and benefits. | |
12 | + | |
13 | +\vspace*{-.5cm} | |
14 | + | |
15 | +\begin{table}[h] | |
16 | +\centering | |
17 | +\def\arraystretch{1.5} | |
18 | +\setlength\tabcolsep{0.5cm} | |
19 | +\resizebox{\textwidth}{!}{% | |
20 | +\begin{tabular}{ m{4cm} m{9cm} m{9cm} } | |
21 | +\rowcolor[HTML]{b7d0b9} | |
22 | +\textbf{Decision} & \textbf{Practice Explanation} & \textbf{Benefits} \\ | |
23 | +\rowcolor[HTML]{fafafa} | |
24 | +\begin{flushleft} | |
25 | +\textbf{Use of the system under development to develop the system itself} | |
26 | +\end{flushleft} & | |
27 | +\begin{flushleft} | |
28 | +\begin{itemize} | |
29 | +\setlength{\itemsep}{2pt} | |
30 | +\item The features and tools of the platform under development supported the project management and communication activities. | |
31 | +\end{itemize} | |
32 | +\end{flushleft} & | |
33 | +\begin{flushleft} | |
34 | +\begin{itemize} | |
35 | +\setlength{\itemsep}{2pt} | |
36 | +\item Communicating with transparency and efficiency. | |
37 | +\item Easy monitoring of activities. | |
38 | +\item More interactions between developers and public servants. | |
39 | +\item Confidence in the developed code. | |
40 | +\item Organic documentation. | |
41 | +\end{itemize} | |
42 | +\end{flushleft} \\ | |
43 | +\rowcolor[HTML]{f2f2f2} | |
44 | +\begin{flushleft} | |
45 | +\textbf{Bring together government staff and development team} | |
46 | +\end{flushleft} & | |
47 | +\begin{flushleft} | |
48 | +\begin{itemize} | |
49 | +\setlength{\itemsep}{2pt} | |
50 | +\item Government staff, academic coordinators, senior developers and team coaches biweekly meet at the university lab, academia headquarters, for sprint planning and review. | |
51 | +\item Conduct on the platform technical discussions between government staff and the development team. | |
52 | +\item Involve government board directors only in strategic planning of the project. | |
53 | +\item Build a continuous delivery pipeline with stages involving both sides. | |
54 | +\end{itemize} \end{flushleft} & | |
55 | +\begin{flushleft} | |
56 | +\begin{itemize} | |
57 | +\setlength{\itemsep}{2pt} | |
58 | +\item Reducing communication misunderstanding. | |
59 | +\item Better meeting expectations of both sides. | |
60 | +\item Improvement of the decision-making process. | |
61 | +\item Overcoming the government bias regarding low productivity of collaborative projects with academia. | |
62 | +\item Synchronizing the execution pace of activities. | |
63 | +\item Sharing a common understanding of the process from one side to the other. | |
64 | +\end{itemize} \end{flushleft} \\ | |
65 | +\rowcolor[HTML]{fafafa} | |
66 | +\begin{flushleft} | |
67 | +\textbf{Organize the development team into priority fronts, and for each one, hire at least one specialist from the IT market} | |
68 | +\end{flushleft} & | |
69 | +\begin{itemize} | |
70 | +\setlength{\itemsep}{2pt} | |
71 | +\item The coordinators separated the development team into priority work areas considering the main demands of the project. | |
72 | +\item IT market professionals with recognized experience on each front were hired to work in person or remotely. | |
73 | +\item Define among the interns the leadership roles: a coach for each front, and a meta-coach of the entire development team. | |
74 | +\item Each team has certain self-organization, being guided by one intern-coach and at least one senior developer. | |
75 | +\end{itemize} & | |
76 | +\begin{itemize} | |
77 | +\setlength{\itemsep}{2pt} | |
78 | +\item Conciliating the development processes of each institution, taking better technical decisions. | |
79 | +\item Improving the management and technical knowledge. | |
80 | +\item Self-organizing and gaining autonomy in the management of their tasks. | |
81 | +\end{itemize}\\ | |
82 | +\end{tabular}% | |
83 | +} | |
84 | +\caption{Empirical SPB management decisions and its benefits.} | |
85 | +\label{practices-table} | |
86 | +\end{table} | |
87 | + | |
88 | +\vspace*{-1cm} | |
89 | + | |
90 | +The results of this current work corroborate the lessons learned in our | |
91 | +previous work on studying the SPB project case \cite{meirelles2017spb}. | |
92 | +Evidence from the data collected, responses to questionnaires, and interviews | |
93 | +reinforce what has been reported by the academic coordination of the project, | |
94 | +adding the point of views of government and other roles involved on the | |
95 | +academic side. In short, the government staff took time to understand how | |
96 | +collaboration works and to realize that the project was not a client-executor | |
97 | +relationship and both organizations were at the same hierarchical level in the | |
98 | +work plan. | |
99 | + | |
100 | +The decisions, practices, and benefits presented in the Table | |
101 | +\ref{practices-table} should be evaluated and used in contexts with more | |
102 | +substantial plurality and diversity of government stakeholders. This study has | |
103 | +a few obvious limitations. Firstly, we point out the lack of communication | |
104 | +records and low traceability of the management data referring to the first | |
105 | +phase of the project. Secondly, we consider a drawback the hiatus between the | |
106 | +completion of the project and the conduction of interviews and questionnaires, | |
107 | +since we rely on the memory of the interviewees to rescue the events. Lastly, | |
108 | +the current situation of the respondents, such as their current working midset, | |
109 | +may also alter their perception on the on the topics addressed in the | |
110 | +questionnaire and consequently their responses. | ... | ... |
... | ... | @@ -0,0 +1,41 @@ |
1 | +\section{Conclusion} | |
2 | +\label{sec:conclusion} | |
3 | + | |
4 | +Organizational culture is built and reinforced every life year of a large-size | |
5 | +organization. These cultural values reflect on the internal management | |
6 | +processes and the norms of communication among its members. In the context of | |
7 | +software development projects, each institution adopts development methods that | |
8 | +best meet its managerial procedures and organizational routines. When two | |
9 | +large-size organizations decide to develop a solution collaboratively, the | |
10 | +development methods and workflow of one may conflict with the interests of the | |
11 | +other. In a case of government-academia collaboration, conciliating their | |
12 | +different management processes is crucial, since the poor and unadaptable | |
13 | +management could lead the project to fail, resulting in the waste of | |
14 | +population-funded resources. | |
15 | + | |
16 | +In this study, we investigated the management method employed at the SPB portal | |
17 | +project, a partnership between the Brazilian government and universities. As a | |
18 | +result, we identified a set of FLOSS and agile best practices, empirically | |
19 | +employed by the development leaders, which improved the workflow and | |
20 | +relationship between the organizations involved. | |
21 | + | |
22 | +Regarding our first research question \textit{``How to introduce FLOSS and | |
23 | +agile best practices into government-academia collaboration projects?''}, we | |
24 | +examined the SPB project and identified three macro-decisions taken by the | |
25 | +academic coordinators that drove them to intuitively and unsystematically adopt | |
26 | +nine FLOSS and agile best practices in the development process. | |
27 | + | |
28 | +The interviewed responses allowed us to understand how FLOSS and agile | |
29 | +practices have benefited the people and project management. Based on that, we | |
30 | +answered our second research question \textit{``What practices favor effective | |
31 | +team management in government-academia collaborative projects?''}, making to | |
32 | +explicit 14 benefits obtained from the use of the nine best practices, all | |
33 | +presented in Table \ref{practices-table}. | |
34 | + | |
35 | +Finally, we collected a significant amount of data and testimonials related to | |
36 | +the teaching of software engineering. We consider the studied project an | |
37 | +educational case, an example of teaching FLOSS and agile techniques applied to | |
38 | +real-world software development. As future work, we intend to analyze this | |
39 | +collected information to propose improvements in education methodologies of | |
40 | +software engineering undergraduate students as well. | |
41 | + | ... | ... |
... | ... | @@ -0,0 +1,49 @@ |
1 | +\section{Layered Approach} | |
2 | +\label{sec:background} | |
3 | + | |
4 | +Combine many teams with different processes in the same project might be | |
5 | +challenging. To address this problem, we got inspiration from Operating Systems | |
6 | +(OS) concepts and extended the notion of layered approach design | |
7 | +\cite{layeredApproach}. This technique breaks the OS into distinct layers with | |
8 | +different proposes. The inner layer represents the hardware, while the external | |
9 | +layer represents the user interface. Layered approach demands a careful | |
10 | +definition of each layer responsibility and how they communicate. After the | |
11 | +layers and communication definition, it is simple to change a single layer | |
12 | +without affecting other layers. This approach presents two drawbacks: (1) it | |
13 | +creates an overhead of communication from the upper layer to the lower layer, | |
14 | +and (2) it is a hard to define the correct interface between layers. | |
15 | + | |
16 | +We extended the layered approach for handling the interaction with development | |
17 | +teams and the Brazilian government. We realized that multiple teams interacting | |
18 | +with the government have different expectations about the project. Furthermore, | |
19 | +we noticed that government can transfer political pressures to the development | |
20 | +team and sometimes they try to impose their processes to the project. For | |
21 | +handling all the different processes and keep the multiple expectations under | |
22 | +control, we implemented the layered approach for project management. | |
23 | + | |
24 | +\begin{figure}[!h] | |
25 | + \centering | |
26 | + \includegraphics[width=.30\textwidth]{project_layers} | |
27 | + \caption{Layered Approach for managing multiple processes} | |
28 | + \label{fig:layered_processes} | |
29 | +\end{figure} | |
30 | + | |
31 | +Figure \ref{fig:layered_processes} illustrates our set of layers. The inner | |
32 | +layer comprises the development team composed of agile teams. Next, is a layer | |
33 | +that includes the coordinators responsible for handling the bureaucratic issues | |
34 | +coming from the government to the development team. Subsequent, the analyst | |
35 | +layer covers the government employees with the understanding about the | |
36 | +requirements, but they working guided by the traditional methodology. Finally, | |
37 | +there is the directory layer responsible for the political issues. | |
38 | + | |
39 | +The communication between layers is an important problem in the Layered | |
40 | +approach, which still an important issue to be addressed in our propose. For | |
41 | +solving the problem, we designed a common channel of communication that passes | |
42 | +through all layers. For keeping the layer separation, some members of each | |
43 | +layer worked as a filter. This was possible because we created a proper | |
44 | +infrastructure based on transparency. We used the following tools to implement | |
45 | +the communication between layers: issue tracker (from Gitlab), mailing list, | |
46 | +IRC, and wiki. The coordination layer has to filter the interaction between the | |
47 | +government and the development team. | |
48 | + | |
49 | + | ... | ... |
... | ... | @@ -0,0 +1,1208 @@ |
1 | +% LLNCS DOCUMENT CLASS -- version 2.18 (27-Sep-2013) | |
2 | +% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science | |
3 | +% | |
4 | +%% | |
5 | +%% \CharacterTable | |
6 | +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z | |
7 | +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z | |
8 | +%% Digits \0\1\2\3\4\5\6\7\8\9 | |
9 | +%% Exclamation \! Double quote \" Hash (number) \# | |
10 | +%% Dollar \$ Percent \% Ampersand \& | |
11 | +%% Acute accent \' Left paren \( Right paren \) | |
12 | +%% Asterisk \* Plus \+ Comma \, | |
13 | +%% Minus \- Point \. Solidus \/ | |
14 | +%% Colon \: Semicolon \; Less than \< | |
15 | +%% Equals \= Greater than \> Question mark \? | |
16 | +%% Commercial at \@ Left bracket \[ Backslash \\ | |
17 | +%% Right bracket \] Circumflex \^ Underscore \_ | |
18 | +%% Grave accent \` Left brace \{ Vertical bar \| | |
19 | +%% Right brace \} Tilde \~} | |
20 | +%% | |
21 | +\NeedsTeXFormat{LaTeX2e}[1995/12/01] | |
22 | +\ProvidesClass{llncs}[2013/09/27 v2.18 | |
23 | +^^J LaTeX document class for Lecture Notes in Computer Science] | |
24 | +% Options | |
25 | +\let\if@envcntreset\iffalse | |
26 | +\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} | |
27 | +\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} | |
28 | +\DeclareOption{oribibl}{\let\oribibl=Y} | |
29 | +\let\if@custvec\iftrue | |
30 | +\DeclareOption{orivec}{\let\if@custvec\iffalse} | |
31 | +\let\if@envcntsame\iffalse | |
32 | +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} | |
33 | +\let\if@envcntsect\iffalse | |
34 | +\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} | |
35 | +\let\if@runhead\iffalse | |
36 | +\DeclareOption{runningheads}{\let\if@runhead\iftrue} | |
37 | + | |
38 | +\let\if@openright\iftrue | |
39 | +\let\if@openbib\iffalse | |
40 | +\DeclareOption{openbib}{\let\if@openbib\iftrue} | |
41 | + | |
42 | +% languages | |
43 | +\let\switcht@@therlang\relax | |
44 | +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}} | |
45 | +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}} | |
46 | + | |
47 | +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} | |
48 | + | |
49 | +\ProcessOptions | |
50 | + | |
51 | +\LoadClass[twoside]{article} | |
52 | +\RequirePackage{multicol} % needed for the list of participants, index | |
53 | +\RequirePackage{aliascnt} | |
54 | + | |
55 | +\setlength{\textwidth}{12.2cm} | |
56 | +\setlength{\textheight}{19.3cm} | |
57 | +\renewcommand\@pnumwidth{2em} | |
58 | +\renewcommand\@tocrmarg{3.5em} | |
59 | +% | |
60 | +\def\@dottedtocline#1#2#3#4#5{% | |
61 | + \ifnum #1>\c@tocdepth \else | |
62 | + \vskip \z@ \@plus.2\p@ | |
63 | + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm | |
64 | + \parfillskip -\rightskip \pretolerance=10000 | |
65 | + \parindent #2\relax\@afterindenttrue | |
66 | + \interlinepenalty\@M | |
67 | + \leavevmode | |
68 | + \@tempdima #3\relax | |
69 | + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip | |
70 | + {#4}\nobreak | |
71 | + \leaders\hbox{$\m@th | |
72 | + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep | |
73 | + mu$}\hfill | |
74 | + \nobreak | |
75 | + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% | |
76 | + \par}% | |
77 | + \fi} | |
78 | +% | |
79 | +\def\switcht@albion{% | |
80 | +\def\abstractname{Abstract.} | |
81 | +\def\ackname{Acknowledgement.} | |
82 | +\def\andname{and} | |
83 | +\def\lastandname{\unskip, and} | |
84 | +\def\appendixname{Appendix} | |
85 | +\def\chaptername{Chapter} | |
86 | +\def\claimname{Claim} | |
87 | +\def\conjecturename{Conjecture} | |
88 | +\def\contentsname{Table of Contents} | |
89 | +\def\corollaryname{Corollary} | |
90 | +\def\definitionname{Definition} | |
91 | +\def\examplename{Example} | |
92 | +\def\exercisename{Exercise} | |
93 | +\def\figurename{Fig.} | |
94 | +\def\keywordname{{\bf Keywords:}} | |
95 | +\def\indexname{Index} | |
96 | +\def\lemmaname{Lemma} | |
97 | +\def\contriblistname{List of Contributors} | |
98 | +\def\listfigurename{List of Figures} | |
99 | +\def\listtablename{List of Tables} | |
100 | +\def\mailname{{\it Correspondence to\/}:} | |
101 | +\def\noteaddname{Note added in proof} | |
102 | +\def\notename{Note} | |
103 | +\def\partname{Part} | |
104 | +\def\problemname{Problem} | |
105 | +\def\proofname{Proof} | |
106 | +\def\propertyname{Property} | |
107 | +\def\propositionname{Proposition} | |
108 | +\def\questionname{Question} | |
109 | +\def\remarkname{Remark} | |
110 | +\def\seename{see} | |
111 | +\def\solutionname{Solution} | |
112 | +\def\subclassname{{\it Subject Classifications\/}:} | |
113 | +\def\tablename{Table} | |
114 | +\def\theoremname{Theorem}} | |
115 | +\switcht@albion | |
116 | +% Names of theorem like environments are already defined | |
117 | +% but must be translated if another language is chosen | |
118 | +% | |
119 | +% French section | |
120 | +\def\switcht@francais{%\typeout{On parle francais.}% | |
121 | + \def\abstractname{R\'esum\'e.}% | |
122 | + \def\ackname{Remerciements.}% | |
123 | + \def\andname{et}% | |
124 | + \def\lastandname{ et}% | |
125 | + \def\appendixname{Appendice} | |
126 | + \def\chaptername{Chapitre}% | |
127 | + \def\claimname{Pr\'etention}% | |
128 | + \def\conjecturename{Hypoth\`ese}% | |
129 | + \def\contentsname{Table des mati\`eres}% | |
130 | + \def\corollaryname{Corollaire}% | |
131 | + \def\definitionname{D\'efinition}% | |
132 | + \def\examplename{Exemple}% | |
133 | + \def\exercisename{Exercice}% | |
134 | + \def\figurename{Fig.}% | |
135 | + \def\keywordname{{\bf Mots-cl\'e:}} | |
136 | + \def\indexname{Index} | |
137 | + \def\lemmaname{Lemme}% | |
138 | + \def\contriblistname{Liste des contributeurs} | |
139 | + \def\listfigurename{Liste des figures}% | |
140 | + \def\listtablename{Liste des tables}% | |
141 | + \def\mailname{{\it Correspondence to\/}:} | |
142 | + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% | |
143 | + \def\notename{Remarque}% | |
144 | + \def\partname{Partie}% | |
145 | + \def\problemname{Probl\`eme}% | |
146 | + \def\proofname{Preuve}% | |
147 | + \def\propertyname{Caract\'eristique}% | |
148 | +%\def\propositionname{Proposition}% | |
149 | + \def\questionname{Question}% | |
150 | + \def\remarkname{Remarque}% | |
151 | + \def\seename{voir} | |
152 | + \def\solutionname{Solution}% | |
153 | + \def\subclassname{{\it Subject Classifications\/}:} | |
154 | + \def\tablename{Tableau}% | |
155 | + \def\theoremname{Th\'eor\`eme}% | |
156 | +} | |
157 | +% | |
158 | +% German section | |
159 | +\def\switcht@deutsch{%\typeout{Man spricht deutsch.}% | |
160 | + \def\abstractname{Zusammenfassung.}% | |
161 | + \def\ackname{Danksagung.}% | |
162 | + \def\andname{und}% | |
163 | + \def\lastandname{ und}% | |
164 | + \def\appendixname{Anhang}% | |
165 | + \def\chaptername{Kapitel}% | |
166 | + \def\claimname{Behauptung}% | |
167 | + \def\conjecturename{Hypothese}% | |
168 | + \def\contentsname{Inhaltsverzeichnis}% | |
169 | + \def\corollaryname{Korollar}% | |
170 | +%\def\definitionname{Definition}% | |
171 | + \def\examplename{Beispiel}% | |
172 | + \def\exercisename{\"Ubung}% | |
173 | + \def\figurename{Abb.}% | |
174 | + \def\keywordname{{\bf Schl\"usselw\"orter:}} | |
175 | + \def\indexname{Index} | |
176 | +%\def\lemmaname{Lemma}% | |
177 | + \def\contriblistname{Mitarbeiter} | |
178 | + \def\listfigurename{Abbildungsverzeichnis}% | |
179 | + \def\listtablename{Tabellenverzeichnis}% | |
180 | + \def\mailname{{\it Correspondence to\/}:} | |
181 | + \def\noteaddname{Nachtrag}% | |
182 | + \def\notename{Anmerkung}% | |
183 | + \def\partname{Teil}% | |
184 | +%\def\problemname{Problem}% | |
185 | + \def\proofname{Beweis}% | |
186 | + \def\propertyname{Eigenschaft}% | |
187 | +%\def\propositionname{Proposition}% | |
188 | + \def\questionname{Frage}% | |
189 | + \def\remarkname{Anmerkung}% | |
190 | + \def\seename{siehe} | |
191 | + \def\solutionname{L\"osung}% | |
192 | + \def\subclassname{{\it Subject Classifications\/}:} | |
193 | + \def\tablename{Tabelle}% | |
194 | +%\def\theoremname{Theorem}% | |
195 | +} | |
196 | + | |
197 | +% Ragged bottom for the actual page | |
198 | +\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil | |
199 | +\global\let\@textbottom\relax}} | |
200 | + | |
201 | +\renewcommand\small{% | |
202 | + \@setfontsize\small\@ixpt{11}% | |
203 | + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ | |
204 | + \abovedisplayshortskip \z@ \@plus2\p@ | |
205 | + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ | |
206 | + \def\@listi{\leftmargin\leftmargini | |
207 | + \parsep 0\p@ \@plus1\p@ \@minus\p@ | |
208 | + \topsep 8\p@ \@plus2\p@ \@minus4\p@ | |
209 | + \itemsep0\p@}% | |
210 | + \belowdisplayskip \abovedisplayskip | |
211 | +} | |
212 | + | |
213 | +\frenchspacing | |
214 | +\widowpenalty=10000 | |
215 | +\clubpenalty=10000 | |
216 | + | |
217 | +\setlength\oddsidemargin {63\p@} | |
218 | +\setlength\evensidemargin {63\p@} | |
219 | +\setlength\marginparwidth {90\p@} | |
220 | + | |
221 | +\setlength\headsep {16\p@} | |
222 | + | |
223 | +\setlength\footnotesep{7.7\p@} | |
224 | +\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} | |
225 | +\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} | |
226 | + | |
227 | +\setcounter{secnumdepth}{2} | |
228 | + | |
229 | +\newcounter {chapter} | |
230 | +\renewcommand\thechapter {\@arabic\c@chapter} | |
231 | + | |
232 | +\newif\if@mainmatter \@mainmattertrue | |
233 | +\newcommand\frontmatter{\cleardoublepage | |
234 | + \@mainmatterfalse\pagenumbering{Roman}} | |
235 | +\newcommand\mainmatter{\cleardoublepage | |
236 | + \@mainmattertrue\pagenumbering{arabic}} | |
237 | +\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi | |
238 | + \@mainmatterfalse} | |
239 | + | |
240 | +\renewcommand\part{\cleardoublepage | |
241 | + \thispagestyle{empty}% | |
242 | + \if@twocolumn | |
243 | + \onecolumn | |
244 | + \@tempswatrue | |
245 | + \else | |
246 | + \@tempswafalse | |
247 | + \fi | |
248 | + \null\vfil | |
249 | + \secdef\@part\@spart} | |
250 | + | |
251 | +\def\@part[#1]#2{% | |
252 | + \ifnum \c@secnumdepth >-2\relax | |
253 | + \refstepcounter{part}% | |
254 | + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% | |
255 | + \else | |
256 | + \addcontentsline{toc}{part}{#1}% | |
257 | + \fi | |
258 | + \markboth{}{}% | |
259 | + {\centering | |
260 | + \interlinepenalty \@M | |
261 | + \normalfont | |
262 | + \ifnum \c@secnumdepth >-2\relax | |
263 | + \huge\bfseries \partname~\thepart | |
264 | + \par | |
265 | + \vskip 20\p@ | |
266 | + \fi | |
267 | + \Huge \bfseries #2\par}% | |
268 | + \@endpart} | |
269 | +\def\@spart#1{% | |
270 | + {\centering | |
271 | + \interlinepenalty \@M | |
272 | + \normalfont | |
273 | + \Huge \bfseries #1\par}% | |
274 | + \@endpart} | |
275 | +\def\@endpart{\vfil\newpage | |
276 | + \if@twoside | |
277 | + \null | |
278 | + \thispagestyle{empty}% | |
279 | + \newpage | |
280 | + \fi | |
281 | + \if@tempswa | |
282 | + \twocolumn | |
283 | + \fi} | |
284 | + | |
285 | +\newcommand\chapter{\clearpage | |
286 | + \thispagestyle{empty}% | |
287 | + \global\@topnum\z@ | |
288 | + \@afterindentfalse | |
289 | + \secdef\@chapter\@schapter} | |
290 | +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne | |
291 | + \if@mainmatter | |
292 | + \refstepcounter{chapter}% | |
293 | + \typeout{\@chapapp\space\thechapter.}% | |
294 | + \addcontentsline{toc}{chapter}% | |
295 | + {\protect\numberline{\thechapter}#1}% | |
296 | + \else | |
297 | + \addcontentsline{toc}{chapter}{#1}% | |
298 | + \fi | |
299 | + \else | |
300 | + \addcontentsline{toc}{chapter}{#1}% | |
301 | + \fi | |
302 | + \chaptermark{#1}% | |
303 | + \addtocontents{lof}{\protect\addvspace{10\p@}}% | |
304 | + \addtocontents{lot}{\protect\addvspace{10\p@}}% | |
305 | + \if@twocolumn | |
306 | + \@topnewpage[\@makechapterhead{#2}]% | |
307 | + \else | |
308 | + \@makechapterhead{#2}% | |
309 | + \@afterheading | |
310 | + \fi} | |
311 | +\def\@makechapterhead#1{% | |
312 | +% \vspace*{50\p@}% | |
313 | + {\centering | |
314 | + \ifnum \c@secnumdepth >\m@ne | |
315 | + \if@mainmatter | |
316 | + \large\bfseries \@chapapp{} \thechapter | |
317 | + \par\nobreak | |
318 | + \vskip 20\p@ | |
319 | + \fi | |
320 | + \fi | |
321 | + \interlinepenalty\@M | |
322 | + \Large \bfseries #1\par\nobreak | |
323 | + \vskip 40\p@ | |
324 | + }} | |
325 | +\def\@schapter#1{\if@twocolumn | |
326 | + \@topnewpage[\@makeschapterhead{#1}]% | |
327 | + \else | |
328 | + \@makeschapterhead{#1}% | |
329 | + \@afterheading | |
330 | + \fi} | |
331 | +\def\@makeschapterhead#1{% | |
332 | +% \vspace*{50\p@}% | |
333 | + {\centering | |
334 | + \normalfont | |
335 | + \interlinepenalty\@M | |
336 | + \Large \bfseries #1\par\nobreak | |
337 | + \vskip 40\p@ | |
338 | + }} | |
339 | + | |
340 | +\renewcommand\section{\@startsection{section}{1}{\z@}% | |
341 | + {-18\p@ \@plus -4\p@ \@minus -4\p@}% | |
342 | + {12\p@ \@plus 4\p@ \@minus 4\p@}% | |
343 | + {\normalfont\large\bfseries\boldmath | |
344 | + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} | |
345 | +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% | |
346 | + {-18\p@ \@plus -4\p@ \@minus -4\p@}% | |
347 | + {8\p@ \@plus 4\p@ \@minus 4\p@}% | |
348 | + {\normalfont\normalsize\bfseries\boldmath | |
349 | + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} | |
350 | +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% | |
351 | + {-18\p@ \@plus -4\p@ \@minus -4\p@}% | |
352 | + {-0.5em \@plus -0.22em \@minus -0.1em}% | |
353 | + {\normalfont\normalsize\bfseries\boldmath}} | |
354 | +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% | |
355 | + {-12\p@ \@plus -4\p@ \@minus -4\p@}% | |
356 | + {-0.5em \@plus -0.22em \@minus -0.1em}% | |
357 | + {\normalfont\normalsize\itshape}} | |
358 | +\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use | |
359 | + \string\subparagraph\space with this class}\vskip0.5cm | |
360 | +You should not use \verb|\subparagraph| with this class.\vskip0.5cm} | |
361 | + | |
362 | +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} | |
363 | +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} | |
364 | +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} | |
365 | +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} | |
366 | +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} | |
367 | +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} | |
368 | +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} | |
369 | +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} | |
370 | +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} | |
371 | +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} | |
372 | +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} | |
373 | + | |
374 | +\let\footnotesize\small | |
375 | + | |
376 | +\if@custvec | |
377 | +\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} | |
378 | +{\mbox{\boldmath$\textstyle#1$}} | |
379 | +{\mbox{\boldmath$\scriptstyle#1$}} | |
380 | +{\mbox{\boldmath$\scriptscriptstyle#1$}}} | |
381 | +\fi | |
382 | + | |
383 | +\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} | |
384 | +\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil | |
385 | +\penalty50\hskip1em\null\nobreak\hfil\squareforqed | |
386 | +\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} | |
387 | + | |
388 | +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip | |
389 | +\halign{\hfil | |
390 | +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} | |
391 | +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets | |
392 | +\cr\to\cr}}} | |
393 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets | |
394 | +\cr\to\cr}}} | |
395 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | |
396 | +\gets\cr\to\cr}}}}} | |
397 | +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil | |
398 | +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} | |
399 | +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr | |
400 | +\noalign{\vskip1.2pt}=\cr}}} | |
401 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr | |
402 | +\noalign{\vskip1pt}=\cr}}} | |
403 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | |
404 | +<\cr | |
405 | +\noalign{\vskip0.9pt}=\cr}}}}} | |
406 | +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil | |
407 | +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} | |
408 | +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr | |
409 | +\noalign{\vskip1.2pt}=\cr}}} | |
410 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr | |
411 | +\noalign{\vskip1pt}=\cr}}} | |
412 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | |
413 | +>\cr | |
414 | +\noalign{\vskip0.9pt}=\cr}}}}} | |
415 | +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip | |
416 | +\halign{\hfil | |
417 | +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} | |
418 | +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr | |
419 | +>\cr\noalign{\vskip-1pt}<\cr}}} | |
420 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr | |
421 | +>\cr\noalign{\vskip-0.8pt}<\cr}}} | |
422 | +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | |
423 | +>\cr\noalign{\vskip-0.3pt}<\cr}}}}} | |
424 | +\def\bbbr{{\rm I\!R}} %reelle Zahlen | |
425 | +\def\bbbm{{\rm I\!M}} | |
426 | +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen | |
427 | +\def\bbbf{{\rm I\!F}} | |
428 | +\def\bbbh{{\rm I\!H}} | |
429 | +\def\bbbk{{\rm I\!K}} | |
430 | +\def\bbbp{{\rm I\!P}} | |
431 | +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} | |
432 | +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} | |
433 | +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox | |
434 | +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | |
435 | +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox | |
436 | +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | |
437 | +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox | |
438 | +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | |
439 | +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox | |
440 | +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} | |
441 | +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm | |
442 | +Q$}\hbox{\raise | |
443 | +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} | |
444 | +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise | |
445 | +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} | |
446 | +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise | |
447 | +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} | |
448 | +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise | |
449 | +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} | |
450 | +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm | |
451 | +T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | |
452 | +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox | |
453 | +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | |
454 | +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox | |
455 | +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | |
456 | +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox | |
457 | +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} | |
458 | +\def\bbbs{{\mathchoice | |
459 | +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox | |
460 | +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox | |
461 | +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} | |
462 | +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox | |
463 | +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox | |
464 | +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} | |
465 | +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox | |
466 | +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox | |
467 | +to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} | |
468 | +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox | |
469 | +to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox | |
470 | +to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} | |
471 | +\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} | |
472 | +{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} | |
473 | +{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} | |
474 | +{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} | |
475 | + | |
476 | +\let\ts\, | |
477 | + | |
478 | +\setlength\leftmargini {17\p@} | |
479 | +\setlength\leftmargin {\leftmargini} | |
480 | +\setlength\leftmarginii {\leftmargini} | |
481 | +\setlength\leftmarginiii {\leftmargini} | |
482 | +\setlength\leftmarginiv {\leftmargini} | |
483 | +\setlength \labelsep {.5em} | |
484 | +\setlength \labelwidth{\leftmargini} | |
485 | +\addtolength\labelwidth{-\labelsep} | |
486 | + | |
487 | +\def\@listI{\leftmargin\leftmargini | |
488 | + \parsep 0\p@ \@plus1\p@ \@minus\p@ | |
489 | + \topsep 8\p@ \@plus2\p@ \@minus4\p@ | |
490 | + \itemsep0\p@} | |
491 | +\let\@listi\@listI | |
492 | +\@listi | |
493 | +\def\@listii {\leftmargin\leftmarginii | |
494 | + \labelwidth\leftmarginii | |
495 | + \advance\labelwidth-\labelsep | |
496 | + \topsep 0\p@ \@plus2\p@ \@minus\p@} | |
497 | +\def\@listiii{\leftmargin\leftmarginiii | |
498 | + \labelwidth\leftmarginiii | |
499 | + \advance\labelwidth-\labelsep | |
500 | + \topsep 0\p@ \@plus\p@\@minus\p@ | |
501 | + \parsep \z@ | |
502 | + \partopsep \p@ \@plus\z@ \@minus\p@} | |
503 | + | |
504 | +\renewcommand\labelitemi{\normalfont\bfseries --} | |
505 | +\renewcommand\labelitemii{$\m@th\bullet$} | |
506 | + | |
507 | +\setlength\arraycolsep{1.4\p@} | |
508 | +\setlength\tabcolsep{1.4\p@} | |
509 | + | |
510 | +\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% | |
511 | + {{\contentsname}}} | |
512 | + \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} | |
513 | + \def\lastand{\ifnum\value{auco}=2\relax | |
514 | + \unskip{} \andname\ | |
515 | + \else | |
516 | + \unskip \lastandname\ | |
517 | + \fi}% | |
518 | + \def\and{\stepcounter{@auth}\relax | |
519 | + \ifnum\value{@auth}=\value{auco}% | |
520 | + \lastand | |
521 | + \else | |
522 | + \unskip, | |
523 | + \fi}% | |
524 | + \@starttoc{toc}\if@restonecol\twocolumn\fi} | |
525 | + | |
526 | +\def\l@part#1#2{\addpenalty{\@secpenalty}% | |
527 | + \addvspace{2em plus\p@}% % space above part line | |
528 | + \begingroup | |
529 | + \parindent \z@ | |
530 | + \rightskip \z@ plus 5em | |
531 | + \hrule\vskip5pt | |
532 | + \large % same size as for a contribution heading | |
533 | + \bfseries\boldmath % set line in boldface | |
534 | + \leavevmode % TeX command to enter horizontal mode. | |
535 | + #1\par | |
536 | + \vskip5pt | |
537 | + \hrule | |
538 | + \vskip1pt | |
539 | + \nobreak % Never break after part entry | |
540 | + \endgroup} | |
541 | + | |
542 | +\def\@dotsep{2} | |
543 | + | |
544 | +\let\phantomsection=\relax | |
545 | + | |
546 | +\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else | |
547 | +{}\fi} | |
548 | + | |
549 | +\def\addnumcontentsmark#1#2#3{% | |
550 | +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline | |
551 | + {\thechapter}#3}{\thepage}\hyperhrefextend}}% | |
552 | +\def\addcontentsmark#1#2#3{% | |
553 | +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}% | |
554 | +\def\addcontentsmarkwop#1#2#3{% | |
555 | +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}% | |
556 | + | |
557 | +\def\@adcmk[#1]{\ifcase #1 \or | |
558 | +\def\@gtempa{\addnumcontentsmark}% | |
559 | + \or \def\@gtempa{\addcontentsmark}% | |
560 | + \or \def\@gtempa{\addcontentsmarkwop}% | |
561 | + \fi\@gtempa{toc}{chapter}% | |
562 | +} | |
563 | +\def\addtocmark{% | |
564 | +\phantomsection | |
565 | +\@ifnextchar[{\@adcmk}{\@adcmk[3]}% | |
566 | +} | |
567 | + | |
568 | +\def\l@chapter#1#2{\addpenalty{-\@highpenalty} | |
569 | + \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup | |
570 | + \parindent \z@ \rightskip \@tocrmarg | |
571 | + \advance\rightskip by 0pt plus 2cm | |
572 | + \parfillskip -\rightskip \pretolerance=10000 | |
573 | + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip | |
574 | + {\large\bfseries\boldmath#1}\ifx0#2\hfil\null | |
575 | + \else | |
576 | + \nobreak | |
577 | + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern | |
578 | + \@dotsep mu$}\hfill | |
579 | + \nobreak\hbox to\@pnumwidth{\hss #2}% | |
580 | + \fi\par | |
581 | + \penalty\@highpenalty \endgroup} | |
582 | + | |
583 | +\def\l@title#1#2{\addpenalty{-\@highpenalty} | |
584 | + \addvspace{8pt plus 1pt} | |
585 | + \@tempdima \z@ | |
586 | + \begingroup | |
587 | + \parindent \z@ \rightskip \@tocrmarg | |
588 | + \advance\rightskip by 0pt plus 2cm | |
589 | + \parfillskip -\rightskip \pretolerance=10000 | |
590 | + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip | |
591 | + #1\nobreak | |
592 | + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern | |
593 | + \@dotsep mu$}\hfill | |
594 | + \nobreak\hbox to\@pnumwidth{\hss #2}\par | |
595 | + \penalty\@highpenalty \endgroup} | |
596 | + | |
597 | +\def\l@author#1#2{\addpenalty{\@highpenalty} | |
598 | + \@tempdima=15\p@ %\z@ | |
599 | + \begingroup | |
600 | + \parindent \z@ \rightskip \@tocrmarg | |
601 | + \advance\rightskip by 0pt plus 2cm | |
602 | + \pretolerance=10000 | |
603 | + \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip | |
604 | + \textit{#1}\par | |
605 | + \penalty\@highpenalty \endgroup} | |
606 | + | |
607 | +\setcounter{tocdepth}{0} | |
608 | +\newdimen\tocchpnum | |
609 | +\newdimen\tocsecnum | |
610 | +\newdimen\tocsectotal | |
611 | +\newdimen\tocsubsecnum | |
612 | +\newdimen\tocsubsectotal | |
613 | +\newdimen\tocsubsubsecnum | |
614 | +\newdimen\tocsubsubsectotal | |
615 | +\newdimen\tocparanum | |
616 | +\newdimen\tocparatotal | |
617 | +\newdimen\tocsubparanum | |
618 | +\tocchpnum=\z@ % no chapter numbers | |
619 | +\tocsecnum=15\p@ % section 88. plus 2.222pt | |
620 | +\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt | |
621 | +\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt | |
622 | +\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt | |
623 | +\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt | |
624 | +\def\calctocindent{% | |
625 | +\tocsectotal=\tocchpnum | |
626 | +\advance\tocsectotal by\tocsecnum | |
627 | +\tocsubsectotal=\tocsectotal | |
628 | +\advance\tocsubsectotal by\tocsubsecnum | |
629 | +\tocsubsubsectotal=\tocsubsectotal | |
630 | +\advance\tocsubsubsectotal by\tocsubsubsecnum | |
631 | +\tocparatotal=\tocsubsubsectotal | |
632 | +\advance\tocparatotal by\tocparanum} | |
633 | +\calctocindent | |
634 | + | |
635 | +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} | |
636 | +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} | |
637 | +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} | |
638 | +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} | |
639 | +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} | |
640 | + | |
641 | +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn | |
642 | + \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} | |
643 | + \@starttoc{lof}\if@restonecol\twocolumn\fi} | |
644 | +\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} | |
645 | + | |
646 | +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn | |
647 | + \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} | |
648 | + \@starttoc{lot}\if@restonecol\twocolumn\fi} | |
649 | +\let\l@table\l@figure | |
650 | + | |
651 | +\renewcommand\listoffigures{% | |
652 | + \section*{\listfigurename | |
653 | + \@mkboth{\listfigurename}{\listfigurename}}% | |
654 | + \@starttoc{lof}% | |
655 | + } | |
656 | + | |
657 | +\renewcommand\listoftables{% | |
658 | + \section*{\listtablename | |
659 | + \@mkboth{\listtablename}{\listtablename}}% | |
660 | + \@starttoc{lot}% | |
661 | + } | |
662 | + | |
663 | +\ifx\oribibl\undefined | |
664 | +\ifx\citeauthoryear\undefined | |
665 | +\renewenvironment{thebibliography}[1] | |
666 | + {\section*{\refname} | |
667 | + \def\@biblabel##1{##1.} | |
668 | + \small | |
669 | + \list{\@biblabel{\@arabic\c@enumiv}}% | |
670 | + {\settowidth\labelwidth{\@biblabel{#1}}% | |
671 | + \leftmargin\labelwidth | |
672 | + \advance\leftmargin\labelsep | |
673 | + \if@openbib | |
674 | + \advance\leftmargin\bibindent | |
675 | + \itemindent -\bibindent | |
676 | + \listparindent \itemindent | |
677 | + \parsep \z@ | |
678 | + \fi | |
679 | + \usecounter{enumiv}% | |
680 | + \let\p@enumiv\@empty | |
681 | + \renewcommand\theenumiv{\@arabic\c@enumiv}}% | |
682 | + \if@openbib | |
683 | + \renewcommand\newblock{\par}% | |
684 | + \else | |
685 | + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% | |
686 | + \fi | |
687 | + \sloppy\clubpenalty4000\widowpenalty4000% | |
688 | + \sfcode`\.=\@m} | |
689 | + {\def\@noitemerr | |
690 | + {\@latex@warning{Empty `thebibliography' environment}}% | |
691 | + \endlist} | |
692 | +\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw | |
693 | + {\let\protect\noexpand\immediate | |
694 | + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} | |
695 | +\newcount\@tempcntc | |
696 | +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi | |
697 | + \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do | |
698 | + {\@ifundefined | |
699 | + {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries | |
700 | + ?}\@warning | |
701 | + {Citation `\@citeb' on page \thepage \space undefined}}% | |
702 | + {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% | |
703 | + \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne | |
704 | + \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% | |
705 | + \else | |
706 | + \advance\@tempcntb\@ne | |
707 | + \ifnum\@tempcntb=\@tempcntc | |
708 | + \else\advance\@tempcntb\m@ne\@citeo | |
709 | + \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} | |
710 | +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else | |
711 | + \@citea\def\@citea{,\,\hskip\z@skip}% | |
712 | + \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else | |
713 | + {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else | |
714 | + \def\@citea{--}\fi | |
715 | + \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} | |
716 | +\else | |
717 | +\renewenvironment{thebibliography}[1] | |
718 | + {\section*{\refname} | |
719 | + \small | |
720 | + \list{}% | |
721 | + {\settowidth\labelwidth{}% | |
722 | + \leftmargin\parindent | |
723 | + \itemindent=-\parindent | |
724 | + \labelsep=\z@ | |
725 | + \if@openbib | |
726 | + \advance\leftmargin\bibindent | |
727 | + \itemindent -\bibindent | |
728 | + \listparindent \itemindent | |
729 | + \parsep \z@ | |
730 | + \fi | |
731 | + \usecounter{enumiv}% | |
732 | + \let\p@enumiv\@empty | |
733 | + \renewcommand\theenumiv{}}% | |
734 | + \if@openbib | |
735 | + \renewcommand\newblock{\par}% | |
736 | + \else | |
737 | + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% | |
738 | + \fi | |
739 | + \sloppy\clubpenalty4000\widowpenalty4000% | |
740 | + \sfcode`\.=\@m} | |
741 | + {\def\@noitemerr | |
742 | + {\@latex@warning{Empty `thebibliography' environment}}% | |
743 | + \endlist} | |
744 | + \def\@cite#1{#1}% | |
745 | + \def\@lbibitem[#1]#2{\item[]\if@filesw | |
746 | + {\def\protect##1{\string ##1\space}\immediate | |
747 | + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} | |
748 | + \fi | |
749 | +\else | |
750 | +\@cons\@openbib@code{\noexpand\small} | |
751 | +\fi | |
752 | + | |
753 | +\def\idxquad{\hskip 10\p@}% space that divides entry from number | |
754 | + | |
755 | +\def\@idxitem{\par\hangindent 10\p@} | |
756 | + | |
757 | +\def\subitem{\par\setbox0=\hbox{--\enspace}% second order | |
758 | + \noindent\hangindent\wd0\box0}% index entry | |
759 | + | |
760 | +\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third | |
761 | + \noindent\hangindent\wd0\box0}% order index entry | |
762 | + | |
763 | +\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} | |
764 | + | |
765 | +\renewenvironment{theindex} | |
766 | + {\@mkboth{\indexname}{\indexname}% | |
767 | + \thispagestyle{empty}\parindent\z@ | |
768 | + \parskip\z@ \@plus .3\p@\relax | |
769 | + \let\item\par | |
770 | + \def\,{\relax\ifmmode\mskip\thinmuskip | |
771 | + \else\hskip0.2em\ignorespaces\fi}% | |
772 | + \normalfont\small | |
773 | + \begin{multicols}{2}[\@makeschapterhead{\indexname}]% | |
774 | + } | |
775 | + {\end{multicols}} | |
776 | + | |
777 | +\renewcommand\footnoterule{% | |
778 | + \kern-3\p@ | |
779 | + \hrule\@width 2truecm | |
780 | + \kern2.6\p@} | |
781 | + \newdimen\fnindent | |
782 | + \fnindent1em | |
783 | +\long\def\@makefntext#1{% | |
784 | + \parindent \fnindent% | |
785 | + \leftskip \fnindent% | |
786 | + \noindent | |
787 | + \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} | |
788 | + | |
789 | +\long\def\@makecaption#1#2{% | |
790 | + \small | |
791 | + \vskip\abovecaptionskip | |
792 | + \sbox\@tempboxa{{\bfseries #1.} #2}% | |
793 | + \ifdim \wd\@tempboxa >\hsize | |
794 | + {\bfseries #1.} #2\par | |
795 | + \else | |
796 | + \global \@minipagefalse | |
797 | + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% | |
798 | + \fi | |
799 | + \vskip\belowcaptionskip} | |
800 | + | |
801 | +\def\fps@figure{htbp} | |
802 | +\def\fnum@figure{\figurename\thinspace\thefigure} | |
803 | +\def \@floatboxreset {% | |
804 | + \reset@font | |
805 | + \small | |
806 | + \@setnobreak | |
807 | + \@setminipage | |
808 | +} | |
809 | +\def\fps@table{htbp} | |
810 | +\def\fnum@table{\tablename~\thetable} | |
811 | +\renewenvironment{table} | |
812 | + {\setlength\abovecaptionskip{0\p@}% | |
813 | + \setlength\belowcaptionskip{10\p@}% | |
814 | + \@float{table}} | |
815 | + {\end@float} | |
816 | +\renewenvironment{table*} | |
817 | + {\setlength\abovecaptionskip{0\p@}% | |
818 | + \setlength\belowcaptionskip{10\p@}% | |
819 | + \@dblfloat{table}} | |
820 | + {\end@dblfloat} | |
821 | + | |
822 | +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname | |
823 | + ext@#1\endcsname}{#1}{\protect\numberline{\csname | |
824 | + the#1\endcsname}{\ignorespaces #2}}\begingroup | |
825 | + \@parboxrestore | |
826 | + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par | |
827 | + \endgroup} | |
828 | + | |
829 | +% LaTeX does not provide a command to enter the authors institute | |
830 | +% addresses. The \institute command is defined here. | |
831 | + | |
832 | +\newcounter{@inst} | |
833 | +\newcounter{@auth} | |
834 | +\newcounter{auco} | |
835 | +\newdimen\instindent | |
836 | +\newbox\authrun | |
837 | +\newtoks\authorrunning | |
838 | +\newtoks\tocauthor | |
839 | +\newbox\titrun | |
840 | +\newtoks\titlerunning | |
841 | +\newtoks\toctitle | |
842 | + | |
843 | +\def\clearheadinfo{\gdef\@author{No Author Given}% | |
844 | + \gdef\@title{No Title Given}% | |
845 | + \gdef\@subtitle{}% | |
846 | + \gdef\@institute{No Institute Given}% | |
847 | + \gdef\@thanks{}% | |
848 | + \global\titlerunning={}\global\authorrunning={}% | |
849 | + \global\toctitle={}\global\tocauthor={}} | |
850 | + | |
851 | +\def\institute#1{\gdef\@institute{#1}} | |
852 | + | |
853 | +\def\institutename{\par | |
854 | + \begingroup | |
855 | + \parskip=\z@ | |
856 | + \parindent=\z@ | |
857 | + \setcounter{@inst}{1}% | |
858 | + \def\and{\par\stepcounter{@inst}% | |
859 | + \noindent$^{\the@inst}$\enspace\ignorespaces}% | |
860 | + \setbox0=\vbox{\def\thanks##1{}\@institute}% | |
861 | + \ifnum\c@@inst=1\relax | |
862 | + \gdef\fnnstart{0}% | |
863 | + \else | |
864 | + \xdef\fnnstart{\c@@inst}% | |
865 | + \setcounter{@inst}{1}% | |
866 | + \noindent$^{\the@inst}$\enspace | |
867 | + \fi | |
868 | + \ignorespaces | |
869 | + \@institute\par | |
870 | + \endgroup} | |
871 | + | |
872 | +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or | |
873 | + {\star\star\star}\or \dagger\or \ddagger\or | |
874 | + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger | |
875 | + \or \ddagger\ddagger \else\@ctrerr\fi}} | |
876 | + | |
877 | +\def\inst#1{\unskip$^{#1}$} | |
878 | +\def\fnmsep{\unskip$^,$} | |
879 | +\def\email#1{{\tt#1}} | |
880 | +\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}% | |
881 | +\@ifpackageloaded{babel}{% | |
882 | +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% | |
883 | +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% | |
884 | +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% | |
885 | +\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}% | |
886 | +}{\switcht@@therlang}% | |
887 | +\providecommand{\keywords}[1]{\par\addvspace\baselineskip | |
888 | +\noindent\keywordname\enspace\ignorespaces#1}% | |
889 | +} | |
890 | +\def\homedir{\~{ }} | |
891 | + | |
892 | +\def\subtitle#1{\gdef\@subtitle{#1}} | |
893 | +\clearheadinfo | |
894 | +% | |
895 | +%%% to avoid hyperref warnings | |
896 | +\providecommand*{\toclevel@author}{999} | |
897 | +%%% to make title-entry parent of section-entries | |
898 | +\providecommand*{\toclevel@title}{0} | |
899 | +% | |
900 | +\renewcommand\maketitle{\newpage | |
901 | +\phantomsection | |
902 | + \refstepcounter{chapter}% | |
903 | + \stepcounter{section}% | |
904 | + \setcounter{section}{0}% | |
905 | + \setcounter{subsection}{0}% | |
906 | + \setcounter{figure}{0} | |
907 | + \setcounter{table}{0} | |
908 | + \setcounter{equation}{0} | |
909 | + \setcounter{footnote}{0}% | |
910 | + \begingroup | |
911 | + \parindent=\z@ | |
912 | + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% | |
913 | + \if@twocolumn | |
914 | + \ifnum \col@number=\@ne | |
915 | + \@maketitle | |
916 | + \else | |
917 | + \twocolumn[\@maketitle]% | |
918 | + \fi | |
919 | + \else | |
920 | + \newpage | |
921 | + \global\@topnum\z@ % Prevents figures from going at top of page. | |
922 | + \@maketitle | |
923 | + \fi | |
924 | + \thispagestyle{empty}\@thanks | |
925 | +% | |
926 | + \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% | |
927 | + \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% | |
928 | + \instindent=\hsize | |
929 | + \advance\instindent by-\headlineindent | |
930 | + \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else | |
931 | + \addcontentsline{toc}{title}{\the\toctitle}\fi | |
932 | + \if@runhead | |
933 | + \if!\the\titlerunning!\else | |
934 | + \edef\@title{\the\titlerunning}% | |
935 | + \fi | |
936 | + \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% | |
937 | + \ifdim\wd\titrun>\instindent | |
938 | + \typeout{Title too long for running head. Please supply}% | |
939 | + \typeout{a shorter form with \string\titlerunning\space prior to | |
940 | + \string\maketitle}% | |
941 | + \global\setbox\titrun=\hbox{\small\rm | |
942 | + Title Suppressed Due to Excessive Length}% | |
943 | + \fi | |
944 | + \xdef\@title{\copy\titrun}% | |
945 | + \fi | |
946 | +% | |
947 | + \if!\the\tocauthor!\relax | |
948 | + {\def\and{\noexpand\protect\noexpand\and}% | |
949 | + \protected@xdef\toc@uthor{\@author}}% | |
950 | + \else | |
951 | + \def\\{\noexpand\protect\noexpand\newline}% | |
952 | + \protected@xdef\scratch{\the\tocauthor}% | |
953 | + \protected@xdef\toc@uthor{\scratch}% | |
954 | + \fi | |
955 | + \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}% | |
956 | + \addcontentsline{toc}{author}{\toc@uthor}% | |
957 | + \if@runhead | |
958 | + \if!\the\authorrunning! | |
959 | + \value{@inst}=\value{@auth}% | |
960 | + \setcounter{@auth}{1}% | |
961 | + \else | |
962 | + \edef\@author{\the\authorrunning}% | |
963 | + \fi | |
964 | + \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}% | |
965 | + \ifdim\wd\authrun>\instindent | |
966 | + \typeout{Names of authors too long for running head. Please supply}% | |
967 | + \typeout{a shorter form with \string\authorrunning\space prior to | |
968 | + \string\maketitle}% | |
969 | + \global\setbox\authrun=\hbox{\small\rm | |
970 | + Authors Suppressed Due to Excessive Length}% | |
971 | + \fi | |
972 | + \xdef\@author{\copy\authrun}% | |
973 | + \markboth{\@author}{\@title}% | |
974 | + \fi | |
975 | + \endgroup | |
976 | + \setcounter{footnote}{\fnnstart}% | |
977 | + \clearheadinfo} | |
978 | +% | |
979 | +\def\@maketitle{\newpage | |
980 | + \markboth{}{}% | |
981 | + \def\lastand{\ifnum\value{@inst}=2\relax | |
982 | + \unskip{} \andname\ | |
983 | + \else | |
984 | + \unskip \lastandname\ | |
985 | + \fi}% | |
986 | + \def\and{\stepcounter{@auth}\relax | |
987 | + \ifnum\value{@auth}=\value{@inst}% | |
988 | + \lastand | |
989 | + \else | |
990 | + \unskip, | |
991 | + \fi}% | |
992 | + \begin{center}% | |
993 | + \let\newline\\ | |
994 | + {\Large \bfseries\boldmath | |
995 | + \pretolerance=10000 | |
996 | + \@title \par}\vskip .8cm | |
997 | +\if!\@subtitle!\else {\large \bfseries\boldmath | |
998 | + \vskip -.65cm | |
999 | + \pretolerance=10000 | |
1000 | + \@subtitle \par}\vskip .8cm\fi | |
1001 | + \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% | |
1002 | + \def\thanks##1{}\@author}% | |
1003 | + \global\value{@inst}=\value{@auth}% | |
1004 | + \global\value{auco}=\value{@auth}% | |
1005 | + \setcounter{@auth}{1}% | |
1006 | +{\lineskip .5em | |
1007 | +\noindent\ignorespaces | |
1008 | +\@author\vskip.35cm} | |
1009 | + {\small\institutename} | |
1010 | + \end{center}% | |
1011 | + } | |
1012 | + | |
1013 | +% definition of the "\spnewtheorem" command. | |
1014 | +% | |
1015 | +% Usage: | |
1016 | +% | |
1017 | +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} | |
1018 | +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} | |
1019 | +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} | |
1020 | +% | |
1021 | +% New is "cap_font" and "body_font". It stands for | |
1022 | +% fontdefinition of the caption and the text itself. | |
1023 | +% | |
1024 | +% "\spnewtheorem*" gives a theorem without number. | |
1025 | +% | |
1026 | +% A defined spnewthoerem environment is used as described | |
1027 | +% by Lamport. | |
1028 | +% | |
1029 | +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
1030 | + | |
1031 | +\def\@thmcountersep{} | |
1032 | +\def\@thmcounterend{.} | |
1033 | + | |
1034 | +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} | |
1035 | + | |
1036 | +% definition of \spnewtheorem with number | |
1037 | + | |
1038 | +\def\@spnthm#1#2{% | |
1039 | + \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} | |
1040 | +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} | |
1041 | + | |
1042 | +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname | |
1043 | + {\@definecounter{#1}\@addtoreset{#1}{#3}% | |
1044 | + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand | |
1045 | + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% | |
1046 | + \expandafter\xdef\csname #1name\endcsname{#2}% | |
1047 | + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% | |
1048 | + \global\@namedef{end#1}{\@endtheorem}}} | |
1049 | + | |
1050 | +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname | |
1051 | + {\@definecounter{#1}% | |
1052 | + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% | |
1053 | + \expandafter\xdef\csname #1name\endcsname{#2}% | |
1054 | + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% | |
1055 | + \global\@namedef{end#1}{\@endtheorem}}} | |
1056 | + | |
1057 | +\def\@spothm#1[#2]#3#4#5{% | |
1058 | + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% | |
1059 | + {\expandafter\@ifdefinable\csname #1\endcsname | |
1060 | + {\newaliascnt{#1}{#2}% | |
1061 | + \expandafter\xdef\csname #1name\endcsname{#3}% | |
1062 | + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% | |
1063 | + \global\@namedef{end#1}{\@endtheorem}}}} | |
1064 | + | |
1065 | +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ | |
1066 | +\refstepcounter{#1}% | |
1067 | +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} | |
1068 | + | |
1069 | +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% | |
1070 | + \ignorespaces} | |
1071 | + | |
1072 | +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname | |
1073 | + the#1\endcsname}{#5}{#3}{#4}\ignorespaces} | |
1074 | + | |
1075 | +\def\@spbegintheorem#1#2#3#4{\trivlist | |
1076 | + \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} | |
1077 | + | |
1078 | +\def\@spopargbegintheorem#1#2#3#4#5{\trivlist | |
1079 | + \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} | |
1080 | + | |
1081 | +% definition of \spnewtheorem* without number | |
1082 | + | |
1083 | +\def\@sthm#1#2{\@Ynthm{#1}{#2}} | |
1084 | + | |
1085 | +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname | |
1086 | + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% | |
1087 | + \expandafter\xdef\csname #1name\endcsname{#2}% | |
1088 | + \global\@namedef{end#1}{\@endtheorem}}} | |
1089 | + | |
1090 | +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ | |
1091 | +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} | |
1092 | + | |
1093 | +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} | |
1094 | + | |
1095 | +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} | |
1096 | + {#4}{#2}{#3}\ignorespaces} | |
1097 | + | |
1098 | +\def\@Begintheorem#1#2#3{#3\trivlist | |
1099 | + \item[\hskip\labelsep{#2#1\@thmcounterend}]} | |
1100 | + | |
1101 | +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist | |
1102 | + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} | |
1103 | + | |
1104 | +\if@envcntsect | |
1105 | + \def\@thmcountersep{.} | |
1106 | + \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} | |
1107 | +\else | |
1108 | + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} | |
1109 | + \if@envcntreset | |
1110 | + \@addtoreset{theorem}{section} | |
1111 | + \else | |
1112 | + \@addtoreset{theorem}{chapter} | |
1113 | + \fi | |
1114 | +\fi | |
1115 | + | |
1116 | +%definition of divers theorem environments | |
1117 | +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} | |
1118 | +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} | |
1119 | +\if@envcntsame % alle Umgebungen wie Theorem. | |
1120 | + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} | |
1121 | +\else % alle Umgebungen mit eigenem Zaehler | |
1122 | + \if@envcntsect % mit section numeriert | |
1123 | + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} | |
1124 | + \else % nicht mit section numeriert | |
1125 | + \if@envcntreset | |
1126 | + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} | |
1127 | + \@addtoreset{#1}{section}} | |
1128 | + \else | |
1129 | + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} | |
1130 | + \@addtoreset{#1}{chapter}}% | |
1131 | + \fi | |
1132 | + \fi | |
1133 | +\fi | |
1134 | +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} | |
1135 | +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} | |
1136 | +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} | |
1137 | +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} | |
1138 | +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} | |
1139 | +\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} | |
1140 | +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} | |
1141 | +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} | |
1142 | +\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} | |
1143 | +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} | |
1144 | +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} | |
1145 | +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} | |
1146 | +\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} | |
1147 | +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} | |
1148 | + | |
1149 | +\def\@takefromreset#1#2{% | |
1150 | + \def\@tempa{#1}% | |
1151 | + \let\@tempd\@elt | |
1152 | + \def\@elt##1{% | |
1153 | + \def\@tempb{##1}% | |
1154 | + \ifx\@tempa\@tempb\else | |
1155 | + \@addtoreset{##1}{#2}% | |
1156 | + \fi}% | |
1157 | + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname | |
1158 | + \expandafter\def\csname cl@#2\endcsname{}% | |
1159 | + \@tempc | |
1160 | + \let\@elt\@tempd} | |
1161 | + | |
1162 | +\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist | |
1163 | + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} | |
1164 | + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist | |
1165 | + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} | |
1166 | + } | |
1167 | + | |
1168 | +\renewenvironment{abstract}{% | |
1169 | + \list{}{\advance\topsep by0.35cm\relax\small | |
1170 | + \leftmargin=1cm | |
1171 | + \labelwidth=\z@ | |
1172 | + \listparindent=\z@ | |
1173 | + \itemindent\listparindent | |
1174 | + \rightmargin\leftmargin}\item[\hskip\labelsep | |
1175 | + \bfseries\abstractname]} | |
1176 | + {\endlist} | |
1177 | + | |
1178 | +\newdimen\headlineindent % dimension for space between | |
1179 | +\headlineindent=1.166cm % number and text of headings. | |
1180 | + | |
1181 | +\def\ps@headings{\let\@mkboth\@gobbletwo | |
1182 | + \let\@oddfoot\@empty\let\@evenfoot\@empty | |
1183 | + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% | |
1184 | + \leftmark\hfil} | |
1185 | + \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% | |
1186 | + \llap{\thepage}} | |
1187 | + \def\chaptermark##1{}% | |
1188 | + \def\sectionmark##1{}% | |
1189 | + \def\subsectionmark##1{}} | |
1190 | + | |
1191 | +\def\ps@titlepage{\let\@mkboth\@gobbletwo | |
1192 | + \let\@oddfoot\@empty\let\@evenfoot\@empty | |
1193 | + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% | |
1194 | + \hfil} | |
1195 | + \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}% | |
1196 | + \llap{\thepage}} | |
1197 | + \def\chaptermark##1{}% | |
1198 | + \def\sectionmark##1{}% | |
1199 | + \def\subsectionmark##1{}} | |
1200 | + | |
1201 | +\if@runhead\ps@headings\else | |
1202 | +\ps@empty\fi | |
1203 | + | |
1204 | +\setlength\arraycolsep{1.4\p@} | |
1205 | +\setlength\tabcolsep{1.4\p@} | |
1206 | + | |
1207 | +\endinput | |
1208 | +%end of file llncs.cls | ... | ... |
... | ... | @@ -0,0 +1,42 @@ |
1 | +% This is LLNCSDOC.STY the modification of the | |
2 | +% LLNCS class file for the documentation of | |
3 | +% the class itself. | |
4 | +% | |
5 | +\def\AmS{{\protect\usefont{OMS}{cmsy}{m}{n}% | |
6 | + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} | |
7 | +\def\AmSTeX{{\protect\AmS-\protect\TeX}} | |
8 | +% | |
9 | +\def\ps@myheadings{\let\@mkboth\@gobbletwo | |
10 | +\def\@oddhead{\hbox{}\hfil\small\rm\rightmark | |
11 | +\qquad\thepage}% | |
12 | +\def\@oddfoot{}\def\@evenhead{\small\rm\thepage\qquad | |
13 | +\leftmark\hfil}% | |
14 | +\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} | |
15 | +\ps@myheadings | |
16 | +% | |
17 | +\setcounter{tocdepth}{2} | |
18 | +% | |
19 | +\renewcommand{\labelitemi}{--} | |
20 | +\newenvironment{alpherate}% | |
21 | +{\renewcommand{\labelenumi}{\alph{enumi})}\begin{enumerate}}% | |
22 | +{\end{enumerate}\renewcommand{\labelenumi}{enumi}} | |
23 | +% | |
24 | +\def\bibauthoryear{\begingroup | |
25 | +\def\thebibliography##1{\section*{References}% | |
26 | + \small\list{}{\settowidth\labelwidth{}\leftmargin\parindent | |
27 | + \itemindent=-\parindent | |
28 | + \labelsep=\z@ | |
29 | + \usecounter{enumi}}% | |
30 | + \def\newblock{\hskip .11em plus .33em minus -.07em}% | |
31 | + \sloppy | |
32 | + \sfcode`\.=1000\relax}% | |
33 | + \def\@cite##1{##1}% | |
34 | + \def\@lbibitem[##1]##2{\item[]\if@filesw | |
35 | + {\def\protect####1{\string ####1\space}\immediate | |
36 | + \write\@auxout{\string\bibcite{##2}{##1}}}\fi\ignorespaces}% | |
37 | +\begin{thebibliography}{} | |
38 | +\bibitem[1982]{clar:eke3} Clarke, F., Ekeland, I.: Nonlinear | |
39 | +oscillations and boundary-value problems for Hamiltonian systems. | |
40 | +Arch. Rat. Mech. Anal. 78, 315--333 (1982) | |
41 | +\end{thebibliography} | |
42 | +\endgroup} | ... | ... |
... | ... | @@ -0,0 +1,235 @@ |
1 | +@article{anthopoulos2016egovernment, | |
2 | + title={Why e-government projects fail? An analysis of the Healthcare. gov website}, | |
3 | + author={Anthopoulos, Leonidas and Reddick, Christopher G and Giannakidou, Irene and Mavridis, Nikolaos}, | |
4 | + journal={Government Information Quarterly}, | |
5 | + volume={33}, | |
6 | + pages={161--173}, | |
7 | + year={2016}, | |
8 | + publisher={Elsevier} | |
9 | +} | |
10 | + | |
11 | +@inproceedings{sandberg2017iacollaboration, | |
12 | + author = {Sandberg, Anna B\"{o}rjesson and Crnkovic, Ivica}, | |
13 | + title = {Meeting Industry: Academia Research Collaboration Challenges with Agile Methodologies}, | |
14 | + booktitle = {Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track}, | |
15 | + series = {ICSE-SEIP '17}, | |
16 | + year = {2017}, | |
17 | + location = {Buenos Aires, Argentina}, | |
18 | + pages = {73--82}, | |
19 | + publisher = {IEEE Press}, | |
20 | +} | |
21 | + | |
22 | + | |
23 | +@article{goldfinch2007pessimism, | |
24 | + author={Shaun Goldfinch}, | |
25 | + journal={Public Administration Review}, | |
26 | + pages={917-929}, | |
27 | + publisher={[American Society for Public Administration, Wiley]}, | |
28 | + title={Pessimism, Computer Failure, and Information Systems Development in the Public Sector}, | |
29 | + volume={67}, | |
30 | + year={2007} | |
31 | +} | |
32 | + | |
33 | +@article{highsmith2001agileSoftwareDevelopment, | |
34 | + title={Agile software development: The business of innovation}, | |
35 | + author={Highsmith, Jim and Cockburn, Alistair}, | |
36 | + journal={Computer}, | |
37 | + volume={34}, | |
38 | + pages={120--127}, | |
39 | + year={2001}, | |
40 | + publisher={IEEE} | |
41 | +} | |
42 | + | |
43 | +@inproceedings{maurer2002onTheProductivityOfAgile, | |
44 | + title={On the productivity of agile software practices: An industrial case study}, | |
45 | + author={Maurer, Frank and Martel, Sebastien}, | |
46 | + booktitle={Proceedings of the International Workshop on Global Software Development}, | |
47 | + year={2002} | |
48 | +} | |
49 | + | |
50 | +@article{mcilroy1968software, | |
51 | + title={Software Engineering: Report on a conference sponsored by the NATO Science Committee}, | |
52 | + author={McIlroy, MD}, | |
53 | + year={1968}, | |
54 | + publisher={NATO Scientific Affairs Division} | |
55 | +} | |
56 | + | |
57 | +@inproceedings{nguyen2011anAnalysisOfTrends, | |
58 | + title={An analysis of trends in productivity and cost drivers over years}, | |
59 | + author={Nguyen, Vu and Huang, LiGuo and Boehm, Barry}, | |
60 | + booktitle={Proceedings of the 7th International Conference on Predictive Models in Software Engineering}, | |
61 | + pages={3}, | |
62 | + year={2011}, | |
63 | + organization={ACM} | |
64 | +} | |
65 | + | |
66 | +@article{awad2005comparisonAgileTrad, | |
67 | + title={A comparison between agile and traditional software development methodologies}, | |
68 | + author={Awad, MA}, | |
69 | + journal={University of Western Australia}, | |
70 | + year={2005} | |
71 | +} | |
72 | + | |
73 | +@article{fowler2001newMethod, | |
74 | + title={The new methodology}, | |
75 | + author={Fowler, Martin}, | |
76 | + journal={Wuhan University Journal of Natural Sciences}, | |
77 | + volume={6}, | |
78 | + pages={12--24}, | |
79 | + year={2001}, | |
80 | + publisher={Springer} | |
81 | +} | |
82 | + | |
83 | +@article{cockburn2001peopleFactor, | |
84 | + title={Agile software development, the people factor}, | |
85 | + author={Cockburn, Alistair and Highsmith, Jim}, | |
86 | + journal={Computer}, | |
87 | + volume={34}, | |
88 | + pages={131--133}, | |
89 | + year={2001}, | |
90 | + publisher={IEEE} | |
91 | +} | |
92 | + | |
93 | +@book{highsmith2002agileEco, | |
94 | + title={Agile software development ecosystems}, | |
95 | + author={Highsmith, James A}, | |
96 | + volume={13}, | |
97 | + year={2002}, | |
98 | + publisher={Addison-Wesley Professional} | |
99 | +} | |
100 | + | |
101 | +@article{nerur2015challenges, | |
102 | + author = {Nerur, Sridhar and Mahapatra, RadhaKanta and Mangalaraj, George}, | |
103 | + title = {Challenges of Migrating to Agile Methodologies}, | |
104 | + journal = {Commun. ACM}, | |
105 | + volume = {48}, | |
106 | + number = {5}, | |
107 | + year = {2005}, | |
108 | + pages = {72--78}, | |
109 | + publisher = {ACM}, | |
110 | +} | |
111 | + | |
112 | +@inproceedings{meirelles2017spb, | |
113 | + author = {Meirelles, Paulo and Wen, Melissa and Terceiro, Antonio and Siqueira, Rodrigo and Kanashiro, Lucas and Neri, Hilmer}, | |
114 | + title = {Brazilian Public Software Portal: An Integrated Platform for Collaborative Development}, | |
115 | + booktitle = {Proceedings of the 13th International Symposium on Open Collaboration}, | |
116 | + series = {OpenSym '17}, | |
117 | + year = {2017}, | |
118 | + location = {Galway, Ireland}, | |
119 | + pages = {16:1--16:10}, | |
120 | + publisher = {ACM}, | |
121 | + keywords = {Free Software, Management Team, Software Integration} | |
122 | +} | |
123 | + | |
124 | +@inproceedings{impactOfOrganizationalCulture, | |
125 | + title={The impact of organizational culture on agile method use}, | |
126 | + author={Strode, Diane E and Huff, Sid L and Tretiakov, Alexei}, | |
127 | + booktitle={System Sciences, 2009. HICSS'09. 42nd Hawaii International Conference on}, | |
128 | + pages={1--9}, | |
129 | + year={2009}, | |
130 | + organization={IEEE} | |
131 | +} | |
132 | + | |
133 | +@article{dybaa2008empirical, | |
134 | + title={Empirical studies of agile software development: A systematic review}, | |
135 | + author={Dyb{\aa}, Tore and Dings{\o}yr, Torgeir}, | |
136 | + journal={Information and software technology}, | |
137 | + volume={50}, | |
138 | + pages={833--859}, | |
139 | + year={2008}, | |
140 | + publisher={Elsevier} | |
141 | +} | |
142 | + | |
143 | +@inproceedings{melo2013agileBr, | |
144 | + author = {Melo, Claudia and Santos, Viviane and Katayama, Eduardo and Corbucci, Hugo and Prikladnicki, Rafael and Goldman, Alfredo and Kon, Fabio}, | |
145 | + year = {2013}, | |
146 | + title = {The evolution of agile software development in Brazil}, | |
147 | + volume = {19}, | |
148 | + booktitle = {Journal of the Brazilian Computer Society} | |
149 | +} | |
150 | + | |
151 | +@inproceedings{alleman2003making, | |
152 | + title={Making agile development work in a government contracting environment-measuring velocity with earned value}, | |
153 | + author={Alleman, Glen B and Henderson, Michael and Seggelke, Ray}, | |
154 | + booktitle={Agile Development Conference, 2003. ADC 2003. Proceedings of the}, | |
155 | + pages={114--119}, | |
156 | + year={2003}, | |
157 | + organization={IEEE} | |
158 | +} | |
159 | + | |
160 | +@inproceedings{anderson2005stretching, | |
161 | + title={Stretching agile to fit CMMI level 3-the story of creating MSF for CMMI/spl reg/process improvement at Microsoft corporation}, | |
162 | + author={Anderson, David J}, | |
163 | + booktitle={Agile Conference, 2005. Proceedings}, | |
164 | + pages={193--201}, | |
165 | + year={2005}, | |
166 | + organization={IEEE} | |
167 | +} | |
168 | + | |
169 | +@article{cho2011gap, | |
170 | + author = {Chookittikul, Wajee and Kourik, Janet and E. Maher, Peter}, | |
171 | + year = {2011}, | |
172 | + pages = {239-244}, | |
173 | + title = {Reducing the Gap between Academia and Industry: The Case for Agile Methods in Thailand}, | |
174 | + booktitle = {Proceedings of the 2011 Eighth International Conference on Information Technology: New Generations} | |
175 | +} | |
176 | + | |
177 | +@ARTICLE{siqueira2018cd, | |
178 | +author={R. Siqueira and D. Camarinha and M. Wen and P. Meirelles and F. Kon}, | |
179 | +journal={IEEE Software}, | |
180 | +title={Continuous Delivery: Building Trust in a Large-scale, Complex Government Organization}, | |
181 | +year={2018}, | |
182 | +volume={PP}, | |
183 | +number={99}, | |
184 | +pages={1-1}, | |
185 | +keywords={Buildings;Computer science;Government;Object recognition;Pipelines;Portals;Software;applications;computing methodologies;government;pattern recognition;soft;software;software engineering;software engineering software;software release management and delivery configuration management}, | |
186 | +doi={10.1109/MS.2018.111095426}, | |
187 | +ISSN={0740-7459}, | |
188 | +month={},} | |
189 | + | |
190 | +@inproceedings{capiluppi, | |
191 | + title={Characteristics of open source projects}, | |
192 | + author={Capiluppi, Andrea and Lago, Patricia and Morisio, Maurizio}, | |
193 | + booktitle={Software Maintenance and Reengineering, 2003. Proceedings. Seventh European Conference on}, | |
194 | + pages={317--327}, | |
195 | + year={2003}, | |
196 | + organization={IEEE} | |
197 | +} | |
198 | + | |
199 | +@inproceedings{warsta, | |
200 | + title={Is open source software development essentially an agile method}, | |
201 | + author={Warsta, Juhani and Abrahamsson, Pekka}, | |
202 | + booktitle={Proceedings of the 3rd Workshop on Open Source Software Engineering}, | |
203 | + pages={143--147}, | |
204 | + year={2003} | |
205 | +} | |
206 | + | |
207 | +@article{beck, | |
208 | + title={Manifesto for Agile Software Development. Agile Alliance (2001)}, | |
209 | + author={Beck, Kent and Beedle, M and Bennekum, A and others}, | |
210 | + journal={Retrieved June}, | |
211 | + volume={14}, | |
212 | + year={2010} | |
213 | +} | |
214 | + | |
215 | +@article{raymond, | |
216 | + title={The cathedral and the bazaar}, | |
217 | + author={Raymond, Eric}, | |
218 | + journal={Philosophy \& Technology}, | |
219 | + volume={12}, | |
220 | + number={3}, | |
221 | + pages={23}, | |
222 | + year={1999}, | |
223 | + publisher={Springer} | |
224 | +} | |
225 | + | |
226 | +@incollection{booch2003, | |
227 | +title = "Collaborative Development Environments", | |
228 | +series = "Advances in Computers", | |
229 | +publisher = "Elsevier", | |
230 | +volume = "59", | |
231 | +pages = "1 - 27", | |
232 | +year = "2003", | |
233 | +issn = "0065-2458", | |
234 | +author = "Grady Booch and Alan W. Brown" | |
235 | +} | ... | ... |
... | ... | @@ -0,0 +1,50 @@ |
1 | + | |
2 | +\documentclass{llncs} | |
3 | +\usepackage[table,xcdraw]{xcolor} | |
4 | +\usepackage{llncsdoc} | |
5 | +\usepackage{graphicx,url} | |
6 | +\usepackage[utf8]{inputenc} | |
7 | +\usepackage{float} | |
8 | +\usepackage{setspace} | |
9 | +\usepackage{hyphenat} | |
10 | +\usepackage{tabularx} | |
11 | +\usepackage{cite} | |
12 | +\usepackage{hyperref} | |
13 | +\usepackage{comment} | |
14 | +\usepackage{todonotes} | |
15 | +\usepackage{colortbl} | |
16 | +%------------------------------------------------------------------------------ | |
17 | + | |
18 | +\begin{document} | |
19 | +\sloppy | |
20 | +\title{FLOSS Project Management in Government-Academia Collaboration} | |
21 | +%\subtitle{A three-year empirical study from the evolution of an open source government platform} | |
22 | + | |
23 | +\titlerunning{OSS in Gov-Academia Collab} | |
24 | + | |
25 | +\author{Melissa Wen\inst{1}, Paulo Meirelles\inst{1,2}, Rodrigo Siqueira\inst{1}, Fabio Kon\inst{1}} | |
26 | + | |
27 | +\authorrunning{Wen et al.} | |
28 | + | |
29 | +\institute{FLOSS Competence Center -- University of S\~ao Paulo \\ | |
30 | + \texttt{\{wen,siqueira,fabio.kon\}@ime.usp.br} | |
31 | +\and UnB Faculty in Gama -- University of Bras\'ilia\\ | |
32 | + \texttt{paulormm@unb.br} | |
33 | +} | |
34 | + | |
35 | +\maketitle | |
36 | + | |
37 | +%------------------------------------------------------------------------------ | |
38 | + | |
39 | +\input{content/00-abstract} | |
40 | +\input{content/01-introduction} | |
41 | +\input{content/02-relatedwork} | |
42 | +\input{content/03-methods} | |
43 | +\input{content/04-results} | |
44 | +\input{content/05-discussion} | |
45 | +\input{content/06-conclusion} | |
46 | + | |
47 | +\bibliographystyle{splncs03} | |
48 | +\bibliography{spb-oss-2018} | |
49 | + | |
50 | +\end{document} | ... | ... |
... | ... | @@ -0,0 +1,1519 @@ |
1 | +%% BibTeX bibliography style `splncs03' | |
2 | +%% | |
3 | +%% BibTeX bibliography style for use with numbered references in | |
4 | +%% Springer Verlag's "Lecture Notes in Computer Science" series. | |
5 | +%% (See Springer's documentation for llncs.cls for | |
6 | +%% more details of the suggested reference format.) Note that this | |
7 | +%% file will not work for author-year style citations. | |
8 | +%% | |
9 | +%% Use \documentclass{llncs} and \bibliographystyle{splncs03}, and cite | |
10 | +%% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text. | |
11 | +%% | |
12 | +%% This file comes to you courtesy of Maurizio "Titto" Patrignani of | |
13 | +%% Dipartimento di Informatica e Automazione Universita' Roma Tre | |
14 | +%% | |
15 | +%% ================================================================================================ | |
16 | +%% This was file `titto-lncs-02.bst' produced on Wed Apr 1, 2009 | |
17 | +%% Edited by hand by titto based on `titto-lncs-01.bst' (see below) | |
18 | +%% | |
19 | +%% CHANGES (with respect to titto-lncs-01.bst): | |
20 | +%% - Removed the call to \urlprefix (thus no "URL" string is added to the output) | |
21 | +%% ================================================================================================ | |
22 | +%% This was file `titto-lncs-01.bst' produced on Fri Aug 22, 2008 | |
23 | +%% Edited by hand by titto based on `titto.bst' (see below) | |
24 | +%% | |
25 | +%% CHANGES (with respect to titto.bst): | |
26 | +%% - Removed the "capitalize" command for editors string "(eds.)" and "(ed.)" | |
27 | +%% - Introduced the functions titto.bbl.pages and titto.bbl.page for journal pages (without "pp.") | |
28 | +%% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings | |
29 | +%% - Commented all new.block commands before urls and notes (to separate them with a comma) | |
30 | +%% - Introduced the functions titto.bbl.volume for handling journal volumes (without "vol." label) | |
31 | +%% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle) | |
32 | +%% - Removed a \newblock to avoid long spaces between title and "In: ..." | |
33 | +%% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label | |
34 | +%% ================================================================================================ | |
35 | +%% This was file `titto.bst', | |
36 | +%% generated with the docstrip utility. | |
37 | +%% | |
38 | +%% The original source files were: | |
39 | +%% | |
40 | +%% merlin.mbs (with options: `vonx,nm-rvvc,yr-par,jttl-rm,volp-com,jwdpg,jwdvol,numser,ser-vol,jnm-x,btit-rm,bt-rm,edparxc,bkedcap,au-col,in-col,fin-bare,pp,ed,abr,mth-bare,xedn,jabr,and-com,and-com-ed,xand,url,url-blk,em-x,nfss,') | |
41 | +%% ---------------------------------------- | |
42 | +%% *** Tentative .bst file for Springer LNCS *** | |
43 | +%% | |
44 | +%% Copyright 1994-2007 Patrick W Daly | |
45 | + % =============================================================== | |
46 | + % IMPORTANT NOTICE: | |
47 | + % This bibliographic style (bst) file has been generated from one or | |
48 | + % more master bibliographic style (mbs) files, listed above. | |
49 | + % | |
50 | + % This generated file can be redistributed and/or modified under the terms | |
51 | + % of the LaTeX Project Public License Distributed from CTAN | |
52 | + % archives in directory macros/latex/base/lppl.txt; either | |
53 | + % version 1 of the License, or any later version. | |
54 | + % =============================================================== | |
55 | + % Name and version information of the main mbs file: | |
56 | + % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)] | |
57 | + % For use with BibTeX version 0.99a or later | |
58 | + %------------------------------------------------------------------- | |
59 | + % This bibliography style file is intended for texts in ENGLISH | |
60 | + % This is a numerical citation style, and as such is standard LaTeX. | |
61 | + % It requires no extra package to interface to the main text. | |
62 | + % The form of the \bibitem entries is | |
63 | + % \bibitem{key}... | |
64 | + % Usage of \cite is as follows: | |
65 | + % \cite{key} ==>> [#] | |
66 | + % \cite[chap. 2]{key} ==>> [#, chap. 2] | |
67 | + % where # is a number determined by the ordering in the reference list. | |
68 | + % The order in the reference list is alphabetical by authors. | |
69 | + %--------------------------------------------------------------------- | |
70 | + | |
71 | +ENTRY | |
72 | + { address | |
73 | + author | |
74 | + booktitle | |
75 | + chapter | |
76 | + edition | |
77 | + editor | |
78 | + eid | |
79 | + howpublished | |
80 | + institution | |
81 | + journal | |
82 | + key | |
83 | + month | |
84 | + note | |
85 | + number | |
86 | + organization | |
87 | + pages | |
88 | + publisher | |
89 | + school | |
90 | + series | |
91 | + title | |
92 | + type | |
93 | + url | |
94 | + volume | |
95 | + year | |
96 | + } | |
97 | + {} | |
98 | + { label } | |
99 | +INTEGERS { output.state before.all mid.sentence after.sentence after.block } | |
100 | +FUNCTION {init.state.consts} | |
101 | +{ #0 'before.all := | |
102 | + #1 'mid.sentence := | |
103 | + #2 'after.sentence := | |
104 | + #3 'after.block := | |
105 | +} | |
106 | +STRINGS { s t} | |
107 | +FUNCTION {output.nonnull} | |
108 | +{ 's := | |
109 | + output.state mid.sentence = | |
110 | + { ", " * write$ } | |
111 | + { output.state after.block = | |
112 | + { add.period$ write$ | |
113 | +% newline$ | |
114 | +% "\newblock " write$ % removed for titto-lncs-01 | |
115 | + " " write$ % to avoid long spaces between title and "In: ..." | |
116 | + } | |
117 | + { output.state before.all = | |
118 | + 'write$ | |
119 | + { add.period$ " " * write$ } | |
120 | + if$ | |
121 | + } | |
122 | + if$ | |
123 | + mid.sentence 'output.state := | |
124 | + } | |
125 | + if$ | |
126 | + s | |
127 | +} | |
128 | +FUNCTION {output} | |
129 | +{ duplicate$ empty$ | |
130 | + 'pop$ | |
131 | + 'output.nonnull | |
132 | + if$ | |
133 | +} | |
134 | +FUNCTION {output.check} | |
135 | +{ 't := | |
136 | + duplicate$ empty$ | |
137 | + { pop$ "empty " t * " in " * cite$ * warning$ } | |
138 | + 'output.nonnull | |
139 | + if$ | |
140 | +} | |
141 | +FUNCTION {fin.entry} | |
142 | +{ duplicate$ empty$ | |
143 | + 'pop$ | |
144 | + 'write$ | |
145 | + if$ | |
146 | + newline$ | |
147 | +} | |
148 | + | |
149 | +FUNCTION {new.block} | |
150 | +{ output.state before.all = | |
151 | + 'skip$ | |
152 | + { after.block 'output.state := } | |
153 | + if$ | |
154 | +} | |
155 | +FUNCTION {new.sentence} | |
156 | +{ output.state after.block = | |
157 | + 'skip$ | |
158 | + { output.state before.all = | |
159 | + 'skip$ | |
160 | + { after.sentence 'output.state := } | |
161 | + if$ | |
162 | + } | |
163 | + if$ | |
164 | +} | |
165 | +FUNCTION {add.blank} | |
166 | +{ " " * before.all 'output.state := | |
167 | +} | |
168 | + | |
169 | + | |
170 | +FUNCTION {add.colon} | |
171 | +{ duplicate$ empty$ | |
172 | + 'skip$ | |
173 | + { ":" * add.blank } | |
174 | + if$ | |
175 | +} | |
176 | + | |
177 | +FUNCTION {date.block} | |
178 | +{ | |
179 | + new.block | |
180 | +} | |
181 | + | |
182 | +FUNCTION {not} | |
183 | +{ { #0 } | |
184 | + { #1 } | |
185 | + if$ | |
186 | +} | |
187 | +FUNCTION {and} | |
188 | +{ 'skip$ | |
189 | + { pop$ #0 } | |
190 | + if$ | |
191 | +} | |
192 | +FUNCTION {or} | |
193 | +{ { pop$ #1 } | |
194 | + 'skip$ | |
195 | + if$ | |
196 | +} | |
197 | +STRINGS {z} | |
198 | +FUNCTION {remove.dots} | |
199 | +{ 'z := | |
200 | + "" | |
201 | + { z empty$ not } | |
202 | + { z #1 #1 substring$ | |
203 | + z #2 global.max$ substring$ 'z := | |
204 | + duplicate$ "." = 'pop$ | |
205 | + { * } | |
206 | + if$ | |
207 | + } | |
208 | + while$ | |
209 | +} | |
210 | +FUNCTION {new.block.checka} | |
211 | +{ empty$ | |
212 | + 'skip$ | |
213 | + 'new.block | |
214 | + if$ | |
215 | +} | |
216 | +FUNCTION {new.block.checkb} | |
217 | +{ empty$ | |
218 | + swap$ empty$ | |
219 | + and | |
220 | + 'skip$ | |
221 | + 'new.block | |
222 | + if$ | |
223 | +} | |
224 | +FUNCTION {new.sentence.checka} | |
225 | +{ empty$ | |
226 | + 'skip$ | |
227 | + 'new.sentence | |
228 | + if$ | |
229 | +} | |
230 | +FUNCTION {new.sentence.checkb} | |
231 | +{ empty$ | |
232 | + swap$ empty$ | |
233 | + and | |
234 | + 'skip$ | |
235 | + 'new.sentence | |
236 | + if$ | |
237 | +} | |
238 | +FUNCTION {field.or.null} | |
239 | +{ duplicate$ empty$ | |
240 | + { pop$ "" } | |
241 | + 'skip$ | |
242 | + if$ | |
243 | +} | |
244 | +FUNCTION {emphasize} | |
245 | +{ skip$ } | |
246 | +FUNCTION {tie.or.space.prefix} | |
247 | +{ duplicate$ text.length$ #3 < | |
248 | + { "~" } | |
249 | + { " " } | |
250 | + if$ | |
251 | + swap$ | |
252 | +} | |
253 | +FUNCTION {titto.space.prefix} % always introduce a space | |
254 | +{ duplicate$ text.length$ #3 < | |
255 | + { " " } | |
256 | + { " " } | |
257 | + if$ | |
258 | + swap$ | |
259 | +} | |
260 | + | |
261 | + | |
262 | +FUNCTION {capitalize} | |
263 | +{ "u" change.case$ "t" change.case$ } | |
264 | + | |
265 | +FUNCTION {space.word} | |
266 | +{ " " swap$ * " " * } | |
267 | + % Here are the language-specific definitions for explicit words. | |
268 | + % Each function has a name bbl.xxx where xxx is the English word. | |
269 | + % The language selected here is ENGLISH | |
270 | +FUNCTION {bbl.and} | |
271 | +{ "and"} | |
272 | + | |
273 | +FUNCTION {bbl.etal} | |
274 | +{ "et~al." } | |
275 | + | |
276 | +FUNCTION {bbl.editors} | |
277 | +{ "eds." } | |
278 | + | |
279 | +FUNCTION {bbl.editor} | |
280 | +{ "ed." } | |
281 | + | |
282 | +FUNCTION {bbl.edby} | |
283 | +{ "edited by" } | |
284 | + | |
285 | +FUNCTION {bbl.edition} | |
286 | +{ "edn." } | |
287 | + | |
288 | +FUNCTION {bbl.volume} | |
289 | +{ "vol." } | |
290 | + | |
291 | +FUNCTION {titto.bbl.volume} % for handling journals | |
292 | +{ "" } | |
293 | + | |
294 | +FUNCTION {bbl.of} | |
295 | +{ "of" } | |
296 | + | |
297 | +FUNCTION {bbl.number} | |
298 | +{ "no." } | |
299 | + | |
300 | +FUNCTION {bbl.nr} | |
301 | +{ "no." } | |
302 | + | |
303 | +FUNCTION {bbl.in} | |
304 | +{ "in" } | |
305 | + | |
306 | +FUNCTION {bbl.pages} | |
307 | +{ "pp." } | |
308 | + | |
309 | +FUNCTION {bbl.page} | |
310 | +{ "p." } | |
311 | + | |
312 | +FUNCTION {titto.bbl.pages} % for journals | |
313 | +{ "" } | |
314 | + | |
315 | +FUNCTION {titto.bbl.page} % for journals | |
316 | +{ "" } | |
317 | + | |
318 | +FUNCTION {bbl.chapter} | |
319 | +{ "chap." } | |
320 | + | |
321 | +FUNCTION {bbl.techrep} | |
322 | +{ "Tech. Rep." } | |
323 | + | |
324 | +FUNCTION {bbl.mthesis} | |
325 | +{ "Master's thesis" } | |
326 | + | |
327 | +FUNCTION {bbl.phdthesis} | |
328 | +{ "Ph.D. thesis" } | |
329 | + | |
330 | +MACRO {jan} {"Jan."} | |
331 | + | |
332 | +MACRO {feb} {"Feb."} | |
333 | + | |
334 | +MACRO {mar} {"Mar."} | |
335 | + | |
336 | +MACRO {apr} {"Apr."} | |
337 | + | |
338 | +MACRO {may} {"May"} | |
339 | + | |
340 | +MACRO {jun} {"Jun."} | |
341 | + | |
342 | +MACRO {jul} {"Jul."} | |
343 | + | |
344 | +MACRO {aug} {"Aug."} | |
345 | + | |
346 | +MACRO {sep} {"Sep."} | |
347 | + | |
348 | +MACRO {oct} {"Oct."} | |
349 | + | |
350 | +MACRO {nov} {"Nov."} | |
351 | + | |
352 | +MACRO {dec} {"Dec."} | |
353 | + | |
354 | +MACRO {acmcs} {"ACM Comput. Surv."} | |
355 | + | |
356 | +MACRO {acta} {"Acta Inf."} | |
357 | + | |
358 | +MACRO {cacm} {"Commun. ACM"} | |
359 | + | |
360 | +MACRO {ibmjrd} {"IBM J. Res. Dev."} | |
361 | + | |
362 | +MACRO {ibmsj} {"IBM Syst.~J."} | |
363 | + | |
364 | +MACRO {ieeese} {"IEEE Trans. Software Eng."} | |
365 | + | |
366 | +MACRO {ieeetc} {"IEEE Trans. Comput."} | |
367 | + | |
368 | +MACRO {ieeetcad} | |
369 | + {"IEEE Trans. Comput. Aid. Des."} | |
370 | + | |
371 | +MACRO {ipl} {"Inf. Process. Lett."} | |
372 | + | |
373 | +MACRO {jacm} {"J.~ACM"} | |
374 | + | |
375 | +MACRO {jcss} {"J.~Comput. Syst. Sci."} | |
376 | + | |
377 | +MACRO {scp} {"Sci. Comput. Program."} | |
378 | + | |
379 | +MACRO {sicomp} {"SIAM J. Comput."} | |
380 | + | |
381 | +MACRO {tocs} {"ACM Trans. Comput. Syst."} | |
382 | + | |
383 | +MACRO {tods} {"ACM Trans. Database Syst."} | |
384 | + | |
385 | +MACRO {tog} {"ACM Trans. Graphic."} | |
386 | + | |
387 | +MACRO {toms} {"ACM Trans. Math. Software"} | |
388 | + | |
389 | +MACRO {toois} {"ACM Trans. Office Inf. Syst."} | |
390 | + | |
391 | +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} | |
392 | + | |
393 | +MACRO {tcs} {"Theor. Comput. Sci."} | |
394 | + | |
395 | +FUNCTION {bibinfo.check} | |
396 | +{ swap$ | |
397 | + duplicate$ missing$ | |
398 | + { | |
399 | + pop$ pop$ | |
400 | + "" | |
401 | + } | |
402 | + { duplicate$ empty$ | |
403 | + { | |
404 | + swap$ pop$ | |
405 | + } | |
406 | + { swap$ | |
407 | + pop$ | |
408 | + } | |
409 | + if$ | |
410 | + } | |
411 | + if$ | |
412 | +} | |
413 | +FUNCTION {bibinfo.warn} | |
414 | +{ swap$ | |
415 | + duplicate$ missing$ | |
416 | + { | |
417 | + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ | |
418 | + "" | |
419 | + } | |
420 | + { duplicate$ empty$ | |
421 | + { | |
422 | + swap$ "empty " swap$ * " in " * cite$ * warning$ | |
423 | + } | |
424 | + { swap$ | |
425 | + pop$ | |
426 | + } | |
427 | + if$ | |
428 | + } | |
429 | + if$ | |
430 | +} | |
431 | +FUNCTION {format.url} | |
432 | +{ url empty$ | |
433 | + { "" } | |
434 | +% { "\urlprefix\url{" url * "}" * } | |
435 | + { "\url{" url * "}" * } % changed in titto-lncs-02.bst | |
436 | + if$ | |
437 | +} | |
438 | + | |
439 | +INTEGERS { nameptr namesleft numnames } | |
440 | + | |
441 | + | |
442 | +STRINGS { bibinfo} | |
443 | + | |
444 | +FUNCTION {format.names} | |
445 | +{ 'bibinfo := | |
446 | + duplicate$ empty$ 'skip$ { | |
447 | + 's := | |
448 | + "" 't := | |
449 | + #1 'nameptr := | |
450 | + s num.names$ 'numnames := | |
451 | + numnames 'namesleft := | |
452 | + { namesleft #0 > } | |
453 | + { s nameptr | |
454 | + "{vv~}{ll}{, jj}{, f{.}.}" | |
455 | + format.name$ | |
456 | + bibinfo bibinfo.check | |
457 | + 't := | |
458 | + nameptr #1 > | |
459 | + { | |
460 | + namesleft #1 > | |
461 | + { ", " * t * } | |
462 | + { | |
463 | + s nameptr "{ll}" format.name$ duplicate$ "others" = | |
464 | + { 't := } | |
465 | + { pop$ } | |
466 | + if$ | |
467 | + "," * | |
468 | + t "others" = | |
469 | + { | |
470 | + " " * bbl.etal * | |
471 | + } | |
472 | + { " " * t * } | |
473 | + if$ | |
474 | + } | |
475 | + if$ | |
476 | + } | |
477 | + 't | |
478 | + if$ | |
479 | + nameptr #1 + 'nameptr := | |
480 | + namesleft #1 - 'namesleft := | |
481 | + } | |
482 | + while$ | |
483 | + } if$ | |
484 | +} | |
485 | +FUNCTION {format.names.ed} | |
486 | +{ | |
487 | + 'bibinfo := | |
488 | + duplicate$ empty$ 'skip$ { | |
489 | + 's := | |
490 | + "" 't := | |
491 | + #1 'nameptr := | |
492 | + s num.names$ 'numnames := | |
493 | + numnames 'namesleft := | |
494 | + { namesleft #0 > } | |
495 | + { s nameptr | |
496 | + "{f{.}.~}{vv~}{ll}{ jj}" | |
497 | + format.name$ | |
498 | + bibinfo bibinfo.check | |
499 | + 't := | |
500 | + nameptr #1 > | |
501 | + { | |
502 | + namesleft #1 > | |
503 | + { ", " * t * } | |
504 | + { | |
505 | + s nameptr "{ll}" format.name$ duplicate$ "others" = | |
506 | + { 't := } | |
507 | + { pop$ } | |
508 | + if$ | |
509 | + "," * | |
510 | + t "others" = | |
511 | + { | |
512 | + | |
513 | + " " * bbl.etal * | |
514 | + } | |
515 | + { " " * t * } | |
516 | + if$ | |
517 | + } | |
518 | + if$ | |
519 | + } | |
520 | + 't | |
521 | + if$ | |
522 | + nameptr #1 + 'nameptr := | |
523 | + namesleft #1 - 'namesleft := | |
524 | + } | |
525 | + while$ | |
526 | + } if$ | |
527 | +} | |
528 | +FUNCTION {format.authors} | |
529 | +{ author "author" format.names | |
530 | +} | |
531 | +FUNCTION {get.bbl.editor} | |
532 | +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } | |
533 | + | |
534 | +FUNCTION {format.editors} | |
535 | +{ editor "editor" format.names duplicate$ empty$ 'skip$ | |
536 | + { | |
537 | + " " * | |
538 | + get.bbl.editor | |
539 | +% capitalize | |
540 | + "(" swap$ * ")" * | |
541 | + * | |
542 | + } | |
543 | + if$ | |
544 | +} | |
545 | +FUNCTION {format.note} | |
546 | +{ | |
547 | + note empty$ | |
548 | + { "" } | |
549 | + { note #1 #1 substring$ | |
550 | + duplicate$ "{" = | |
551 | + 'skip$ | |
552 | + { output.state mid.sentence = | |
553 | + { "l" } | |
554 | + { "u" } | |
555 | + if$ | |
556 | + change.case$ | |
557 | + } | |
558 | + if$ | |
559 | + note #2 global.max$ substring$ * "note" bibinfo.check | |
560 | + } | |
561 | + if$ | |
562 | +} | |
563 | + | |
564 | +FUNCTION {format.title} | |
565 | +{ title | |
566 | + duplicate$ empty$ 'skip$ | |
567 | + { "t" change.case$ } | |
568 | + if$ | |
569 | + "title" bibinfo.check | |
570 | +} | |
571 | +FUNCTION {output.bibitem} | |
572 | +{ newline$ | |
573 | + "\bibitem{" write$ | |
574 | + cite$ write$ | |
575 | + "}" write$ | |
576 | + newline$ | |
577 | + "" | |
578 | + before.all 'output.state := | |
579 | +} | |
580 | + | |
581 | +FUNCTION {n.dashify} | |
582 | +{ | |
583 | + 't := | |
584 | + "" | |
585 | + { t empty$ not } | |
586 | + { t #1 #1 substring$ "-" = | |
587 | + { t #1 #2 substring$ "--" = not | |
588 | + { "--" * | |
589 | + t #2 global.max$ substring$ 't := | |
590 | + } | |
591 | + { { t #1 #1 substring$ "-" = } | |
592 | + { "-" * | |
593 | + t #2 global.max$ substring$ 't := | |
594 | + } | |
595 | + while$ | |
596 | + } | |
597 | + if$ | |
598 | + } | |
599 | + { t #1 #1 substring$ * | |
600 | + t #2 global.max$ substring$ 't := | |
601 | + } | |
602 | + if$ | |
603 | + } | |
604 | + while$ | |
605 | +} | |
606 | + | |
607 | +FUNCTION {word.in} | |
608 | +{ bbl.in capitalize | |
609 | + ":" * | |
610 | + " " * } | |
611 | + | |
612 | +FUNCTION {format.date} | |
613 | +{ | |
614 | + month "month" bibinfo.check | |
615 | + duplicate$ empty$ | |
616 | + year "year" bibinfo.check duplicate$ empty$ | |
617 | + { swap$ 'skip$ | |
618 | + { "there's a month but no year in " cite$ * warning$ } | |
619 | + if$ | |
620 | + * | |
621 | + } | |
622 | + { swap$ 'skip$ | |
623 | + { | |
624 | + swap$ | |
625 | + " " * swap$ | |
626 | + } | |
627 | + if$ | |
628 | + * | |
629 | + remove.dots | |
630 | + } | |
631 | + if$ | |
632 | + duplicate$ empty$ | |
633 | + 'skip$ | |
634 | + { | |
635 | + before.all 'output.state := | |
636 | + " (" swap$ * ")" * | |
637 | + } | |
638 | + if$ | |
639 | +} | |
640 | +FUNCTION {format.btitle} | |
641 | +{ title "title" bibinfo.check | |
642 | + duplicate$ empty$ 'skip$ | |
643 | + { | |
644 | + } | |
645 | + if$ | |
646 | +} | |
647 | +FUNCTION {either.or.check} | |
648 | +{ empty$ | |
649 | + 'pop$ | |
650 | + { "can't use both " swap$ * " fields in " * cite$ * warning$ } | |
651 | + if$ | |
652 | +} | |
653 | +FUNCTION {format.bvolume} | |
654 | +{ volume empty$ | |
655 | + { "" } | |
656 | + { bbl.volume volume tie.or.space.prefix | |
657 | + "volume" bibinfo.check * * | |
658 | + series "series" bibinfo.check | |
659 | + duplicate$ empty$ 'pop$ | |
660 | + { emphasize ", " * swap$ * } | |
661 | + if$ | |
662 | + "volume and number" number either.or.check | |
663 | + } | |
664 | + if$ | |
665 | +} | |
666 | +FUNCTION {format.number.series} | |
667 | +{ volume empty$ | |
668 | + { number empty$ | |
669 | + { series field.or.null } | |
670 | + { output.state mid.sentence = | |
671 | + { bbl.number } | |
672 | + { bbl.number capitalize } | |
673 | + if$ | |
674 | + number tie.or.space.prefix "number" bibinfo.check * * | |
675 | + series empty$ | |
676 | + { "there's a number but no series in " cite$ * warning$ } | |
677 | + { bbl.in space.word * | |
678 | + series "series" bibinfo.check * | |
679 | + } | |
680 | + if$ | |
681 | + } | |
682 | + if$ | |
683 | + } | |
684 | + { "" } | |
685 | + if$ | |
686 | +} | |
687 | + | |
688 | +FUNCTION {format.edition} | |
689 | +{ edition duplicate$ empty$ 'skip$ | |
690 | + { | |
691 | + output.state mid.sentence = | |
692 | + { "l" } | |
693 | + { "t" } | |
694 | + if$ change.case$ | |
695 | + "edition" bibinfo.check | |
696 | + " " * bbl.edition * | |
697 | + } | |
698 | + if$ | |
699 | +} | |
700 | +INTEGERS { multiresult } | |
701 | +FUNCTION {multi.page.check} | |
702 | +{ 't := | |
703 | + #0 'multiresult := | |
704 | + { multiresult not | |
705 | + t empty$ not | |
706 | + and | |
707 | + } | |
708 | + { t #1 #1 substring$ | |
709 | + duplicate$ "-" = | |
710 | + swap$ duplicate$ "," = | |
711 | + swap$ "+" = | |
712 | + or or | |
713 | + { #1 'multiresult := } | |
714 | + { t #2 global.max$ substring$ 't := } | |
715 | + if$ | |
716 | + } | |
717 | + while$ | |
718 | + multiresult | |
719 | +} | |
720 | +FUNCTION {format.pages} | |
721 | +{ pages duplicate$ empty$ 'skip$ | |
722 | + { duplicate$ multi.page.check | |
723 | + { | |
724 | + bbl.pages swap$ | |
725 | + n.dashify | |
726 | + } | |
727 | + { | |
728 | + bbl.page swap$ | |
729 | + } | |
730 | + if$ | |
731 | + tie.or.space.prefix | |
732 | + "pages" bibinfo.check | |
733 | + * * | |
734 | + } | |
735 | + if$ | |
736 | +} | |
737 | +FUNCTION {format.journal.pages} | |
738 | +{ pages duplicate$ empty$ 'pop$ | |
739 | + { swap$ duplicate$ empty$ | |
740 | + { pop$ pop$ format.pages } | |
741 | + { | |
742 | + ", " * | |
743 | + swap$ | |
744 | + n.dashify | |
745 | + pages multi.page.check | |
746 | + 'titto.bbl.pages | |
747 | + 'titto.bbl.page | |
748 | + if$ | |
749 | + swap$ tie.or.space.prefix | |
750 | + "pages" bibinfo.check | |
751 | + * * | |
752 | + * | |
753 | + } | |
754 | + if$ | |
755 | + } | |
756 | + if$ | |
757 | +} | |
758 | +FUNCTION {format.journal.eid} | |
759 | +{ eid "eid" bibinfo.check | |
760 | + duplicate$ empty$ 'pop$ | |
761 | + { swap$ duplicate$ empty$ 'skip$ | |
762 | + { | |
763 | + ", " * | |
764 | + } | |
765 | + if$ | |
766 | + swap$ * | |
767 | + } | |
768 | + if$ | |
769 | +} | |
770 | +FUNCTION {format.vol.num.pages} % this function is used only for journal entries | |
771 | +{ volume field.or.null | |
772 | + duplicate$ empty$ 'skip$ | |
773 | + { | |
774 | +% bbl.volume swap$ tie.or.space.prefix | |
775 | + titto.bbl.volume swap$ titto.space.prefix | |
776 | +% rationale for the change above: for journals you don't want "vol." label | |
777 | +% hence it does not make sense to attach the journal number to the label when | |
778 | +% it is short | |
779 | + "volume" bibinfo.check | |
780 | + * * | |
781 | + } | |
782 | + if$ | |
783 | + number "number" bibinfo.check duplicate$ empty$ 'skip$ | |
784 | + { | |
785 | + swap$ duplicate$ empty$ | |
786 | + { "there's a number but no volume in " cite$ * warning$ } | |
787 | + 'skip$ | |
788 | + if$ | |
789 | + swap$ | |
790 | + "(" swap$ * ")" * | |
791 | + } | |
792 | + if$ * | |
793 | + eid empty$ | |
794 | + { format.journal.pages } | |
795 | + { format.journal.eid } | |
796 | + if$ | |
797 | +} | |
798 | + | |
799 | +FUNCTION {format.chapter.pages} | |
800 | +{ chapter empty$ | |
801 | + 'format.pages | |
802 | + { type empty$ | |
803 | + { bbl.chapter } | |
804 | + { type "l" change.case$ | |
805 | + "type" bibinfo.check | |
806 | + } | |
807 | + if$ | |
808 | + chapter tie.or.space.prefix | |
809 | + "chapter" bibinfo.check | |
810 | + * * | |
811 | + pages empty$ | |
812 | + 'skip$ | |
813 | + { ", " * format.pages * } | |
814 | + if$ | |
815 | + } | |
816 | + if$ | |
817 | +} | |
818 | + | |
819 | +FUNCTION {format.booktitle} | |
820 | +{ | |
821 | + booktitle "booktitle" bibinfo.check | |
822 | +} | |
823 | +FUNCTION {format.in.ed.booktitle} | |
824 | +{ format.booktitle duplicate$ empty$ 'skip$ | |
825 | + { | |
826 | +% editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto | |
827 | + editor "editor" format.names duplicate$ empty$ 'pop$ | |
828 | + { | |
829 | + " " * | |
830 | + get.bbl.editor | |
831 | +% capitalize | |
832 | + "(" swap$ * ") " * | |
833 | + * swap$ | |
834 | + * } | |
835 | + if$ | |
836 | + word.in swap$ * | |
837 | + } | |
838 | + if$ | |
839 | +} | |
840 | +FUNCTION {empty.misc.check} | |
841 | +{ author empty$ title empty$ howpublished empty$ | |
842 | + month empty$ year empty$ note empty$ | |
843 | + and and and and and | |
844 | + key empty$ not and | |
845 | + { "all relevant fields are empty in " cite$ * warning$ } | |
846 | + 'skip$ | |
847 | + if$ | |
848 | +} | |
849 | +FUNCTION {format.thesis.type} | |
850 | +{ type duplicate$ empty$ | |
851 | + 'pop$ | |
852 | + { swap$ pop$ | |
853 | + "t" change.case$ "type" bibinfo.check | |
854 | + } | |
855 | + if$ | |
856 | +} | |
857 | +FUNCTION {format.tr.number} | |
858 | +{ number "number" bibinfo.check | |
859 | + type duplicate$ empty$ | |
860 | + { pop$ bbl.techrep } | |
861 | + 'skip$ | |
862 | + if$ | |
863 | + "type" bibinfo.check | |
864 | + swap$ duplicate$ empty$ | |
865 | + { pop$ "t" change.case$ } | |
866 | + { tie.or.space.prefix * * } | |
867 | + if$ | |
868 | +} | |
869 | +FUNCTION {format.article.crossref} | |
870 | +{ | |
871 | + key duplicate$ empty$ | |
872 | + { pop$ | |
873 | + journal duplicate$ empty$ | |
874 | + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } | |
875 | + { "journal" bibinfo.check emphasize word.in swap$ * } | |
876 | + if$ | |
877 | + } | |
878 | + { word.in swap$ * " " *} | |
879 | + if$ | |
880 | + " \cite{" * crossref * "}" * | |
881 | +} | |
882 | +FUNCTION {format.crossref.editor} | |
883 | +{ editor #1 "{vv~}{ll}" format.name$ | |
884 | + "editor" bibinfo.check | |
885 | + editor num.names$ duplicate$ | |
886 | + #2 > | |
887 | + { pop$ | |
888 | + "editor" bibinfo.check | |
889 | + " " * bbl.etal | |
890 | + * | |
891 | + } | |
892 | + { #2 < | |
893 | + 'skip$ | |
894 | + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = | |
895 | + { | |
896 | + "editor" bibinfo.check | |
897 | + " " * bbl.etal | |
898 | + * | |
899 | + } | |
900 | + { | |
901 | + bbl.and space.word | |
902 | + * editor #2 "{vv~}{ll}" format.name$ | |
903 | + "editor" bibinfo.check | |
904 | + * | |
905 | + } | |
906 | + if$ | |
907 | + } | |
908 | + if$ | |
909 | + } | |
910 | + if$ | |
911 | +} | |
912 | +FUNCTION {format.book.crossref} | |
913 | +{ volume duplicate$ empty$ | |
914 | + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ | |
915 | + pop$ word.in | |
916 | + } | |
917 | + { bbl.volume | |
918 | + capitalize | |
919 | + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * | |
920 | + } | |
921 | + if$ | |
922 | + editor empty$ | |
923 | + editor field.or.null author field.or.null = | |
924 | + or | |
925 | + { key empty$ | |
926 | + { series empty$ | |
927 | + { "need editor, key, or series for " cite$ * " to crossref " * | |
928 | + crossref * warning$ | |
929 | + "" * | |
930 | + } | |
931 | + { series emphasize * } | |
932 | + if$ | |
933 | + } | |
934 | + { key * } | |
935 | + if$ | |
936 | + } | |
937 | + { format.crossref.editor * } | |
938 | + if$ | |
939 | + " \cite{" * crossref * "}" * | |
940 | +} | |
941 | +FUNCTION {format.incoll.inproc.crossref} | |
942 | +{ | |
943 | + editor empty$ | |
944 | + editor field.or.null author field.or.null = | |
945 | + or | |
946 | + { key empty$ | |
947 | + { format.booktitle duplicate$ empty$ | |
948 | + { "need editor, key, or booktitle for " cite$ * " to crossref " * | |
949 | + crossref * warning$ | |
950 | + } | |
951 | + { word.in swap$ * } | |
952 | + if$ | |
953 | + } | |
954 | + { word.in key * " " *} | |
955 | + if$ | |
956 | + } | |
957 | + { word.in format.crossref.editor * " " *} | |
958 | + if$ | |
959 | + " \cite{" * crossref * "}" * | |
960 | +} | |
961 | +FUNCTION {format.org.or.pub} | |
962 | +{ 't := | |
963 | + "" | |
964 | + address empty$ t empty$ and | |
965 | + 'skip$ | |
966 | + { | |
967 | + t empty$ | |
968 | + { address "address" bibinfo.check * | |
969 | + } | |
970 | + { t * | |
971 | + address empty$ | |
972 | + 'skip$ | |
973 | + { ", " * address "address" bibinfo.check * } | |
974 | + if$ | |
975 | + } | |
976 | + if$ | |
977 | + } | |
978 | + if$ | |
979 | +} | |
980 | +FUNCTION {format.publisher.address} | |
981 | +{ publisher "publisher" bibinfo.warn format.org.or.pub | |
982 | +} | |
983 | + | |
984 | +FUNCTION {format.organization.address} | |
985 | +{ organization "organization" bibinfo.check format.org.or.pub | |
986 | +} | |
987 | + | |
988 | +FUNCTION {article} | |
989 | +{ output.bibitem | |
990 | + format.authors "author" output.check | |
991 | + add.colon | |
992 | + new.block | |
993 | + format.title "title" output.check | |
994 | + new.block | |
995 | + crossref missing$ | |
996 | + { | |
997 | + journal | |
998 | + "journal" bibinfo.check | |
999 | + "journal" output.check | |
1000 | + add.blank | |
1001 | + format.vol.num.pages output | |
1002 | + format.date "year" output.check | |
1003 | + } | |
1004 | + { format.article.crossref output.nonnull | |
1005 | + format.pages output | |
1006 | + } | |
1007 | + if$ | |
1008 | +% new.block | |
1009 | + format.url output | |
1010 | +% new.block | |
1011 | + format.note output | |
1012 | + fin.entry | |
1013 | +} | |
1014 | +FUNCTION {book} | |
1015 | +{ output.bibitem | |
1016 | + author empty$ | |
1017 | + { format.editors "author and editor" output.check | |
1018 | + add.colon | |
1019 | + } | |
1020 | + { format.authors output.nonnull | |
1021 | + add.colon | |
1022 | + crossref missing$ | |
1023 | + { "author and editor" editor either.or.check } | |
1024 | + 'skip$ | |
1025 | + if$ | |
1026 | + } | |
1027 | + if$ | |
1028 | + new.block | |
1029 | + format.btitle "title" output.check | |
1030 | + crossref missing$ | |
1031 | + { format.bvolume output | |
1032 | + new.block | |
1033 | + new.sentence | |
1034 | + format.number.series output | |
1035 | + format.publisher.address output | |
1036 | + } | |
1037 | + { | |
1038 | + new.block | |
1039 | + format.book.crossref output.nonnull | |
1040 | + } | |
1041 | + if$ | |
1042 | + format.edition output | |
1043 | + format.date "year" output.check | |
1044 | +% new.block | |
1045 | + format.url output | |
1046 | +% new.block | |
1047 | + format.note output | |
1048 | + fin.entry | |
1049 | +} | |
1050 | +FUNCTION {booklet} | |
1051 | +{ output.bibitem | |
1052 | + format.authors output | |
1053 | + add.colon | |
1054 | + new.block | |
1055 | + format.title "title" output.check | |
1056 | + new.block | |
1057 | + howpublished "howpublished" bibinfo.check output | |
1058 | + address "address" bibinfo.check output | |
1059 | + format.date output | |
1060 | +% new.block | |
1061 | + format.url output | |
1062 | +% new.block | |
1063 | + format.note output | |
1064 | + fin.entry | |
1065 | +} | |
1066 | + | |
1067 | +FUNCTION {inbook} | |
1068 | +{ output.bibitem | |
1069 | + author empty$ | |
1070 | + { format.editors "author and editor" output.check | |
1071 | + add.colon | |
1072 | + } | |
1073 | + { format.authors output.nonnull | |
1074 | + add.colon | |
1075 | + crossref missing$ | |
1076 | + { "author and editor" editor either.or.check } | |
1077 | + 'skip$ | |
1078 | + if$ | |
1079 | + } | |
1080 | + if$ | |
1081 | + new.block | |
1082 | + format.btitle "title" output.check | |
1083 | + crossref missing$ | |
1084 | + { | |
1085 | + format.bvolume output | |
1086 | + format.chapter.pages "chapter and pages" output.check | |
1087 | + new.block | |
1088 | + new.sentence | |
1089 | + format.number.series output | |
1090 | + format.publisher.address output | |
1091 | + } | |
1092 | + { | |
1093 | + format.chapter.pages "chapter and pages" output.check | |
1094 | + new.block | |
1095 | + format.book.crossref output.nonnull | |
1096 | + } | |
1097 | + if$ | |
1098 | + format.edition output | |
1099 | + format.date "year" output.check | |
1100 | +% new.block | |
1101 | + format.url output | |
1102 | +% new.block | |
1103 | + format.note output | |
1104 | + fin.entry | |
1105 | +} | |
1106 | + | |
1107 | +FUNCTION {incollection} | |
1108 | +{ output.bibitem | |
1109 | + format.authors "author" output.check | |
1110 | + add.colon | |
1111 | + new.block | |
1112 | + format.title "title" output.check | |
1113 | + new.block | |
1114 | + crossref missing$ | |
1115 | + { format.in.ed.booktitle "booktitle" output.check | |
1116 | + format.bvolume output | |
1117 | + format.chapter.pages output | |
1118 | + new.sentence | |
1119 | + format.number.series output | |
1120 | + format.publisher.address output | |
1121 | + format.edition output | |
1122 | + format.date "year" output.check | |
1123 | + } | |
1124 | + { format.incoll.inproc.crossref output.nonnull | |
1125 | + format.chapter.pages output | |
1126 | + } | |
1127 | + if$ | |
1128 | +% new.block | |
1129 | + format.url output | |
1130 | +% new.block | |
1131 | + format.note output | |
1132 | + fin.entry | |
1133 | +} | |
1134 | +FUNCTION {inproceedings} | |
1135 | +{ output.bibitem | |
1136 | + format.authors "author" output.check | |
1137 | + add.colon | |
1138 | + new.block | |
1139 | + format.title "title" output.check | |
1140 | + new.block | |
1141 | + crossref missing$ | |
1142 | + { format.in.ed.booktitle "booktitle" output.check | |
1143 | + new.sentence % added by titto | |
1144 | + format.bvolume output | |
1145 | + format.pages output | |
1146 | + new.sentence | |
1147 | + format.number.series output | |
1148 | + publisher empty$ | |
1149 | + { format.organization.address output } | |
1150 | + { organization "organization" bibinfo.check output | |
1151 | + format.publisher.address output | |
1152 | + } | |
1153 | + if$ | |
1154 | + format.date "year" output.check | |
1155 | + } | |
1156 | + { format.incoll.inproc.crossref output.nonnull | |
1157 | + format.pages output | |
1158 | + } | |
1159 | + if$ | |
1160 | +% new.block | |
1161 | + format.url output | |
1162 | +% new.block | |
1163 | + format.note output | |
1164 | + fin.entry | |
1165 | +} | |
1166 | +FUNCTION {conference} { inproceedings } | |
1167 | +FUNCTION {manual} | |
1168 | +{ output.bibitem | |
1169 | + author empty$ | |
1170 | + { organization "organization" bibinfo.check | |
1171 | + duplicate$ empty$ 'pop$ | |
1172 | + { output | |
1173 | + address "address" bibinfo.check output | |
1174 | + } | |
1175 | + if$ | |
1176 | + } | |
1177 | + { format.authors output.nonnull } | |
1178 | + if$ | |
1179 | + add.colon | |
1180 | + new.block | |
1181 | + format.btitle "title" output.check | |
1182 | + author empty$ | |
1183 | + { organization empty$ | |
1184 | + { | |
1185 | + address new.block.checka | |
1186 | + address "address" bibinfo.check output | |
1187 | + } | |
1188 | + 'skip$ | |
1189 | + if$ | |
1190 | + } | |
1191 | + { | |
1192 | + organization address new.block.checkb | |
1193 | + organization "organization" bibinfo.check output | |
1194 | + address "address" bibinfo.check output | |
1195 | + } | |
1196 | + if$ | |
1197 | + format.edition output | |
1198 | + format.date output | |
1199 | +% new.block | |
1200 | + format.url output | |
1201 | +% new.block | |
1202 | + format.note output | |
1203 | + fin.entry | |
1204 | +} | |
1205 | + | |
1206 | +FUNCTION {mastersthesis} | |
1207 | +{ output.bibitem | |
1208 | + format.authors "author" output.check | |
1209 | + add.colon | |
1210 | + new.block | |
1211 | + format.btitle | |
1212 | + "title" output.check | |
1213 | + new.block | |
1214 | + bbl.mthesis format.thesis.type output.nonnull | |
1215 | + school "school" bibinfo.warn output | |
1216 | + address "address" bibinfo.check output | |
1217 | + format.date "year" output.check | |
1218 | +% new.block | |
1219 | + format.url output | |
1220 | +% new.block | |
1221 | + format.note output | |
1222 | + fin.entry | |
1223 | +} | |
1224 | + | |
1225 | +FUNCTION {misc} | |
1226 | +{ output.bibitem | |
1227 | + format.authors output | |
1228 | + add.colon | |
1229 | + title howpublished new.block.checkb | |
1230 | + format.title output | |
1231 | + howpublished new.block.checka | |
1232 | + howpublished "howpublished" bibinfo.check output | |
1233 | + format.date output | |
1234 | +% new.block | |
1235 | + format.url output | |
1236 | +% new.block | |
1237 | + format.note output | |
1238 | + fin.entry | |
1239 | + empty.misc.check | |
1240 | +} | |
1241 | +FUNCTION {phdthesis} | |
1242 | +{ output.bibitem | |
1243 | + format.authors "author" output.check | |
1244 | + add.colon | |
1245 | + new.block | |
1246 | + format.btitle | |
1247 | + "title" output.check | |
1248 | + new.block | |
1249 | + bbl.phdthesis format.thesis.type output.nonnull | |
1250 | + school "school" bibinfo.warn output | |
1251 | + address "address" bibinfo.check output | |
1252 | + format.date "year" output.check | |
1253 | +% new.block | |
1254 | + format.url output | |
1255 | +% new.block | |
1256 | + format.note output | |
1257 | + fin.entry | |
1258 | +} | |
1259 | + | |
1260 | +FUNCTION {proceedings} | |
1261 | +{ output.bibitem | |
1262 | + editor empty$ | |
1263 | + { organization "organization" bibinfo.check output | |
1264 | + } | |
1265 | + { format.editors output.nonnull } | |
1266 | + if$ | |
1267 | + add.colon | |
1268 | + new.block | |
1269 | + format.btitle "title" output.check | |
1270 | + format.bvolume output | |
1271 | + editor empty$ | |
1272 | + { publisher empty$ | |
1273 | + { format.number.series output } | |
1274 | + { | |
1275 | + new.sentence | |
1276 | + format.number.series output | |
1277 | + format.publisher.address output | |
1278 | + } | |
1279 | + if$ | |
1280 | + } | |
1281 | + { publisher empty$ | |
1282 | + { | |
1283 | + new.sentence | |
1284 | + format.number.series output | |
1285 | + format.organization.address output } | |
1286 | + { | |
1287 | + new.sentence | |
1288 | + format.number.series output | |
1289 | + organization "organization" bibinfo.check output | |
1290 | + format.publisher.address output | |
1291 | + } | |
1292 | + if$ | |
1293 | + } | |
1294 | + if$ | |
1295 | + format.date "year" output.check | |
1296 | +% new.block | |
1297 | + format.url output | |
1298 | +% new.block | |
1299 | + format.note output | |
1300 | + fin.entry | |
1301 | +} | |
1302 | + | |
1303 | +FUNCTION {techreport} | |
1304 | +{ output.bibitem | |
1305 | + format.authors "author" output.check | |
1306 | + add.colon | |
1307 | + new.block | |
1308 | + format.title | |
1309 | + "title" output.check | |
1310 | + new.block | |
1311 | + format.tr.number output.nonnull | |
1312 | + institution "institution" bibinfo.warn output | |
1313 | + address "address" bibinfo.check output | |
1314 | + format.date "year" output.check | |
1315 | +% new.block | |
1316 | + format.url output | |
1317 | +% new.block | |
1318 | + format.note output | |
1319 | + fin.entry | |
1320 | +} | |
1321 | + | |
1322 | +FUNCTION {unpublished} | |
1323 | +{ output.bibitem | |
1324 | + format.authors "author" output.check | |
1325 | + add.colon | |
1326 | + new.block | |
1327 | + format.title "title" output.check | |
1328 | + format.date output | |
1329 | +% new.block | |
1330 | + format.url output | |
1331 | +% new.block | |
1332 | + format.note "note" output.check | |
1333 | + fin.entry | |
1334 | +} | |
1335 | + | |
1336 | +FUNCTION {default.type} { misc } | |
1337 | +READ | |
1338 | +FUNCTION {sortify} | |
1339 | +{ purify$ | |
1340 | + "l" change.case$ | |
1341 | +} | |
1342 | +INTEGERS { len } | |
1343 | +FUNCTION {chop.word} | |
1344 | +{ 's := | |
1345 | + 'len := | |
1346 | + s #1 len substring$ = | |
1347 | + { s len #1 + global.max$ substring$ } | |
1348 | + 's | |
1349 | + if$ | |
1350 | +} | |
1351 | +FUNCTION {sort.format.names} | |
1352 | +{ 's := | |
1353 | + #1 'nameptr := | |
1354 | + "" | |
1355 | + s num.names$ 'numnames := | |
1356 | + numnames 'namesleft := | |
1357 | + { namesleft #0 > } | |
1358 | + { s nameptr | |
1359 | + "{ll{ }}{ ff{ }}{ jj{ }}" | |
1360 | + format.name$ 't := | |
1361 | + nameptr #1 > | |
1362 | + { | |
1363 | + " " * | |
1364 | + namesleft #1 = t "others" = and | |
1365 | + { "zzzzz" * } | |
1366 | + { t sortify * } | |
1367 | + if$ | |
1368 | + } | |
1369 | + { t sortify * } | |
1370 | + if$ | |
1371 | + nameptr #1 + 'nameptr := | |
1372 | + namesleft #1 - 'namesleft := | |
1373 | + } | |
1374 | + while$ | |
1375 | +} | |
1376 | + | |
1377 | +FUNCTION {sort.format.title} | |
1378 | +{ 't := | |
1379 | + "A " #2 | |
1380 | + "An " #3 | |
1381 | + "The " #4 t chop.word | |
1382 | + chop.word | |
1383 | + chop.word | |
1384 | + sortify | |
1385 | + #1 global.max$ substring$ | |
1386 | +} | |
1387 | +FUNCTION {author.sort} | |
1388 | +{ author empty$ | |
1389 | + { key empty$ | |
1390 | + { "to sort, need author or key in " cite$ * warning$ | |
1391 | + "" | |
1392 | + } | |
1393 | + { key sortify } | |
1394 | + if$ | |
1395 | + } | |
1396 | + { author sort.format.names } | |
1397 | + if$ | |
1398 | +} | |
1399 | +FUNCTION {author.editor.sort} | |
1400 | +{ author empty$ | |
1401 | + { editor empty$ | |
1402 | + { key empty$ | |
1403 | + { "to sort, need author, editor, or key in " cite$ * warning$ | |
1404 | + "" | |
1405 | + } | |
1406 | + { key sortify } | |
1407 | + if$ | |
1408 | + } | |
1409 | + { editor sort.format.names } | |
1410 | + if$ | |
1411 | + } | |
1412 | + { author sort.format.names } | |
1413 | + if$ | |
1414 | +} | |
1415 | +FUNCTION {author.organization.sort} | |
1416 | +{ author empty$ | |
1417 | + { organization empty$ | |
1418 | + { key empty$ | |
1419 | + { "to sort, need author, organization, or key in " cite$ * warning$ | |
1420 | + "" | |
1421 | + } | |
1422 | + { key sortify } | |
1423 | + if$ | |
1424 | + } | |
1425 | + { "The " #4 organization chop.word sortify } | |
1426 | + if$ | |
1427 | + } | |
1428 | + { author sort.format.names } | |
1429 | + if$ | |
1430 | +} | |
1431 | +FUNCTION {editor.organization.sort} | |
1432 | +{ editor empty$ | |
1433 | + { organization empty$ | |
1434 | + { key empty$ | |
1435 | + { "to sort, need editor, organization, or key in " cite$ * warning$ | |
1436 | + "" | |
1437 | + } | |
1438 | + { key sortify } | |
1439 | + if$ | |
1440 | + } | |
1441 | + { "The " #4 organization chop.word sortify } | |
1442 | + if$ | |
1443 | + } | |
1444 | + { editor sort.format.names } | |
1445 | + if$ | |
1446 | +} | |
1447 | +FUNCTION {presort} | |
1448 | +{ type$ "book" = | |
1449 | + type$ "inbook" = | |
1450 | + or | |
1451 | + 'author.editor.sort | |
1452 | + { type$ "proceedings" = | |
1453 | + 'editor.organization.sort | |
1454 | + { type$ "manual" = | |
1455 | + 'author.organization.sort | |
1456 | + 'author.sort | |
1457 | + if$ | |
1458 | + } | |
1459 | + if$ | |
1460 | + } | |
1461 | + if$ | |
1462 | + " " | |
1463 | + * | |
1464 | + year field.or.null sortify | |
1465 | + * | |
1466 | + " " | |
1467 | + * | |
1468 | + title field.or.null | |
1469 | + sort.format.title | |
1470 | + * | |
1471 | + #1 entry.max$ substring$ | |
1472 | + 'sort.key$ := | |
1473 | +} | |
1474 | +ITERATE {presort} | |
1475 | +SORT | |
1476 | +STRINGS { longest.label } | |
1477 | +INTEGERS { number.label longest.label.width } | |
1478 | +FUNCTION {initialize.longest.label} | |
1479 | +{ "" 'longest.label := | |
1480 | + #1 'number.label := | |
1481 | + #0 'longest.label.width := | |
1482 | +} | |
1483 | +FUNCTION {longest.label.pass} | |
1484 | +{ number.label int.to.str$ 'label := | |
1485 | + number.label #1 + 'number.label := | |
1486 | + label width$ longest.label.width > | |
1487 | + { label 'longest.label := | |
1488 | + label width$ 'longest.label.width := | |
1489 | + } | |
1490 | + 'skip$ | |
1491 | + if$ | |
1492 | +} | |
1493 | +EXECUTE {initialize.longest.label} | |
1494 | +ITERATE {longest.label.pass} | |
1495 | +FUNCTION {begin.bib} | |
1496 | +{ preamble$ empty$ | |
1497 | + 'skip$ | |
1498 | + { preamble$ write$ newline$ } | |
1499 | + if$ | |
1500 | + "\begin{thebibliography}{" longest.label * "}" * | |
1501 | + write$ newline$ | |
1502 | + "\providecommand{\url}[1]{\texttt{#1}}" | |
1503 | + write$ newline$ | |
1504 | + "\providecommand{\urlprefix}{URL }" | |
1505 | + write$ newline$ | |
1506 | +} | |
1507 | +EXECUTE {begin.bib} | |
1508 | +EXECUTE {init.state.consts} | |
1509 | +ITERATE {call.type$} | |
1510 | +FUNCTION {end.bib} | |
1511 | +{ newline$ | |
1512 | + "\end{thebibliography}" write$ newline$ | |
1513 | +} | |
1514 | +EXECUTE {end.bib} | |
1515 | +%% End of customized bst file | |
1516 | +%% | |
1517 | +%% End of file `titto.bst'. | |
1518 | + | |
1519 | + | ... | ... |
... | ... | @@ -0,0 +1,93 @@ |
1 | +### Projeto de pequisa - Entrevista | |
2 | + | |
3 | +### Contexto | |
4 | +Entre 2014 e 2016 foi desenvolvida uma plataforma para o Portal do Software Público Brasileiro. O objetivo do projeto era evoluiu um portal já existente adicionando funcionalidades a partir de requisitos préviamente mapeados pelo Ministério do Planejamento. Neste projeto, a plataforma passou a ser formada por diversos sistemas de software livre que foram integrados com a finalidade de atender todos os requisitos e prover facilidades na manutenção e atualização do portal como um todo. O projeto contava com uma equipe de analistas do Ministério do Planejamento, professores-coordenadores da UnB e uma equipe de desenvolvedores formada por alunos-bolsistas da universidade e profissionais do mercado de TI. A equipe do governo tinha sua própria dinâmica de trabalho e processo de desenvolvimento de software guiado por leis e diretrizes da natureza governamental. A equipe de desenvolvedores seguia práticas de desenvolvimento diferentes das do governo. Com auxílio e supervisão de professores (coordenadores do projeto) aplicavam metodólogias mais recentes, estudadas no universo acadêmico, visando melhorar a qualidade e produtividade do produto a ser entregue assim como as relações pessoais entre as equipes. Esta parceria entre duas equipes com processo de desenvolvimento distintos passaram por conflitos e adaptações. Durante os 3 anos de projetos foram pensadas, aplicadas e avaliadas diversas maneiras para conciliar os processos, aprimorar a comunicação e tornar todo o desenvolvimento da plataforma mais claro e transparente para quem acompanhava, gerenciava e desenvolvia a nova plataforma. | |
5 | + | |
6 | +### Qual o Foco: | |
7 | +* Explorar as possíveis maneiras de conciliar equipes com diferentes processos de gerenciamento e desenvolvimento em um projeto. | |
8 | + | |
9 | +### Onde eu estou no (qual a minha posição no contexto do) estudo: | |
10 | +* Trabalhando em um projeto temporário de desenvolvimento de software para o governo | |
11 | + | |
12 | +### Quais experiências anteriores (backgrounds) e crenças podem causar parcialidade (bias): | |
13 | +* Acreditamos que o desenvolvimento ágil é melhor que o desenvolvimento em cascata | |
14 | +* A equipe de desenvolvedores é maior que a equipe de analistas | |
15 | +* Diferenças de experiências de trabalho: iniciativa privada x estado | |
16 | +* Não temos relação com as burocracias internas no governo em relação ao projeto | |
17 | +* Não temos estabilidade no trabalho e o projeto possui tempo limitado (podendo ser precipitadamente cancelado se ocorrem falhas) | |
18 | +* Apesar de todos trabalharem para o sucesso do projeto, não nos sentíamos realmente unidos/ algumas vezes nos sentíamos rivais? | |
19 | +* A equipe de desenvolvedores era majoritáriamente composta por estudantes, sem experiência no mercado de trabalho | |
20 | +* Não participávamos do lado governamental de decisões, estratégias e relatórios. | |
21 | + | |
22 | +### Influências políticas: | |
23 | +* As analistas podem não querer expor os problemas internos ou mostrar descrença ou questionamento sobre seu contexto de trabalho | |
24 | +* Interferência das crenças poíticas/partidárias dos investigadores na relaçào do contexto do projeto e decisões do cliente | |
25 | + | |
26 | +### Questões gerais da pesquisa que queremos responder | |
27 | +1. Como harmonizar equipes com processos distintos de desenvolvimento de software em um mesmo projeto? | |
28 | + * Nível de satisfação dos clientes e motivação dos desenvolvedores (equipe). É possível manter uma equipe motivada e clientes satisfeitos, ambos confortáveis em se comunicar mesmo falando "línguas" diferentes? | |
29 | +2. Como estabelecer uma fronteira entre as questões gerenciais das organizações envolvidas (MPOG e UnB/CDT) e o gestão das equipes de desenvolvimento? | |
30 | + * Estamos argumentando que o processo de gerenciamento do projeto não necessariamente tem que ser o mesmo e influenciar diretamente na metodologia de desenvolvimento de software. | |
31 | + * Filtrar overheads de comunicação entre equipes com mentalidade/metodologia diferente | |
32 | + * "Ceder para vencer" | |
33 | + | |
34 | +---- | |
35 | + | |
36 | +## Entrevista - Questões | |
37 | + | |
38 | +### Perfil pessoal e profissional | |
39 | + | |
40 | +1. Apresentação: Você poderia fazer uma pequena apresentação pessoal e profissional? Nome, idade, formação, tempo de experiência profissional, tempo no MPOG, setor/cargo atual, setor/cargo na época do projeto. | |
41 | +2. A exemplo do SPB, quais projetos de desenvolvimento de software em parceria entre MPOG e outras instituições você trabalhou? | |
42 | +3. Quais semelhanças e diferenças você consegue identificar entre estes projetos e o SPB? | |
43 | +4. O SPB foi sua primeira experiência de desenvolvimento de software em parceria com uma universidade? Quais vantagens e desvantagens você consegue identificar neste tipo de parceria? | |
44 | + | |
45 | +### Sobre o Projeto SPB | |
46 | + | |
47 | +#### Organização | |
48 | + | |
49 | +5. Inicialmente, como foi estruturado e organizado o projeto? Como era feita a comunicação, acompanhamento? Quem eram os atores/interlocutores? | |
50 | +6. Quais mudanças ocorreram ao longo do projeto em relação a sua formatação inicial? | |
51 | + 7. Para você essas mudanças foram positivas ou negativas? Porque? | |
52 | + 8. Você sentiu dificuldade em se adaptar a estas mudanças? Quais? | |
53 | +9. Ocorreram mudanças no decorrer do projeto em relação aos requisitos iniciais da plataforma? Se sim, você poderia citar algumas? Porque a mudança foi necessária? | |
54 | + 10. Como você descreveria a adaptação da equipe de desenvolvimento da UnB em relação a mudança dos requisitos? | |
55 | +11. Como eram realizadas as reuniões de planejamento de uma release? Onde, quem participava, quais objetivos, o que se discutia, quais dificuldades... | |
56 | +12. Como era feito o acompanhamento do desenvolvimento da release? | |
57 | +13. O planejamento e acompanhamento realizado no projeto era semelhante ao do MPOG? | |
58 | + 14. AS diferenças impactavam no desempenho do seu trabalho? Se sim, de que maneira? | |
59 | + | |
60 | +#### Comunicação | |
61 | + | |
62 | +15. De que maneira/por qual meio, você interagia com a equipe da UnB? Quem eram as pessoas/papéis na equipe da UnB que você mais interagia? | |
63 | +16. Você interagia com os seniors do projeto? Quando essas interações ocorriam, qual meio de comunicação era utilizado e qual era o motivo deste contato? | |
64 | +17. Você interagia com os alunos do projeto? Quando essas interações ocorriam, qual meio de comunicação era utilizado e qual era o motivo deste contato? | |
65 | +18. Como você pode descrever a comunicação entre o MPOG e a coordenação da equipe da UnB? | |
66 | +19. Como você pode descrever a comunicação entre o MPOG e a equipe de desenvolvimento? | |
67 | +20. Na organização da equipe de desenvolvimento, foram criados times específicos para cada software integrante da plataforma. Você se sentia atualizada com essas mudanças? Você sabia quem era quem durante a comunicação/interação? Você acredita que este conhecimento era importante / influênciava nas suas atividades de acompanhamento do projeto? | |
68 | +21. Ao longo do projeto, você sentiu que a comunicação melhorou ou piorou entre MPOG e equipe de desenvolvimento? A que fatores se deve isso? | |
69 | + 22. Você consegue se recordar de alguma interação entre as equipes que foi negativa ou difícil de lidar? | |
70 | + 24. Você consegue se recordar de algumas interação que foi positiva ou suave/esclarecedora? | |
71 | + | |
72 | +#### Metodologia de entrega/processo de desenvolvimento | |
73 | + | |
74 | +25. Em linhas gerais, como é o processo de desenvolvimento de software no MPOG? Como e quando são definidas os requisitos do software, como é feito o acompanhamento e como é feita a validação/homologação? | |
75 | +26. Como foi feita a concepção, o processo de desenvolvimento e manutenção da antiga plataforma do SPB? | |
76 | +27. Quais diferenças existiam entre este processo interno e o processo realizado pela equipe da UnB? | |
77 | + 28. Quais dificuldades/conflitos entre o processo de desenvolvimento do MPOG e do time da UnB eram mais impactantes para o trabalho/responsabilidade de vocês no MPOG? O que foi feito para amenizar este impacto? | |
78 | + 29. O processo incremental de desenvolvimento lhe trazia dificuldades ou incômodos? Por exemplo? | |
79 | +30. Na sua opinião, foi possível conciliar o processo de desenvolvimento mantido pelo MPOG e o processo de desenvolvimento mantido pela UnB? O que foi necessário adaptar para conciliar o que era exigido internamente pelo MPOG e as informações coletadas durante o desenvolvimento? | |
80 | +31. Ao longo do projeto, o MPOG passou a estar com mais frequência na universidade e participar presencialmente no laboratório das reuniões de planejamento e entrega. Quais vantagens e desvantagens você via nessa interação? Isso impactou de alguma maneira a qualidade o feedback e validação das funcionalidades? | |
81 | +32. Na homologação de uma entrega, como você descreveria a capacidade da equipe em corrigir/modificar uma funcionalidade a partir dos feedbacks do MPOG? | |
82 | +33. Em geral, qual era a satisfação do MPOG em relação ao que tinha sido planejado e o que foi entrega no final de cada release? Porque? | |
83 | + | |
84 | +#### A plataforma do SPB | |
85 | +34. Quão satisfeitos o MPOG e os usuários estavam em relação a plataforma anterior? Ela atendia os requisitos previamente planejado? Quais eram as principais queixas/novas solcitações? | |
86 | +35. Como você descreveria a plataforma desenvolvida para o SPB? | |
87 | +36. Você acha que a complexidade da plataforma está condizente com as suas funcionalidades? | |
88 | +37. Você teve dificuldade em compreender as ferramentas ou a plataforma como um todo? Exemplos? | |
89 | +38. Você sente confiança em relação ao código entregue? | |
90 | +39. Você sente confiança em relação as funcionalidades da plataforma? | |
91 | + | |
92 | +#### Considerações finais | |
93 | +40. Se você tivesse que avaliar uma futura parceria entre MPOG e universidade, quais pontos você estaria mais atenta e porque? Quais conselhos você daria a equipe do MPOG que faria o acompanhamento do projeto? | ... | ... |