瀏覽代碼

Update analysis table

master
Wouter Horlings 4 年之前
父節點
當前提交
cbd31323d7
共有 2 個檔案被更改,包括 18 行新增109 行删除
  1. +1
    -0
      .gitignore
  2. +17
    -109
      content/analysis.tex

+ 1
- 0
.gitignore 查看文件

@@ -1,3 +1,4 @@
/*.rro /*.rro
/*.pdf /*.pdf
graphics/*.pdf graphics/*.pdf
*.xmpdata

+ 17
- 109
content/analysis.tex 查看文件

@@ -51,28 +51,6 @@ The second part is the Development Cycle, which contains the features selection,
The best alternative is materialized in a design document together with the system requirements. The best alternative is materialized in a design document together with the system requirements.
This design document is used in the next phase of the design. This design document is used in the next phase of the design.


%\section{Rapid Iterative Design Method}
% From this point, the design plan is based on the \ac{ridm} and not anymore on the waterfall model.
% The first step is the feature definition, which prepares the required features based on the initial design.
% The features are defined by splitting the system in such a way that the results of each implemented feature are testable.
% The definition of the feature contains a description and a set of sub-requirements which is used to implement and test the feature.
% During the feature definition, the dependencies, risks and time resources are determined as well, this establishes the order of implementation in the feature selection step.
%
% Based on the requirements of \ac{ridm} as explained in \autoref{chap:background}, the next step is the feature selection.
% However, it became apparent that the number of tests related to a specific feature is a good metric for the selection step.
% Because, at the point that a feature is implemented, the tests are completed as well, and when the tests of the complete system pass, the system meets the requirements.
% Following the \ac{ridm}, these tests are specified at the start of the rapid development cycle.
% This makes it impossible to use the tests during the feature selections.
% Therefore, a test protocol step is added after the feature definition and before the feature selection step.
%
% The third step is the feature selection, where one of the features is selected.
% This selection is based on the dependencies, tests, risk, and time requirements in the feature definitions.
% The fourth step is the rapid development cycle, which uses the sub-requirements and description of the selected feature to create an initial design and a minimal implementation.
% In the last step, the variable-detail approach is used to add detail to the minimal implementation over the course of multiple iterations.
% The tests are used to determine if the added detail does not introduce any unexpected behavior.
% This cycle of adding detail and testing is repeated till the feature is fully implemented.
% From this point, the \ac{ridm} is repeated from the third step until all features are implemented.

\subsection{Feature Definition} \subsection{Feature Definition}
\label{sec:featuredefinition} \label{sec:featuredefinition}
During the feature definition step, the initial design is split into features as preparation for the rapid development cycle and the variable-detail approach. During the feature definition step, the initial design is split into features as preparation for the rapid development cycle and the variable-detail approach.
@@ -113,80 +91,6 @@ The second part is the Development Cycle, which contains the features selection,
For example, having a mobile robot arm near a coffee machine does meet the hardware requirements, it does not have any functionality if that is not yet implemented. For example, having a mobile robot arm near a coffee machine does meet the hardware requirements, it does not have any functionality if that is not yet implemented.
This also creates a clear division for the developer as the functions cannot be mixed with the hardware. This also creates a clear division for the developer as the functions cannot be mixed with the hardware.


%
%
%
%
%
%
%
%
%
%
%
% As explained in the previous chapter, the goal of the \ac{ridm} is to get feedback on the design as early as possible.
% To achieve this, the design is split into features, and each feature is implemented and tested sequentially.
% Resulting in smaller development cycles that are tested individually.
% If a feature fails its test it occurs directly after its implementation, instead of when the full system is implemented.
% The goal of this step is to apportion the system into features.
% Each feature must be small but independent, meaning that the feature can still be individually implemented and tested.
%
% In some cases it is not possible to define a feature that can be implemented and tested independently.
% This occurs when the feature is dependent on the implementation of other features.
% This dependency can occur in requirements where, for example, strength of one feature limits the mass of another feature.
% Such a dependency can work both ways and can be resolved by strengthening one feature, or reduce the mass of the other feature.
% Another type of dependency is when the implementation influences other features.
% In this case, if the implementation of one feature changes, it requires a change in the other features.
% An example of this is a robot arm, where the type of actuation strongly influences the end-effector.
% When the robot arm approaches an item horizontally, it requires a different end-effector than approaching the item vertically.
%
% \subsubsection{Feature Hierarchy}
%
%
%
%
%
% %%%%%%%% ->
% There are two important responsibilities for the developer when the design encounters feature dependency.
% The first one is that the developer must determine where to split the system.
%
% In case of a dependency, the developer must evaluate the optimal order of implementation.
% The developer must arrange the dependency of the features such that the influence on the dependent feature is as small as possible.
% In other words, if feature A can be easily adapted to the implementation of feature B, but not the other way around, the developer must go for A dependent on B.
% The second responsibility is organizing the feature requirements.
% Due to these dependencies it is possible that the division of requirements changes, because the result of the implemented feature was not as expected.
% This is not directly a problem, but a good administration of the requirements makes an update of these requirements easier.
%
%
%
%
%
%
%
% To achieve these short cycles, the features that are implemented in these cycles, are as small as possible.
% However, the features must still be implemented and tested individually during the implementation and can thus not be split indefinitely.
% Together with the definition of the features, the requirements are divided along the features as well.
% The optimal strategy on splitting features and requirements is strongly dependent on the type of system.
% Therefore, the best engineering judgement of the developer the best tool available.
%
% In some cases it is not possible to define a feature that can be implemented and tested independently.
% This occurs when the feature is dependent on the implementation of other features.
% This dependency can occur in requirements, where strength of one feature dictates the maximum mass of another feature.
% Such a dependency can work both ways and can be resolved by strengthening the one feature, or reduce the weight of the other feature.
% Another type of dependency is when the implementation influences other features.
% In this case, if the implementation of one feature changes, it requires a change in the other features.
% An example of this is a robot arm, where the type of actuation strongly influences the end-effector.
% When the robot arm approaches an item horizontally, it requires a different end-effector than approaching the item vertically.
%
% There are two important responsibilities for the developer when the design encounters feature dependency.
% The first one is during the definition, where the developer has to decide on how to split the system and how the dependency is stacked.
% For the requirement and the implementation dependency the developer must evaluate the optimal order of dependency.
% The developer must arrange the dependency of the features such that the influence on the dependent feature is as small as possible.
% In other words, if feature A can be easily adapted to the implementation of feature B, but not the other way around, the developer must go for A dependent on B.
% The second responsibility is organizing the feature requirements.
% Due to these dependencies it is possible that the division of requirements changes, because the result of the implemented feature was not as expected.
% This is not directly a problem, but a good administration of the requirements makes an update of these requirements easier.

\subsection{Test protocol} \subsection{Test protocol}
\label{sec:systemtesting} \label{sec:systemtesting}
During the rapid development cycle and the variable-detail approach, the system is tested constantly. During the rapid development cycle and the variable-detail approach, the system is tested constantly.
@@ -224,20 +128,24 @@ The second part is the Development Cycle, which contains the features selection,
\caption{Dependency graph for features.} \caption{Dependency graph for features.}
\label{fig:feature_dependency} \label{fig:feature_dependency}
\end{marginfigure} \end{marginfigure}
\begin{table*}[]
\begin{table}[]
\caption{Comparison of features with their corresponding \ac{cof} and time. \caption{Comparison of features with their corresponding \ac{cof} and time.
The last column is the \ac{cof} value divided by the number of days.}
\label{tab:feature_selection}
\begin{tabular}{l|r|r|r|r|r|}
\cline{2-6}
& \multicolumn{1}{l|}{Dependees} & \multicolumn{1}{l|}{Tests} & \multicolumn{1}{p{0.13\paperwidth}|}{\acl{cof} (\acs{cof})} & \multicolumn{1}{l|}{Time} & \multicolumn{1}{p{0.13\paperwidth}|}{Change of Failure over time} \\ \hline
\multicolumn{1}{|l|}{Feat. A} & 2 (B, C) & 2 & 15 \% & 3 days & 5 \\ \hline
\multicolumn{1}{|l|}{Feat. B} & 0 & 3 & 40 \% & 5 days & 8 \\ \hline
\multicolumn{1}{|l|}{Feat. C} & 1 (E) & 5 & 25 \% & 2 days & 12.5 \\ \hline
\multicolumn{1}{|l|}{Feat. D} & 0 & 4 & 15 \% & 1 day & 15 \\ \hline
\multicolumn{1}{|l|}{Feat. E} & 0 & 4 & 45 \% & 6 days & 7.5 \\ \hline
\end{tabular}
\end{table*}
The last column is the \ac{cof} value divided by the planned number of days.}
\label{tab:feature_selection}
\rowcolors{2}{lightgray}{white!100}
\begin{tabular}{lrrrrr}
\cline{2-6}
\toprule
& \multicolumn{1}{l}{Dependees} & \multicolumn{1}{l}{Tests} & \multicolumn{1}{l}{\ac{cof}} & \multicolumn{1}{l}{Time} & \multicolumn{1}{l}{\ac{cof} over time} \\
\midrule
\multicolumn{1}{l}{Feat. A} & $2$ (B, C) & $2$ & $15 \%$ & $3$ days & $5$ \\
\multicolumn{1}{l}{Feat. B} & $0$ & $3$ & $40 \%$ & $5$ days & $8$ \\
\multicolumn{1}{l}{Feat. C} & $1$ (E) & $5$ & $25 \%$ & $2$ days & $12.5$ \\
\multicolumn{1}{l}{Feat. D} & $0$ & $4$ & $15 \%$ & $1$ day & $15$ \\
\multicolumn{1}{l}{Feat. E} & $0$ & $4$ & $45 \%$ & $6$ days & $7.5$ \\
\bottomrule
\end{tabular}
\end{table}


To determine the order of implementation of features, a dependency graph and a comparison table is made. To determine the order of implementation of features, a dependency graph and a comparison table is made.
The dependency graph and the comparison table for a theoretic system is shown in \autoref{fig:feature_dependency} and \autoref{tab:feature_selection} respectively. The dependency graph and the comparison table for a theoretic system is shown in \autoref{fig:feature_dependency} and \autoref{tab:feature_selection} respectively.


Loading…
取消
儲存