astah* ver7.2 の開発秘話

smile_lilyこんにちは、astah*開発チームの『りりぃ』です。
みなさんはastah*の現在最新であるバージョン 7.2をお使いでしょうか?
今回はastah* 7.2 の開発の思い出を書いてみようと思います。


初めてのリモート開発

チェンジビジョンのオフィスは福井県と東京都にあります。しかし私は家庭の事情で昨年3月に富山県に引っ越してリモートで開発をしています。同時にチームメイトの編成も見直され、私はastah*の開発メンバーとなりました。別チームにいる間にastah*のプロダクトオーナーも変わり、開発の方針等も変わっていました。バージョン7.1までは開発のベテランの先輩たちに囲まれて、困ったことがあればいつでも相談できましたが、ひとりで開発するのは不安がありました。戸惑ったり困ったりしたこともありましたが、そのたびにプロダクトオーナーと対話して解決し、無事7.2がリリースされたときはとても嬉しかったです。


新機構実装「図要素をまとめて移動」

図要素をまとめて移動はバージョン6.9でシーケンス図、バージョン7.0でクラス図・ユースケース図・アクティビティ図・フローチャートに対応しました。これらはastah*開発に長らく携わる先輩が実装されました。しかし7.2の開発ではその先輩が別プロジェクトの担当になり、ステートマシン図の図要素をまとめて移動は私が実装することになりました。

まずは先輩の実装されたコードを確認しました。図要素をまとめて移動コマンドは、マウスで図要素を移動するときのコマンドを再利用していました。最初はこれに習って実装していたのですが、ステートマシン図の場合、下記理由より移動コマンドを使うのが難しいと思いました。

  • 入れ子や入場点・退場点が増えると移動コマンドの計算が重たくなる
  • しょっちゅう入場点・退場点がコンテナから外れてしまう
  • 移動時のバグがそのまま引き継がれる
  • 領域の点線が思うように移動できない

ふつうの移動の場合、状態の親が変わる可能性があります。しかし図要素をまとめて移動の場合は図の見た目には影響を及ぼしますが、モデル間の親子関係等には影響がありません。モデルの関係を更新する処理が不要なので、別の機構を新たに実装したいとプロダクトオーナーに相談しました。私が考えた仕様は下記です。

  • スタートラインから移動方向にある(引くの場合は逆方向にある)要素は移動する
  • スタートラインが重なっていて移動対象となる子を持つ要素はリサイズする
  • 引くの場合、リサイズ対象の縮小限界サイズに合わせ移動範囲に制限を設ける

何度かプレゼンし、プロダクトオーナーを説得できました。この機構の実装には多くの時間をかけてしまいましたが、最終的に非常にシンプルな実装となったため、処理もかなり軽くなり、バグも減らすことができました。当初はステートマシン図ができて余力があればほかの図も実装しましょうとのことでしたが、各図の移動コマンドを使用していないためほぼ何の苦労もなく機構を再利用して実装することができました。
なお、処理の統一のためにユースケース図・クラス図の図要素をまとめて移動の機構もこちらに置き換わっています。7.1の時と挙動が変わっているので試してみてください。


他メンバーが担当した開発のアクセプト

図要素ごとにフォントを設定できるようにしたり、プロジェクトファイルの自動保存機能を付けたりする改善は私以外の開発メンバーが実装したのですが、アクセプト(開発内容を製品に取り込んでもよいか審査)は私が行いました。
新しい機能を実装した場合、既存の機能のバグの修正のアクセプトとは違ってより気を付けないといけないことが多くあります。

  • 機能は使いやすいか
  • 他の機能と矛盾はないか
  • 改善による副作用がないか
  • モデルバージョンを変えなくてもよいか

アクセプトによって仕様がガラッと変わることも少なくはありません。仕様を変えてほしいと相談するのは少し心が痛むのですが、お願いすることでより良い機能になったと思います。


不具合の修正

7.2の開発では、不具合も多く直しました。なかなかすべてに対応することは難しい状況ですが、できるだけ対応しました。回避する方法がない致命的な不具合や、使用頻度の高い機能への修正は優先的に行われています。一度修正を見送った小さな不具合でも、再度お問い合わせをいただくと修正優先度が上がることがあります。どうしても対応してほしいよという要望があれば、お手数をおかけしますが再度お問い合わせいただくとお互い幸せになれるかもしれません。私はもっともっと経験を積んで、短時間で沢山修正できるようになります。頑張るぞ~!


 

astah*の開発チームに戻ってきてからは仕様を提案する、もしくは一緒に仕様を決めることがより増えました。製品に私の意見が仕様として反映されるのも私の実装が組み込まれるのも嬉しいです。わが子のようにかわいい!子供いないけど。

さてさて、現在バージョン8.0を鋭意開発中です。7.2のココがいいね!いや、悪い!というご意見を頂けるともっと頑張れると思うので、ぜひお気軽にメッセージくださいませ。

Advertisements

3 thoughts on “astah* ver7.2 の開発秘話

  1. Astah 7.1すでにもっているが、7.2を利用する予定ですが、心配事あります。
    7.1で作成した資料は7.2更新されたらまだ使えるですかね?
    逆に7.2で作成したファイルは7.1でもEditできるですかね?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s