Moved revised porting model in new chapter
This commit is contained in:
parent
ca6413771f
commit
5975d0ff33
|
@ -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}
|
||||||
|
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue