①システム開発のプロセス(1) (要件定義~テスト) p141~ システム開発技術(1) ①システム開発のプロセス(1) (要件定義~テスト) p141~ 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (例)図書館管理システム 画面を定めて プログラム を「作る」必要がある この「作る」 = 「システム開発」 どう「作っていくか」を勉強する 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 ①システム開発のプロセス 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 外部設計 内部設計 ③プログラミング 結合テスト システムテスト 単体テスト 運用テスト ①要件定義 ④テスト ②設計 システム開発順(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (業務)要件定義書 (1)要件定義(p146) 「業務要件」を定義する 情報システムを使って実現される 「業務内容」を明確にする 経営者~利用者のニーズを調査・分析する 手法:ヒアリングなど(後期第5回) 優先度・予算なども考慮 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (2)設計工程の概要(・・・配布の図) 外部設計 利用者から見える部分 内部設計 開発に必要な部分 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 Software Life Cycle Process 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 A.外部設計工程の詳細 ①システム要件定義(p146) 業務要件 → 外部設計の要件として再定義 ⅰ)システム機能(機能要件)の明確化 ⅱ)非機能要件の明確化 ②システム方式設計(p148) システム要件 → どういう方式で実装するか ⅰ)ハードウェア方式 (汎用機 vs C/S) ⅱ)ソフトウェア方式 (ERP vs 開発、 手作業の範囲) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 外部設計工程の詳細(続き) ③ソフトウェア要件定義(p148) システム要件 → 内部設計の要件として再定義 ⅰ)データの定義 画面設計 ⅱ)コード設計 処理の正確化 画面 → データ MRT空港は無い 各設計はこのスライドで簡単に 全般にもっと少なく コード設計(期末)、ソフトウェア要件(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 ④ソフトウェア方式設計 ソフトウェア要件 → どういう方式で開発するか ⅰ)DBMS・プログラム言語の選定 ⅱ)プログラムや データベースの「全体構造」 ⑤ソフトウェア詳細設計 どういうプログラムを作るか(プログラム設計書) ⅰ)プログラム分割 ⅱ)データベース詳細 内部設計(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (休憩)なぜ「開発工程順」 日本史を例に 「真言宗」と「浄土真宗」はどちらが先 開発工程順を知ってると 「コード設計」 vs 「全体構造」 ③ソフトウェア要件定義 vs ④ソフトウェア方式設計 日本史:「時代」 がある 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 プログラミング(PG) アルゴリズムの基本構造(第4回) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 「正しく作られているか」を確認する ①単体テスト(p149) 別名:モジュールテスト デバッグ(DeBug、p228) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 複数のプログラムが連携できているか ボトムアップテスト ・・・ドライバ トップダウンテスト ・・・スタブ (p150) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
③システムテスト(p149) ④運用テスト 外部設計書(システム要件)どおりできているか 機能テスト 性能テストも 退行(リグレッション)テストも 侵入(ペネトレーション)テスト(p184) 性能テストも ④運用テスト (業務)要件定義書どおりできているか システムテストデータ作成(期末)
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (5)システム開発への利用部門の参画 外部設計 内部設計 プログラミング 結合テスト システムテスト 単体テスト 運用テスト 要件定義 対応関係 利用部門の参画(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (6)テストの技法 ホワイトボックステスト(p151) 内部構造の経路をテスト 網羅(省略) 単体テストで ブラックボックステスト(p150) 機能が仕様書どおりか 結合テスト以降で 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 同値分割 限界値分析 例:10個以上100個未満 正常限界:10、99 異常限界:9、100 同値クラスごとに 各1回テストする 限界値分析(期末) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 End 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 Link先 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (戻る) 性能要件 どのくらいの処理能力を持たせるのか 月間処理件数(データベース容量) 1分あたりの処理件数(スループット、第2回) 運用要件 いつでも使えるのか(可用性、第2回) 故障しないか(信頼性) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 Sub NameCheck (Uname As String, Ucode As Integer, Ssw As Integer) Static nmul(1 To 5) As Integer Const p_mod% = 16384 Dim i , j, n, w As Integer nmul(1) = 1: nmul(2) = 2: nmul(3) = 3: nmul(4) = 5: nmul(5) = 7 If LenB(Uname) < 10 Then End w = 0 For i = 1 To 5 For j = 1 To 2 k = (i - 1) * 2 + j n = CInt(Asc(MidB(Uname, k, 1))) w = w + (n * nmul(i) Mod p_mod) Next j Next I If Ssw <> 1 Then If Ucode <> w Then MsgBox "名前が変えられています。" End End If Else Ssw = 0 Ssw = 1 End Sub 他の部分でバグ発生 → 退行 退行しないように 修正したら 他の部分もテスト バグ発生 プログラム修正 (戻る) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 Fin 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
①システム開発のプロセス(2) (テスト管理、・・・) ②ソフトウェアの規模見積り システム開発技術(2) ①システム開発のプロセス(2) (テスト管理、・・・) ②ソフトウェアの規模見積り 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 ①システム開発のプロセス(続き) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (前回の整理)テスト工程 テスト(開発)のプロセス 単体/結合/システム(機能、性能)/運用 テスト(方式)の種類 トップダウン/ボトムアップ テスト(技法)の種類 ホワイトボックス ブラックボックス 同値分割/限界値分析 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 テスト進捗率 信頼度成長曲線(ゴンペルツ曲線). テスト進捗率(期末) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (補足)開発システムが高品質とは 標準的 高品質(小テスト) 信頼度成長の不思議 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 レビューの目的 バグのあるまま次の工程に進まないように 開発時に品質の向上を図る 例)プログラミング ・レビュー レビューの目的(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 ソフトウェア開発を委託 受入れテスト(検収テスト) 調達先(SI企業、p126) 委託元 テスト 納入 受入れ 開発 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 システム開発のプロセス(再掲) 外部設計 内部設計 ③プログラミング 結合テスト システムテスト 単体テスト 運用テスト ①要件定義 ⑤運用 ④テスト ②設計 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 (10)システムの保守(運用に入ると) 情報システムが本稼働(Production Run) 運用(Operation) 日々情報システムを運転する 保守(Maintenance、p152) ①障害(テスト漏れ) ②改善 業務変更 環境変化 情報システム(プログラム)を修正=保守 運用:後期第12回 システム保守(期末) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 事故った! システムの保守 一般的な保守の分類 BM(Breakdown Maintenance、事後修理) 障害を取り除く PM(Preventive Maintenance、予防保守、p152) 障害が起こらないようにする(MTBFを長く) 定期保守 形態別の分類 Remote Maintenance(遠隔地保守) MTTRが短くなる(第2回) 2月1日に 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 身の回りの情報処理ー保守 障害が出ないように 運転中でも エ)システム運用中に、障害を引き起こす可能性のあるプログラムを 見つけ出しこれをあらかじめ修正する 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 ②ソフトウェアの 規模見積り 規模=工数:人月(単位) (p255) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 プログラムステップ(LOC)法 プログラムの行数(本数)を見積る 過去の開発経験をベースに 行数(本数)から開発作業規模(人月)を計算する FP法 プログラムの点数を見積る 画面数、ファイル数などから 点数から開発作業規模(人月)を計算する 難易度を考慮 基幹情報システムなど Sub NameCheck (Uname As String, Ucode As Integer, Ssw As Integer) Static nmul(1 To 5) As Integer Const p_mod% = 16384 Dim i , j, n, w As Integer nmul(1) = 1: nmul(2) = 2: nmul(3) = 3: nmul(4) = 5: nmul(5) = 7 If LenB(Uname) < 10 Then End w = 0 For i = 1 To 5 For j = 1 To 2 k = (i - 1) * 2 + j n = CInt(Asc(MidB(Uname, k, 1))) w = w + (n * nmul(i) Mod p_mod) Next j Next I If Ssw <> 1 Then If Ucode <> w Then MsgBox "名前が変えられています。" End End If Else Ssw = 0 Ssw = 1 End Sub FP法(期末) プログラムステップ(LOC)法(小テスト) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 規模見積りの例(1) プログラムステップ法 3000本のプログラムを修正 30%修正が必要 1日1人: 0.25本修正できる 本数=3000 x 0.3 = 900 規模(人日)=900 ÷ 0.25 = 3,600 規模見積り(期末) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 規模見積りの例(2) FP法 点数:350(←上2表の積和) 生産性係数:0.073 (人月/FP) 規模(人月)=350 x 0.073 = 25.55 外部入力 外部出力 外部照会 外部インタフェースファイル 内部論理ファイル もっと簡単に・・・LOCの計算は丁寧に」 正確には (1)外部入力 ≒ 入力画面(外部から入力されるデータをもとに、内部論理ファイルを更新する) (2)外部出力 ≒ 出力画面(内部論理ファイルを加工して、外部に出力する、【新たなデータ項目が作られる】) (3)外部照会 ≒ 照会画面(外部からの入力により内部論理ファイルを編集して、 外部に出力する、【新たなデータ項目が作られない】) (4)内部論理ファイル ≒ 出力ファイル(ユーザが識別可能な論理的ファイル=>当該システムで扱うファイル) (5)外部インタフェースファイル ≒ 入力ファイル(他のアプリで保守管理され、当該システムでは参照のみ) 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 見積りー練習1 各工程の生産性 設計 3Kステップ/月 PG 4Kステップ/月 テスト 6Kステップ/月 12Kステップのプログラム:何ヶ月? 計算 設計 12/3=4 PG 12/4=3 テスト 12/6=2 合計=9ヶ月 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016
『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016 End 『システム開発技術』 (C)Copyright, Toshiomi KOBAYASHI,2009-2016