|
|
|
@@ -0,0 +1,118 @@ |
|
|
|
%&tex |
|
|
|
\chapter{Improved Design Method} |
|
|
|
\label{chap:improvements} |
|
|
|
\rro{Introduce} |
|
|
|
\rroi{Preliminairy design required complete new approach} |
|
|
|
\rroi{Better tooling} |
|
|
|
\section{System Baseline} |
|
|
|
The preliminary design phase is not a competent approach for the initial design of a physical system. |
|
|
|
In the waterfall-like approach each step is completely wrapped up before moving to the next step. |
|
|
|
Every subsequent step provides more and more information about the design. |
|
|
|
The information gives often insight in what could have been done better. |
|
|
|
Although it is possible to review previous completed steps, there is quite a barrier to revise these steps. |
|
|
|
Redoing previous work is demotivating and will be avoided as much as possible. |
|
|
|
\rrotodo{Fix these citations} |
|
|
|
This \emph{cost of change} is an inherent problem of the waterfall model \autocite{alshamrani, adenowo, petersen} |
|
|
|
|
|
|
|
The development was confronted with this decision during the feature definition step in \autoref{sec:featuredefinition}. |
|
|
|
The term feature is used for the different characteristics of the system. |
|
|
|
Were these features map adequately to specifications and software, it does not represents hardware components. |
|
|
|
Taking the following items from a single branch in \autoref{fig:robmosys}: |
|
|
|
\begin{enumerate} |
|
|
|
\item Draw a tweet on a whiteboard |
|
|
|
\item Writing |
|
|
|
\item Write a char at position |
|
|
|
\item Move Marker on board |
|
|
|
\item SCARA |
|
|
|
\end{enumerate} |
|
|
|
The first four items are characteristics of the system, where the first item is an abstract description of the complete system. |
|
|
|
The subsequent items become more specific with each step. |
|
|
|
The links between each subsequent item could be described "to perform this feature it is required that system can". |
|
|
|
These items are derived from the design specification, but are also useful as software. |
|
|
|
Item 4 would be the software implementation of the motor driver. |
|
|
|
This motor driver is called by the arm controller that is implement for item 3. |
|
|
|
The outlier in this list is the SCARA, it is not a sub-feature of \emph{Move marker on board}. |
|
|
|
The SCARA has motors, mechanical linkage, sensors, as sub-components, but it is not a feature. |
|
|
|
|
|
|
|
This was a known shortcoming during the case study. |
|
|
|
One of the solutions that was discussed was to build a feature dependency tree with an iterative approach. |
|
|
|
Each iteration of the design process would only cover one level of the dependency tree. |
|
|
|
The first iteration would thus deliver specifications, initial design, order of operations, and tests for the mission level: "Draw a tweet on a whiteboard". |
|
|
|
Followed by the second level which would repeat everything for \emph{Writing} and \emph{Wiping}. |
|
|
|
This approach would probably be better that the current approach in the feature definition. |
|
|
|
It would however require to review all the previous steps and rewrite most of the design method. |
|
|
|
Furthermore, it was estimated that the additional effort required to restart the design process would negatively impact the overall evaluation of the design method. |
|
|
|
Nevertheless is it required to find an improved design method. |
|
|
|
|
|
|
|
The iterative design would help generate a better method, but it still generates a single dependency tree. |
|
|
|
Therefore can only cover one type of dependency. |
|
|
|
\textcite{kordon_model-based_2007} presents their \ac{mbed} that is used for two development projects within NASA's Jet Propulsion Lab. |
|
|
|
The \ac{mbed} introduces a system hierarchy that separates the dependencies over three trees: specifications, functions, and components. |
|
|
|
Additionally it adds interfaces, that connect different sub-components, and operational scenarios to this hierarchy. |
|
|
|
The hierarchy is constructed iterative where each iteration generates a new level of sub-specifications, sub-functions and sub-components. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The term feature was used as a universal concept for design features, hardware features and software features. |
|
|
|
|
|
|
|
This led to problems while creating a list of features. |
|
|
|
This led to problems during the feature definition step. |
|
|
|
The aim of the approach was to create a list of features. |
|
|
|
Due to the different nature of the features it was impossible to create a single list of features. |
|
|
|
Making a list for each group of features would result in problems with the selection of the features. |
|
|
|
|
|
|
|
The problem with the features became apparent during the feature definition step in \autoref{sec:featuredefinition}. |
|
|
|
|
|
|
|
|
|
|
|
Another problem is the waterfall-like approach. |
|
|
|
|
|
|
|
A possible solution that was discussed during the feature definition step in \autoref{sec:featuredefinition}. |
|
|
|
The current steps are strongly detached from each other. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\rro{In general, I underestimated the importance of the preliminary research} |
|
|
|
\rroi{\textcite{broenink_rapid_2019} also skips this part.} |
|
|
|
\rroi{As the focus of that paper was on the actual implementation, the preliminary phase was over looked} |
|
|
|
\rroii{However, bringing a system into being, the preliminary design phase is extremely important} |
|
|
|
\rro{For validation \textcite{garrett_322_2000} suggests:} |
|
|
|
\rroi{Looking at comparable systems' specifications} |
|
|
|
\rroi{Use of best engineering judgements} |
|
|
|
\rroi{Apply early simulation results for feedback} |
|
|
|
\rroi{A holistic view is required for validation of the initial design/specifications} |
|
|
|
\rro{Without mechanical experience is difficult} |
|
|
|
\rro{Better specification document is a team effort} |
|
|
|
\rroi{A team with engineers in their own specific field that is included in the design} |
|
|
|
\rro{\textcite{sheard_718_1998} discusses:} |
|
|
|
\rroi{Mechanical requirements are directly derived from and bounded by physics} |
|
|
|
\rro{Result: Mechanical specifications are easier to change} |
|
|
|
\rroi{More room for initial simulations, before making concrete specs} |
|
|
|
\section{Feature Separation} |
|
|
|
\rro{During the case study, the planned approach was not possible} |
|
|
|
\rro{Result: Improvised a structure that was loosly based on Robmosys} |
|
|
|
\rro{Proposed Improvement: Split layout for requirements, functions and components from State Analysis \textcite{kordon_model-based_2007}.} |
|
|
|
|
|
|
|
\rro{Instead of trying to start with a feature, a holistic model of essential elements should be created} |
|
|
|
\rroi{In the holistic basic model, review the features/components on their feasibility} |
|
|
|
\rroii{How likely is it that this specific component is going to work: And if not, what are the consequences? What do we need to change?} |
|
|
|
\rroi{Then add detail to the different subcomponents of that model} |
|
|
|
|
|
|
|
\section{Tooling} |
|
|
|
\rro{20-sim lacks an object oriented approach} |
|
|
|
\rroi{Adding detail to a submodel that is used more than once is a PITA} |
|
|
|
\rroi{Every model is a deepcopy} |
|
|
|
|