Moved revised porting model in new chapter

This commit is contained in:
Lucian Popescu 2022-06-19 13:55:09 +03:00
parent ca6413771f
commit 5975d0ff33
3 changed files with 95 additions and 44 deletions

View File

@ -42,35 +42,33 @@ the new environment, solving possible inconsistencies and making sure that the
software system behaves in a well defined manner when ran in the new software system behaves in a well defined manner when ran in the new
environment. environment.
Mooney's model is very simplistic regarding the tasks that can occur during Mooney's model is very simplistic regarding the tasks that can occur during a
a porting process. From his model, and from the work of Hakuta and Ohminami~ porting process. Hakuta and Ohminami~ \cite{hakuta}, and Tanaka et
\cite{hakuta}, and Tanaka et al.~\cite{tanaka} a more accurate model can be created that al.~\cite{tanaka} created a more accurate model that reflects better components
reflects better the components involved in porting an application. We also added involved in porting an application. The tasks involved in their model are the
our input in this model based on the needs of our project.\todo{does this fit following:
here?}\lm{I would suggest sticking to the original model here. What is the exact diff between the original and what you added? I think the new items should be added in another (separate?) chapter.} Finally, the improvised model of porting has the following structure:
\begin{itemize} \begin{itemize}
\item Advance preparations \item Advance preparations
\begin{itemize} \begin{itemize}
\item Surveying development environment \item Surveying development environment
\item Surveying target OS \item Surveying OS
\item Surveying program for porting \item Surveying program for porting
\item Surveying documentation \item Surveying workstation development environment
\item Adjusting development environment
\item Adjusting target environment \item Adjusting target environment
\item Initial source code modifications \item Initial source code modifications
\end{itemize} \end{itemize}
\item Building for target environment \item Workstation testing
\begin{itemize} \begin{itemize}
\item Build system triggering and modification \item Standalone testing on workstation
\item Installation on remote environment \item Linked testing on workstation
\item Reviewing inconsistencies between source and remote
environments
\item Solving problems with external dependencies
\end{itemize} \end{itemize}
\item Testing \item Target testing
\begin{itemize} \begin{itemize}
\item Testing in simulated environment \item File-making
\item Testing in target environment \item File system creation
\item Installation on target
\item Test program creation
\item Linked test on target
\end{itemize} \end{itemize}
\item General duties \item General duties
\begin{itemize} \begin{itemize}
@ -80,32 +78,11 @@ here?}\lm{I would suggest sticking to the original model here. What is the exact
\end{itemize} \end{itemize}
\end{itemize} \end{itemize}
In \textit{Advance preparations} the developer familiarizes with the tools, They emphasize on spending additional time on getting familiar with the system
environments and the program to be ported, and also adjusts the development and and only then starting to port the application per se. Testing is conducted in a
target environments for creating and testing the program to be ported. Finally, workstation environment (that is, testing the builds on the local machine or in
if needed, the developer also makes \textit{Initial source code modifications} a local simulator/emulator) and in the target environment. Finally they also
that reflect the modification of the source environment to the new target include non-technical duties as documentation, tracking and discussions.
environment (e.g., modification in system call numbers and error
numbers~\cite{callahanopenbsd}).
In the second task of \textit{Building for target environment} the developer
focuses on three issues: compiling the code to generate binaries for the
target environment, installing the code in the target environment and solving
the inconsistencies between the source and target environment.
The previous task and \textit{Testing} are the core of the porting process, they
deliver the ported application that operates in the target environment.
Testing is of two types in this model. The application can either be tested in a
simulated environment for convenience (e.g., hardware is not available at the
moment of testing) or can be tested directly in the target environment.
Furthermore this tasks includes implicitly the time allocated for setting up the
testing environment.
The last task, that is \textit{General duties}, encompasses subtask related to
human interaction activities. In this part of the project the developer focuses
on delivering documents that describe the process of porting or other
information relevant to the project and focuses on planning and discussing
aspects with regards to difficulties encountered during the process.
\section{Porting costs and factors} \section{Porting costs and factors}

View File

@ -30,6 +30,7 @@
\input{introduction} \input{introduction}
\input{background} \input{background}
\input{new-porting-model}
\input{porting-ixos} \input{porting-ixos}
\input{evaluation} \input{evaluation}
\input{discussions} \input{discussions}

73
src/new-porting-model.tex Normal file
View File

@ -0,0 +1,73 @@
\chapter{A revised porting model} \label{sec:revised-porting-model}
Given that the model of porting presented in Chapter~\ref{sec:background} was
crafted for the particular use case of one project~\cite{tanaka} and we wanted
to use a more general porting model, we revised the old porting model and
modified it so that it could match more porting projects.
In the revised model, we keep the \textit{General duties} and \textit{Advance
preparations} tasks and modify the \textit{Workstation testing} and
\textit{Target testing}. We do these changes because we want to emhpasize the
allocated time between testing and development with the \textit{Building for
target environment} and \textit{Testing} tasks.
Following is the revised model:
\begin{itemize}
\item Advance preparations
\begin{itemize}
\item Surveying development environment
\item Surveying target OS
\item Surveying program for porting
\item Surveying documentation
\item Adjusting development environment
\item Adjusting target environment
\item Initial source code modifications
\end{itemize}
\item Building for target environment
\begin{itemize}
\item Build system triggering and modification
\item Installation on remote environment
\item Reviewing inconsistencies between source and remote
environments
\item Solving problems with external dependencies
\end{itemize}
\item Testing
\begin{itemize}
\item Testing in simulated environment
\item Testing in target environment
\end{itemize}
\item General duties
\begin{itemize}
\item Documentation
\item Progress tracking
\item Discussions
\end{itemize}
\end{itemize}
In \textit{Advance preparations} the developer familiarizes with the tools,
environments and the program to be ported, and also adjusts the development and
target environments for creating and testing the program to be ported. Finally,
if needed, the developer also makes \textit{Initial source code modifications}
that reflect the modification of the source environment to the new target
environment (e.g., modification in system call numbers and error
numbers~\cite{callahanopenbsd}).
In the second task of \textit{Building for target environment} the developer
focuses on three issues: compiling the code to generate binaries for the
target environment, installing the code in the target environment and solving
the inconsistencies between the source and target environment.
The previous task and \textit{Testing} are the core of the porting process, they
deliver the ported application that operates in the target environment.
Testing is of two types in this model. The application can either be tested in a
simulated environment for convenience (e.g., hardware is not available at the
moment of testing) or can be tested directly in the target environment.
Furthermore this tasks includes implicitly the time allocated for setting up the
testing environment.
The last task, that is \textit{General duties}, encompasses subtask related to
human interaction activities. In this part of the project the developer focuses
on delivering documents that describe the process of porting or other
information relevant to the project and focuses on planning and discussing
aspects with regards to difficulties encountered during the process.