Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

148 rindas
12KB

  1. %&tex
  2. \chapter{Analysis}
  3. \label{chap:analysis}
  4. \begin{marginfigure}
  5. \centering
  6. \includegraphics[width=6cm]{graphics/design_flow.pdf}
  7. \caption{Overview of the design flow, split in two phases: Preliminary Design and the \ac{ridm}.}
  8. \label{fig:design_flow_analysis}
  9. \end{marginfigure}
  10. The previous chapter introduced how two design methods are combined to form the bases for one complete design method.
  11. In this chapter, a design plan is created from this combined design method.
  12. The goal is to have a concrete design plan that can be used in the case study.
  13. All of the steps in the design plan must be specific such that each of these steps can be evaluated after the case study is finished.
  14. The first three steps of the design phase are based on the \ac{se} approach and are already described with great extend by \textcite{blanchard_systems_2014}.
  15. As the evaluation of \ac{se} is not in the scope of this thesis, this chapter only covers the minimal description of the design steps in \ac{se}.
  16. The steps that are introduced by \ridm are covered in more detail.
  17. \section{Systems Engineering}
  18. The goal of the preliminary design is to setup system requirements and an initial design according to the problem definition.
  19. Although these design steps in \ac{se} play a crucial roll in the success of the development, they are, however, very exhaustive.
  20. A major part of this complete design process is the required documentation to ensure agreement about the design between the different stakeholders.
  21. Resulting in a process that can take months or even years, which is not feasible for this thesis.
  22. In this thesis, this design plan is only used for evaluation and will have only one stakeholder, the author.
  23. This allows for a simple implementation of the \ac{se} approach, as it not possible to create a false start due to misunderstanding, saving valuable time.
  24. For each of these \ac{se} steps is explained what is involved with a full implementation, and what part of the step is used in the design plan.
  25. \subsection{Problem Definition}
  26. Before any design process can start, the "problem" has to be defined.
  27. In other words, why is the function of the system needed?
  28. This is described in a \emph{statement of the problem}.
  29. In this statement of the problem it is important to describe "what" has to be solved, not directly "how".
  30. \textcite{blanchard_systems_2014} also note that "defining the problem is often the most difficult part of the process".
  31. It is important to ensure good communication and understanding between the different stakeholders.
  32. Otherwise, it is possible that the designed product is not up to the customers expectations.
  33. It furthermore involves defining the subjects like what are the primary and secondary functions? When must this be accomplished? What is not a function?
  34. For this thesis, however, the problem definition is limited to a short statement of the problem, covering some required functions with corresponding requirements.
  35. \subsection{System Requirements}
  36. The system requirements are derived from the problem definition, and describe the characteristics of the system.
  37. As these characteristics form the foundation of the system, the requirements must be defined without any ambiguity, vagueness or complexity.
  38. The requirements will be written according to the \ac{ears} \autocite{mavin_easy_2009}.
  39. \ac{ears} was chosen for this design method due to its simplicity, which fits the scope of this thesis.
  40. Later in the design, these requirements are divided over the subsystems.
  41. Any issues, like ambiguity, in the requirements, propagate through these subsystems.
  42. This might lead to a redesign of multiple sub-systems when these requirements have to be updated.
  43. \subsection{Initial Design}
  44. In the initial design step, the "what has to be solved", is expanded with a solution on "how it is solved".
  45. To find the best solution it is important to explore the different solutions and design space.
  46. Often, there are many possible alternatives but they must be narrowed down to the solutions that fit within the schedule and available resources.
  47. This step results in one initial design that can be used in the next phase of the design.
  48. \section{Rapid Iterative Design Method}
  49. From this point, the design plan is based on the \ridm and not anymore on the waterfall model.
  50. The first step is the feature definition, which prepares the required features based on the initial design.
  51. The features are defined by splitting the system in such a way that the results of each implemented feature are testable.
  52. The definition of the feature contains a description and a set of sub-requirements which is used to implement and test the feature.
  53. 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.
  54. The second step is the feature selection, where one of the features is selected.
  55. This selection is based on the dependencies, risk, and time requirements in the feature definitions.
  56. The third step is the rapid development cycle, which uses the sub-requirements and description of the selected feature to create an initial design, a minimal implementation and tests.
  57. In the last step, the variable detail approach is used to add detail to the minimal implementation over multiple iterations.
  58. The tests are used to determine if the added detail does not introduce any unexpected behavior.
  59. This cycle of adding detail and testing is repeated till the feature is fully implemented.
  60. From this point, the \ridm is repeated from the second step until all features are implemented.
  61. \subsection{Feature Definition}
  62. \label{sec:featuredefinition}
  63. During the feature definition, the system will be split into features as preparation for the rapid development cycle and the variable-detail approach.
  64. The aim of the \ridm is to have short implementation cycles to have early testing feedback.
  65. To achieve this, the features are as small as possible, but can still be implemented and tested individually.
  66. Together with the definition of the features, the requirements are divided along the features as well.
  67. The optimal strategy on splitting features and specifications is strongly dependent on the type of system.
  68. Therefore, the best engineering judgement of the developer the best tool available.
  69. Sometimes features are dependent on each other, the implementation of one feature influences another.
  70. This dependency can occur in specifications, where strength of one feature dictates the maximum mass of another feature.
  71. Such a dependency can work both ways and can be resolved by strengthening the one feature, or reduce the weight of the other feature.
  72. Another type of dependency is when the implementation influences other features.
  73. In this case, if the implementation of one feature changes, it requires a change in the other features.
  74. An example of this is a robot arm, where the type of actuation strongly influences the end-effector.
  75. When the robot arm approaches an item horizontally, the end-effector will be different than approaching the item vertically.
  76. Due to these dependencies it is possible that the division of requirements changes, because the result of the implemented feature was not as expected.
  77. This is not directly a problem, but a good administration of the requirements makes an update of the requirements easier.
  78. \subsection{Feature Selection}
  79. \label{sec:feature_selection}
  80. The rapid development cycle does not specify which feature should be implemented first, even though the order of implementation does change the feasibility of the complete development.
  81. An example that shows the importance of the order of features is the development of a car.
  82. To have a critical damped suspension in a car, the weight distribution of the car must be known.
  83. If the suspension of the car is designed before all the features that determine the weight distribution, it is likely that the suspension design is not up to specifications.
  84. Resulting in a redesign of the suspension feature and thus increasing the overall development cost.
  85. This example is caused by the dependency between different features.
  86. For the design plan, the order of implementation of features will be determined by the following rules:
  87. \begin{enumerate}
  88. \item Features that are dependencies of others must be implemented first.
  89. \item Features that complete more system test than other features when implemented have priority.
  90. \item Features with the higher \emph{risk per time} score than other features have priority.
  91. \end{enumerate}
  92. The risk per time score for third rule is calculated by dividing the risk score with the time score.
  93. The goal of this score is to eliminate as much risk as possible in the least amount of time.
  94. It seems logic to always implement the highest risk feature first, but it is possible that within that feature multiple lower risk features can be finished.
  95. This is visible in \autoref{tab:feature_selection}: In a time span of 6 days it is possible to implement feature E or features A, C, and D.
  96. The risk that is cleared by E is 45 \% which is significantly less than the combined 65 \% of A, C and D.
  97. Due to the limited scope of this thesis, it is not possible to give a good metric for determining risk and time.
  98. Nevertheless, it is strongly advised that the developer defines some metric that fits his project best.
  99. \begin{marginfigure}
  100. \centering
  101. \includegraphics[width=2.9cm]{graphics/feature_dependency.pdf}
  102. \caption{Dependency graph for features.}
  103. \label{fig:feature_dependency}
  104. \end{marginfigure}
  105. \begin{table}[]
  106. \caption{Comparison of features with their corresponding risk and time.
  107. The last column is the risk value divided by the number of days.}
  108. \label{tab:feature_selection}
  109. \begin{tabular}{l|r|r|r|r|r|}
  110. \cline{2-6}
  111. & \multicolumn{1}{l|}{Dependees} & \multicolumn{1}{l|}{Tests} & \multicolumn{1}{l|}{Risk} & \multicolumn{1}{l|}{Time} & \multicolumn{1}{l|}{Risk per time} \\ \hline
  112. \multicolumn{1}{|l|}{Feat. A} & 2 (2, 3) & 2 & 15 \% & 3 days & 5 \\ \hline
  113. \multicolumn{1}{|l|}{Feat. B} & 0 & 3 & 40 \% & 5 days & 8 \\ \hline
  114. \multicolumn{1}{|l|}{Feat. C} & 1 (5) & 5 & 25 \% & 2 days & 12.5 \\ \hline
  115. \multicolumn{1}{|l|}{Feat. D} & 0 & 4 & 15 \% & 1 day & 15 \\ \hline
  116. \multicolumn{1}{|l|}{Feat. E} & 0 & 4 & 45 \% & 6 days & 7.5 \\ \hline
  117. \end{tabular}
  118. \end{table}
  119. Looking at an example of 5 features:
  120. As seen in \autoref{fig:feature_dependency}, Features B and C are dependent on feature A.
  121. Feature D does not have any dependency connections, and feature E is dependent on C.
  122. Together with the information in \autoref{tab:feature_selection}, the order of implementation is:
  123. \begin{description}
  124. \item[Feature A:] has two features that are dependent on this feature, more than any other.
  125. \item[Feature C:] has one feature that is dependent on this feature, most dependencies after A is implemented.
  126. \item[Feature D:] has the same number of tests as E, but D has a significant higher risk per time score than E
  127. \item[Feature E:] has the most number of tests.
  128. \item[Feature B:] only one left to be implemented.
  129. \end{description}
  130. \subsection{Rapid Development Cycle}
  131. \subsection{Variable Approach}