どうもこんにちは!
サバ缶(@tech_begin)です。
私たちが普段何気なく使っているシステムの裏側について、ご存知ですか?
IT業界に興味があれば、大枠の分類については理解しておくのがベターです。
でも結構むずかしそうだな……。
はい!簡単ではありません!(キッパリ)
ですがこの機会にぜひ、システムの分類と種類について理解しておきましょう!
無理せず、自分のペースで学んでいきましょうね💪
システムの分類と種類
システムは、「用途」と「場面」によって様々な種類に分類できます。
- 利用場面による分類
- 利用者による分類
- 構成による分類
- 構築による分類
- 処理の実行タイミングによる分類
- システムの開発範囲による分類
それぞれについて、詳しくみていきます。
利用場面による分類
利用場面でのシステムの分類は、大きく2つに分けられます。
- ビジネス系システム
- 組み込み系システム
ビジネス系システム
ビジネス系システムとは、ビジネスを遂行するために必要な業務を行うシステムのことです。
直接業務の内容に関わるようなもののことを一般的に指します。
- 基幹系システム
- システム化する業務内容で、直接業務に関わるシステムのこと。
- 一般的には、販売管理、在庫管理、人事管理などを含む。
- 企業活動の要(かなめ)となる業務を担うため、重要度がとても高い。
- 情報系システム
- 基幹系システムで入力されたデータを解析し、役に立つ情報を生成したり、特定業務を支援するために必要な情報を提供する。
- 例えば、顧客管理システムの情報から解析し、どのユーザが購買意欲が高いかなどをアウトプットするサービスなど。
- 社内SNS、メーラー、Web会議システムなども「特定業務の支援」という意味で情報系システムに含まれる。
組み込み系システム
組み込み系システムとは、家電製品・機械・装置などを動かすために組み込まれるシステムのことです。
開発する場合は、ソフトウェアだけでなくハードウェアの機械制御技術の知識も必要になります。
組み込み系システムは、以下のように分けられます。
分野 | 製品例 |
---|---|
家庭用電気機器 | 炊飯器、洗濯機、デジタルカメラ、スマホなど |
輸送機器 | 自動車のエンジン制御機器、カーナビ、航空機、エレベータ、鉄道車両など |
産業用機器 | POSレジ、信号機、産業用ロボット、自動販売機など |
医療用機器 | 心電計、自動血圧機、体温計など |
利用者による分類
利用者による分類は、大きく3つに分けられます。
- 社内システム
- BtoB
- BtoC
以下で詳しく見ていきましょう。
社内システム
社内システムとは、特定の企業内で従業員を中心に利用するシステムのことです。
- 自社でも他社でも関係なく「社内」という言葉を用いる
- 動作環境やプラットフォームを統一しやすいメリットがある
BtoB
BtoBとは「Business to Business」の略称で、企業間での電子商取引です。
個人の一般ユーザは利用せず、企業間で利用する場合のことを指します。
- 「B2B」と記述されることもある
- 企業間でプラットフォームが異なるケースが多い
- データの誤りが他社へ影響を及ぼすこともある
BtoC
BtoCとは「Business to Consumer」の略称で、企業と一般消費者での電子商取引です。
一般の顧客が利用するシステムを指しています。
- 「B2C」と記述されることもある
- 障害が起きた際、ユーザ離れにつながるのはもちろんのこと、場合によっては訴訟問題につながる恐れもある
- 個人情報の流出、サービス提供内容に伴う犯罪行為の幇助など
- 一般的に運用開始やアップデートの予告を行うため、公開期日は厳守である。影響するユーザ数によっては多くの損害を生むことになる。
- UIは分かりやすく、使いやすいものが多い
- 操作性の悪さは、
- ユーザ減少≒顧客減少につながるため
- カスタマーサポートなどのコスト増大にも影響するため
- 操作性の悪さは、
構成による分類
- 分散型システム
- 複数のコンピュータやソフトウェアの組み合わせによって、規模の大きいサービスを提供する
- 集中型システム
- 様々なソフトウェアやデータを1つのコンピュータで一元管理し、サービスを提供する
以下で詳しく説明しています!
構築による分類
構築による分類は大きく2つに分けられます。
- オープン系システム
- プロプライエタリシステム
オープン系システム
様々なメーカーのソフトウェアやハードウェアを組み合わせて構築されたシステムのことです。
- 新技術への適応が早い
- 開発コストを抑えやすい
- ネット上や書籍の情報が豊富にある
- プラットフォームやライブラリの知識がないと、トラブル発生時の対処に時間がかかる恐れがある
- サポートが得られない
プロプライエタリシステム
ある特定のメーカーの製品のみを組み合わせて構築されたシステムです。
- 問題発生時、サポートを受けることが可能
- 新技術への対応が遅い
- プラットフォームやライブラリの調達コストがかかり、導入後のサポートなどでコストがかさむ可能性あり
処理の実行タイミングによる分類
- オンライン系
- ネットワークを通じて、リアルタイムで処理を行うこと
- 情報検索サイトやオンラインショッピング、動画配信サービスなど
- バッチ系
- オフライン状態で多数のデータをあらかじめ処理しておき、特定のタイミングで一括処理を行うこと
- 振り込み処理、入庫や出庫による在庫データ更新など
システムの開発範囲による分類
- 新規開発
- 既存システムの拡張
- 既存システムのリプレイス
新規開発
これまでシステム化されていなかった業務のために新しくシステムを開発することです。
ユーザからの要求分析、要件定義が非常に重要になります。
もちろん、設計も製造も
全て重要な工程ですが。。。
その理由は、以下の通りです。
- 少しでもボロがあるままでいると、システムが終了するまで負の遺産として引きずるためです。数十年残るシステムとなったら、一人の数十秒が積み重なり、大きな損失にもつながります。
- 技術的負債とも言います。
- ユーザの期待と乖離している場合、ユーザ離れのシステムにも繋がります。
最初がとても重要ですね。
既存システムの拡張
既存システムを維持したまま、新たな機能を加えたり、機能を拡張することです。
- 保守開発
- 既存のシステムに潜む、不具合やアップデートに伴う改修を加えていくこと
- スマホアプリやWebアプリにおいてこの形式が多く取られる
- 派生開発
- 既存のシステムを元に、新たなシステムを構築・開発すること
- 組み込みシステムにおいてこの形式が多く取られる
- 既存システムがブラックボックス化している場合が多い
- したがって、機能拡張時に影響範囲が特定しにくくなります。
- 以下のような理由が考えられます。
- 設計書などのドキュメント不足
- 開発時のメンバー不在
- すでに稼働しているシステムなので、時間は巻き戻せません。。。グッと堪えるか、空いた工数で改善をしていくしかありません。
- 新規開発と比較し、研究や分析が遅れている傾向がある
既存システムのリプレイス
既存システムの機能を保証した状態で、プラットフォームやミドルウェアの変更を行います。
- ハードウェアの寿命、サポート期限切れ、今後に向けての機能拡張などを目的として行われる
- 機能拡張も込みで行われることが多い
- 既存システムの機能を把握した上でリプレイスを行うが、機能の把握が困難
- ユーザー側は機能に変化がないためメリットは少なく、開発者側はリスクが大きい(現行保証、機能把握)
「リグレッションテスト」というデグレードしていないことを確認するテストも必須です。
まとめ
システムの様々な分類の仕方について学ぶことができました。
長文となってしまいましたが、一気に覚える必要はありません。
自分が参画するプロジェクトや、こういう仕事をしたい!という指針にも繋がればよいかと思います!