設計書レビューの種類を理解しよう

前回の勉強内容

ponsuke-tarou.hatenablog.com

レビューの種類についての過去問

作業成果物の作成者以外の参加者がモデレータとして主導すること,及び公式な記録,分析を行うことが特徴のレビュー技法はどれか。

ア. インスペクション > 正解
イ. パスアラウンド
ウ. ウォークスルー
エ. ペアプログラミング
平成24年春期問47 レビュー技法|応用情報技術者試験.com

インスペクションは、公式性の高いプロセスやルール・役割分担が決まっているレビュー技法です。

  • 英語 : inspection
  • 英和:精査,点検,検査; (書類の)閲覧. (ɪnspékʃən )
  • 別名 : ソフトウェアインスペクション

目的は欠陥を発見すること
以下のことを行う
a) 仕様を満たしていることの検証
b) 既定の品質を満たしていることの検証
c) 適切な規則・標準・ガイドライン・計画・仕様・やり方に従っていることの検証
d) a)-c)の結果が逸脱していないことの確認
e) Collects software engineering data (for example, anomaly and effort data)
f) 集めたsoftware engineering dataをチェックリストや検証の材料に使う
g) 発見した欠陥の修正をする
h) プロジェクト管理において適切な決定ができるようにインスペクションの結果を使えるよ う 記録 す る
IEEE 1028 Software Review and Audit

目的は、欠陥を発見すること。
他のレビューとは以下が違う
1. プロジェクトや企業の決まりに従う
2. 対象はサンプリングする
3. モデレータが管理を行う
4. インスペクションのノウハウがあるモデレータが先導する
5. インスペクションチームのメンバーが気付いた欠陥や他の意見についてモデレータ指揮の元話し合う
SWEBOK V3

ピアレビューの一種。ドキュメントの目視検査により、欠陥を検出する方法。
これにより、たとえば、開発標準の違反や、上位レベルドキュメントへの準拠違反が見つかる。最も公式なレビュー技術なので、必ず、文書化された実施基準に従って進める。
JSTQBソフトウェアテスト標準用語集

目的 : 欠陥の検出

設計仕様書やコーディングしたプログラムのロジックを第三者が検証し、誤りや問題点を検出することである。
インスペクションとは (inspection): - IT用語辞典バイナリ

メリット

  • 開発者本人が気づきづらい問題点を洗い出すことができる
  • プログラムなどを実際に動作させてみるテストでは検知できない潜在的な不具合を見つけることができる場合がある
  • コーディングルールに対する違反や極めて限定された条件でしか発生しない誤動作に繋がる問題点が検出される

役割

  • モデレータ(インスペクションリーダ) : 進行を主導し、インスペクション作業全体を統括する
    • モデレータにより、参加者の選定や、個々の役割の規定などが行われる
  • マネージャ : 実施のスケジュールを立て、レビューの目的が適切かどうかを判断する
  • レビューア(チェッカー/インスペクタ) : ある特定の技術やバックグラウンドを持ち、レビューを行う
    • 専門的ノウハウのある人
    • いろいろな分野や、レビュープロセスの役割を代表する人
    • 例えば・・・
      • プロジェクトや開発対象に関して一般的な知識しか持たないが、インスペクションの豊富なノウハウを持つ人
      • 法務やセキュリティーの専門知識をもっている他部門
  • 記録係 : レビューで取り上げた全ての課題・問題点・未解決事項を記録する
  • 他にも進行役等が設けられることもある

ルール

  • 実施計画立案では、実施タイミングや対象だけではなく「結果をどう使うか」まで決める
    • 例) 結果は対象ドキュメントの品質向上に使う
    • 例) 実施結果を工程移行の判定に使う
    • 例) プロジェクト完了後のプロセス改善のための会議のインプットに使う
  • 検出した欠陥をログに保管し、修正が行われたことを追跡調査する
  • インプット : ドキュメント
    • 企画書、プリセールスの提案書、プロジェクト計画書、要件定義書、各種設計書、ソースコード、バグ票、テスト計画書などあらゆる文書
  • アウトプット : 対象ドキュメントに含まれていると指摘された欠陥のリスト

