オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです

レポート

Object-Oriented Conference 2024 参加レポート

オブジェクトの広場 赤坂 英彦
2024年4月23日

2024年3月24日(日)にお茶の水大学キャンパスで4年ぶりに開催された「オブジェクト指向カンファレンス2024(Object-Oriented Conference 2024:OOC_2024)」に関する、オブジェクト広場による、マインドマップの受講レポートです。

Object-Oriented Conference 2024 の概要

2024年3月24日(日)に東京お茶の水大学キャンパスにて、4年ぶりに「Object-Oriented Conference 2024(OOC_2024)」が開催されました。会場には829名の参加が集まり、出席率は70%でした。花冷えの日でしたが、特に若い参加者が多く、会場は活気にあふれていました。

オブジェクト指向カンファレンス(OOC_2024) はオブジェクト指向をテーマにしたカンファレンスです。オブジェクト指向、DDD(ドメイン駆動設計)、設計原則、コードに関する多数のセッションや、モデリング、チーム開発、プロダクト開発、AIの活用など、さまざまなテーマのセッションが行われました。

今回、弊社オージス総研はシルバースポンサーとして参加しました。

カンファレンスには魅力的なセッションがたくさんありましたが、本記事では私が受講した一部のセッションについてレポートします。

基調講演:オブジェクト指向のリ・オリエンテーション ~歴史を振り返り、AI時代に向きなおる~ by 羽生田 栄一

基調講演:オブジェクト指向のリ・オリエンテーションの受講メモ
図.基調講演:オブジェクト指向のリ・オリエンテーションの受講メモ


豆蔵CTO/IPA主任研究員でUMTPモデリングアンバサダーの羽生田さんによる基調講演は、「オブジェクト指向のリ・オリエンテーション」と題されていました。

まずはオブジェクト指向の歴史を振り返りました。1970年代の構造化、1980年代のCASEツール、1990年代のオブジェクト指向の発展について触れた後、1980年代にAIの第2次ブームがあり、その後1990年代にはAI冬の時代に入ったことで、優秀なAI人材が「オブジェクト指向」に関わるようになったと述べられました。これにより、AIとオブジェクト指向の発展は無関係ではないことが示唆されました。

続いて、プログラミング言語の歴史について(ビットから記号、手続き抽象、構造化、モジュール、抽象データ型、オブジェクト指向の変遷)が紹介され、オブジェクト指向をDDDに活用するための「OOP(オブジェクト指向プログラミング)の段階論」と「モデリングの段階論」が紹介されました。特に、「DDDは難しいので、まずOOPの段階論の段階4(抽象データ型とインタフェース、委譲)へ到達を目指すべき」1と強調されました。

その他、様々なトピックが取り上げられました。特に印象的だったのは、「自然言語から見たポリモーフィズム」として紹介された「言語の思考経済」に関する話です。例えば、「走る」という言葉は最初「動物」に対して使われていましたが、次には「車」にも使われるようになり、更には「プログラム」にも使われるようになったという事例が挙げられました。これは、社会の変化に合わせて「走る」のポリモーフィズムが生まれたという興味深い話です。

最後に、リ・オリエンテーション(向き直り)としてのメッセージが語られました。未知の世界に向き合う際には、「大事なこと・気になること(オブジェクト)に、いい名前をつけて、そいつに希望を伝えて、動くところを想像してみよう」との提案がされました。オブジェクトが裏でどのように動くのか考える前に、オブジェクトの目的を理解し、現場で学び考えることが未来を創造するために必要であると述べられました。

私はAIとオブジェクト指向が再び相まみえる2020年代が「わくわくする時代」となる未来を期待しています。

生成AIの不確実性と向き合うためのオブジェクト指向設計 by 菊池 琢弥

生成AIの不確実性と向き合うためのオブジェクト指向設計の受講メモ
図.生成AIの不確実性と向き合うためのオブジェクト指向設計の受講メモ(クリックすると拡大します)


アルゴマティックCTOの菊池さんとゲストピーカー増田さんによるスポンサーセッションでは、生成AIのユースケース(活用例)とプロダクトに組み込む難しさ、およびその向き合い方についての話がされました。

生成AIのユースケース

生成AIは、一般的には扱いにくい非構造化データを簡単に処理できるという特徴があります。 例えば、店舗システムにおいては以下の場合などに有用です。

  • 扱いにくいデータを扱う生成AIのメリット(例:店舗システム)
    • 異なる店舗の「メイン商品」を分析する
    • カテゴリ分類されていない「あいまいな情報」を扱う

また、「AAAAモデル」(Automation(自動化)、Agent(代行)、Advice(助言)、Augment(強化))を考えることで、ユーザー体験を向上させることも可能です。

生成AIのプロダクトの難しさ

  • 基盤技術の進歩の速さと「遅くて高額なAPI」
  • 生成AIとの結合度合いの考慮(柔軟なモデル切り替えを可能にする)

