Thought about system by Hiroyasu Ishikawa

We are uncovering better ways of developing system.

ICONIXプロセスのその後を追ってみた

ロバストネス分析とその後の並列アジャイル

数年前にロバストネス分析について記事にした.
hiroi.hateblo.jp

この分析を含むICONIXプロセスを世に展開,下記を執筆されたDoug Rosenburgさんがその後にどんな活動をされているかを調べてみた.
Use Case Driven Object Modeling with UML: A Practical Approach (Addison-Wesley Object Technology Series)
すると近年は「並列アジャイル(Parallel Agile)」と呼ばれるものについて展開されているらしい.

なぜロバストネス分析のその後が気になったのか

どうやらつい先日,astahのセミナーでICONIXプロセスが紹介されたらしい.

そして,その後の平鍋さんがまとめられた記事で私の以前の記事が触れられていた.
anagileway.com

たまたま上の記事をtwitterで見かけ,ロバストネス分析ICONIXプロセスのことを思い出した.そのついでにICONIXプロセスってその後どうなったのだろう,と気になり少し調べてみたので記録しておく.

並列アジャイルの文献とか

さっと調べた限り,2本の論文(ArticleとSpecial Issue Paper)が見つかった.

The parallel agile process: Applying parallel processing techniques to software engineering
まず,新しい方の論文について.Abstractから後述の論文と比較して,VR/ARゲーム開発における適用が追加されている.また,Abstractの以下の記述にあるように,並列開発がキーとなっているアジャイル開発プロセスとなっているようだ.

The paper summarizes the overall challenge of software schedule compression, identifies managed parallel development as generally the most powerful but least‐ practiced strategy for schedule compression, and summarizes the key elements required to support parallelism.

Rapid, evolutionary, reliable, scalable system and software development: the resilient agile process
本論文は古い方ではあるが,以下にある通り,並列アジャイル(この時点ではResilient Agileと呼称)を進化させた経緯が記載されている様である.こちらから読んだ方がより理解が進むかもしれないと感じた.

This paper summarizes our experience in defining and evolving RA by applying it to three representative emergent-technology applications

まだポチッてもいないのだが,今年(2020年初頭)には,書籍も執筆・発行されている.
Parallel Agile book — available NOW! | by Doug Rosenberg | Parallel Agile Blog | Medium

読んでみた結果,これは!となったらまた追って記事にしようと思う.

C++バブルソートのコード

バブルソートのコードをC++で実装したものを以下に示す。

#include <utility>

void bubble_sort(int target[], int len)
{
    bool goon = true;
    while (goon)
    {
        goon = false;
        for (int i = len - 1; i > 0; i--)
        {
            if (target[i - 1] > target[i])
            {
                std::swap(target[i - 1], target[i]);             
                goon = true;
            }
        }
    }
}

ROSの複数のワークスペースを読み込む

とある開発で複数のワークスペースを扱うようになった。
分散開発とか複数人で開発しているとか、色々な場面が考えられるが、そんな時何も考えずにsetup.bash叩くと最初に読み込んだワークスペースが見えなくなってしまう。

$ source ~/2nd_ws/devel/setup.bash

これでOKらしい。

$ source ~/1st_ws/devel/setup.bash
$ cd ~/2nd_ws/
$ catkin_make
$ source ~/2nd_ws/devel/setup.bash

参考

wiki.ros.org

Ubuntuのディスクをバックアップして復元する

Clonezillaを使って、ディスク(パーティション)をコピーして、復元した。

Clonezilla - About

復元した時に警告に表示された通り、fstabを編集し、chrootしてgrubをインストール(再構築)必要があった。

余裕があれば True Image でも再挑戦したい。

KinematicsBase does not exist

とあるLaunchファイルを起動したら、"KinematicsBase does not exist" というようなエラーが出力された。

$ dpkg -l | grep trac-ik

逆運動学用のパッケージを確認したら、インストールしていなかった。

$ sudo apt install ros-melodic-trac-ik-kinematics-plugin

解決した。

同じ質問がROS Answersにあった。
The kinematics plugin (arm) failed to load. and Kinematics solver could not be instantiated for joint group arm. - ROS Answers: Open Source Q&A Forum

Gitの認証情報の保存

Gitの認証を500分(8時間とちょっと)キャッシュする。鍵認証が使えず、かつ、1日作業するような場合に使う。時間は適宜短くする。

$ git config --global credential.helper cache
$ git config --global credential.helper 'cache --timeout=30000'

git-scm.com

Caching your GitHub password in Git - GitHub Help