f:id:ponsuke_tarou:20190806232933p:plain

ウォークスルーは、作成者がレビュー対象を説明しレビュー対象者にコメントを求める形式で進行するレビュー技法です。

  • 英語 : walkthrough

インスペクションに準じる公式なソフトウェアレビューに位置付けられることが多い。
ウォークスルーは、レビューを希望する作成者が数人のレビューアを招集、成果物の内容を順に説明する形式をとる。それに対してレビューアは、説明を通じて対象を追跡・検証し、その誤りや矛盾、抜け漏れなどを指摘するというのが大まかな流れである。
ウォークスルー(うぉーくするー) - ITmedia エンタープライズ

ドキュメントの著者による段階的なドキュメント内容の説明。情報を集めて、内容の共通理解を確立するために行なう。
ソフトウェアテスト標準用語集

目的 : 設計上の誤りを早期に発見すること と 設計の共通理解

設計上の誤りを検出するために作成者と複数の関係者が設計書をレビューします。
要求段階や設計段階の初期には,エンドユーザ (利用者) にも参加してもらうこともあります。
また、関係者間での使用上の共通理解を得ることができる。

メリット

  • ミーティングで指摘や意見が得られる
  • ウォークスルーの開催を前提にすれば、作成者は成果物を作る段階からそれが読まれること、他人に説明することを意識する
  • 作成者はミーティングで自身の考えを論理を説明する作業を通じて、自分自身で問題点や矛盾点に気付く場合もある
  • 解決策は、会議終了後に成果物作成者が自分で考えるので、会議の時間を短縮できる

ルール

  • 作成者が主体となって開催する
  • 指摘された内容は文書化するが、欠陥を修正するか否かについては作成者の責任として、ミーティングでは取り扱わない
  • 作成者はミーティングの終わりに指摘項目を読み上げ、追加の問題点やコメントの有無を確認する。

デザインレビューは、各設計工程において次の工程に向けて成果物を複数人でチェックするレビュー技法です。

  • 英語 : DesignReview
  • 略称 : DR

デザインレビューとは、開発における成果物を、複数の人にチェックしてもらう機会のことで、JIS(日本工業規格)やISO(国際標準化機構)9000シリーズにおいて定義されている設計審査のことである。
デザインレビューとは何? Weblio辞書

上司や管理者が参加すると設計者への評価へつながるため、出席すべきではないとされている。
情報処理教科書 応用情報技術者 テキスト&問題集 2018年版(日高哲郎)|翔泳社の本

目的 : 設計の工程ごとに設計品質の評価と各工程が終了したかどうかを判断する

レビュー対象が内部設計書であれば、外部設計書との一貫性の検証と要件定義の内容を満たしていることの確認を行う。
各設計工程ごとに成果物の問題点の早期発見を行うことで、後工程の作業をスムースにしてシステムの最終的な品質を高めることにつなげる。

メリット

各フェーズにおける仕様書や設計書、プログラムなどの成果物を第三者の目(営業、経理、購買、生産管理、品質保証など)でレビューすることにより、開発者の視点では漏れてしまう内容を精査して、品質を確保することを目的としている。<省略>
デザインレビューの参加者が、成果物について指摘し合うことにより、現在起きている問題やプロジェクトの進捗状況などの情報を共有することができるため、設計審査のみならず情報共有手段としても有効である。
デザインレビューとは何? Weblio辞書

寝るまでにざっくり知っとくRDSって何?

BOSSから「RDSへ切り替えてみてもらえませんか?」と言われました。
懇親会でほろ酔いのまま「明日、やってみます!」と答えました。
はい、めちゃめちゃ知ったかしました、RDSがなんだかわかりません。
寝るまでにざっくり確認してみました。

RDSは、AWSのサービスでリレーショナルデータベースを管理できます。

  • 正式 : Amazon Relational Database Service

Amazon RDS はマネージド型リレーショナルデータベースで、データベースエンジンを Amazon AuroraMySQLMariaDBOracleMicrosoft SQL ServerPostgreSQL といった一般的な 6 種類のエンジンから選択できます。
特徴 - Amazon RDS | AWS

リレーショナルデータベースを管理するソフトウェアをまとめてRDBMSといいます。

RDBMSとはリレーショナルデータベースを作る・使うためのソフトウェアであり、以下のような特徴があります。

・データの整合性を維持しやすい。
・簡単にデータを参照・更新できるSQLという専門用語がある。
・信頼性のある更新処理を実現するトランザクション機能がある。
・障害発生時でも格納したデータが容易に失われない。
・セキュリティ・チューニングなど多くの周辺機能がある。
データベース初心者でも分かるRDBMSの基本~JPOUG Oracle Database入学式レポート | geechs magazine

RDSは、クラウド上のRDBMSです。

自分たちでせっせとサーバを用意してラックと置き場所を用意して・・・とか不要です。
AWSのEC2インスタンスでDBサーバ作ってインストールやら管理を頑張って・・・をRDSというDB専門サービスで楽にできちゃうみたいです。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png
チュートリアル: ウェブサーバーと Amazon RDS データベースの作成 - Amazon Relational Database Service

AWSのコンソール画面でボタンをポチポチするだけでRDBの作成から管理まで出来ちゃいます。

https://d1.awsstatic.com/icons/jp/handson/secure-scalable/phase2/ss-handson-086.7f70334480ce55eb75d04e451c941b085497671c.jpg
フェーズ 2-3: Amazon RDS インスタンスを作成 - スケーラブルなウェブサイトの構築方法 | AWS

作ったあとでスケーリングも簡単にできるそうです。

e-words.jp

自動でスケーリングすることさえできるそうです。

https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F354022%2F8978bbb2-f2a7-e220-830d-68b3148902eb.png?ixlib=rb-1.2.2&auto=compress%2Cformat&fit=max&w=1400&s=1f7459ecc5c8b44b236c6262b2e7ea11
【AWS】RDS自動スケーリングが発表されたけど注意事項があるので検証した話 - Qiita

自動バックアップだって設定で出来ちゃいます。

docs.aws.amazon.com

どうやれば起動するんだろう・・・・

RDSは、使ったら使った分お金がかかります、だからきっと明日の朝は停止していることが予想されます。
明日の朝、どうやれば起動するかを知っときます。
aws.amazon.com

方法1. AWS コマンドラインインターフェース (CLI)のstart-db-instanceコマンドを使う

AWS CLIのインストールやらが必要そうなのでまた今度。
docs.aws.amazon.com

方法2. Amazon RDS アプリケーションプログラミングインターフェイス (API)のStartDBInstanceアクションを使う

そもそもAmazon RDS APIの使い方すらわからないのでまた今度。
docs.aws.amazon.com

方法3. AWS Toolkit for Visual StudioAWS Explorerを使う

今回、Visual Studioを使っていないので記録程度。
docs.aws.amazon.com

方法4. コンソール画面でボタンをポチポチする

一番簡単な方法がなぜかなかなか見つからない自分の検索センスの無さに驚きです。

  1. f:id:ponsuke_tarou:20190805221400p:plain
    Amazon RDS コンソールを開きます。
  2. f:id:ponsuke_tarou:20190805221241p:plain
    ナビゲーションペインで、[データベース] を選択し、
  3. 開始する DB インスタンスを選択します。
  4. f:id:ponsuke_tarou:20190805221558p:plain
    [アクション] で [開始] を選択します。

docs.aws.amazon.com

接続情報ってどこにあるんだろう・・・

起動できてもアプリやDBクライアントツールに設定する情報がわからないと困ります。

接続ユーザーとパスワードはRDSインスタンス作成時に指定しているので作成者に聞きます。