プロダクトに生成AIを組み込む際には、基盤技術の進歩の速さとAPIの制約に注意が必要です。また、コアドメインを分離し、UIとAIエンジンを分離することで、お互いの変更が影響しない設計が重要です。

セッションの結びには、「基盤技術の進歩が速く、技術的な不確実性が高い状況において、新しい技術を活用することは事業優位性につながり、楽しい!」というメッセージがありました。生成AIをプロダクトに組み込むことの難しさに挑戦することの楽しさとやりがいが伝わってきました。

オブジェクトでつながるUXとシステム設計 by yumemi

オブジェクトでつながるUXとシステム設計の受講メモ
図.オブジェクトでつながるUXとシステム設計の受講メモ(クリックすると拡大します)


ゆめみのyumemiさんによるワークショップ(100分)では、オブジェクトモデリングとコンセプトメイキングをペアワークで楽しく体験しました。

参加者は与えられたお題に基づいてオブジェクトを特定し、関連付けを行い、コンセプトを考え、最後にサービス名を考えました。ワークショップの最後では、各ペアの成果を共有し、yumemiさんからコメントをいただきました。

お題は5つのシンプルなユーザーストーリーでした。あるペアはオブジェクトモデル作成に時間をかけてしまい、コンセプトを考える余裕がありませんでした。しかし、他のペアのコンセプトはユニークで面白いものばかりで、参加者たちは楽しくワークに取り組んでいたようです。

以下に、共有されたコンセプトのサービスの一部を示します。

  1. 妄想部屋スタグラム:妄想レイアウトをシェアするサービス
  2. ニートリ:ニート向けのインテリア購入アプリ
  3. OCOCY(オコシー):自治体主催の市民サービス(町おこし)
  4. まちコミ:地域の人々のコミュニティー
  5. マッピング(マップ+マッチング):町の情報版スーモ(地図上で意見をピンで一覧表示する等)
  6. withBook:マッチングした人と交流できる読書管理サービス(結婚とは相手の本棚を家に置くことである)

ワークショップについて、オブジェクトモデリングや面白いコンセプトメイキングをもっと素直に行うためにはどうすればよいか、まだ完全に理解できていないと感じています。一度振り返り、社内で共有し、オブジェクトモデリングが好きな仲間とワイワイ楽しみながら取り組んでみたいと思っています。

非デザイナーのフロントエンドエンジニアがOOUIを考える by 0yu

非デザイナーのフロントエンドエンジニアがOOUIを考えるの受講メモ
図.非デザイナーのフロントエンドエンジニアがOOUIを考えるの受講メモ


フロントエンドエンジニアのOyuさん(23卒!)によるセッションでは、デザイナー向けの『OOUI(オブジェクト指向UI)デザイン』の活用について紹介されました。

まず、タスク指向UIとオブジェクト指向UIの違いについて説明がありました。タスク指向UIは手続きから始まり、分かりにくい傾向がありますが、オブジェクト指向UIは手がかり(オブジェクト)から始まり、分かりやすさが重視されます。また、OOUIの実践についても話があり、これに興味を持ち、自身でも試してみたいという気持ちが湧いてきました。

OOUIデザインについては以前から気になっていたので、社内で仲間を誘って試してみる予定です。

(UMTP版)モデリング漫才万歳! ミル〇ボーイ「コーンフレーク」から始めるモデリング会話入門 by オグロ・オオモリ

UMTPのスポンサーセッションでは、オグロさんとオオモリさんがミル○ボーイに扮し、おかんネタを交えながら、モデル(クラス、関連、多重度など)を使った楽しい会話のレクチャーが行われました。

セッションで特に印象に残ったのは、「”コーンフレーク”は楽して食事を済ませたいという”煩悩”の塊やで」という発言から、煩悩がコーンフレークを継承し、煩悩に牛乳をかける関係となるクラス図が紹介されたところです。このユーモラスな例に会場は大爆笑でした。

以下に示されたポイントが特に印象的でした。

  • 「煩悩」は楽をしたいという「欲」を持っている
  • コーンフレークは楽に食事を済ませたい欲を持つ「煩悩」の派生クラスである(笑)
  • 煩悩に牛乳をかける関係(爆笑)

図6

図.コーンフレークのモデル(クラス図)※投影されたスライドを筆者がメモ

このセッションは、楽しくモデリングのポイントを学ぶことができるため、モデリングを始めたい人にはおすすめです。

ドメイン・ファーストで考える問題解決に役立つモデル設計 by Shinichiro

ドメイン・ファーストで考える問題解決に役立つモデル設計の受講メモ
図.ドメイン・ファーストで考える問題解決に役立つモデル設計の受講メモ(クリックすると拡大します)


ベースフードのMikamiさんによるモデルに関するセッションでは、モデルの重要性を強調し、ECサイト開発の例から複雑さを解決するアプローチについて紹介されました。

