PROJECT THEME

長年、他社で開発から保守運用を続けてきた健康診断予約サービス。クラウド(AWS)上でWebシステムとして稼働を続けてきましたが、クラウドサービスとしてリリースされているマネジメント型プラットフォームのバージョンアップの機会を失い続けた結果、該当する開発言語バージョンのリタイア問題が喫緊の課題となっていました。

また、同サービスにおける多数の機能上のバグ問題についても大きな課題となっていました。

本プロジェクトでは、第1フェーズとして既存のソースコードの診断と解析、システム環境の解析を行い、問題となっている箇所の特定を進めた後、新しいWebシステム環境を構築。旧環境から新環境へ移行を実現するという目標を掲げ、プロジェクトをスタートしました。

バグ改修 バージョンアップ リファクタリング


Webシステム開発 ソースコード解析 開発言語: PHP

クライアントの課題・ご要望

お客様

お客様の課題・要望:他社のベンダーに開発と運用保守を委託しているが、Webシステム内で使用しているPHPプラットフォームバージョンが古く、バージョンアップなどの更新もできない状態が続ている。問題となっている箇所を特定し、バージョンアップしてほしい。

APPSWINGBY

課題解決のご提案:NDA締結の後、最新バージョンのソースコードを共有頂いた後に、ソースコードの調査・解析を実施し、リファクタリングを行う仮定で、PHPプラットフォームバージョンのアップデートを行うのか、また、今後のシステムの稼働を考慮した上で別のサービスを利用して同機能を実現するのかを判断することができます。

お客様

お客様の課題・要望:既存の開発会社から現在の運用保守会社への移行やシステム担当者の変更等を行ってきた結果、Webシステムの内部、外部システムとの連携など状況がわからなくなった。設計書等のドキュメントもなく、ソースコードと現システム環境しかない。ソースコードを共有するので、同システムの内部及び外部の動作を明らかにしてほしい。

APPSWINGBY

課題解決のご提案:共有頂いたソースコードをもとに開発環境を構築し、同システムの動作を再現しながらドキュメントをつくっていきます。また、ドキュメントの管理、ソースコードの管理、課題や問題点の管理の方法についてもご提案致します。

お客様の課題・要望:現在稼働しているシステムに多くの不具合が確認されている。システムの不具合を洗い出し、正常に稼働するシステムにしたい。

APPSWINGBY

課題解決のご提案:システム開発を担当するエンジニアに加えて、同システムの品質向上を目的としQA(Quality Assurance)エンジニアをプロジェクト体制の中にアサインします。QAエンジニアは、Webサービスに求められている品質要求を満たす為、システム仕様の確認からテスト仕様を起こし、様々なテストを実施し、Webシステムの品質向上の役割を担当します。

今回、ご依頼頂いた「予約システムの解析・リファクタリング・新環境構築」プロジェクトは、お客様が他社開発ベンダーから引継ぎがあった、ソースコードのみからのスタートでした。

開発までのアプローチと工程

ソースコードの解析からスタート
設計書も、システム構成図も、ビルド手順もない状態からスタートした本プロジェクトは、お客様から共有頂いたソースコードを解析することから始まりました。
ソースコードのリファクタリングの実施
ソースコードの解析と並行し、ローカルに環境を構築します。ソースコード解析の結果からリファクタリングの準備を進めます。ソースコード解析よって炙り出された”何度も繰り返し処理が書かれている非効率なコード”や”セキュリティ的に問題のあるコード”、”ローカル環境上の動作試験によって確認できた未知の不具合”などをお客様と本来あるべき仕様を確認しつつ、リファクタリングを行いました。
Webサービスの品質向上
お客様から共有頂いたソースコードから開発環境を構築し、システム仕様を確認しながらテスト仕様書の作成、テストの実施を平行で行い、これまで確認されていなかった不具合を改修することで、Webシステムの品質向上を実現しました。

実現した機能と成果

ソースコード解析

ソースコード解析に取り組むことにより、システム内の脆弱性や各機能の不具合を特定し、不具合や仕様上問題の改修・改善を実施しました。

バグの改修

既存コードに潜んでいたバグ(プログラムの欠陥、誤り、機能上の不具合)を改修し、各機能の正常動作を確認しました。

システムの見える化

ドキュメントない または、ドキュメントがあっても古い状態のまま更新されていないシステムを見える化し、ドキュメントを整備しました。

ドキュメント・ソースコード管理

メンテナンスや機能追加・更新があっても更新されなかった状態からドキュメントとソースコード管理手法を導入し、適切に管理することができる状態を実現しました。

プロジェクトの


ソースコードを最適化!