流石にそこまでコンソールでは見られないと思います。

https://d1.awsstatic.com/icons/jp/handson/secure-scalable/phase2/ss-handson-080.7ecbc8f8f202a528aba511e6ce09b3001e37d2d8.jpg
フェーズ 2-3: Amazon RDS インスタンスを作成 - スケーラブルなウェブサイトの構築方法 | AWS

最後に

明日、なんとか使えそうなぐらいには調べました。
本当に使えるようにはRDSはおろかAWSRDBの知識もめちゃめちゃ足りません。
少しずつこのページを更新していきたいものです。

f:id:ponsuke_tarou:20190805224722j:plain
とある日

次の日

調べたとおりにRDSを起動できました。

コンソールで確認したエンドポイントとポート番号を使ってみる。

pingコマンドで名前解決できているか見てみます。
# pingは通らなくても名前解決できていることがわかりました。
$ ping {確認したエンドポイント}

ec2-12-345-678-90.ap-northeast-1.compute.amazonaws.com [12.345.678.90]に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

12.345.678.90 の ping 統計:
    パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
クライアントツールで接続してみます。

f:id:ponsuke_tarou:20190806093944p:plain
A5:SQL Mk-2で接続してみる
f:id:ponsuke_tarou:20190806094124p:plain
接続できました。

iptablesはファイアウォールとパケット転送ができる

iptablesでポート転送の設定をして」と言われました。

AWSのCentOS6に「他のインスタンスに転送できるようにiptablesの設定をして」と言われました。
何?iptablesって?

iptablesは、Linuxに搭載されていてパケットのルールを設定できます。

http://smilejapan.net/wiki/index.php?plugin=ref&page=iptables%E3%81%A8%E3%81%AF%EF%BC%9F&src=iptables-1.gif
iptablesとは? - SMILE JAPAN WIKI

CentOS7からファイアウォールは、iptablesからfirewalldへと変更されました。

qiita.com

設定はコマンドと設定ファイルを書く方法があります。

コマンドで設定する時

iptables [-t テーブル] [コマンド] [チェイン] [条件] [ターゲット]

設定ファイルを書いて設定する時
設定ファイルの場所 : /etc/sysconfig/iptables

$ sudo cat /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 54321 -j DNAT --to-destination 10.0.1.1:1521
-A PREROUTING -p tcp -m tcp --dport 54322 -j DNAT --to-destination 10.0.1.2:80
-A POSTROUTING --dst 10.0.1.1 -p tcp -m tcp --dport 1521 -j SNAT --to-source 10.0.1.3
-A POSTROUTING --dst 10.0.1.2 -p tcp -m tcp --dport 80 -j SNAT --to-source 10.0.1.3
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

受信したパケットはChainというルートを通って処理されます。

https://eng-entrance.com/wp-content/uploads/2016/07/chain.png
【丁寧解説】Linuxファイアウォール iptablesの使い方

https://oxynotes.com/wp-content/uploads/iptables01.png
コピペから脱出!iptablesの仕組みを理解して環境に合わせた設定をしよう | OXY NOTES

https://cacoo.com/diagrams/zWJRlTb4nFY0UoYy-B6C43.png
iptablesの設定 入門編 - Murayama blog.

Chainの種類
名前 設定できるテーブル 説明
INPUT filter, magnle 入ってくるパケットについてのチェイン
OUTPUT filter, nat, magnle 出てゆくパケットについてのチェイン
FORWARD filter パケットを転送についてのチェイン
PREROUTING nat, magnle 受信時にアドレスを変換するチェイン
POSTROUTING nat 送信時にアドレスを変換するチェイン

iptablesは、ポートフォワードとして使用するパケット転送機能もあります。

natテーブルに設定します。

ponsuke-tarou.hatenablog.com

設定ファイルでは「*nat」に書きます。

*nat
ここに設定を書く
COMMIT

iptablesで見かけたNATって何?

iptablesでNATテーブルってあるけどこれ何?

