プロジェクト概要

新規事業開発部門で進めていたAIを活用した新サービス開発プロジェクト。

1.プロトタイプとして開発されたデスクトップソフトウエアをリファクタリング・リアーキテクチャした上で、SaaS(Software as a Service)としてローンチする。

2.Webサービスとして必要な機能の開発、パフォーマンス速度の検証と改善を行い、高いユーザビリティとWebパフォーマンスを実現する。 

この2つを、プロジェクトテーマとして掲げ、スタートしました。

AIプログラム バグ改修 パフォーマンス改善 


リファクタリング SaaS開発


ソースコードしかない
開発言語: Python

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

お客様の課題:他社のベンダーにAIプログラムを開発委託したが、開発してもらったAIプログラムには多くのバグがあり、プログラムの品質上問題があるのでプログラムの機能を変えることなく、プログラムの品質を向上させてほしい。

APPSWINGBY

課題解決のご提案:NDA締結の後、最新バージョンのソースコードを共有頂いた後に、ソースコードの調査・解析を実施し、リファクタリングを行うことで、ソフトウエアが提供する機能のふるまいを変えることなく、バグ(ソフトウエアの欠陥や誤り)を改修することができます。

お客様の課題:デスクトップソフトウエア(プロトタイプ)として開発された同ソフトウエアを、リアーキテクチャし、SaaS(Webサービス)としてローンチしたい。Webサービスに必要な認証やユーザー管理、その他管理機能をを提案して、開発してほしい。

APPSWINGBY

課題解決のご提案:Webサービスとして必要な画面の開発、HTMLモックによる操作感の確認、ユーザー認証機能や管理機能等、Webサービスとして提供したい機能をお客様の立場側に立ち、必要な機能やタスク、スケジュール等をご提案します。

お客様の課題:現在のデスクトップソフトウエア(プロとタイプ)は、UI(ユーザーインターフェース)もわかりずらく、プログラムの動作速度も遅い。処理速度の改善とUIを大至急改修してほしい。

APPSWINGBY

課題解決のご提案:UI/UX専任のデザイナーからUI案をご提案します。お客様レビューと改善を繰り返し、最終的なUIをつくりあげます。パフォーマンスの改善については、パフォーマンス検証を行い、遅延の原因となっている箇所の特定、改善案のご提示、パフォーマンス改善を行います。

今回、ご依頼頂いた「他社開発AIプログラムの解析~リファクタリング、SaaSサービスの開発」プロジェクトは、お客様が他社開発ベンダーから引継ぎがあったのは、ソースコードのみといった状態で、設計書やビルド手順書などのドキュメント類は何一つない状態からのスタートでした。

本プロジェクトで提供したソリューションや採用したテクノロジー

ソースコードの診断と解解析
設計書も、システム構成図も、ビルド手順もない状態からスタートした本プロジェクトは、お客様から共有頂いたソースコードの診断と解解析を行うことから始まりました。

本プロジェクトで実施したソースコードの診断と解析は、静的解析と動的解析による診断手法にて実施しました。
ソースコードのリファクタリングの実施
ソースコードの診断と解析で実施された静的解析でビルドされたローカル環境を活用しながら、リファクタリングの準備を進めます。

ソースコード解析よって炙り出された「何度も繰り返し処理が書かれている非効率なコード」「未使用の変数やデッドコード」「過剰な内部クラスなど不要なコード」「セキュリティ的に問題のあるコード」などを最適なコードへと書き換える作業とテストを何度も繰り返し行い、正常且つ安全、安定的に稼働するシステムをつくり上げました。
SaaSサービスに必要な各機能の提案から開発
お客様から事前にヒアリングしていた提供したい”Webサービスのイメージ”をヒアリングし、Webサービスとして必要な機能、ユーザビリティやセキュリティの向上が見込める機能、運用上必要なサービス等をご提案しながら、設計・開発を進めました。

SaaS化のインフラとして、AWSを選択。クラウドネイティブなアーキテクチャの構築の可能性もありましたが、ランニングコストとサービスローンチ後の運用・メンテナンスを考慮し、シンプルなアーキテクチャで設計・構築しました。

設計・開発にあたって、最も注力したのが、システムパフォーマンスと従量課金となるコスト部分です。AWSから提供されている主だったインスタンスをテストを実施、元々Pythonで書かれていた開発言語をGo言語等に変更するなど様々な試行錯誤が行われ、コストパフォーマンスの高いAWSサービスを選定しました。

実現した機能と成果

脆弱性の改修

事前に行ったコードスキャンによって発見されていたSQLインジェクション、クロスサイトスクリプティング(XSS)等の脆弱性をすべて改修しました。

バグの改修

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

パフォーマンスの向上

Webサービスとして利用されるユーザー視点で、サービスの品質、ユーザビリティを考慮しながら、最適なパフォーマンスが発揮することができるシステムアーキテクチャとしました。

Webサービス化

Webサービスとして必要なアカウント新規登録、アカウント認証などの機能をまとめ、お客様側のワークフローとの連携等をご提案・開発し、お客様がサービスのローンチまでにひかれたビジネスロードマップを達成しました。