状況設定

ここでは、Swing/Java で構築された既存のシステムを、WPF/C# で再構築するとともに、新機能を追加するような状況を想定しています。この課題では、既存のリソースとして、Swing/Jython で作成された、オリジナル版のゲームがあるものとします。要求仕様の変更は、6角形を基調とするデザインに一新して、これを WPF アプリケーションとして作成することです。


《Note》.NET アプリケーションに、IronPython で作成したモジュール群を埋め込むのは簡単です。具体的な手順は、IronPython をダウンロードすると得られる、IronPython Tutorial 6: Embedding IronPython を参照してください。□
開放閉鎖原則〔OCL: Open-Closed Principle〕に沿って、既存のモジュールを修正せずに、新たなモジュールを追加するだけで、要求仕様の変更に対処できるのを理想とします。
オリジナル版は正方形ですが、仕様変更に伴って、今回は6角形を基調とするデザインに一新します。そのため、Swing/WPF の違いも含めて、その部分を新規作成する必要があります。
すでに、特定のビュー(Swing)に依存しないように、モデル(Jython)は独立したモジュールとして提供されているので、これは再利用できそうです。問題があるとすれば、Jython/IronPython の互換性ですが、プログラミング言語Java/C#)の違いは問題にはなりません。そこが、glue 言語としての Python の効能のひとつです。