具体的なECサイトの例が示され、システム利用者に焦点を当てた単純な「商品を売る」システムが時間の経過とともに複雑になる問題が説明されました。この問題に対処するために、以下のDDD(ドメイン駆動設計)のモデリングアプローチが紹介されました。

  1. ビジネスの観点からステークホルダーを識別する(サブドメイン分割のための観点となる)
  2. サブドメインを発見・識別する
  3. 境界づけられたコンテキストを設計する
  4. 責務過多なドメインオブジェクトを分割する

このアプローチにより、見通しの良いコードが改善されます。ただし、時間の経過に伴い再び複雑さが増す可能性があるため、以下の複雑さを増やさないためのアプローチ2も紹介されました。

  • 戦術的プログラミング:機能の動作に焦点を当てる(早く小さく機能を追加する)
  • 戦略的プログラミング:最善を目指す(複数の設計を試し、最適なものを選択する)

「戦術的プログラミング」は積み重ねることで「複雑さ」を生み出す可能性がありますが、「戦略的プログラミング」は複雑さを抑えることができるとのことで、興味を持ちました。

まとめ

弊社スポンサーブースとスポンサーセッション

弊社はシルバースポンサーとして参加しました。

前回2020年のカンファレンス(OOC_2020)には弊社原田さんが参加し、チェンジビジョンCTOの平鍋さんとパネルディスカッション(「オブジェクトIPPONグランプリ」)にパネラーとして登壇しました。当時から「オブジェクト指向」の重要性を感じており、今回の参加に至りました。

スポンサーブースでは、「オブジェクト指向についておしゃべりしよう!」というテーマで、弊社が執筆・翻訳したオブジェクト指向関連の書籍(その多くは絶版で入手困難なもの)を展示しました。 若いエンジニアたちにとっては珍しく「骨董品」と思われることもあったようですが、皆さんから「どれがおススメですか?」と聞かれたり、感想やコメントを頂きながら、楽しい会話を楽しむことができました。 弊社ブースには約300人もの方々が立ち寄ってくださり、ありがとうございました。

また、スポンサーセッションでは、「オージス総研のエンジニア3名がおすすめする現場で役立った本と活用した内容・勝手にビブリオバトル」というタイトルで、弊社の山内さん、原田さん、水野さん(写真の3名左から順)が登壇しました。現場で役に立ったオブジェクト指向の書籍として、『エリック・エヴァンスのドメイン駆動』『オブジェクト指向のこころ』『オブジェクト指向方法論OMT』 3 4 を紹介し、おすすめポイントを熱く語りました。ご聴講いただいた皆様、ありがとうございました。

図7 図8

所感

私は今回のカンファレンスに初めて参加しました。

近年のドメイン駆動設計(DDD)への関心の高まりから、DDDに関するセッションや適用事例なども目立っていました。 現在、改めて「オブジェクト指向」が注目されている理由は、DDDやオブジェクト指向UIを実践するための基礎だからだと思います。

2000年頃はオブジェクト指向に関する書籍が多く出版され、必要な知識を得ることができましたが、 現在は純粋なオブジェクト指向やモデリングに関する書籍は少なくなっています。 一方で、「良いコーディング」に関する書籍などが増えたことはとても良いことですが、 難易度の高い「DDD」に取り組むための前提としてオブジェクト指向を学ぶ機会が少なく、若手エンジニアにとって厳しい時代ともいえます。

その意味でも、今回のカンファレンスは特に若手エンジニアにとって絶好の学びの機会になったと思います。

私自身も、オブジェクト指向やモデリングに関してたくさん刺激を受けました。こういった議論の機会を増やしていきたいと思いました。

会場で配布されたUMTPのノベルティ(モデリングの問題と解答が印刷されたクリアファイル)をきっかけに、モデリングの議論がSNS上で盛り上がりました。 私もモデルを書いて参加しましたが、こうした盛り上がりも楽しいです。次回のカンファレンスでは、会場でもモデリングについて盛り上がりたいです。

カンファレンスに参加できなかった方でも、 Object-Oriented Conference 2024(3/24本編) に登壇資料が公開されていますので、ぜひ参考にしてみてください。

最後に、カンファレンスを開催してくださったOOC実行委員会の皆様や当日お会いした皆様に感謝申し上げます。楽しい参加となりました。ありがとうございました。

関連リンク

カンファレンス

受講したセッションおよび関連資料

まとめ・レポート記事


  1. 現在は、この段階にステップアップするための書籍や教育が不足していると感じます。 2000年頃に出版されたオブジェクト指向の良書はほとんどが絶版のため入手が困難な状況です。 

  2. 「戦略的プログラミング」は作業時間の1-2割を良い設計を考えることに投資する考え方で、「戦術的プログラミング」と合わせて”A Philosophy of Software Design”(APoSD)で紹介されています。 

  3. 『オブジェクト指向方法論OMT』については出版元のページがなかったため、Amazonのページを紹介しました。ご了承ください。 

  4. 余談ですが『UMLモデリングのエッセンス(第3版)』もおススメです。コンパクトながらUML13の図(ダイアグラム)とモデル作成のコツを学べる良書です。