21
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

派生開発における変更指示をモデルで表現する(問題編)

Last updated at Posted at 2015-05-05

セイコーエプソンの萩原さんと、モデルを使って派生開発の変更指示をうまく表現できない、という課題を議論しました。考えのメモです。

派生開発における「変更指示」

日本の組込み開発でよく使われる手法である清水さんの「派生開発」(XDDP)ですが、派生前の状態に対して「変更指示」を文書化します。

ソースコードレベルであれば問題は少ないのですが、構造に対しての修正は大域的になり、うまく表現しにくくなります。これをモデルで扱いたい、というのが問題です。

Before/After の問題点

まず考えられるのは、Before と After を示す方法です。

image

ここから実際の変更を行うのはとても観察力が必要!例えて言えば、間違い探しになってしまいます。
image

例えば astah などでは diff をとる機能もありますが、もっといい方法はないでしょうか?普通は「赤ペン」を入れたいところ。

image

さらに言うと、せっかくなので、__「変更を表現するモデル」__があるとよいのに!変更を表現するのが目的のモデルとそれを使ったビュー。

この表現の必要性をアーキテクチャの観点から言ってみる

「アーキテクチャ記述」という何か、という話で、2000 IEEE1471(ISO/IEC42010)という標準モデルがあります。そこには、「ビュー」と「ビューポイント」が定義されていて(『ソフトウェアシステムアーキテクチャ構築の原理(第2版)』読んだ 参照)

image

  • __「ステークホルダー」毎に「関心事」__があり、
  • __「ビューポイント」は1つ以上の「関心事」__をカバーする。

となっています。要は、モデルは誰かの関心事毎にビューポイントに従って記述される。派生開発にとって「変更」は明らかに関心事であるから、「変更を示すビュー」、そしてそのモデル表現は必要だといえる。

解決案

しかし、現在、この「変更を示すモデル」を真正面から扱ったものを、ぼくは知らない。。。。赤ペンで書くのもよいでしょう。そして、Before/After を示すのもよいでしょう。しかし、もうちょっとフォーマルに(UML程度のセミフォーマルに)扱えるとよいのに。__「変更を表現するモデル」__があるとよいのに。

というのが問題です。では、次に解の試案です。


(補記1:クラス図を例にしましたが、状態遷移図やアクティビティ図、シーケンス図など、もっといろんな図で使えるとよいと思っています。また、派生開発の現場ではC言語が多く使われるかもしれません。ここでは例としてUMLクラスを使ったオブジェクト指向的表現となっていますが、クラスを「ファイル」、操作を「関数」、属性を「変数」と読み替えてC言語でも使えるものがよいと思っています。)

(補記2:今年の派生開発カンファレンスに、基調講演という大役を頂きました。日本のアジャイルの話をしようと思います。)

21
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?