Hatena::Groupgeneration1986

omote87 このページをアンテナに追加 RSSフィード

ura87 no omote

メインのブログ(d:id:kiwofusi)は日本語の読めるひとみんなに読んでもらいたいので、作業メモやソースコードなどはこちらに書きます。

 | 

2010年04月08日(木)

ソフトウェア工学に関する授業 第1回 はてなブックマーク - ソフトウェア工学に関する授業 第1回 - omote87 ソフトウェア工学に関する授業 第1回 - omote87 のブックマークコメント

以下は筆者の受けた授業内容に基づく概要と感想です。理解や表現の誤りはご了承ください。

概要

この授業はソフトウェア開発のなかでとくに「検証」を扱う。検証に関する諸概念、諸技術を理解し、説明できるようになることが主な目的である。

検証とはソフトウェアの「正しさ」を確認することである。ひとつは verification 正当性の確認、つまりソフトウェアを正しくつくっているか、プログラムが仕様に合っているか、の確認である。もうひとつは validation 妥当性の確認、つまり正しいソフトウェアであるか、仕様やプログラムが顧客の要求を満たすか、の確認である。したがって検証はソフトウェア開発のあらゆるプロセスにおいてプログラムだけでなく文書に対してもおこなう必要がある。

検証の理想は欠陥ゼロのソフトウェアをつくることだが、現実には要求を仕様化する難しさやコスト・規模の問題があり、顧客の要求を満たすことを第一に考えるべきである。

プログラムの検証には、実際に動作させる動的検証、ソースコードに対しておこなう静的検証がある。また仕様に対してはレビュー(インスペクション、ウォークスルー)をおこなう。

仕様を形式言語で記述することによって仕様が明確になり検証を自動化できるが学習コストが大きい。数学的な検証方法としてほかにモデル検査検証がある。

感想

検証というのは趣味でプログラミングしているときはてきとうになりがちなので、授業でやってみるのもよいかなあと思う。

以下、授業課題の感想文。

検証にverificationとvalidationのふたつの概念があり、仕様だけでなく要求に基づく検証も必要であることを理解した。要求が「正しいソフトウェア」の基準になることから、上流工程における要求の議論や要件定義の重要性がわかった。このような観点をもったことがあまりなかったのでこの授業を機に身につけたい。またアサーションや形式手法については聞き慣れないこともありよくわからなかった。これらも今後の授業で理解したい。

現実には、要求やコストに応じて品質を妥協させることが必要なのだろう。しかしあるベンチャー企業エンジニアは、顧客の要求とは異なるサービスを内密に平行して開発し、顧客をおどろかせた(実際によろこんでもらえた)というエピソードを語っていた。これは極端な事例ではあるが、顧客の要求を上回るものをつくろうというやる気もエンジニアにとっては大事だと思う。しかし根性論でデスマーチを肯定されても困るので、なかなか微妙な問題だ。「顧客の期待が低ければ低品質でもかまわない」というのは冷静には理解できるが、なんだか釈然としない気もした。

トラックバック - http://generation1986.g.hatena.ne.jp/kiwofusi/20100408
 |