iptablesがさっぱり不明な状態で「iptablesを設定してポートフォワードできるよにする」必要があったのでiptablesが有効になっているか確認したらTable: natって出力がありました。

$ sudo /etc/rc.d/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

NATはプライベートIPアドレスとパブリックIPアドレスを組合せで変換してくれます。

  • 正式名称 : Network Address Translation

https://camo.qiitausercontent.com/441f211d0a460bec29f4270ddbf1c0e090e92ef5/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f35316164306362612d643864632d616665302d336334632d6534356563643761313462332e706e67
https://camo.qiitausercontent.com/84807767dd8cb6eac4c67e33b3e4e59a37db3d84/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f38363661663661312d396164382d636336612d643431392d3735623237623835653239322e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

https://www.infraexpert.com/studygif/tcpipz36.gif
NAT( Network Address Translation )とは

変換するプライベートIPアドレスとパブリックIPアドレスの組合わせを管理してくれるのがNATテーブルです。

https://www.itbook.info/study/img/nat.jpg
NAT - ネットワークエンジニアを目指して

http://blog-imgs-70.fc2.com/a/y/u/ayufishing/rtxnat02s.png
NAT の理解は芋づる式 - インフラまわりのプロになりたい

https://www.infraexpert.com/studygif/tcpipz38.gif
NAT( Network Address Translation )とは

LAN内からインターネットへ出ていく時に送信元のプライベートIPアドレスをパブリックIPアドレスに変換してくれるのがソースNAT
  • 略称 : SNAT
  • 英語 : Source NAT
  • 別名 : 送信元NAT

https://camo.qiitausercontent.com/cbec96ed61552c11e57cc9770f4e8b3641124298/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f37343331323764392d663461622d313838632d653331362d3136323264336339363336302e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

インターネットからLAN内にアクセスする時に送信先のパブリックIPアドレスをプライベートIPアドレスに変換してくれるのがデスティネーションNAT

https://camo.qiitausercontent.com/ef453e42301d02cee6a9a09ccdcb4d23283112b8/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f37336534346230332d326262392d323635622d656566622d6264343164313239613233352e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

NATは、プライベートIPとパブリックIPを1対1の組合せで変換します。

プライベートIPはたくさん作れるけどパブリックIPをたくさん用意するのは大変です。

パブリックIPアドレスはタダじゃありません。

http://blog-imgs-70.fc2.com/a/y/u/ayufishing/rtxnat03s.png
NAT の理解は芋づる式 - インフラまわりのプロになりたい

そこで、IPマスカレード

  • 別名 : NAPT
  • 正式名称 : Network Address Port Translation
複数のプライベートIPを1つのパブリックIPに組合せられます。
なぜなら、IPアドレス+ポート番号で組合せるからです。

https://www.itbook.info/study/img/napt.jpg
NAPT(IPマスカレード) - ネットワークエンジニアを目指して

https://camo.qiitausercontent.com/8f2cd04f50b039a3a1af1eaef3ccc851c7977029/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3136303939332f32373462393962622d396330372d303663362d623431622d6465353030343230363166352e706e67
NATに関して可能な限り分かりやすくまとめて見た。 - Qiita

https://www.h323.jp/wp/wp-content/uploads/napt.jpg
MCU入門 第9回 NAT/FW トラバーサル③– NAT/FW トラバーサルの仕組み “NATとは” – MCU製品情報サイト VC.info

https://mo.kerosoft.com/pub/mo/image/iptables/.thumbnail/iptables-nat2.png.jpg
NAT箱の192.168.1.30:1234宛に届いたパケットを、10.0.2.50:80へ投げるというNATを書く。
# iptables -t nat -A PREROUTING -m tcp -p tcp --dst 192.168.1.30 --dport 1234 -j DNAT --to-destination 10.0.2.50:80
"10.0.2.50:80宛のパケットは、NAT箱の10.0.2.40というアドレスに付け替えてから送信する"というルールを書く。
# iptables -t nat -A POSTROUTING -m tcp -p tcp --dst 10.0.2.50 --dport 80 -j SNAT --to-source 10.0.2.40
NATのPREROUTINGを通って変換されたアドレスに対して許可ルールを書いておく。
# iptables -A FORWARD -m tcp -p tcp --dst 10.0.2.50 --dport 80 -j ACCEPT
戻りのパケットも許可する
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptablesで特定のポートを別のホストへ転送する方法 - Kerosoft : Modus Operandi

