docs/diploma

changeset 242:aff94e950f39

minor stuff in ch04
author meillo@marmaro.de
date Sun, 11 Jan 2009 15:38:39 +0100
parents 2c56f26758eb
children 655e0a2f8ca6
files thesis/input/requirements.tex thesis/tex/4-MasqmailsFuture.tex thesis/thesis.sty
diffstat 3 files changed, 18 insertions(+), 5 deletions(-) [+]
line diff
     1.1 --- a/thesis/input/requirements.tex	Sun Jan 11 14:07:48 2009 +0100
     1.2 +++ b/thesis/input/requirements.tex	Sun Jan 11 15:38:39 2009 +0100
     1.3 @@ -24,4 +24,6 @@
     1.4  	\RG9: Portability        & - & -{}- & -{}-{}- \\
     1.5  	\RG10: Usability         & + & -{}- & - \\
     1.6  	\hline
     1.7 +	Modularity         & ++ & ++ & ++++ \\
     1.8 +	\hline
     1.9  \end{tabular}
     2.1 --- a/thesis/tex/4-MasqmailsFuture.tex	Sun Jan 11 14:07:48 2009 +0100
     2.2 +++ b/thesis/tex/4-MasqmailsFuture.tex	Sun Jan 11 15:38:39 2009 +0100
     2.3 @@ -203,9 +203,11 @@
     2.4  
     2.5  
     2.6  
     2.7 -\subsection{Architectural requirements}
     2.8 +\subsection{Thoughts about architecture}
     2.9  \label{sec:discussion-mta-arch}
    2.10  
    2.11 +%todo: what's this section to do with requirements?
    2.12 +
    2.13  \masqmail's current architecture is monolithic like \sendmail's and \exim's. But more than the other two, is it one block of interweaved code. \exim\ has a highly structured code with many internal interfaces, a good example is the one for authentication ``modules''. %fixme: add ref
    2.14  \sendmail\ provides now, with its \name{milter} interface, standardized connection channels to external modules.
    2.15  \masqmail\ has none of them; it is what \sendmail\ was in the beginning: a single large block.
    2.16 @@ -235,10 +237,9 @@
    2.17  
    2.18  Modularity is also needed to satisfy modern \MTA\ requirements, in providing a clear interface to add functionality without increasing the overall complexity much.
    2.19  
    2.20 -Modularity is a goal that, if achieved, has positive influence on other important properties like security, testability, extendability, maintainability, and not least simplicity. These quality properties then, on their part, make achieving the functional requirements easier.
    2.21 +Modularity is no direct requirement, but a goal that has positive influence on important requirements like security, testability, extendability, maintainability, and not least simplicity. These quality properties then, on their part, make achieving the functional requirements easier.
    2.22  
    2.23 -Hence, aspiration for modularity, by compartmentalization, leads to improvement of the overall quality of the software. It is an architectural requirement for a secure and modern \MTA.
    2.24 -
    2.25 +Hence, aspiration for modularity, by compartmentalization, improves the overall quality and function of the software. It can be seen as an architectural requirement for a secure and modern \MTA.
    2.26  
    2.27  
    2.28  
    2.29 @@ -320,6 +321,11 @@
    2.30  
    2.31  
    2.32  
    2.33 +\paragraph{Modularity}
    2.34 +Modularity---the important architectural goal---is currently not existent in \masqmail's code. The whole source is interweaved.
    2.35 +
    2.36 +
    2.37 +
    2.38  
    2.39  
    2.40  
    2.41 @@ -332,7 +338,7 @@
    2.42  		\input{input/requirements.tex}
    2.43  	\end{center}
    2.44  	\caption{Importance of and pending work for requirements}
    2.45 -	\label{tab:requirents}
    2.46 +	\label{tab:requirements}
    2.47  \end{table}
    2.48  
    2.49  The importance is ranked from `-{}-' (not important) to `++' (very important). The pending work is ranked from `-{}-' (nothing) to `++' (very much). Large work tasks with high importance need to receive much attention, they are in focus. In contrast should small low importance work receive few attention. Here the attention/focus a task should get is calculated by summing up the importance and the pending work with equal weight. Normally, tasks with high focus are the ones of high priority and should be done first.
    2.50 @@ -357,6 +363,7 @@
    2.51  
    2.52  \subsubsection*{\TODO4: Reliability (\RG2)}
    2.53  Reliability is also to improve. It is a key quality property for an \MTA, and not good enough in \masqmail. Reliability is strong related to the queue, thus improvements there are favorable. Applying ideas of \name{crash-only software} \cite{candea03} will be a good step. \person{Candea} and \person{Fox} see in killing the process the best way to stop a running program. Doing so inevitably demands for good reliability of the queue, and the startup inevitably demands for good recovery. The critical situations for reliability are nothing special anymore, they are common. Hence they are regulary tested and will definately work.
    2.54 +% persistence, database
    2.55  
    2.56  \subsubsection*{\TODO5: Spam handling (\RF8)}
    2.57  As authentication can be a guard against spam, filter facilities have lower priority. But basic spam filtering and interfaces for external tools should be implemented in future.
    2.58 @@ -377,8 +384,10 @@
    2.59  Performance is a property that is nice to have. But as performance improvements are in contrast to many other quality properties (reliability, maintainability, usability, capability \cite[page~5]{kan03}), jeopardizing these to gain some more performance should not be done. \person{Kernighan} and \person{Pike} state clear: ``[T]he first principle of optimization is \emph{don't}.''\cite[page~165]{kernighan99}. \masqmail\ is not a program to be used on large servers, but on small devices. Thus important for \masqmail\ could be energy and heat saving, maybe also system resources, but not performance. Anyway, simplicity and clearness are of higher value.
    2.60  
    2.61  Portability among the various flavors of \unix\ systems is a goal, because these systems are the ones \MTA{}s run on usually. Portability problems with non-\unix\ platforms are primary expected to come from file systems lacking required features. But no special care should be taken here.
    2.62 +% unix fs on windows
    2.63  
    2.64  Configuration could be eased more, by providing configuration generators to be able to use \masqmail\ right ``out of the box'' after running one of several configuration scripts for common setups. This would improve \masqmail's usability for not technical educated people.
    2.65 +% masqmail as portable app?
    2.66  
    2.67  
    2.68  
     3.1 --- a/thesis/thesis.sty	Sun Jan 11 14:07:48 2009 +0100
     3.2 +++ b/thesis/thesis.sty	Sun Jan 11 15:38:39 2009 +0100
     3.3 @@ -59,6 +59,8 @@
     3.4  	\newcommand{\TODO}{\NAME{TODO}\,}
     3.5  	\newcommand{\RF}{\NAME{RF}\,}
     3.6  	\newcommand{\RG}{\NAME{RG}\,}
     3.7 +	\newcommand{\RA}{\NAME{RA}\,}
     3.8 +	\newcommand{\St}{\NAME{S}\,}
     3.9  
    3.10  	\newcommand{\nth}{\textsuperscript{th}}
    3.11  	\newcommand{\st}{\textsuperscript{st}}