docs/diploma
changeset 86:24068a091af7
backuped and removed requirements part; moved part 2 back
author | meillo@marmaro.de |
---|---|
date | Thu, 13 Nov 2008 15:06:40 +0100 |
parents | a6aa37e12dff |
children | 5bcfece02327 |
files | thesis/pieces/requirements.tex thesis/tex/2-BecomingProjectLeader.tex thesis/tex/2-FreeSoftwareProjects.tex thesis/tex/2-ProjectManagement.tex thesis/tex/3-BecomingProjectLeader.tex thesis/tex/3-FreeSoftwareProjects.tex thesis/tex/3-ProjectManagement.tex thesis/tex/3-Requirements.tex thesis/tex/3-SecurityIssues.tex thesis/tex/3-Usecases.tex thesis/thesis.tex |
diffstat | 11 files changed, 185 insertions(+), 159 deletions(-) [+] |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/thesis/pieces/requirements.tex Thu Nov 13 15:06:40 2008 +0100 1.3 @@ -0,0 +1,38 @@ 1.4 +\chapter{Use cases} 1.5 + 1.6 +Here follow typical use cases for \masqmail. If other \MTA{}s are better suited for certain use cases, it will be mentioned. The use cases are prestage for defining the requirements. 1.7 + 1.8 +%FIXME: rewrite! 1.9 +% How do I write use cases?? 1.10 +% Are use cases the right tool for what I need, at all?? 1.11 + 1.12 +The user writes email with one of the common programs (e.g. \path{/bin/mail} or \name{mutt}). \masqmail\ must provide an interface, to that prepared mail can be handled over. 1.13 + 1.14 +\masqmail\ must deliver mail to its destination. 1.15 + 1.16 +Mail must be send with different settings, if someone uses more than one internet connection. 1.17 + 1.18 +If the machine is offline, no mail, destinated to the internet, must be send. It needs to be queued until an online connection gets established. 1.19 + 1.20 +If the computer goes online, all mail for outside destinations, should be send through the active route. 1.21 + 1.22 +Local mail should be send at once, independent of the online state. 1.23 + 1.24 +\masqmail\ may act as \NAME{SMTP} server. To receive email from other hosts. 1.25 + 1.26 +Mail for local users should be delivered by \masqmail\ itself or passed to \name{mail delivery agent}s. 1.27 + 1.28 +\masqmail\ needs to provide the same interface as \sendmail\ has, for being a drop-in replacement. 1.29 + 1.30 + 1.31 +%TODO: add Schaeffter's ideas here 1.32 +\chapter{Requirements} 1.33 + 1.34 +\section{Structure} 1.35 +\section{Security} 1.36 +\section{Usability} 1.37 +\chapter{Security issues} 1.38 + 1.39 +%TODO: write about: 1.40 +% #ifdefs in code 1.41 +% the single setuid root binary
2.1 --- a/thesis/tex/2-BecomingProjectLeader.tex Wed Nov 12 18:03:36 2008 +0100 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,4 +0,0 @@ 2.4 -\chapter{Becoming project leader} 2.5 -\section{History of \masqmail} 2.6 -\section{Taking it} 2.7 -
3.1 --- a/thesis/tex/2-FreeSoftwareProjects.tex Wed Nov 12 18:03:36 2008 +0100 3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 3.3 @@ -1,127 +0,0 @@ 3.4 -\chapter{About \freesw\ projects} 3.5 - 3.6 -% http://www.faqs.org/docs/artu/ 3.7 - 3.8 -There are several differences between \freesw\ projects and projects about proprietary software. 3.9 -To understand \freesw\ projects, one needs to understand \freesw\ itself first. 3.10 - 3.11 -\section{About \freesw} 3.12 -The term ``Free Software'' was coined by the \name{Free Software Foundation} (short: \NAME{FSF}), founded by Richard~M.\ Stallman (known as ``RMS'') in 1985. 3.13 -Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL). Its first version was written by Stallman in 1989. 3.14 -One could say, the \GPL\ catalized the \name{Free Software movement}. 3.15 - 3.16 -% http://www.fsf.org/about/what-is-free-software 3.17 - 3.18 -After all, the \GPL\ was not the first \freesw\ license used. 3.19 -The \name{MIT License} (or \name{X Consortium License}) for example is older; published in 1988. 3.20 -Licenses providing the same rights have been used since long time ago. 3.21 -But none of them was so often (re)used by other projects---thus gattering less awareness. 3.22 -Further more was the \GPL\ created to be a \emph{general} license for all kinds of programs, unlike most other licenses written for one particular program. 3.23 - 3.24 -\freesw\ gives freedoms to its users. 3.25 -In contrast to proprietary software restricting the users freedom. 3.26 -The freedoms (or rights) the user has are stated in the \name{Free Software Definition} of the \NAME{FSF}. Namely these are: 3.27 -% http://www.gnu.org/philosophy/free-sw.html 3.28 -% http://www.fsf.org/licensing/essays/free-sw.html 3.29 -\begin{enumerate} 3.30 - \item The freedom to run the program, for any purpose (freedom 0). 3.31 - \item The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. 3.32 - \item The freedom to redistribute copies so you can help your neighbor (freedom 2). 3.33 - \item The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this. 3.34 -\end{enumerate} 3.35 - 3.36 - 3.37 -\section{The term ``Open Source''} 3.38 -\name{Open Source Software} often stands for the same as \freesw. 3.39 -But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people. 3.40 - 3.41 -\name{Open Source Software} is a subset of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free. 3.42 - 3.43 -% http://www.gnu.org/philosophy/open-source-misses-the-point.html 3.44 -% http://catb.org/~esr/open-source.html 3.45 - 3.46 - 3.47 -\section{Development of \freesw} 3.48 -Having source code available and the right to modify it, encouridges programmers to actually do so. 3.49 -Their modifications are manifoldly. 3.50 -Some tailor the software to their needs. 3.51 -Some add features. 3.52 -Some do it just for fun. 3.53 -There are no limitations---whoever wants to, may work on it. 3.54 - 3.55 -Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software. 3.56 -The process of development is watchable by everyone. 3.57 - 3.58 -The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public. 3.59 - 3.60 -Eric~S.\ Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral} \cite{catb}. 3.61 - 3.62 -The following text will focus on the ``bazaar'' model. 3.63 - 3.64 - 3.65 -\section{The role of the community} 3.66 -\freesw\ projects rise and fall with their community! 3.67 - 3.68 -Most \freesw\ programs are developed by a very small group of programmers, often only one person. 3.69 -But they are used by many people. 3.70 -In between the programmers and the users, are people located who are a bit of both. 3.71 -These are the ones that write documentation, find bugs and probably even fix it. 3.72 -They discuss on mailing lists, bulletin boards and \NAME{IRC} chats. 3.73 -The program is often spread by their ``advertising''. 3.74 - 3.75 -The \emph{community} consists of the actual developers and all users that contribute to the program. 3.76 -Contribution can be one of the described ways, or others like providing a server for the project website for example. 3.77 - 3.78 -\emph{Community} is everyone who is in contact through the project. 3.79 -Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted. 3.80 - 3.81 -There will hardly be a community if no communication channels are available. 3.82 -If the development team does not provide them, there is a chance that encouraged users set them up on their own. 3.83 -But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?) 3.84 - 3.85 -Projects without a good community tend to die sooner or later. 3.86 - 3.87 - 3.88 -\section{Evolution of a community} 3.89 -Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning. 3.90 -He starts developing. 3.91 -When others get in contact with the project, there may be some who are so much interested that they start co-developing. 3.92 -Others report bugs, and some only use the program. 3.93 - 3.94 -After some time, one will find a small group of core developers, a larger group of contributers (bugs, patches, documentation) and a very large group of users. 3.95 -The size ratio of the groups vary by type of project. 3.96 - 3.97 -One should have that in mind, when starting a \freesw\ project. 3.98 - 3.99 - 3.100 -\section{Creating a strong community} 3.101 -Building up a good community needs some effort of the main developers. 3.102 -%TODO: search for documents about this topic 3.103 - 3.104 -First communication channels need to be set up, to enable the growth of a community. 3.105 - 3.106 -Second, development should be visible by everyone who is interested in it. 3.107 -Time between work done on the project and its visibility to the public should be kept short. 3.108 -This makes it interesting for other developers to join. 3.109 -Developers are the core of a community. 3.110 - 3.111 -Third, there is a rule of thumb that should be followed: ``Release early, release often!'' \cite{catb}. 3.112 -Releases are (more) stable versions, primary for users. 3.113 -They should be created, frequently. 3.114 -People will more likely use programs of active projects. 3.115 - 3.116 -Fourth, the developers should try to get the users ``in the boat''. 3.117 -Good communities have a large group of users that do not only receive, but also give something back to the project. 3.118 -The project leaders should motivate users to contribute. 3.119 -This unlocks a big work force and gets lot of unexiting work done. 3.120 - 3.121 -Fifth, documentation matters. 3.122 -Good documentation makes it easy for users and developers to start. 3.123 -And it helps to avoid a lot of unsatisfaction. 3.124 -Documentation is something that shows quality and that people care about the project. 3.125 - 3.126 -And sixth, project leaders should be good souvereigns. 3.127 -They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders. 3.128 - 3.129 -Not to forget: Every work that was done, every contribution that was made and every idea received needs to be honored in an appropriate way! 3.130 -Volunteer work lives by acknowledgement of the effort spent.
4.1 --- a/thesis/tex/2-ProjectManagement.tex Wed Nov 12 18:03:36 2008 +0100 4.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 4.3 @@ -1,8 +0,0 @@ 4.4 -\chapter{Project management} 4.5 -\section{Infrastructure} 4.6 -\section{Community} 4.7 -\section{Development} 4.8 -\section{Documentation} 4.9 -\section{Quality assurance} 4.10 -\section{Distribution} 4.11 -
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/thesis/tex/3-BecomingProjectLeader.tex Thu Nov 13 15:06:40 2008 +0100 5.3 @@ -0,0 +1,4 @@ 5.4 +\chapter{Becoming project leader} 5.5 +\section{History of \masqmail} 5.6 +\section{Taking it} 5.7 +
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/thesis/tex/3-FreeSoftwareProjects.tex Thu Nov 13 15:06:40 2008 +0100 6.3 @@ -0,0 +1,127 @@ 6.4 +\chapter{About \freesw\ projects} 6.5 + 6.6 +% http://www.faqs.org/docs/artu/ 6.7 + 6.8 +There are several differences between \freesw\ projects and projects about proprietary software. 6.9 +To understand \freesw\ projects, one needs to understand \freesw\ itself first. 6.10 + 6.11 +\section{About \freesw} 6.12 +The term ``Free Software'' was coined by the \name{Free Software Foundation} (short: \NAME{FSF}), founded by Richard~M.\ Stallman (known as ``RMS'') in 1985. 6.13 +Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL). Its first version was written by Stallman in 1989. 6.14 +One could say, the \GPL\ catalized the \name{Free Software movement}. 6.15 + 6.16 +% http://www.fsf.org/about/what-is-free-software 6.17 + 6.18 +After all, the \GPL\ was not the first \freesw\ license used. 6.19 +The \name{MIT License} (or \name{X Consortium License}) for example is older; published in 1988. 6.20 +Licenses providing the same rights have been used since long time ago. 6.21 +But none of them was so often (re)used by other projects---thus gattering less awareness. 6.22 +Further more was the \GPL\ created to be a \emph{general} license for all kinds of programs, unlike most other licenses written for one particular program. 6.23 + 6.24 +\freesw\ gives freedoms to its users. 6.25 +In contrast to proprietary software restricting the users freedom. 6.26 +The freedoms (or rights) the user has are stated in the \name{Free Software Definition} of the \NAME{FSF}. Namely these are: 6.27 +% http://www.gnu.org/philosophy/free-sw.html 6.28 +% http://www.fsf.org/licensing/essays/free-sw.html 6.29 +\begin{enumerate} 6.30 + \item The freedom to run the program, for any purpose (freedom 0). 6.31 + \item The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. 6.32 + \item The freedom to redistribute copies so you can help your neighbor (freedom 2). 6.33 + \item The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this. 6.34 +\end{enumerate} 6.35 + 6.36 + 6.37 +\section{The term ``Open Source''} 6.38 +\name{Open Source Software} often stands for the same as \freesw. 6.39 +But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people. 6.40 + 6.41 +\name{Open Source Software} is a subset of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free. 6.42 + 6.43 +% http://www.gnu.org/philosophy/open-source-misses-the-point.html 6.44 +% http://catb.org/~esr/open-source.html 6.45 + 6.46 + 6.47 +\section{Development of \freesw} 6.48 +Having source code available and the right to modify it, encouridges programmers to actually do so. 6.49 +Their modifications are manifoldly. 6.50 +Some tailor the software to their needs. 6.51 +Some add features. 6.52 +Some do it just for fun. 6.53 +There are no limitations---whoever wants to, may work on it. 6.54 + 6.55 +Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software. 6.56 +The process of development is watchable by everyone. 6.57 + 6.58 +The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public. 6.59 + 6.60 +Eric~S.\ Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral} \cite{catb}. 6.61 + 6.62 +The following text will focus on the ``bazaar'' model. 6.63 + 6.64 + 6.65 +\section{The role of the community} 6.66 +\freesw\ projects rise and fall with their community! 6.67 + 6.68 +Most \freesw\ programs are developed by a very small group of programmers, often only one person. 6.69 +But they are used by many people. 6.70 +In between the programmers and the users, are people located who are a bit of both. 6.71 +These are the ones that write documentation, find bugs and probably even fix it. 6.72 +They discuss on mailing lists, bulletin boards and \NAME{IRC} chats. 6.73 +The program is often spread by their ``advertising''. 6.74 + 6.75 +The \emph{community} consists of the actual developers and all users that contribute to the program. 6.76 +Contribution can be one of the described ways, or others like providing a server for the project website for example. 6.77 + 6.78 +\emph{Community} is everyone who is in contact through the project. 6.79 +Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted. 6.80 + 6.81 +There will hardly be a community if no communication channels are available. 6.82 +If the development team does not provide them, there is a chance that encouraged users set them up on their own. 6.83 +But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?) 6.84 + 6.85 +Projects without a good community tend to die sooner or later. 6.86 + 6.87 + 6.88 +\section{Evolution of a community} 6.89 +Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning. 6.90 +He starts developing. 6.91 +When others get in contact with the project, there may be some who are so much interested that they start co-developing. 6.92 +Others report bugs, and some only use the program. 6.93 + 6.94 +After some time, one will find a small group of core developers, a larger group of contributers (bugs, patches, documentation) and a very large group of users. 6.95 +The size ratio of the groups vary by type of project. 6.96 + 6.97 +One should have that in mind, when starting a \freesw\ project. 6.98 + 6.99 + 6.100 +\section{Creating a strong community} 6.101 +Building up a good community needs some effort of the main developers. 6.102 +%TODO: search for documents about this topic 6.103 + 6.104 +First communication channels need to be set up, to enable the growth of a community. 6.105 + 6.106 +Second, development should be visible by everyone who is interested in it. 6.107 +Time between work done on the project and its visibility to the public should be kept short. 6.108 +This makes it interesting for other developers to join. 6.109 +Developers are the core of a community. 6.110 + 6.111 +Third, there is a rule of thumb that should be followed: ``Release early, release often!'' \cite{catb}. 6.112 +Releases are (more) stable versions, primary for users. 6.113 +They should be created, frequently. 6.114 +People will more likely use programs of active projects. 6.115 + 6.116 +Fourth, the developers should try to get the users ``in the boat''. 6.117 +Good communities have a large group of users that do not only receive, but also give something back to the project. 6.118 +The project leaders should motivate users to contribute. 6.119 +This unlocks a big work force and gets lot of unexiting work done. 6.120 + 6.121 +Fifth, documentation matters. 6.122 +Good documentation makes it easy for users and developers to start. 6.123 +And it helps to avoid a lot of unsatisfaction. 6.124 +Documentation is something that shows quality and that people care about the project. 6.125 + 6.126 +And sixth, project leaders should be good souvereigns. 6.127 +They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders. 6.128 + 6.129 +Not to forget: Every work that was done, every contribution that was made and every idea received needs to be honored in an appropriate way! 6.130 +Volunteer work lives by acknowledgement of the effort spent.
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/thesis/tex/3-ProjectManagement.tex Thu Nov 13 15:06:40 2008 +0100 7.3 @@ -0,0 +1,8 @@ 7.4 +\chapter{Project management} 7.5 +\section{Infrastructure} 7.6 +\section{Community} 7.7 +\section{Development} 7.8 +\section{Documentation} 7.9 +\section{Quality assurance} 7.10 +\section{Distribution} 7.11 +
8.1 --- a/thesis/tex/3-Requirements.tex Wed Nov 12 18:03:36 2008 +0100 8.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 8.3 @@ -1,5 +0,0 @@ 8.4 -\chapter{Requirements} 8.5 - 8.6 -\section{Structure} 8.7 -\section{Security} 8.8 -\section{Usability}
9.1 --- a/thesis/tex/3-SecurityIssues.tex Wed Nov 12 18:03:36 2008 +0100 9.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 9.3 @@ -1,5 +0,0 @@ 9.4 -\chapter{Security issues} 9.5 - 9.6 -%TODO: write about: 9.7 -% #ifdefs in code 9.8 -% the single setuid root binary
10.1 --- a/thesis/tex/3-Usecases.tex Wed Nov 12 18:03:36 2008 +0100 10.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3 @@ -1,2 +0,0 @@ 10.4 -\chapter{Use cases} 10.5 -
11.1 --- a/thesis/thesis.tex Wed Nov 12 18:03:36 2008 +0100 11.2 +++ b/thesis/thesis.tex Thu Nov 13 15:06:40 2008 +0100 11.3 @@ -33,15 +33,15 @@ 11.4 \include{tex/1-Comparision} 11.5 \include{tex/1-Masqmail} 11.6 11.7 +%\part{} 11.8 +%\include{tex/2-} 11.9 +%\include{tex/2-} 11.10 +%\include{tex/2-} 11.11 + 11.12 \part{The masqmail project} 11.13 -\include{tex/2-FreeSoftwareProjects} 11.14 -\include{tex/2-BecomingProjectLeader} 11.15 -\include{tex/2-ProjectManagement} 11.16 - 11.17 -\part{Requirements} 11.18 -\include{tex/3-Usecases} 11.19 -\include{tex/3-Requirements} 11.20 -\include{tex/3-SecurityIssues} 11.21 +\include{tex/3-FreeSoftwareProjects} 11.22 +\include{tex/3-BecomingProjectLeader} 11.23 +\include{tex/3-ProjectManagement} 11.24 11.25 \part{Implementation} 11.26 \include{tex/4-ProjectManagement}