コンピュータ化システムバリデーションの基礎となるGMP省令の3大目的

コンピュータ化システムバリデーションを勉強するとGMPという単語をよく見かけました。

ponsuke-tarou.hatenablog.com

GMPとは、日本における「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」のことです。

  • 英語 : Good Manufacturing Practice
  • 日本語 : 適正製造規範

ざっくりいうと「安心して製品を使えるようにやらなければならないこと」です。
GMPは、医療分野以外にも食品などの製造業でも使われます。
日本の製薬・医療業界では「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」を指すことが多いです。
この省令は、GMP省令とも言います。
「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」は薬事法の14条に基づいています。
14条では「医薬品等の製造販売の承認」に始まり承認の基準や審査について記載されています。

GMPは、医薬品製造業における製造管理と品質管理の基準です。

健康食品や化粧品にも適用される基準です。

省令を読んでもよくわかりません。

書いてある文字列が難しくてよくわからないので、GMPを説明しているサイトと合わせて学びます。

誰が作業しても、いつ作業しても、必ず同じ品質・高い品質の製品をつくるために、医薬品製造業者が守るべきルールです。

目的を達成するためにやること

https://www.urethanegel.jp/blog/wp-content/uploads/2018/07/GMP.jpg
GMPって何?|医薬品の品質管理を分かりやすく!

(ハード)薬を作る製造所の環境や設備

GMP省令ではこんな感じで書いてあります。

(構造設備)
第九条 製品の製造所の構造設備は、次に定めるところに適合するものでなければならない。
 一 手順書等に基づき、その用途に応じ適切に清掃及び保守が行われ、必要に応じ滅菌され、また、その記録が作成され、保管されていること。
 二 製品等により有毒ガスを取り扱う場合においては、その処理に要する設備を有すること。
 三 作業所のうち作業室は、製品の種類、剤型及び製造工程に応じ、じんあい又は微生物による汚染を防止するのに必要な構造及び設備を有していること。ただし、製造設備等の有する機能によりこれと同程度の効果を得られる場合においては、この限りでない。
 四 作業所のうち、原料の秤量作業、製品の調製作業、充てん作業又は閉そく作業を行う作業室は、当該作業室の職員以外の者の通路とならないように造られていること。ただし、当該作業室の職員以外の者による製品への汚染のおそれがない場合においては、この限りでない。
 五 飛散しやすく、微量で過敏症反応を示す製品等又は交 叉さ 汚染することにより他の製品に重大な影響を及ぼすおそれのある製品等を製造する場合においては、当該製品等の関連する作業室を専用とし、かつ、空気処理システムを別系統にしていること。
 六 製品の製造に必要な質及び量の水(設備及び器具並びに容器の洗浄水を含む。)を供給する設備を有すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

間違いを防ぐことができること

フェールセーフ/フェールプルーフに似ています。
医療系のシステム開発では、設計段階から「ユーザ操作に間違いがあったら?」の目線が必要になりますね。

https://resilient-medical.com/wp-content/uploads/2017/10/s_2d8b5cd55b5a69bb2da5907ef37c47c6-600x500.jpg
https://resilient-medical.com/wp-content/uploads/2017/10/s_1a761dab43bbde6360d38e147bf4de04-600x500.jpg
https://resilient-medical.com/human-error/fail-safe-fool-proof

衛生的であること
高い品質を保ち続けることができること

システム開発では品質を保つために色んな種類のテストを実施します。
医療系のシステム開発ではこれがより厳しく求められることになります。

