事例のポイント
こちらの企業様では、設計書のないVisual Basic 6.0(VB6)製の会計システムが老朽化し、長年にわたり引き継がれてきた複雑なデータ構造も相まって、保守や機能追加が困難な状況にありました。 そこで、業務分析によって不要な機能を洗い出し、Visual Basic .NET(VB.Net)への手作業による移行と新規開発を組み合わせた手法を提案しました。 この手法により、システム規模を約4割削減し、開発コストの抑制と保守性の向上を両立したスリムな新会計システムを構築しました。
非営利団体(NPO)のS社様では、長年使用してきた自社開発の財務・会計システムが老朽化しており、新たな機能追加も困難な状況にありました。
このシステムは汎用機からVB6へ移行して構築されたものですが、設計書が存在しておらず、システムの構造や仕様を詳細に把握することができませんでした。
また、汎用機時代から数世代にわたってデータが引き継がれてきたことで、データ構造および内容が複雑化しており、システム全体の把握は困難を極めていました。
こうした背景から、S社様ではパッケージ製品の導入も含めて選定・比較検討を行い、システム全体の刷新を希望されていました。
当社は、これらの課題を解決するため、以下の提案を行いました。
①自由度の高い統計機能の維持と新しい言語への再構築
既存システムが自由度の高い統計機能を備えている一方、パッケージ製品では対応が難しいため、コストに応じて必要な機能を選別し、新しい言語でスクラッチ開発※3を行う。
②業務分析による開発規模の最適化
業務内容を分析し、使用されていない画面や統合可能な画面を調整することで、開発規模を最適化する。また、新規開発と、手作業によるVB6からVB.Netへのマイグレーション※4を組み合わせることで、効率的かつ柔軟な開発を行う。
③VB6とVB.Netの非互換性に関する認識共有
要件定義の段階で、VB6とVB.Netの非互換性についてクライアントと情報を共有し、認識のズレを防ぐ。
④ 移行後の品質の担保
新旧システムの比較テストを実施し、機能の整合性と品質を担保する。
⑤ 顧客中心での統合テスト実施
統合テスト(業務シナリオテスト)はS社様を中心に実施いただくことで、当社が開発に専念できる体制を構築する。この進め方により、短納期・コスト削減を実現するほか、マイグレーションに伴う業務知識の不足を補い、運用前にシステムへ慣れていただくことで、導入後の品質に対する不安を軽減する。
開発は以下のステップで進めました。
① 業務分析による機能選定
業務分析を行い、現行システムの把握とともに、不要な機能や統合可能な機能を選定しました。
② 手作業によるマイグレーションの選択
画面操作性を統一するとともに、顧客にとって便利な機能を継続させ、今後の改修にも柔軟に対応できるように、ラッパー※5によるマイグレーションではなく、手作業による移行を選択しました。
③ UI設計※6と画面イメージの共有
UI設計を行い、要望を反映した画面イメージをクライアントと共有しました。
④ テーブルの統合と正規化※7
汎用機時代からのテーブル設計を見直し、年度ごとに増加していたテーブルを1つに統一しました。また、同一項目がテーブル間で異なる定義で作成されていたものを統一しました。
⑤ 定期的な進捗会議の実施
当社への開発依頼が初めてとなるクライアントであり、大規模な開発に対する不安も大きかったため、定期的な進捗会議を開催し、情報共有を行いました。
⑥ VB6ソースを基にした手作業によるマイグレーションの実行
VB6のソースコードを基に、手作業によるマイグレーションを実施しました。
今回のシステム開発により、以下の成果を実現しました。
①開発コストの抑制およびシステムのスリム化
不要な機能の削除や画面統合の検討により、システム構成の最適化を図りました。その結果、システム規模を従来比で約4割削減し、開発コストの抑制とスリム化を実現しました(画面数:144 → 81、帳票数:82 → 21)。
②クライアントによる操作性の向上
クライアントがシステムの仕様を把握しやすくなるよう、UI設計書(画面設計・帳票設計・テーブル設計)と概要設計書を整備し、現行との差分を明確にした操作マニュアルも作成しました。
※1 VB6(Visual Basic 6.0):Microsoftが提供していた開発言語です。1990年代から2000年代初頭にかけて多くの業務アプリケーションで使用されていましたが、現在はサポートが終了しており、新しい環境への移行が求められています。
※2 VB.Net(Visual Basic .NET):VB6の後継としてMicrosoftが提供するプログラミング言語です。.NET Framework上で動作し、より堅牢で保守性に優れたシステム開発が可能です。
※3 スクラッチ開発:既存のシステムやパッケージをベースにせず、要件に応じてゼロからシステムを設計・構築することです。自由度は高い反面、設計と仕様の整理が重要です。
※4 マイグレーション:既存システムを新しい環境や言語に移行することを指します。機能の継承や資産の活用を維持しながら、保守性やセキュリティ性の向上を目的として実施されます。
※5 ラッパー:既存のプログラムや機能を新しいシステム上でも使用できるように、包み込む中間処理のことです。短期間で互換性を保ちながら移行を進める手段として用いられます。
※6 UI設計(ユーザーインターフェース設計):ユーザーがシステムを操作する際の画面や操作方法を設計することです。使いやすさや視認性、業務への適合性を考慮して構築します。
※7 テーブルの正規化:データベース設計において、データの重複を排除し、整合性を保つためにテーブル構造を整理・最適化するプロセスです。
お問い合わせはこちらから
課題やご要望を丁寧にお伺いし、最適なアプローチをご提案いたします。