概要
設計についてしばらく書いていなかったので今回は記事にしていきます。セキュリティ設計、運用設計、テスト設計についての話になります。
目次
セキュリティ設計(リスク分析)とは
現在は情報漏洩やITの技術を悪用してお金を騙し取るという人が増えてきました。特に海外で北朝鮮やイスラエルといった国は情報をクラッキングする人たちが多いと聞きます。
そのような脅威から身を守る筆票があるということと、簡単に機密情報を抜かれるということはあってはならないのでしっかりと設計する必要があります。
セキュリティ設計書に載せる項目
具体的にこのようなフォーマットがありません。
以下のことについての脅威についてどう対処するかをわかりやすく設計書にまとめます。
- どんな攻撃者がいるか
- どのような攻撃が想定されるか
- 何が狙われるか(DBなど)
- 正しくSSLできているか
- sshやcredensialについてどう運用していくのか
- どのような方法でユーザーのみが利用できるようにするか(どのような認証方法にするか)
上記は一例です。
2019年にIPAが情報セキュリティ10大脅威を発表しています。
IPA 情報処理推進機構 情報セキュリティ10大脅威 2019
システムを作成する上ではまた別の観点が必要となってきますが現在もどんどん悪意を持った人の攻撃から守る必要がありますしどんどん進化させていく必要があります。
そこでどのようなことをまとめていく必要があるのか具体的にこちらの本を一読してみてはいかがでしょうか。
運用設計とは
システムが納品されてから実際の運用が始まります。運用が始まった時に様々なトラブルをあらかじめ予想し対策をすることやオペレーションをスムーズにするために書かれています。
もうちょっと具体的に箇条書きにしました。
運用設計書に載せる項目
- 障害発生時に迅速に復旧させるため、予め手順を策定する。
- 障害の予防、再発防止のための分析・対策を行う枠組みを用意する。
- タスク・ノウハウが属人的しないようにする。
- システム運用を効率化する仕組み・体制を用意する。
システムを使った業務運用をどのように進めていくかの想定を設計する必要があるのですが上流工程である程度検討することになります。上流工程はあくまでどこまで予想できるかということになるので出来上がってから再度検討し直すことになります。
運用設計は上流工程で基本設計していく時ペルソナ分析中に出てくるユースケースをそのまま運用設計に載せるということもあります。具体的な方法や考え方をより詳しく知りたい方はこちらの運用設計の教科書をみてみるのもいいと思います、
テスト設計とは
テストをするために準備するのですが、テスト設計です。よく勘違いされるのがテスト項目書と同意という意味ではありません。
本来テストをする際はテスト計画を策定し、その後テスト設計を行いテスト項目書を作成します。その中の中間に当たるのがテスト設計です。
テスト設計書に載せる項目(テスト項目書ではない)
- テスト項目書を作る工数と期間
- いつからいつまでの期間テストを実施するのか
- システムのどの部分の単体テスト・結合テスト・システムテスト・総合テストを実施するのか
- テストをするのは何名でどのような人に任せるか
- 期待結果はなんなのか(テスト項目書で全てOK?)
最近ではあまりみなくなりましたがデスマーチ案件は要件定義で時間を浪費し開発に時間がかかってスケジュールが終了する頃に開発を無理やり終わらせることになりテストができないというケースが多くあります。それによって品質が悪くお客様からクレームになることが多々ありました。
最近ではアジャイル開発が主流となりテストを含めたスケジュールもされ遅れることは少なくなってきています。そのため、テストが十分にされてきています。単体テストについてはプログラムで作成するユニットテストやE2Eテストが主流になってきています。
結合テストやシステムテスト、ユーザー含めた総合テストをしっかり計画するためにはテスト設計を組む必要があります。そこで昔からある良書ソフトウェアテスト技法ドリルをみてみるのもいいと思います。
前回までの外部設計
システム開発における外部設計の説明です。今回はAPI仕様書についての記載方法を記事にしました。Swaggerといった便利なAPI仕様書作成ツールについても言及しています。 続きを見る システム開発における外部設計 PART3です。データベース設計についての説明をしています。基礎についての記載になるのでわかりやすく説明していると思います。 続きを見る 外部設計について今回の第2部は画面遷移図、画面設計書、ビジネスロジックについて説明していきます。画像を取り入れながらどのように作成していけば効率的なのかを解説していきます。 続きを見る システム開発における外部設計とは何か。どのような成果物があるのかを説明していく予定です。第1部は外部設計とは何かと方針設計についての説明をしています。 続きを見る
外部設計 PART4 APIインターフェース仕様設計書
システム開発における外部設計 PART3 テーブル定義
外部設計 PART2 画面設計と遷移図 ビジネスロジック
外部設計 PART1 方針設計書
まとめ
セキュリティとシステム運用とテストの設計は大きなシステムでかつ厳しい品質保証をする以外はあまりありません。考えていないというわけではなくドキュメントとしてきっちり残しているのはあまりみたことがありません。