(ソフト)人によるルールの運用

https://www.temahimado.co.jp/img/gmp_09.gif
GMPとは?│にんにく卵黄通販サイト てまひま堂

http://www.tokyo-eiken.go.jp/assets/pharma/hinshitu/image/gmp_003_2.gif
誰でもわかる簡単GMP (3)考え方の基本〜ルールを決めて書類にする・実行する・見直す・改善する〜

ルールを決めてそれを書類に残すこと

GMP省令では作る手順書の種類を具体的に決めています。
医療系のシステム開発では、仕様書や手順書の作成が重要となります。

(手順書等)
第八条 製造業者等は、製造所ごとに、構造設備の衛生管理、職員の衛生管理その他必要な事項について記載した衛生管理基準書を作成し、これを保管しなければならない。
 2 製造業者等は、製造所ごとに、製品等の保管、製造工程の管理その他必要な事項について記載した製造管理基準書を作成し、これを保管しなければならない。
 3 製造業者等は、製造所ごとに、検体の採取方法、試験検査結果の判定方法その他必要な事項を記載した品質管理基準書を作成し、これを保管しなければならない。
 4 製造業者等は、前三項に定めるもののほか、製造管理及び品質管理を適正かつ円滑に実施するため、次に掲げる手順に関する文書(以下「手順書」という。)を製造所ごとに作成し、これを保管しなければならない。
  一 製造所からの出荷の管理に関する手順
  二 バリデーションに関する手順
  三 第十四条の変更の管理に関する手順
  四 第十五条の逸脱の管理に関する手順
  五 品質等に関する情報及び品質不良等の処理に関する手順
  六 回収処理に関する手順
  七 自己点検に関する手順
  八 教育訓練に関する手順
  九 文書及び記録の管理に関する手順
  十 その他製造管理及び品質管理を適正かつ円滑に実施するために必要な手順
 5 製造業者等は、製品標準書、衛生管理基準書、製造管理基準書、品質管理基準書及び手順書(以下「手順書等」と総称する。)を製造所に備え付けなければならない。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

ルール実行するための手順書をSOPともいいます。

SOP(Standard Operating Procedures)とは標準業務手順書の略称で、治験の際に必ず守るべき基本的な業務手順をまとめた手順書。
SOPとは | 製薬業界 用語辞典 | Answers(アンサーズ)

ルールの実行結果を記録に残して証拠にすること

GMP省令には「記録を作成し、これを保管すること」がたくさんあります。
医療系のシステム開発では、エビデンスをきっちりと残して管理する必要があります。

(製造管理)
第十条 製造業者等は、製造部門に、手順書等に基づき、次に掲げる製造管理に係る業務を適切に行わせなければならない。<省略>
 三 製品の製造に関する記録をロットごと(ロットを構成しない製品については製造番号ごと。以下同じ。)に作成し、これを保管すること。
 四 製品の資材についてロットごとにそれが適正である旨を確認するとともに、その結果に関する記録を作成し、これを保管すること。
 五 製品等についてはロットごとに、資材については管理単位ごとに適正に保管し、出納を行うとともに、その記録を作成し、これを保管すること。
 六 構造設備の清浄を確認するとともに、その結果に関する記録を作成し、これを保管すること。
 七 職員の衛生管理を行うとともに、その記録を作成し、これを保管すること。
 八 構造設備を定期的に点検整備するとともに、その記録を作成し、これを保管すること。また、計器の校正を適切に行うとともに、その記録を作成し、これを保管すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

内容を見直して検討・改善していくこと

手順の作成と記録だけではなく、定期的に記録をチェックして状況や環境の変化に合わせた改善が必要になります。

(製造管理)
第十条 製造業者等は、製造部門に、手順書等に基づき、次に掲げる製造管理に係る業務を適切に行わせなければならない。<省略>
 九 製造、保管及び出納並びに衛生管理に関する記録により製造管理が適切に行われていることを確認し、その結果を品質部門に対して文書により報告すること。
