Page Index |
|
|
|
|
(別ページへジャンプ) |
|
コードサンプルを中心にプログラミングに必要な情報を提供しています |
|
|
|
|
高品質、高効率を実現するプログラミング技術 |
|
高品質、高効率なプログラムを作成するカギは、 「見える化」 と、「第三者によるチェック」 です。
品質保証の過程で実施される、「教育」、「標準化」、「部品(マクロ、モジュール)化」、「レビュ、ウォークスルー、コードインスペクション」、「テスト」などは、「見える化」 と、「第三者によるチェック」 を実現する具体的な手法です。 |
|
1.教育
品質の善し悪しは、技術者のもつ技量にも大きく影響を受けます。品質不良を起こす原因のトップは知識・スキル不足によるものです。以下は、品質不良原因の頻度の高い順を並べたものです。
(1)管理者・担当者に対する教育・訓練の不足
(2)欠陥に対する計測の不足
(3)不十分な欠陥除去
(4)高い複雑度レベル
(5)あいまいなユーザー要求
|
2.標準化
きれいなプログラム(理解しやすい、論理的であるなどには“バグ”が少ないという定説があります。標準化の結果として得られるもの(目的)には次のものがあります。
(1)簡潔である(simplicity)
(2)理解しやすい(understandability)
(3)検証しやすい(verifiability)
(4)修正、拡張しやすい(modifiability)
(5)保守しやすい(maintainability)
(6)ばらつきがなくなる
(7)(プログラミング)スキルの継承にも役立つ
また、標準化の対象としては、以下のものが考えられます。
(1)作業手順
(2)ドキュメント(フォーム、記述レベル、用語)
(3)データベース、データセット(構造、命名)
(4)辞書、コードリスト
(5)プログラム(構造、変数名、パラメータ、命名・記述ルール)
(6)図表
(7)開発環境
|
3.部品(マクロ、モジュール)化
プログラムの処理単位をまとめると、プログラムの開発やデバグなどをわかりやすく行う事ができます。プログラムの複雑度と“バグ”の発生率との間には、強い相関関係があるので、部品はできるだけ小さい単位にまとめると良いでしょう。部品を小さくすることで、
(1)「理解しやすい」
(2)「テストしやすい」
(3)「独立性が高まる」
などのメリットが得られます。
部品の独立性を高めることも重要です。そのためには「部品内部での関連性が最大になるようにする」、「部品間の関連性が最小になるようにする」 など、考慮が必要です。
モジュール化への取り組みが中国活用のポイント 大和総研、2003年11月17日
|
4.レビュ、ウォークスルー、コードインスペクション
(1)レビュ
設計上の誤りを早期に発見することを目的として、各設計の終了時点で作成者と複数の関係者が
設計書を会議形式で検証する方法です。
(2)ウォークスルー
設計者やプログラム技術者がそれぞれの成果物を他のメンバーに詳細に説明しながら机上検証を
行なう非公式なミーティングです。
(3)コードインスペクション
デバグの一つでコーディング終了時に,複数の人間でプログラムの検証を行うことです。
|
5.テスト
テストはプログラムが設計者の意図どおりに機能することを確認する重要な行為です。
(1)テストを実施する際にはテスト計画書を作成し、それに基づいて実施します。
(環境、体制、テストケース設計)
(2)段階的にテストを実施すると、効率良く漏れのないテストが実施できます。
(単体テスト、結合テスト)
(3)要求仕様に満たされていないことを発見することは困難です。
(4)テストケースの設計方式としては、ホワイトボックステスト、ブラックボックステストがあります。
SASプログラムの検証で行われるダブルプログラミングはブラックボックステストの検証のひとつです。
(5)プログラマーとテスターの分業が望まれます。 |
|
|
|
|
情報システムの信頼性向上に関するガイドライン第2版 経済産業省、2009年3月24日
経済産業省では、情報システムの大規模化・ネットワーク化により情報システムが複雑化することで、一度のシステム障害で広範囲に影響を与える事例が増えており、情報システムの信頼性向上が喫緊の課題となっていることを受け、平成18年6月に公表した「情報システムの信頼性向上に関するガイドライン」の改訂を行ってきました。
この度、同ガイドライン第2版(案)に対するパブリックコメントの結果を踏まえ、同ガイドライン第2版を策定いたしましたのでその内容を公表いたします。
|
ソフトウェア開発の品質向上にむけて 2008年5月21日、三菱総合研究所
ソフトウェアを開発する際に、品質向上を目的として実施する活動のひとつにコードインスペクションがある。作成したプログラムのソースコードに間違いがないかを確認・検証していくもので、ほとんどのプログラム開発者は、やったほうがいいとは分かっていても、コストや時間の関係でなかなか実施できないものである。
|
情報システム構築の品質・信頼性向上のために NISTEP 科学技術政策研究所
- 上流工程の"ビジネスルール"と要求工学を検討する -
|
プログラムの品質と信頼性 株式会社ユートラム
プログラムの品質の問題を、プログラムミングの技法にとどまらず品質マネージメントシステムにまで広げ考えている
|
SEとプログラマー 大和総研、2005年6月24日
SE・プログラマーはそれぞれ異なる品質を対象としており、そこには、品質を維持・向上させるための技術が、別個に存在する。・・・
|
ソフトウェアエンジニアのためのホームページ System Creates Inc.
|
開発プロセスの基礎 StackAsterisk
第1回:要件定義編
第2回:設計編
第3回:テスト編
|
|
|
|
|
|
|
|
|
|
|
構造化プログラミング
構造化プログラミングは1960年代後半から1970年頃にかけて,E.W.ダイクストラ達によって提唱されたプログラミングについての考え方。この主張は提唱当時から支持され,現在ではプログラミングにおける基本的原則として広く受け入れられている
|
構造化プログラミングとは 大阪学院大学 中川 徹
|
Cプログラミング診断室 藤原博文
ひどい、読みにくい、何をしてるかわからない、バグだらけ、機能追加できない、などのプログラムを集め、こんなプログラムの書き方しちゃいけない」というのを示している
|
生産性と保守性を高めるコーディング規約の実際 ITpro
システムの品質を向上させるためには,実装工程における品質管理が欠かせない。これをきちんと実施するためには,ソースコードの書き方に関する決まりごとである「コーディング規約」が必須となる。電通国際情報サービスが2003年2月に策定した「Javaコーディング規約2003」を例に,その重要性と内容を解説する。
|
コーディング規則とコード レビュー MSDN ライブラリ
|
Visual Studio コーディング技法 MSDN ライブラリ
|
|
|
|
|
|
|
|
|
|
書籍 |
著者 |
備考 |
品質指向ソフトウェアマネジメント - 高品質ソフトウェア開発のためのプロジェクトマネジメント |
森北出版
山田 茂, 福島 利彦 |
発売:2007/3
¥2,520(税込) |
ITプロジェクトの「見える化」〜下流工程編〜 |
日経BP社 |
発売:2006/6
¥1,800(税込) |
経営者が参画する要求品質の確保―超上流から攻めるIT化の勘どころ |
オーム社 情報処理推進機構 |
発売:2006/6
¥1,800(税込) |
ソフトウェア品質工学の尺度とモデル |
Stephen H. Kan, 古山 恒夫, 富野 寿 |
発売:2004/11
¥5,040(税込) |
Code Complete第2版〈上〉―完全なプログラミングを目指して |
スティーブ マコネル |
発売:2005/3
¥6,405(税込) |
Code Complete第2版〈下〉―完全なプログラミングを目指して |
スティーブ マコネル |
発売:2005/3
¥6,405(税込) |
ソフトウェアパターン再考―ソフトウェア品質学 各論 パターン発祥から今後の展望まで |
鈴木 純一 |
発売:2000/6
¥3,150(税込) |
ソフトウェア品質のガイドライン |
Capers Jones |
発売:1994/4
¥4,410(税込) |
|