こんにちは!
ナビゲータのEVEです。
今日の開始は予定通り、プログラム修正から始めました。Xでつぶやきましたが、現在、PHPのプログラムを、PSR-1ガイドラインに基づいて修正しています。JavaScriptについては触れていませんでしたが、今後「Airbnb JavaScript Style Guide」に基づいて記述する予定です。どちらも、今まで規約らしい規約を見た記憶がないのですが、世界標準みたいなモノが、あったようです。今後気をつけるのと同時に、修正できるところから徐々に修正していきます。
なんて、作業をしながら、XServerに開発環境を構築しようとしたのですが、キーが変更になったと、クライアントツールにメッセージが表示されました。作業をする場合、必ず、SSHを利用しているのですが、公開鍵暗号方式でログインをしているので、この場合のキーとは公開鍵になります。WinSCPでは、このメッセージが出たのは初めてです。ちょっと、心配になったので、XServerを再初期化後運用方法を変更しました。キーを先に作成し、サーバーに公開鍵を設定し、クライアントに秘密鍵を設定するように仕様を変更しました。これもまた、やり方を知らなかったので、時間がかかってしまいました。まっ、今後は安心して利用できるのでしょうか?運用を開始してからの鍵の変更は難しいですし・・・。
その辺は今後考えるとして、本日のブログでは、私だったらどんなアプローチでレガシーシステムに対応するのか書きたいと思います。
[現行の超大規模システムをマネジメントが容易な規模(機能システム)に分割整理]
2024年9月2日に書いた「現行の超大規模システムをマネジメントが容易な規模(機能システム)に分割整理」までの内容はできれば実施したいと感じています。ただ、ちょっと、やり方は違うくなりますが・・・?
■現状調査
大きい分類から小さい分類に分解していく(全体システム → システム → サブシステム)
コンセプトは、自分たちがコントロールできる単位まで分解すると言うことだと思うので、ここはやり方は多少違いますが、マネした方が良い点だと思います。ただ私の場合は、機能システムへ再分類するというその作業はここでは省略します。2024年9月2日では、「DX実践手引書 ITシステム構築編 レガシーシステム刷新ハンドブック」の内容を以下のような流れで紹介しています。
現行ITシステムの全体把握
┗システムの粒度
┣社会システム
┣全体システム → @全体システム構成図
┣機能システム → A機能システム一覧
┃ → E機能システムの階層構造の確認 ←━━━━━━━━━━━━━━━━━━━┓
┃ → F機能システム間、機能システム・外部接続先間の連携の整理 ┃
┃ → G外部接続先のグルーピングと機能システムと外部接続先間の連携の集約化 ┃
┗サブシステム → Bサブシステム一覧(サブシステムの論理的な整理) ┃
→ Cサブシステム構成図 ┃
→ Dサブシステムの機能システム単位へのグルーピング━━━━━━━━━━━━┛
[サブシステム分解後]
ちょっと、流れ的には違っていますが、対応しやすい単位に分解するという目的を達成する作業という意味では同じです。それ以降なのですが、チョット違います。私の場合は、昨日、書きましたが、サブシステム毎に、プログラム解析、またはリバースエンジニアリングを実施し、データ構造を解析します。
この「ゼロからはじめるシステム開発」で何回か書かせて頂いているのですが、プログラムなんてどうでもいいのです。バグがあっても、汚くなっていてもなんでもいいと考えています。ただ、データの完全性が保証されるならという前提条件はあるのですが・・・・。
前提条件のデータの完全性を保証しようとした場合、プログラムにバグがあることは許されません。そのようなケースがあるので、プログラムは正確に作ることを心がけます。
ここでは、データの完全性が保証されていることを確認しながらデータ構造を解析します。
[あとがき]
ごろごろ寝っ転がりながら、いろいろ考えたのですが、辛辣な意見を昨日言ったにもかかわらず、違うのは、リバースエンジニアリングを実施するかしないかだけの違いのようです(辛辣の言葉で発言して申し訳ございません)。「DX実践手引書 ITシステム構築編 レガシーシステム刷新ハンドブック」もこれが最後ではなく、続きがあるのですが、検討の結果多分、その部分も私の考え方と同じになりそうだという結論になりました。
「DX実践手引書 ITシステム構築編 レガシーシステム刷新ハンドブック」にも作業の全体像が書かれていないので、明日は、その全体像についてご紹介し、本作業の流れを押さえていきたいと思います。
では、また!!!