・医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令(◆平成16年12月24日厚生労働省令第179号)

国や会社によってばらつきがあります。

ざっくり似ていても世界各国全く同じ基準ではありません。

PIC/Sでは、GMP基準の国際化を目指しています。

  • 正式 : Pharmaceutical Inspection Convention and Pharmaceutical Inspection Co-operation Scheme
  • 日本語 : 医薬品査察協定及び医薬品査察共同スキーム

PIC/Sは、GMPの分野で共通の基準を設け、各国の査察官にトレーニングの機会を提供することによって、世界中の査察基準を整合させることを目指しています。
PIC/Sの基礎知識。PIC/S GMPとは?PIC/Sの目的や成り立ちは? | コラム | 平原エンジニアリングサービス│医薬品施設のエンジニアリング

GMPの歴史

  • 1961年 サリドマイドの薬害について報告される
  • 1963年 (アメリカ)FDA(アメリカ食品医薬品局)が、連邦食品・医薬品・化粧品法に基づいて医薬品等の製造品質管理基準を定めた
  • 1969年 世界保険機関がWHO-GMPを制定し、加盟国に対して医薬品貿易においてGMPに基づく証明制度を採用・実施するように勧告
  • 1980年 (日本)薬事法改正に伴い「医薬品GMP」施行
  • 1990年 (日本)「原薬GMP」施行
  • 1994年 (日本)「医薬品GMP」「原薬GMP」を合わせた「医薬品の製造管理及び品質管理規則」施行し、これが製造業の要件となった
  • 1995年 PIC/S設立
  • 2005年 (日本)「医薬品及び医薬部外品の製造管理及び品質管理規則」が「医薬品及び医薬部外品の製造管理及び品質管理の基準に関する省令」へ改正され、製造販売承認の要件となった
  • 2014年 日本がPIC/Sに加盟

WebLogic Serverって何?

JPAって何?

JPAは、リレーショナルデータベースを使う時用のJavaフレームワークの仕様の定義です。

http://terasolunaorg.github.io/guideline/5.5.1.RELEASE/ja/_images/dataaccess_jpa_mapping.png
6.3. データベースアクセス(JPA編) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.5.1.RELEASE documentation

Java EEだけではなくJava SEでも使えます。

JPAJava EEの「Enterprise Application Technologies」に含まれる技術仕様ですが、Servlet/JSPEJBなどと異なり、コンテナ・ベースのアーキテクチャを採用していないためJava SEでも利用可能です。
JPAの基礎1 - Qiita

データベースとJavaを関連付けてくれます。

https://builder.japan.zdnet.com/storage/2015/07/07/8ffc3bda4c104f848f0979154e31cfd1/image5.png
初めてのJPA--シンプルで使いやすい、Java EEのデータ永続化機能の基本を学ぶ - builder by ZDNet Japan

JPAは以下3つの要素から構成されています。

Entityクラスは、データベースにあるテーブルを表すJavaのクラスです。

データベースにある1つのテーブルの1レコードを表すクラスです。
このクラスのインスタンス
データを格納してテーブルを更新したり、
テーブルから取得したデータを格納して使います。

永続性コンテキストは、Entityクラスのインスタンスを集めたものです。

この永続性コンテキストとJPQL*1を使用してデータベースへの問合せを行います。

EntityManagerは、Entityのライフサイクルを管理するためのAPIを提供するインタフェースです。

https://builder.japan.zdnet.com/storage/2015/07/07/13f730bf2cc2d33fca20efa3b6979098/image6.png
初めてのJPA--シンプルで使いやすい、Java EEのデータ永続化機能の基本を学ぶ - builder by ZDNet Japan

JPAの実装

EclipseLink
Hibernate ORM : JPAの仕様作成にHibernateプロジェクトの創始者がいたため、JPAHibernateの影響を受け継いでいます。
Apache Open JPA

*1:Java Persistence Query Language : SQLに似た問合せ言語